diff --git a/mvn/java-shopify-graphql-admin/pom.xml b/mvn/java-shopify-graphql-admin/pom.xml index 87e88f1a..9614bd45 100644 --- a/mvn/java-shopify-graphql-admin/pom.xml +++ b/mvn/java-shopify-graphql-admin/pom.xml @@ -6,12 +6,13 @@ io.github.mores java-shopify-graphql - 2025.04.001 + 2026.01.001 4.0.0 + io.github.mores java-shopify-graphql-admin - 2025.04.001 + 2026.01.001 jar java-shopify-graphql-admin diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/DgsConstants.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/DgsConstants.java index 80ed06b0..af7845c2 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/DgsConstants.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/DgsConstants.java @@ -112,6 +112,8 @@ public static class ABANDONEDCHECKOUTLINEITEM { public static final String OriginalUnitPriceSet = "originalUnitPriceSet"; + public static final String ParentRelationship = "parentRelationship"; + public static final String Product = "product"; public static final String Quantity = "quantity"; @@ -169,6 +171,12 @@ public static class ABANDONEDCHECKOUTLINEITEMEDGE { public static final String Node = "node"; } + public static class ABANDONEDCHECKOUTLINEITEMPARENTRELATIONSHIP { + public static final String TYPE_NAME = "AbandonedCheckoutLineItemParentRelationship"; + + public static final String Parent = "parent"; + } + public static class ABANDONMENT { public static final String TYPE_NAME = "Abandonment"; @@ -995,6 +1003,24 @@ public static class APPSUBSCRIPTIONTRIALEXTENDUSERERROR { public static final String Message = "message"; } + public static class APPUNINSTALLAPPUNINSTALLERROR { + public static final String TYPE_NAME = "AppUninstallAppUninstallError"; + + public static final String Code = "code"; + + public static final String Field = "field"; + + public static final String Message = "message"; + } + + public static class APPUNINSTALLPAYLOAD { + public static final String TYPE_NAME = "AppUninstallPayload"; + + public static final String App = "app"; + + public static final String UserErrors = "userErrors"; + } + public static class APPUSAGEPRICING { public static final String TYPE_NAME = "AppUsagePricing"; @@ -1112,300 +1138,322 @@ public static class COMMENTS_INPUT_ARGUMENT { public static class COMMENTSCOUNT_INPUT_ARGUMENT { public static final String Query = "query"; - } - - public static class EVENTS_INPUT_ARGUMENT { - public static final String First = "first"; - - public static final String After = "after"; - - public static final String Last = "last"; - - public static final String Before = "before"; - - public static final String Reverse = "reverse"; - - public static final String SortKey = "sortKey"; - - public static final String Query = "query"; - } - public static class METAFIELD_INPUT_ARGUMENT { - public static final String Namespace = "namespace"; - - public static final String Key = "key"; - } - - public static class METAFIELDDEFINITIONS_INPUT_ARGUMENT { - public static final String Namespace = "namespace"; - - public static final String PinnedStatus = "pinnedStatus"; - - public static final String First = "first"; - - public static final String After = "after"; - - public static final String Last = "last"; - - public static final String Before = "before"; - - public static final String Reverse = "reverse"; - - public static final String SortKey = "sortKey"; - - public static final String Query = "query"; - } - - public static class METAFIELDS_INPUT_ARGUMENT { - public static final String Namespace = "namespace"; - - public static final String Keys = "keys"; - - public static final String First = "first"; - - public static final String After = "after"; - - public static final String Last = "last"; - - public static final String Before = "before"; - - public static final String Reverse = "reverse"; - } - - public static class TRANSLATIONS_INPUT_ARGUMENT { - public static final String Locale = "locale"; - - public static final String MarketId = "marketId"; - } - } - - public static class ARTICLEAUTHOR { - public static final String TYPE_NAME = "ArticleAuthor"; - - public static final String Name = "name"; - } - - public static class ARTICLEAUTHORCONNECTION { - public static final String TYPE_NAME = "ArticleAuthorConnection"; - - public static final String Edges = "edges"; - - public static final String Nodes = "nodes"; - - public static final String PageInfo = "pageInfo"; - } - - public static class ARTICLEAUTHOREDGE { - public static final String TYPE_NAME = "ArticleAuthorEdge"; - - public static final String Cursor = "cursor"; - - public static final String Node = "node"; - } - - public static class ARTICLECONNECTION { - public static final String TYPE_NAME = "ArticleConnection"; - - public static final String Edges = "edges"; - - public static final String Nodes = "nodes"; - - public static final String PageInfo = "pageInfo"; - } - - public static class ARTICLECREATEPAYLOAD { - public static final String TYPE_NAME = "ArticleCreatePayload"; - - public static final String Article = "article"; - - public static final String UserErrors = "userErrors"; - } - - public static class ARTICLECREATEUSERERROR { - public static final String TYPE_NAME = "ArticleCreateUserError"; - - public static final String Code = "code"; - - public static final String Field = "field"; - - public static final String Message = "message"; - } - - public static class ARTICLEDELETEPAYLOAD { - public static final String TYPE_NAME = "ArticleDeletePayload"; - - public static final String DeletedArticleId = "deletedArticleId"; - - public static final String UserErrors = "userErrors"; - } - - public static class ARTICLEDELETEUSERERROR { - public static final String TYPE_NAME = "ArticleDeleteUserError"; - - public static final String Code = "code"; - - public static final String Field = "field"; - - public static final String Message = "message"; - } - - public static class ARTICLEEDGE { - public static final String TYPE_NAME = "ArticleEdge"; - - public static final String Cursor = "cursor"; - - public static final String Node = "node"; - } - - public static class ARTICLEUPDATEPAYLOAD { - public static final String TYPE_NAME = "ArticleUpdatePayload"; - - public static final String Article = "article"; - - public static final String UserErrors = "userErrors"; - } - - public static class ARTICLEUPDATEUSERERROR { - public static final String TYPE_NAME = "ArticleUpdateUserError"; - - public static final String Code = "code"; - - public static final String Field = "field"; - - public static final String Message = "message"; - } - - public static class ATTRIBUTE { - public static final String TYPE_NAME = "Attribute"; - - public static final String Key = "key"; - - public static final String Value = "value"; - } - - public static class AUTOMATICDISCOUNTAPPLICATION { - public static final String TYPE_NAME = "AutomaticDiscountApplication"; - - public static final String AllocationMethod = "allocationMethod"; - - public static final String Index = "index"; - - public static final String TargetSelection = "targetSelection"; - - public static final String TargetType = "targetType"; - - public static final String Title = "title"; - - public static final String Value = "value"; - } - - public static class AVAILABLECHANNELDEFINITIONSBYCHANNEL { - public static final String TYPE_NAME = "AvailableChannelDefinitionsByChannel"; - - public static final String ChannelDefinitions = "channelDefinitions"; - - public static final String ChannelName = "channelName"; - } - - public static class BACKUPREGIONUPDATEPAYLOAD { - public static final String TYPE_NAME = "BackupRegionUpdatePayload"; - - public static final String BackupRegion = "backupRegion"; - - public static final String UserErrors = "userErrors"; - } - - public static class BASICEVENT { - public static final String TYPE_NAME = "BasicEvent"; - - public static final String Action = "action"; - - public static final String AdditionalContent = "additionalContent"; - - public static final String AdditionalData = "additionalData"; - - public static final String AppTitle = "appTitle"; - - public static final String Arguments = "arguments"; - - public static final String AttributeToApp = "attributeToApp"; - - public static final String AttributeToUser = "attributeToUser"; - - public static final String CreatedAt = "createdAt"; - - public static final String CriticalAlert = "criticalAlert"; - - public static final String HasAdditionalContent = "hasAdditionalContent"; - - public static final String Id = "id"; - - public static final String Message = "message"; - - public static final String SecondaryMessage = "secondaryMessage"; - - public static final String Subject = "subject"; - - public static final String SubjectId = "subjectId"; - - public static final String SubjectType = "subjectType"; - } - - public static class BILLINGATTEMPTUSERERROR { - public static final String TYPE_NAME = "BillingAttemptUserError"; - - public static final String Code = "code"; - - public static final String Field = "field"; - - public static final String Message = "message"; - } - - public static class BLOG { - public static final String TYPE_NAME = "Blog"; - - public static final String Articles = "articles"; - - public static final String ArticlesCount = "articlesCount"; - - public static final String CommentPolicy = "commentPolicy"; - - public static final String CreatedAt = "createdAt"; - - public static final String Events = "events"; - - public static final String Feed = "feed"; - - public static final String Handle = "handle"; - - public static final String Id = "id"; - - public static final String Metafield = "metafield"; - - public static final String MetafieldDefinitions = "metafieldDefinitions"; - - public static final String Metafields = "metafields"; - - public static final String Tags = "tags"; - - public static final String TemplateSuffix = "templateSuffix"; - - public static final String Title = "title"; - - public static final String Translations = "translations"; - - public static final String UpdatedAt = "updatedAt"; - - public static class ARTICLES_INPUT_ARGUMENT { - public static final String First = "first"; - - public static final String After = "after"; - - public static final String Last = "last"; - - public static final String Before = "before"; - - public static final String Reverse = "reverse"; + public static final String Limit = "limit"; + } + + public static class EVENTS_INPUT_ARGUMENT { + public static final String First = "first"; + + public static final String After = "after"; + + public static final String Last = "last"; + + public static final String Before = "before"; + + public static final String Reverse = "reverse"; + + public static final String SortKey = "sortKey"; + + public static final String Query = "query"; + } + + public static class METAFIELD_INPUT_ARGUMENT { + public static final String Namespace = "namespace"; + + public static final String Key = "key"; + } + + public static class METAFIELDDEFINITIONS_INPUT_ARGUMENT { + public static final String Namespace = "namespace"; + + public static final String PinnedStatus = "pinnedStatus"; + + public static final String First = "first"; + + public static final String After = "after"; + + public static final String Last = "last"; + + public static final String Before = "before"; + + public static final String Reverse = "reverse"; + + public static final String SortKey = "sortKey"; + + public static final String Query = "query"; + } + + public static class METAFIELDS_INPUT_ARGUMENT { + public static final String Namespace = "namespace"; + + public static final String Keys = "keys"; + + public static final String First = "first"; + + public static final String After = "after"; + + public static final String Last = "last"; + + public static final String Before = "before"; + + public static final String Reverse = "reverse"; + } + + public static class TRANSLATIONS_INPUT_ARGUMENT { + public static final String Locale = "locale"; + + public static final String MarketId = "marketId"; + } + } + + public static class ARTICLEAUTHOR { + public static final String TYPE_NAME = "ArticleAuthor"; + + public static final String Name = "name"; + } + + public static class ARTICLEAUTHORCONNECTION { + public static final String TYPE_NAME = "ArticleAuthorConnection"; + + public static final String Edges = "edges"; + + public static final String Nodes = "nodes"; + + public static final String PageInfo = "pageInfo"; + } + + public static class ARTICLEAUTHOREDGE { + public static final String TYPE_NAME = "ArticleAuthorEdge"; + + public static final String Cursor = "cursor"; + + public static final String Node = "node"; + } + + public static class ARTICLECONNECTION { + public static final String TYPE_NAME = "ArticleConnection"; + + public static final String Edges = "edges"; + + public static final String Nodes = "nodes"; + + public static final String PageInfo = "pageInfo"; + } + + public static class ARTICLECREATEPAYLOAD { + public static final String TYPE_NAME = "ArticleCreatePayload"; + + public static final String Article = "article"; + + public static final String UserErrors = "userErrors"; + } + + public static class ARTICLECREATEUSERERROR { + public static final String TYPE_NAME = "ArticleCreateUserError"; + + public static final String Code = "code"; + + public static final String Field = "field"; + + public static final String Message = "message"; + } + + public static class ARTICLEDELETEPAYLOAD { + public static final String TYPE_NAME = "ArticleDeletePayload"; + + public static final String DeletedArticleId = "deletedArticleId"; + + public static final String UserErrors = "userErrors"; + } + + public static class ARTICLEDELETEUSERERROR { + public static final String TYPE_NAME = "ArticleDeleteUserError"; + + public static final String Code = "code"; + + public static final String Field = "field"; + + public static final String Message = "message"; + } + + public static class ARTICLEEDGE { + public static final String TYPE_NAME = "ArticleEdge"; + + public static final String Cursor = "cursor"; + + public static final String Node = "node"; + } + + public static class ARTICLEUPDATEPAYLOAD { + public static final String TYPE_NAME = "ArticleUpdatePayload"; + + public static final String Article = "article"; + + public static final String UserErrors = "userErrors"; + } + + public static class ARTICLEUPDATEUSERERROR { + public static final String TYPE_NAME = "ArticleUpdateUserError"; + + public static final String Code = "code"; + + public static final String Field = "field"; + + public static final String Message = "message"; + } + + public static class ATTRIBUTE { + public static final String TYPE_NAME = "Attribute"; + + public static final String Key = "key"; + + public static final String Value = "value"; + } + + public static class AUTOMATICDISCOUNTAPPLICATION { + public static final String TYPE_NAME = "AutomaticDiscountApplication"; + + public static final String AllocationMethod = "allocationMethod"; + + public static final String Index = "index"; + + public static final String TargetSelection = "targetSelection"; + + public static final String TargetType = "targetType"; + + public static final String Title = "title"; + + public static final String Value = "value"; + } + + public static class AVAILABLECHANNELDEFINITIONSBYCHANNEL { + public static final String TYPE_NAME = "AvailableChannelDefinitionsByChannel"; + + public static final String ChannelDefinitions = "channelDefinitions"; + + public static final String ChannelName = "channelName"; + } + + public static class BACKUPREGIONUPDATEPAYLOAD { + public static final String TYPE_NAME = "BackupRegionUpdatePayload"; + + public static final String BackupRegion = "backupRegion"; + + public static final String UserErrors = "userErrors"; + } + + public static class BANKACCOUNT { + public static final String TYPE_NAME = "BankAccount"; + + public static final String AccountHolderType = "accountHolderType"; + + public static final String AccountType = "accountType"; + + public static final String BankName = "bankName"; + + public static final String BillingAddress = "billingAddress"; + + public static final String LastDigits = "lastDigits"; + } + + public static class BASICEVENT { + public static final String TYPE_NAME = "BasicEvent"; + + public static final String Action = "action"; + + public static final String AdditionalContent = "additionalContent"; + + public static final String AdditionalData = "additionalData"; + + public static final String AppTitle = "appTitle"; + + public static final String Arguments = "arguments"; + + public static final String AttributeToApp = "attributeToApp"; + + public static final String AttributeToUser = "attributeToUser"; + + public static final String Author = "author"; + + public static final String CreatedAt = "createdAt"; + + public static final String CriticalAlert = "criticalAlert"; + + public static final String HasAdditionalContent = "hasAdditionalContent"; + + public static final String Id = "id"; + + public static final String Message = "message"; + + public static final String SecondaryMessage = "secondaryMessage"; + + public static final String Subject = "subject"; + + public static final String SubjectId = "subjectId"; + + public static final String SubjectType = "subjectType"; + } + + public static class BILLINGATTEMPTUSERERROR { + public static final String TYPE_NAME = "BillingAttemptUserError"; + + public static final String Code = "code"; + + public static final String Field = "field"; + + public static final String Message = "message"; + } + + public static class BLOG { + public static final String TYPE_NAME = "Blog"; + + public static final String Articles = "articles"; + + public static final String ArticlesCount = "articlesCount"; + + public static final String CommentPolicy = "commentPolicy"; + + public static final String CreatedAt = "createdAt"; + + public static final String Events = "events"; + + public static final String Feed = "feed"; + + public static final String Handle = "handle"; + + public static final String Id = "id"; + + public static final String Metafield = "metafield"; + + public static final String MetafieldDefinitions = "metafieldDefinitions"; + + public static final String Metafields = "metafields"; + + public static final String Tags = "tags"; + + public static final String TemplateSuffix = "templateSuffix"; + + public static final String Title = "title"; + + public static final String Translations = "translations"; + + public static final String UpdatedAt = "updatedAt"; + + public static class ARTICLES_INPUT_ARGUMENT { + public static final String First = "first"; + + public static final String After = "after"; + + public static final String Last = "last"; + + public static final String Before = "before"; + + public static final String Reverse = "reverse"; + } + + public static class ARTICLESCOUNT_INPUT_ARGUMENT { + public static final String Limit = "limit"; } public static class EVENTS_INPUT_ARGUMENT { @@ -1599,6 +1647,24 @@ public static class BULKOPERATIONCANCELPAYLOAD { public static final String UserErrors = "userErrors"; } + public static class BULKOPERATIONCONNECTION { + public static final String TYPE_NAME = "BulkOperationConnection"; + + public static final String Edges = "edges"; + + public static final String Nodes = "nodes"; + + public static final String PageInfo = "pageInfo"; + } + + public static class BULKOPERATIONEDGE { + public static final String TYPE_NAME = "BulkOperationEdge"; + + public static final String Cursor = "cursor"; + + public static final String Node = "node"; + } + public static class BULKOPERATIONRUNMUTATIONPAYLOAD { public static final String TYPE_NAME = "BulkOperationRunMutationPayload"; @@ -1668,6 +1734,8 @@ public static class BUSINESSENTITY { public static final String Address = "address"; + public static final String Archived = "archived"; + public static final String CompanyName = "companyName"; public static final String DisplayName = "displayName"; @@ -2670,6 +2738,8 @@ public static class PRODUCTS_INPUT_ARGUMENT { public static class PRODUCTSCOUNT_INPUT_ARGUMENT { public static final String Query = "query"; + + public static final String Limit = "limit"; } } @@ -2716,6 +2786,8 @@ public static class CHANNELINFORMATION { public static final String ChannelId = "channelId"; + public static final String DisplayName = "displayName"; + public static final String Id = "id"; } @@ -3296,6 +3368,8 @@ public static class CHECKOUTPROFILEEDGE { public static class COLLECTION { public static final String TYPE_NAME = "Collection"; + public static final String ActiveOperations = "activeOperations"; + public static final String AvailablePublicationsCount = "availablePublicationsCount"; public static final String Description = "description"; @@ -3589,6 +3663,34 @@ public static class COLLECTIONDELETEPAYLOAD { public static final String UserErrors = "userErrors"; } + public static class COLLECTIONDUPLICATEOPERATION { + public static final String TYPE_NAME = "CollectionDuplicateOperation"; + + public static final String CollectionRole = "collectionRole"; + + public static final String Job = "job"; + } + + public static class COLLECTIONDUPLICATEPAYLOAD { + public static final String TYPE_NAME = "CollectionDuplicatePayload"; + + public static final String Collection = "collection"; + + public static final String Job = "job"; + + public static final String UserErrors = "userErrors"; + } + + public static class COLLECTIONDUPLICATEUSERERROR { + public static final String TYPE_NAME = "CollectionDuplicateUserError"; + + public static final String Code = "code"; + + public static final String Field = "field"; + + public static final String Message = "message"; + } + public static class COLLECTIONEDGE { public static final String TYPE_NAME = "CollectionEdge"; @@ -3597,6 +3699,12 @@ public static class COLLECTIONEDGE { public static final String Node = "node"; } + public static class COLLECTIONOPERATIONS { + public static final String TYPE_NAME = "CollectionOperations"; + + public static final String Duplicate = "duplicate"; + } + public static class COLLECTIONPUBLICATION { public static final String TYPE_NAME = "CollectionPublication"; @@ -3657,6 +3765,16 @@ public static class COLLECTIONREORDERPRODUCTSPAYLOAD { public static final String UserErrors = "userErrors"; } + public static class COLLECTIONREORDERPRODUCTSUSERERROR { + public static final String TYPE_NAME = "CollectionReorderProductsUserError"; + + public static final String Code = "code"; + + public static final String Field = "field"; + + public static final String Message = "message"; + } + public static class COLLECTIONRULE { public static final String TYPE_NAME = "CollectionRule"; @@ -4590,6 +4708,8 @@ public static class COMPANYLOCATION { public static final String StaffMemberAssignments = "staffMemberAssignments"; + public static final String StoreCreditAccounts = "storeCreditAccounts"; + public static final String TaxExemptions = "taxExemptions"; public static final String TaxRegistrationId = "taxRegistrationId"; @@ -4612,6 +4732,10 @@ public static class CATALOGS_INPUT_ARGUMENT { public static final String Reverse = "reverse"; } + public static class CATALOGSCOUNT_INPUT_ARGUMENT { + public static final String Limit = "limit"; + } + public static class DRAFTORDERS_INPUT_ARGUMENT { public static final String First = "first"; @@ -4735,6 +4859,18 @@ public static class STAFFMEMBERASSIGNMENTS_INPUT_ARGUMENT { public static final String Query = "query"; } + + public static class STORECREDITACCOUNTS_INPUT_ARGUMENT { + public static final String First = "first"; + + public static final String After = "after"; + + public static final String Last = "last"; + + public static final String Before = "before"; + + public static final String Query = "query"; + } } public static class COMPANYLOCATIONASSIGNADDRESSPAYLOAD { @@ -4977,6 +5113,30 @@ public static class COMPANYUPDATEPAYLOAD { public static final String UserErrors = "userErrors"; } + public static class COMPONENTIZEDPRODUCTSBUNDLECONSOLIDATEDOPTION { + public static final String TYPE_NAME = "ComponentizedProductsBundleConsolidatedOption"; + + public static final String Name = "name"; + + public static final String Selections = "selections"; + } + + public static class COMPONENTIZEDPRODUCTSBUNDLECONSOLIDATEDOPTIONSELECTION { + public static final String TYPE_NAME = "ComponentizedProductsBundleConsolidatedOptionSelection"; + + public static final String Components = "components"; + + public static final String Value = "value"; + } + + public static class COMPONENTIZEDPRODUCTSBUNDLECONSOLIDATEDOPTIONSELECTIONCOMPONENT { + public static final String TYPE_NAME = "ComponentizedProductsBundleConsolidatedOptionSelectionComponent"; + + public static final String OptionId = "optionId"; + + public static final String Value = "value"; + } + public static class CONSENTPOLICY { public static final String TYPE_NAME = "ConsentPolicy"; @@ -5077,6 +5237,18 @@ public static class COUNTRYHARMONIZEDSYSTEMCODEEDGE { public static final String Node = "node"; } + public static class CURRENCYEXCHANGEADJUSTMENT { + public static final String TYPE_NAME = "CurrencyExchangeAdjustment"; + + public static final String Adjustment = "adjustment"; + + public static final String FinalAmountSet = "finalAmountSet"; + + public static final String Id = "id"; + + public static final String OriginalAmountSet = "originalAmountSet"; + } + public static class CURRENCYFORMATS { public static final String TYPE_NAME = "CurrencyFormats"; @@ -5098,6 +5270,8 @@ public static class CURRENCYSETTING { public static final String Enabled = "enabled"; + public static final String ManualRate = "manualRate"; + public static final String RateUpdatedAt = "rateUpdatedAt"; } @@ -5886,12 +6060,26 @@ public static class CUSTOMERPAYMENTMETHOD { public static final String Instrument = "instrument"; + public static final String Mandates = "mandates"; + public static final String RevokedAt = "revokedAt"; public static final String RevokedReason = "revokedReason"; public static final String SubscriptionContracts = "subscriptionContracts"; + public static class MANDATES_INPUT_ARGUMENT { + public static final String First = "first"; + + public static final String After = "after"; + + public static final String Last = "last"; + + public static final String Before = "before"; + + public static final String Reverse = "reverse"; + } + public static class SUBSCRIPTIONCONTRACTS_INPUT_ARGUMENT { public static final String First = "first"; @@ -6974,6 +7162,8 @@ public static class DELIVERYPROFILE { public static final String UnassignedLocationsPaginated = "unassignedLocationsPaginated"; + public static final String Version = "version"; + public static final String ZoneCountryCount = "zoneCountryCount"; public static class PROFILEITEMS_INPUT_ARGUMENT { @@ -7330,6 +7520,8 @@ public static class DISCOUNTAUTOMATICAPP { public static final String CombinesWith = "combinesWith"; + public static final String Context = "context"; + public static final String CreatedAt = "createdAt"; public static final String DiscountClass = "discountClass"; @@ -7376,6 +7568,8 @@ public static class DISCOUNTAUTOMATICBASIC { public static final String CombinesWith = "combinesWith"; + public static final String Context = "context"; + public static final String CreatedAt = "createdAt"; public static final String CustomerGets = "customerGets"; @@ -7436,6 +7630,8 @@ public static class DISCOUNTAUTOMATICBXGY { public static final String CombinesWith = "combinesWith"; + public static final String Context = "context"; + public static final String CreatedAt = "createdAt"; public static final String CustomerBuys = "customerBuys"; @@ -7544,6 +7740,8 @@ public static class DISCOUNTAUTOMATICFREESHIPPING { public static final String CombinesWith = "combinesWith"; + public static final String Context = "context"; + public static final String CreatedAt = "createdAt"; public static final String DestinationSelection = "destinationSelection"; @@ -7685,6 +7883,12 @@ public static class DISCOUNTAUTOMATICNODEEDGE { public static final String Node = "node"; } + public static class DISCOUNTBUYERSELECTIONALL { + public static final String TYPE_NAME = "DiscountBuyerSelectionAll"; + + public static final String All = "all"; + } + public static class DISCOUNTCODEACTIVATEPAYLOAD { public static final String TYPE_NAME = "DiscountCodeActivatePayload"; @@ -7712,6 +7916,8 @@ public static class DISCOUNTCODEAPP { public static final String CombinesWith = "combinesWith"; + public static final String Context = "context"; + public static final String CreatedAt = "createdAt"; public static final String CustomerSelection = "customerSelection"; @@ -7808,118 +8014,10 @@ public static class DISCOUNTCODEBASIC { public static final String CombinesWith = "combinesWith"; - public static final String CreatedAt = "createdAt"; - - public static final String CustomerGets = "customerGets"; - - public static final String CustomerSelection = "customerSelection"; - - public static final String DiscountClass = "discountClass"; - - public static final String DiscountClasses = "discountClasses"; - - public static final String EndsAt = "endsAt"; - - public static final String HasTimelineComment = "hasTimelineComment"; - - public static final String MinimumRequirement = "minimumRequirement"; - - public static final String RecurringCycleLimit = "recurringCycleLimit"; - - public static final String ShareableUrls = "shareableUrls"; - - public static final String ShortSummary = "shortSummary"; - - public static final String StartsAt = "startsAt"; - - public static final String Status = "status"; - - public static final String Summary = "summary"; - - public static final String Title = "title"; - - public static final String TotalSales = "totalSales"; - - public static final String UpdatedAt = "updatedAt"; - - public static final String UsageLimit = "usageLimit"; - - public static class CODES_INPUT_ARGUMENT { - public static final String First = "first"; - - public static final String After = "after"; - - public static final String Last = "last"; - - public static final String Before = "before"; - - public static final String Reverse = "reverse"; - - public static final String SortKey = "sortKey"; - - public static final String Query = "query"; - - public static final String SavedSearchId = "savedSearchId"; - } - } - - public static class DISCOUNTCODEBASICCREATEPAYLOAD { - public static final String TYPE_NAME = "DiscountCodeBasicCreatePayload"; - - public static final String CodeDiscountNode = "codeDiscountNode"; - - public static final String UserErrors = "userErrors"; - } - - public static class DISCOUNTCODEBASICUPDATEPAYLOAD { - public static final String TYPE_NAME = "DiscountCodeBasicUpdatePayload"; - - public static final String CodeDiscountNode = "codeDiscountNode"; - - public static final String UserErrors = "userErrors"; - } - - public static class DISCOUNTCODEBULKACTIVATEPAYLOAD { - public static final String TYPE_NAME = "DiscountCodeBulkActivatePayload"; - - public static final String Job = "job"; - - public static final String UserErrors = "userErrors"; - } - - public static class DISCOUNTCODEBULKDEACTIVATEPAYLOAD { - public static final String TYPE_NAME = "DiscountCodeBulkDeactivatePayload"; - - public static final String Job = "job"; - - public static final String UserErrors = "userErrors"; - } - - public static class DISCOUNTCODEBULKDELETEPAYLOAD { - public static final String TYPE_NAME = "DiscountCodeBulkDeletePayload"; - - public static final String Job = "job"; - - public static final String UserErrors = "userErrors"; - } - - public static class DISCOUNTCODEBXGY { - public static final String TYPE_NAME = "DiscountCodeBxgy"; - - public static final String AppliesOncePerCustomer = "appliesOncePerCustomer"; - - public static final String AsyncUsageCount = "asyncUsageCount"; - - public static final String Codes = "codes"; - - public static final String CodesCount = "codesCount"; - - public static final String CombinesWith = "combinesWith"; + public static final String Context = "context"; public static final String CreatedAt = "createdAt"; - public static final String CustomerBuys = "customerBuys"; - public static final String CustomerGets = "customerGets"; public static final String CustomerSelection = "customerSelection"; @@ -7932,108 +8030,222 @@ public static class DISCOUNTCODEBXGY { public static final String HasTimelineComment = "hasTimelineComment"; - public static final String ShareableUrls = "shareableUrls"; - - public static final String StartsAt = "startsAt"; - - public static final String Status = "status"; - - public static final String Summary = "summary"; - - public static final String Title = "title"; - - public static final String TotalSales = "totalSales"; - - public static final String UpdatedAt = "updatedAt"; - - public static final String UsageLimit = "usageLimit"; - - public static final String UsesPerOrderLimit = "usesPerOrderLimit"; - - public static class CODES_INPUT_ARGUMENT { - public static final String First = "first"; - - public static final String After = "after"; - - public static final String Last = "last"; - - public static final String Before = "before"; - - public static final String Reverse = "reverse"; - - public static final String SortKey = "sortKey"; - - public static final String Query = "query"; - - public static final String SavedSearchId = "savedSearchId"; - } - } - - public static class DISCOUNTCODEBXGYCREATEPAYLOAD { - public static final String TYPE_NAME = "DiscountCodeBxgyCreatePayload"; - - public static final String CodeDiscountNode = "codeDiscountNode"; - - public static final String UserErrors = "userErrors"; - } - - public static class DISCOUNTCODEBXGYUPDATEPAYLOAD { - public static final String TYPE_NAME = "DiscountCodeBxgyUpdatePayload"; - - public static final String CodeDiscountNode = "codeDiscountNode"; - - public static final String UserErrors = "userErrors"; - } - - public static class DISCOUNTCODEDEACTIVATEPAYLOAD { - public static final String TYPE_NAME = "DiscountCodeDeactivatePayload"; - - public static final String CodeDiscountNode = "codeDiscountNode"; - - public static final String UserErrors = "userErrors"; - } - - public static class DISCOUNTCODEDELETEPAYLOAD { - public static final String TYPE_NAME = "DiscountCodeDeletePayload"; - - public static final String DeletedCodeDiscountId = "deletedCodeDiscountId"; - - public static final String UserErrors = "userErrors"; - } - - public static class DISCOUNTCODEFREESHIPPING { - public static final String TYPE_NAME = "DiscountCodeFreeShipping"; - - public static final String AppliesOnOneTimePurchase = "appliesOnOneTimePurchase"; - - public static final String AppliesOnSubscription = "appliesOnSubscription"; - - public static final String AppliesOncePerCustomer = "appliesOncePerCustomer"; - - public static final String AsyncUsageCount = "asyncUsageCount"; - - public static final String Codes = "codes"; - - public static final String CodesCount = "codesCount"; - - public static final String CombinesWith = "combinesWith"; - - public static final String CreatedAt = "createdAt"; - - public static final String CustomerSelection = "customerSelection"; - - public static final String DestinationSelection = "destinationSelection"; - - public static final String DiscountClass = "discountClass"; - - public static final String DiscountClasses = "discountClasses"; - - public static final String EndsAt = "endsAt"; - - public static final String HasTimelineComment = "hasTimelineComment"; - - public static final String MaximumShippingPrice = "maximumShippingPrice"; - + public static final String MinimumRequirement = "minimumRequirement"; + + public static final String RecurringCycleLimit = "recurringCycleLimit"; + + public static final String ShareableUrls = "shareableUrls"; + + public static final String ShortSummary = "shortSummary"; + + public static final String StartsAt = "startsAt"; + + public static final String Status = "status"; + + public static final String Summary = "summary"; + + public static final String Title = "title"; + + public static final String TotalSales = "totalSales"; + + public static final String UpdatedAt = "updatedAt"; + + public static final String UsageLimit = "usageLimit"; + + public static class CODES_INPUT_ARGUMENT { + public static final String First = "first"; + + public static final String After = "after"; + + public static final String Last = "last"; + + public static final String Before = "before"; + + public static final String Reverse = "reverse"; + + public static final String SortKey = "sortKey"; + + public static final String Query = "query"; + + public static final String SavedSearchId = "savedSearchId"; + } + } + + public static class DISCOUNTCODEBASICCREATEPAYLOAD { + public static final String TYPE_NAME = "DiscountCodeBasicCreatePayload"; + + public static final String CodeDiscountNode = "codeDiscountNode"; + + public static final String UserErrors = "userErrors"; + } + + public static class DISCOUNTCODEBASICUPDATEPAYLOAD { + public static final String TYPE_NAME = "DiscountCodeBasicUpdatePayload"; + + public static final String CodeDiscountNode = "codeDiscountNode"; + + public static final String UserErrors = "userErrors"; + } + + public static class DISCOUNTCODEBULKACTIVATEPAYLOAD { + public static final String TYPE_NAME = "DiscountCodeBulkActivatePayload"; + + public static final String Job = "job"; + + public static final String UserErrors = "userErrors"; + } + + public static class DISCOUNTCODEBULKDEACTIVATEPAYLOAD { + public static final String TYPE_NAME = "DiscountCodeBulkDeactivatePayload"; + + public static final String Job = "job"; + + public static final String UserErrors = "userErrors"; + } + + public static class DISCOUNTCODEBULKDELETEPAYLOAD { + public static final String TYPE_NAME = "DiscountCodeBulkDeletePayload"; + + public static final String Job = "job"; + + public static final String UserErrors = "userErrors"; + } + + public static class DISCOUNTCODEBXGY { + public static final String TYPE_NAME = "DiscountCodeBxgy"; + + public static final String AppliesOncePerCustomer = "appliesOncePerCustomer"; + + public static final String AsyncUsageCount = "asyncUsageCount"; + + public static final String Codes = "codes"; + + public static final String CodesCount = "codesCount"; + + public static final String CombinesWith = "combinesWith"; + + public static final String Context = "context"; + + public static final String CreatedAt = "createdAt"; + + public static final String CustomerBuys = "customerBuys"; + + public static final String CustomerGets = "customerGets"; + + public static final String CustomerSelection = "customerSelection"; + + public static final String DiscountClass = "discountClass"; + + public static final String DiscountClasses = "discountClasses"; + + public static final String EndsAt = "endsAt"; + + public static final String HasTimelineComment = "hasTimelineComment"; + + public static final String ShareableUrls = "shareableUrls"; + + public static final String StartsAt = "startsAt"; + + public static final String Status = "status"; + + public static final String Summary = "summary"; + + public static final String Title = "title"; + + public static final String TotalSales = "totalSales"; + + public static final String UpdatedAt = "updatedAt"; + + public static final String UsageLimit = "usageLimit"; + + public static final String UsesPerOrderLimit = "usesPerOrderLimit"; + + public static class CODES_INPUT_ARGUMENT { + public static final String First = "first"; + + public static final String After = "after"; + + public static final String Last = "last"; + + public static final String Before = "before"; + + public static final String Reverse = "reverse"; + + public static final String SortKey = "sortKey"; + + public static final String Query = "query"; + + public static final String SavedSearchId = "savedSearchId"; + } + } + + public static class DISCOUNTCODEBXGYCREATEPAYLOAD { + public static final String TYPE_NAME = "DiscountCodeBxgyCreatePayload"; + + public static final String CodeDiscountNode = "codeDiscountNode"; + + public static final String UserErrors = "userErrors"; + } + + public static class DISCOUNTCODEBXGYUPDATEPAYLOAD { + public static final String TYPE_NAME = "DiscountCodeBxgyUpdatePayload"; + + public static final String CodeDiscountNode = "codeDiscountNode"; + + public static final String UserErrors = "userErrors"; + } + + public static class DISCOUNTCODEDEACTIVATEPAYLOAD { + public static final String TYPE_NAME = "DiscountCodeDeactivatePayload"; + + public static final String CodeDiscountNode = "codeDiscountNode"; + + public static final String UserErrors = "userErrors"; + } + + public static class DISCOUNTCODEDELETEPAYLOAD { + public static final String TYPE_NAME = "DiscountCodeDeletePayload"; + + public static final String DeletedCodeDiscountId = "deletedCodeDiscountId"; + + public static final String UserErrors = "userErrors"; + } + + public static class DISCOUNTCODEFREESHIPPING { + public static final String TYPE_NAME = "DiscountCodeFreeShipping"; + + public static final String AppliesOnOneTimePurchase = "appliesOnOneTimePurchase"; + + public static final String AppliesOnSubscription = "appliesOnSubscription"; + + public static final String AppliesOncePerCustomer = "appliesOncePerCustomer"; + + public static final String AsyncUsageCount = "asyncUsageCount"; + + public static final String Codes = "codes"; + + public static final String CodesCount = "codesCount"; + + public static final String CombinesWith = "combinesWith"; + + public static final String Context = "context"; + + public static final String CreatedAt = "createdAt"; + + public static final String CustomerSelection = "customerSelection"; + + public static final String DestinationSelection = "destinationSelection"; + + public static final String DiscountClass = "discountClass"; + + public static final String DiscountClasses = "discountClasses"; + + public static final String EndsAt = "endsAt"; + + public static final String HasTimelineComment = "hasTimelineComment"; + + public static final String MaximumShippingPrice = "maximumShippingPrice"; + public static final String MinimumRequirement = "minimumRequirement"; public static final String RecurringCycleLimit = "recurringCycleLimit"; @@ -8577,6 +8789,14 @@ public static class DISPUTEEVIDENCEUPDATEUSERERROR { public static final String Message = "message"; } + public static class DISTANCE { + public static final String TYPE_NAME = "Distance"; + + public static final String Unit = "unit"; + + public static final String Value = "value"; + } + public static class DOMAIN { public static final String TYPE_NAME = "Domain"; @@ -8835,6 +9055,18 @@ public static class DRAFTORDERAPPLIEDDISCOUNT { public static final String ValueType = "valueType"; } + public static class DRAFTORDERAVAILABLEDELIVERYOPTIONS { + public static final String TYPE_NAME = "DraftOrderAvailableDeliveryOptions"; + + public static final String AvailableLocalDeliveryRates = "availableLocalDeliveryRates"; + + public static final String AvailableLocalPickupOptions = "availableLocalPickupOptions"; + + public static final String AvailableShippingRates = "availableShippingRates"; + + public static final String PageInfo = "pageInfo"; + } + public static class DRAFTORDERBULKADDTAGSPAYLOAD { public static final String TYPE_NAME = "DraftOrderBulkAddTagsPayload"; @@ -8903,12 +9135,6 @@ public static class DRAFTORDERCREATEFROMORDERPAYLOAD { public static final String UserErrors = "userErrors"; } - public static class DRAFTORDERCREATEMERCHANTCHECKOUTPAYLOAD { - public static final String TYPE_NAME = "DraftOrderCreateMerchantCheckoutPayload"; - - public static final String UserErrors = "userErrors"; - } - public static class DRAFTORDERCREATEPAYLOAD { public static final String TYPE_NAME = "DraftOrderCreatePayload"; @@ -9071,6 +9297,16 @@ public static class DRAFTORDERLINEITEMEDGE { public static final String Node = "node"; } + public static class DRAFTORDERMARKETREGIONCOUNTRYCODENOTSUPPORTEDWARNING { + public static final String TYPE_NAME = "DraftOrderMarketRegionCountryCodeNotSupportedWarning"; + + public static final String ErrorCode = "errorCode"; + + public static final String Field = "field"; + + public static final String Message = "message"; + } + public static class DRAFTORDERPLATFORMDISCOUNT { public static final String TYPE_NAME = "DraftOrderPlatformDiscount"; @@ -9084,6 +9320,8 @@ public static class DRAFTORDERPLATFORMDISCOUNT { public static final String DiscountClass = "discountClass"; + public static final String DiscountClasses = "discountClasses"; + public static final String DiscountNode = "discountNode"; public static final String Id = "id"; @@ -9115,6 +9353,20 @@ public static class DRAFTORDERPLATFORMDISCOUNTALLOCATION { public static final String Target = "target"; } + public static class DRAFTORDERSHIPPINGRATE { + public static final String TYPE_NAME = "DraftOrderShippingRate"; + + public static final String Code = "code"; + + public static final String Handle = "handle"; + + public static final String Price = "price"; + + public static final String Source = "source"; + + public static final String Title = "title"; + } + public static class DRAFTORDERTAG { public static final String TYPE_NAME = "DraftOrderTag"; @@ -9253,6 +9505,18 @@ public static class EXCHANGELINEITEM { public static final String Id = "id"; public static final String LineItem = "lineItem"; + + public static final String LineItems = "lineItems"; + + public static final String ProcessableQuantity = "processableQuantity"; + + public static final String ProcessedQuantity = "processedQuantity"; + + public static final String Quantity = "quantity"; + + public static final String UnprocessedQuantity = "unprocessedQuantity"; + + public static final String VariantId = "variantId"; } public static class EXCHANGELINEITEMCONNECTION { @@ -10497,6 +10761,24 @@ public static class FULFILLMENTORDERSPLITUSERERROR { public static final String Message = "message"; } + public static class FULFILLMENTORDERSREROUTEPAYLOAD { + public static final String TYPE_NAME = "FulfillmentOrdersReroutePayload"; + + public static final String MovedFulfillmentOrders = "movedFulfillmentOrders"; + + public static final String UserErrors = "userErrors"; + } + + public static class FULFILLMENTORDERSREROUTEUSERERROR { + public static final String TYPE_NAME = "FulfillmentOrdersRerouteUserError"; + + public static final String Code = "code"; + + public static final String Field = "field"; + + public static final String Message = "message"; + } + public static class FULFILLMENTORDERSSETFULFILLMENTDEADLINEPAYLOAD { public static final String TYPE_NAME = "FulfillmentOrdersSetFulfillmentDeadlinePayload"; @@ -11012,8 +11294,12 @@ public static class IMAGE { public static final String Src = "src"; + public static final String Thumbhash = "thumbhash"; + public static final String TransformedSrc = "transformedSrc"; + public static final String Translations = "translations"; + public static final String Url = "url"; public static final String Width = "width"; @@ -11052,6 +11338,12 @@ public static class TRANSFORMEDSRC_INPUT_ARGUMENT { public static final String PreferredContentType = "preferredContentType"; } + public static class TRANSLATIONS_INPUT_ARGUMENT { + public static final String Locale = "locale"; + + public static final String MarketId = "marketId"; + } + public static class URL_INPUT_ARGUMENT { public static final String Transform = "transform"; } @@ -11220,6 +11512,8 @@ public static class INVENTORYITEM { public static final String Variant = "variant"; + public static final String Variants = "variants"; + public static class COUNTRYHARMONIZEDSYSTEMCODES_INPUT_ARGUMENT { public static final String First = "first"; @@ -11249,6 +11543,16 @@ public static class INVENTORYLEVELS_INPUT_ARGUMENT { public static final String Query = "query"; } + + public static class VARIANTS_INPUT_ARGUMENT { + public static final String First = "first"; + + public static final String After = "after"; + + public static final String Last = "last"; + + public static final String Before = "before"; + } } public static class INVENTORYITEMCONNECTION { @@ -11483,334 +11787,1002 @@ public static class INVENTORYSETSCHEDULEDCHANGESUSERERROR { public static final String Message = "message"; } - public static class JOB { - public static final String TYPE_NAME = "Job"; - - public static final String Done = "done"; - - public static final String Id = "id"; - - public static final String Query = "query"; - } - - public static class LIMITEDPENDINGORDERCOUNT { - public static final String TYPE_NAME = "LimitedPendingOrderCount"; + public static class INVENTORYSHIPMENT { + public static final String TYPE_NAME = "InventoryShipment"; - public static final String AtMax = "atMax"; + public static final String DateCreated = "dateCreated"; - public static final String Count = "count"; - } + public static final String DateReceived = "dateReceived"; - public static class LINEITEM { - public static final String TYPE_NAME = "LineItem"; + public static final String DateShipped = "dateShipped"; - public static final String CanRestock = "canRestock"; + public static final String Id = "id"; - public static final String Contract = "contract"; + public static final String LineItemTotalQuantity = "lineItemTotalQuantity"; - public static final String CurrentQuantity = "currentQuantity"; + public static final String LineItems = "lineItems"; - public static final String CustomAttributes = "customAttributes"; + public static final String LineItemsCount = "lineItemsCount"; - public static final String DiscountAllocations = "discountAllocations"; + public static final String Name = "name"; - public static final String DiscountedTotal = "discountedTotal"; + public static final String Status = "status"; - public static final String DiscountedTotalSet = "discountedTotalSet"; + public static final String TotalAcceptedQuantity = "totalAcceptedQuantity"; - public static final String DiscountedUnitPrice = "discountedUnitPrice"; + public static final String TotalReceivedQuantity = "totalReceivedQuantity"; - public static final String DiscountedUnitPriceAfterAllDiscountsSet = "discountedUnitPriceAfterAllDiscountsSet"; + public static final String TotalRejectedQuantity = "totalRejectedQuantity"; - public static final String DiscountedUnitPriceSet = "discountedUnitPriceSet"; + public static final String Tracking = "tracking"; - public static final String Duties = "duties"; + public static class LINEITEMS_INPUT_ARGUMENT { + public static final String First = "first"; - public static final String FulfillableQuantity = "fulfillableQuantity"; + public static final String After = "after"; - public static final String FulfillmentService = "fulfillmentService"; + public static final String Last = "last"; - public static final String FulfillmentStatus = "fulfillmentStatus"; + public static final String Before = "before"; - public static final String Id = "id"; + public static final String Reverse = "reverse"; - public static final String Image = "image"; + public static final String SortKey = "sortKey"; - public static final String IsGiftCard = "isGiftCard"; + public static final String Query = "query"; + } - public static final String LineItemGroup = "lineItemGroup"; + public static class LINEITEMSCOUNT_INPUT_ARGUMENT { + public static final String Query = "query"; - public static final String MerchantEditable = "merchantEditable"; + public static final String Limit = "limit"; + } + } - public static final String Name = "name"; + public static class INVENTORYSHIPMENTADDITEMSPAYLOAD { + public static final String TYPE_NAME = "InventoryShipmentAddItemsPayload"; - public static final String NonFulfillableQuantity = "nonFulfillableQuantity"; + public static final String AddedItems = "addedItems"; - public static final String OriginalTotal = "originalTotal"; + public static final String InventoryShipment = "inventoryShipment"; - public static final String OriginalTotalSet = "originalTotalSet"; + public static final String UserErrors = "userErrors"; + } - public static final String OriginalUnitPrice = "originalUnitPrice"; + public static class INVENTORYSHIPMENTADDITEMSUSERERROR { + public static final String TYPE_NAME = "InventoryShipmentAddItemsUserError"; - public static final String OriginalUnitPriceSet = "originalUnitPriceSet"; + public static final String Code = "code"; - public static final String Product = "product"; + public static final String Field = "field"; - public static final String Quantity = "quantity"; + public static final String Message = "message"; + } - public static final String RefundableQuantity = "refundableQuantity"; + public static class INVENTORYSHIPMENTCONNECTION { + public static final String TYPE_NAME = "InventoryShipmentConnection"; - public static final String RequiresShipping = "requiresShipping"; + public static final String Edges = "edges"; - public static final String Restockable = "restockable"; + public static final String Nodes = "nodes"; - public static final String SellingPlan = "sellingPlan"; + public static final String PageInfo = "pageInfo"; + } - public static final String Sku = "sku"; + public static class INVENTORYSHIPMENTCREATEINTRANSITPAYLOAD { + public static final String TYPE_NAME = "InventoryShipmentCreateInTransitPayload"; - public static final String StaffMember = "staffMember"; + public static final String InventoryShipment = "inventoryShipment"; - public static final String TaxLines = "taxLines"; + public static final String UserErrors = "userErrors"; + } - public static final String Taxable = "taxable"; + public static class INVENTORYSHIPMENTCREATEINTRANSITUSERERROR { + public static final String TYPE_NAME = "InventoryShipmentCreateInTransitUserError"; - public static final String Title = "title"; + public static final String Code = "code"; - public static final String TotalDiscount = "totalDiscount"; + public static final String Field = "field"; - public static final String TotalDiscountSet = "totalDiscountSet"; + public static final String Message = "message"; + } - public static final String UnfulfilledDiscountedTotal = "unfulfilledDiscountedTotal"; + public static class INVENTORYSHIPMENTCREATEPAYLOAD { + public static final String TYPE_NAME = "InventoryShipmentCreatePayload"; - public static final String UnfulfilledDiscountedTotalSet = "unfulfilledDiscountedTotalSet"; + public static final String InventoryShipment = "inventoryShipment"; - public static final String UnfulfilledOriginalTotal = "unfulfilledOriginalTotal"; + public static final String UserErrors = "userErrors"; + } - public static final String UnfulfilledOriginalTotalSet = "unfulfilledOriginalTotalSet"; + public static class INVENTORYSHIPMENTCREATEUSERERROR { + public static final String TYPE_NAME = "InventoryShipmentCreateUserError"; - public static final String UnfulfilledQuantity = "unfulfilledQuantity"; + public static final String Code = "code"; - public static final String Variant = "variant"; + public static final String Field = "field"; - public static final String VariantTitle = "variantTitle"; + public static final String Message = "message"; + } - public static final String Vendor = "vendor"; + public static class INVENTORYSHIPMENTDELETEPAYLOAD { + public static final String TYPE_NAME = "InventoryShipmentDeletePayload"; - public static class DISCOUNTEDTOTALSET_INPUT_ARGUMENT { - public static final String WithCodeDiscounts = "withCodeDiscounts"; - } + public static final String Id = "id"; - public static class TAXLINES_INPUT_ARGUMENT { - public static final String First = "first"; - } + public static final String UserErrors = "userErrors"; } - public static class LINEITEMCONNECTION { - public static final String TYPE_NAME = "LineItemConnection"; + public static class INVENTORYSHIPMENTDELETEUSERERROR { + public static final String TYPE_NAME = "InventoryShipmentDeleteUserError"; - public static final String Edges = "edges"; + public static final String Code = "code"; - public static final String Nodes = "nodes"; + public static final String Field = "field"; - public static final String PageInfo = "pageInfo"; + public static final String Message = "message"; } - public static class LINEITEMEDGE { - public static final String TYPE_NAME = "LineItemEdge"; + public static class INVENTORYSHIPMENTEDGE { + public static final String TYPE_NAME = "InventoryShipmentEdge"; public static final String Cursor = "cursor"; public static final String Node = "node"; } - public static class LINEITEMGROUP { - public static final String TYPE_NAME = "LineItemGroup"; + public static class INVENTORYSHIPMENTLINEITEM { + public static final String TYPE_NAME = "InventoryShipmentLineItem"; - public static final String CustomAttributes = "customAttributes"; + public static final String AcceptedQuantity = "acceptedQuantity"; public static final String Id = "id"; - public static final String Quantity = "quantity"; + public static final String InventoryItem = "inventoryItem"; - public static final String Title = "title"; + public static final String Quantity = "quantity"; - public static final String VariantId = "variantId"; + public static final String RejectedQuantity = "rejectedQuantity"; - public static final String VariantSku = "variantSku"; + public static final String UnreceivedQuantity = "unreceivedQuantity"; } - public static class LINEITEMSELLINGPLAN { - public static final String TYPE_NAME = "LineItemSellingPlan"; + public static class INVENTORYSHIPMENTLINEITEMCONNECTION { + public static final String TYPE_NAME = "InventoryShipmentLineItemConnection"; - public static final String Name = "name"; + public static final String Edges = "edges"; - public static final String SellingPlanId = "sellingPlanId"; + public static final String Nodes = "nodes"; + + public static final String PageInfo = "pageInfo"; } - public static class LINK { - public static final String TYPE_NAME = "Link"; + public static class INVENTORYSHIPMENTLINEITEMEDGE { + public static final String TYPE_NAME = "InventoryShipmentLineItemEdge"; - public static final String Label = "label"; + public static final String Cursor = "cursor"; - public static final String Translations = "translations"; + public static final String Node = "node"; + } - public static final String Url = "url"; + public static class INVENTORYSHIPMENTMARKINTRANSITPAYLOAD { + public static final String TYPE_NAME = "InventoryShipmentMarkInTransitPayload"; - public static class TRANSLATIONS_INPUT_ARGUMENT { - public static final String Locale = "locale"; + public static final String InventoryShipment = "inventoryShipment"; - public static final String MarketId = "marketId"; - } + public static final String UserErrors = "userErrors"; } - public static class LINKEDMETAFIELD { - public static final String TYPE_NAME = "LinkedMetafield"; + public static class INVENTORYSHIPMENTMARKINTRANSITUSERERROR { + public static final String TYPE_NAME = "InventoryShipmentMarkInTransitUserError"; - public static final String Key = "key"; + public static final String Code = "code"; - public static final String Namespace = "namespace"; + public static final String Field = "field"; + + public static final String Message = "message"; } - public static class LOCALE { - public static final String TYPE_NAME = "Locale"; + public static class INVENTORYSHIPMENTRECEIVEPAYLOAD { + public static final String TYPE_NAME = "InventoryShipmentReceivePayload"; - public static final String IsoCode = "isoCode"; + public static final String InventoryShipment = "inventoryShipment"; - public static final String Name = "name"; + public static final String UserErrors = "userErrors"; } - public static class LOCALIZATIONEXTENSION { - public static final String TYPE_NAME = "LocalizationExtension"; + public static class INVENTORYSHIPMENTRECEIVEUSERERROR { + public static final String TYPE_NAME = "InventoryShipmentReceiveUserError"; - public static final String CountryCode = "countryCode"; + public static final String Code = "code"; - public static final String Key = "key"; + public static final String Field = "field"; - public static final String Purpose = "purpose"; + public static final String Message = "message"; + } - public static final String Title = "title"; + public static class INVENTORYSHIPMENTREMOVEITEMSPAYLOAD { + public static final String TYPE_NAME = "InventoryShipmentRemoveItemsPayload"; - public static final String Value = "value"; + public static final String InventoryShipment = "inventoryShipment"; + + public static final String UserErrors = "userErrors"; } - public static class LOCALIZATIONEXTENSIONCONNECTION { - public static final String TYPE_NAME = "LocalizationExtensionConnection"; + public static class INVENTORYSHIPMENTREMOVEITEMSUSERERROR { + public static final String TYPE_NAME = "InventoryShipmentRemoveItemsUserError"; - public static final String Edges = "edges"; + public static final String Code = "code"; - public static final String Nodes = "nodes"; + public static final String Field = "field"; - public static final String PageInfo = "pageInfo"; + public static final String Message = "message"; } - public static class LOCALIZATIONEXTENSIONEDGE { - public static final String TYPE_NAME = "LocalizationExtensionEdge"; + public static class INVENTORYSHIPMENTSETTRACKINGPAYLOAD { + public static final String TYPE_NAME = "InventoryShipmentSetTrackingPayload"; - public static final String Cursor = "cursor"; + public static final String InventoryShipment = "inventoryShipment"; - public static final String Node = "node"; + public static final String UserErrors = "userErrors"; } - public static class LOCALIZEDFIELD { - public static final String TYPE_NAME = "LocalizedField"; - - public static final String CountryCode = "countryCode"; - - public static final String Key = "key"; + public static class INVENTORYSHIPMENTSETTRACKINGUSERERROR { + public static final String TYPE_NAME = "InventoryShipmentSetTrackingUserError"; - public static final String Purpose = "purpose"; + public static final String Code = "code"; - public static final String Title = "title"; + public static final String Field = "field"; - public static final String Value = "value"; + public static final String Message = "message"; } - public static class LOCALIZEDFIELDCONNECTION { - public static final String TYPE_NAME = "LocalizedFieldConnection"; + public static class INVENTORYSHIPMENTTRACKING { + public static final String TYPE_NAME = "InventoryShipmentTracking"; - public static final String Edges = "edges"; + public static final String ArrivesAt = "arrivesAt"; - public static final String Nodes = "nodes"; + public static final String Company = "company"; - public static final String PageInfo = "pageInfo"; + public static final String TrackingNumber = "trackingNumber"; + + public static final String TrackingUrl = "trackingUrl"; } - public static class LOCALIZEDFIELDEDGE { - public static final String TYPE_NAME = "LocalizedFieldEdge"; + public static class INVENTORYSHIPMENTUPDATEITEMQUANTITIESPAYLOAD { + public static final String TYPE_NAME = "InventoryShipmentUpdateItemQuantitiesPayload"; - public static final String Cursor = "cursor"; + public static final String Shipment = "shipment"; - public static final String Node = "node"; + public static final String UpdatedLineItems = "updatedLineItems"; + + public static final String UserErrors = "userErrors"; } - public static class LOCALPAYMENTMETHODSPAYMENTDETAILS { - public static final String TYPE_NAME = "LocalPaymentMethodsPaymentDetails"; + public static class INVENTORYSHIPMENTUPDATEITEMQUANTITIESUSERERROR { + public static final String TYPE_NAME = "InventoryShipmentUpdateItemQuantitiesUserError"; - public static final String PaymentDescriptor = "paymentDescriptor"; + public static final String Code = "code"; - public static final String PaymentMethodName = "paymentMethodName"; - } + public static final String Field = "field"; - public static class LOCATION { - public static final String TYPE_NAME = "Location"; + public static final String Message = "message"; + } - public static final String Activatable = "activatable"; + public static class INVENTORYTRANSFER { + public static final String TYPE_NAME = "InventoryTransfer"; - public static final String Address = "address"; + public static final String DateCreated = "dateCreated"; - public static final String AddressVerified = "addressVerified"; + public static final String Destination = "destination"; - public static final String CreatedAt = "createdAt"; + public static final String Events = "events"; - public static final String Deactivatable = "deactivatable"; + public static final String HasTimelineComment = "hasTimelineComment"; - public static final String DeactivatedAt = "deactivatedAt"; + public static final String Id = "id"; - public static final String Deletable = "deletable"; + public static final String LineItems = "lineItems"; - public static final String FulfillmentService = "fulfillmentService"; + public static final String LineItemsCount = "lineItemsCount"; - public static final String FulfillsOnlineOrders = "fulfillsOnlineOrders"; + public static final String Metafield = "metafield"; - public static final String HasActiveInventory = "hasActiveInventory"; + public static final String MetafieldDefinitions = "metafieldDefinitions"; - public static final String HasUnfulfilledOrders = "hasUnfulfilledOrders"; + public static final String Metafields = "metafields"; - public static final String Id = "id"; + public static final String Name = "name"; - public static final String InventoryLevel = "inventoryLevel"; + public static final String Note = "note"; - public static final String InventoryLevels = "inventoryLevels"; + public static final String Origin = "origin"; - public static final String IsActive = "isActive"; + public static final String ReceivedQuantity = "receivedQuantity"; - public static final String IsFulfillmentService = "isFulfillmentService"; + public static final String ReferenceName = "referenceName"; - public static final String IsPrimary = "isPrimary"; + public static final String Shipments = "shipments"; - public static final String LegacyResourceId = "legacyResourceId"; + public static final String Status = "status"; - public static final String LocalPickupSettingsV2 = "localPickupSettingsV2"; + public static final String Tags = "tags"; - public static final String Metafield = "metafield"; + public static final String TotalQuantity = "totalQuantity"; - public static final String MetafieldDefinitions = "metafieldDefinitions"; + public static class EVENTS_INPUT_ARGUMENT { + public static final String First = "first"; - public static final String Metafields = "metafields"; + public static final String After = "after"; - public static final String Name = "name"; + public static final String Last = "last"; - public static final String ShipsInventory = "shipsInventory"; + public static final String Before = "before"; - public static final String SuggestedAddresses = "suggestedAddresses"; + public static final String Reverse = "reverse"; - public static final String UpdatedAt = "updatedAt"; + public static final String SortKey = "sortKey"; - public static class INVENTORYLEVEL_INPUT_ARGUMENT { - public static final String InventoryItemId = "inventoryItemId"; + public static final String Query = "query"; } - public static class INVENTORYLEVELS_INPUT_ARGUMENT { + public static class LINEITEMS_INPUT_ARGUMENT { + public static final String First = "first"; + + public static final String After = "after"; + + public static final String Last = "last"; + + public static final String Before = "before"; + + public static final String Reverse = "reverse"; + + public static final String Query = "query"; + } + + public static class LINEITEMSCOUNT_INPUT_ARGUMENT { + public static final String Query = "query"; + + public static final String Limit = "limit"; + } + + public static class METAFIELD_INPUT_ARGUMENT { + public static final String Namespace = "namespace"; + + public static final String Key = "key"; + } + + public static class METAFIELDDEFINITIONS_INPUT_ARGUMENT { + public static final String Namespace = "namespace"; + + public static final String PinnedStatus = "pinnedStatus"; + + public static final String First = "first"; + + public static final String After = "after"; + + public static final String Last = "last"; + + public static final String Before = "before"; + + public static final String Reverse = "reverse"; + + public static final String SortKey = "sortKey"; + + public static final String Query = "query"; + } + + public static class METAFIELDS_INPUT_ARGUMENT { + public static final String Namespace = "namespace"; + + public static final String Keys = "keys"; + + public static final String First = "first"; + + public static final String After = "after"; + + public static final String Last = "last"; + + public static final String Before = "before"; + + public static final String Reverse = "reverse"; + } + + public static class SHIPMENTS_INPUT_ARGUMENT { + public static final String First = "first"; + + public static final String After = "after"; + + public static final String Last = "last"; + + public static final String Before = "before"; + + public static final String Reverse = "reverse"; + } + } + + public static class INVENTORYTRANSFERCANCELPAYLOAD { + public static final String TYPE_NAME = "InventoryTransferCancelPayload"; + + public static final String InventoryTransfer = "inventoryTransfer"; + + public static final String UserErrors = "userErrors"; + } + + public static class INVENTORYTRANSFERCANCELUSERERROR { + public static final String TYPE_NAME = "InventoryTransferCancelUserError"; + + public static final String Code = "code"; + + public static final String Field = "field"; + + public static final String Message = "message"; + } + + public static class INVENTORYTRANSFERCONNECTION { + public static final String TYPE_NAME = "InventoryTransferConnection"; + + public static final String Edges = "edges"; + + public static final String Nodes = "nodes"; + + public static final String PageInfo = "pageInfo"; + } + + public static class INVENTORYTRANSFERCREATEASREADYTOSHIPPAYLOAD { + public static final String TYPE_NAME = "InventoryTransferCreateAsReadyToShipPayload"; + + public static final String InventoryTransfer = "inventoryTransfer"; + + public static final String UserErrors = "userErrors"; + } + + public static class INVENTORYTRANSFERCREATEASREADYTOSHIPUSERERROR { + public static final String TYPE_NAME = "InventoryTransferCreateAsReadyToShipUserError"; + + public static final String Code = "code"; + + public static final String Field = "field"; + + public static final String Message = "message"; + } + + public static class INVENTORYTRANSFERCREATEPAYLOAD { + public static final String TYPE_NAME = "InventoryTransferCreatePayload"; + + public static final String InventoryTransfer = "inventoryTransfer"; + + public static final String UserErrors = "userErrors"; + } + + public static class INVENTORYTRANSFERCREATEUSERERROR { + public static final String TYPE_NAME = "InventoryTransferCreateUserError"; + + public static final String Code = "code"; + + public static final String Field = "field"; + + public static final String Message = "message"; + } + + public static class INVENTORYTRANSFERDELETEPAYLOAD { + public static final String TYPE_NAME = "InventoryTransferDeletePayload"; + + public static final String DeletedId = "deletedId"; + + public static final String UserErrors = "userErrors"; + } + + public static class INVENTORYTRANSFERDELETEUSERERROR { + public static final String TYPE_NAME = "InventoryTransferDeleteUserError"; + + public static final String Code = "code"; + + public static final String Field = "field"; + + public static final String Message = "message"; + } + + public static class INVENTORYTRANSFERDUPLICATEPAYLOAD { + public static final String TYPE_NAME = "InventoryTransferDuplicatePayload"; + + public static final String InventoryTransfer = "inventoryTransfer"; + + public static final String UserErrors = "userErrors"; + } + + public static class INVENTORYTRANSFERDUPLICATEUSERERROR { + public static final String TYPE_NAME = "InventoryTransferDuplicateUserError"; + + public static final String Code = "code"; + + public static final String Field = "field"; + + public static final String Message = "message"; + } + + public static class INVENTORYTRANSFEREDGE { + public static final String TYPE_NAME = "InventoryTransferEdge"; + + public static final String Cursor = "cursor"; + + public static final String Node = "node"; + } + + public static class INVENTORYTRANSFEREDITPAYLOAD { + public static final String TYPE_NAME = "InventoryTransferEditPayload"; + + public static final String InventoryTransfer = "inventoryTransfer"; + + public static final String UserErrors = "userErrors"; + } + + public static class INVENTORYTRANSFEREDITUSERERROR { + public static final String TYPE_NAME = "InventoryTransferEditUserError"; + + public static final String Code = "code"; + + public static final String Field = "field"; + + public static final String Message = "message"; + } + + public static class INVENTORYTRANSFERLINEITEM { + public static final String TYPE_NAME = "InventoryTransferLineItem"; + + public static final String Id = "id"; + + public static final String InventoryItem = "inventoryItem"; + + public static final String PickedForShipmentQuantity = "pickedForShipmentQuantity"; + + public static final String ProcessableQuantity = "processableQuantity"; + + public static final String ShippableQuantity = "shippableQuantity"; + + public static final String ShippedQuantity = "shippedQuantity"; + + public static final String Title = "title"; + + public static final String TotalQuantity = "totalQuantity"; + } + + public static class INVENTORYTRANSFERLINEITEMCONNECTION { + public static final String TYPE_NAME = "InventoryTransferLineItemConnection"; + + public static final String Edges = "edges"; + + public static final String Nodes = "nodes"; + + public static final String PageInfo = "pageInfo"; + } + + public static class INVENTORYTRANSFERLINEITEMEDGE { + public static final String TYPE_NAME = "InventoryTransferLineItemEdge"; + + public static final String Cursor = "cursor"; + + public static final String Node = "node"; + } + + public static class INVENTORYTRANSFERLINEITEMUPDATE { + public static final String TYPE_NAME = "InventoryTransferLineItemUpdate"; + + public static final String DeltaQuantity = "deltaQuantity"; + + public static final String InventoryItemId = "inventoryItemId"; + + public static final String NewQuantity = "newQuantity"; + } + + public static class INVENTORYTRANSFERMARKASREADYTOSHIPPAYLOAD { + public static final String TYPE_NAME = "InventoryTransferMarkAsReadyToShipPayload"; + + public static final String InventoryTransfer = "inventoryTransfer"; + + public static final String UserErrors = "userErrors"; + } + + public static class INVENTORYTRANSFERMARKASREADYTOSHIPUSERERROR { + public static final String TYPE_NAME = "InventoryTransferMarkAsReadyToShipUserError"; + + public static final String Code = "code"; + + public static final String Field = "field"; + + public static final String Message = "message"; + } + + public static class INVENTORYTRANSFERREMOVEITEMSPAYLOAD { + public static final String TYPE_NAME = "InventoryTransferRemoveItemsPayload"; + + public static final String InventoryTransfer = "inventoryTransfer"; + + public static final String RemovedQuantities = "removedQuantities"; + + public static final String UserErrors = "userErrors"; + } + + public static class INVENTORYTRANSFERREMOVEITEMSUSERERROR { + public static final String TYPE_NAME = "InventoryTransferRemoveItemsUserError"; + + public static final String Code = "code"; + + public static final String Field = "field"; + + public static final String Message = "message"; + } + + public static class INVENTORYTRANSFERSETITEMSPAYLOAD { + public static final String TYPE_NAME = "InventoryTransferSetItemsPayload"; + + public static final String InventoryTransfer = "inventoryTransfer"; + + public static final String UpdatedLineItems = "updatedLineItems"; + + public static final String UserErrors = "userErrors"; + } + + public static class INVENTORYTRANSFERSETITEMSUSERERROR { + public static final String TYPE_NAME = "InventoryTransferSetItemsUserError"; + + public static final String Code = "code"; + + public static final String Field = "field"; + + public static final String Message = "message"; + } + + public static class INVOICERETURNOUTCOME { + public static final String TYPE_NAME = "InvoiceReturnOutcome"; + + public static final String Amount = "amount"; + } + + public static class JOB { + public static final String TYPE_NAME = "Job"; + + public static final String Done = "done"; + + public static final String Id = "id"; + + public static final String Query = "query"; + } + + public static class LIMITEDPENDINGORDERCOUNT { + public static final String TYPE_NAME = "LimitedPendingOrderCount"; + + public static final String AtMax = "atMax"; + + public static final String Count = "count"; + } + + public static class LINEITEM { + public static final String TYPE_NAME = "LineItem"; + + public static final String CanRestock = "canRestock"; + + public static final String Contract = "contract"; + + public static final String CurrentQuantity = "currentQuantity"; + + public static final String CustomAttributes = "customAttributes"; + + public static final String DiscountAllocations = "discountAllocations"; + + public static final String DiscountedTotal = "discountedTotal"; + + public static final String DiscountedTotalSet = "discountedTotalSet"; + + public static final String DiscountedUnitPrice = "discountedUnitPrice"; + + public static final String DiscountedUnitPriceAfterAllDiscountsSet = "discountedUnitPriceAfterAllDiscountsSet"; + + public static final String DiscountedUnitPriceSet = "discountedUnitPriceSet"; + + public static final String Duties = "duties"; + + public static final String FulfillableQuantity = "fulfillableQuantity"; + + public static final String FulfillmentService = "fulfillmentService"; + + public static final String FulfillmentStatus = "fulfillmentStatus"; + + public static final String Id = "id"; + + public static final String Image = "image"; + + public static final String IsGiftCard = "isGiftCard"; + + public static final String LineItemGroup = "lineItemGroup"; + + public static final String MerchantEditable = "merchantEditable"; + + public static final String Name = "name"; + + public static final String NonFulfillableQuantity = "nonFulfillableQuantity"; + + public static final String OriginalTotal = "originalTotal"; + + public static final String OriginalTotalSet = "originalTotalSet"; + + public static final String OriginalUnitPrice = "originalUnitPrice"; + + public static final String OriginalUnitPriceSet = "originalUnitPriceSet"; + + public static final String Product = "product"; + + public static final String Quantity = "quantity"; + + public static final String RefundableQuantity = "refundableQuantity"; + + public static final String RequiresShipping = "requiresShipping"; + + public static final String Restockable = "restockable"; + + public static final String SellingPlan = "sellingPlan"; + + public static final String Sku = "sku"; + + public static final String StaffMember = "staffMember"; + + public static final String SuggestedReturnReasonDefinitions = "suggestedReturnReasonDefinitions"; + + public static final String TaxLines = "taxLines"; + + public static final String Taxable = "taxable"; + + public static final String Title = "title"; + + public static final String TotalDiscount = "totalDiscount"; + + public static final String TotalDiscountSet = "totalDiscountSet"; + + public static final String UnfulfilledDiscountedTotal = "unfulfilledDiscountedTotal"; + + public static final String UnfulfilledDiscountedTotalSet = "unfulfilledDiscountedTotalSet"; + + public static final String UnfulfilledOriginalTotal = "unfulfilledOriginalTotal"; + + public static final String UnfulfilledOriginalTotalSet = "unfulfilledOriginalTotalSet"; + + public static final String UnfulfilledQuantity = "unfulfilledQuantity"; + + public static final String Variant = "variant"; + + public static final String VariantTitle = "variantTitle"; + + public static final String Vendor = "vendor"; + + public static class DISCOUNTEDTOTALSET_INPUT_ARGUMENT { + public static final String WithCodeDiscounts = "withCodeDiscounts"; + } + + public static class SUGGESTEDRETURNREASONDEFINITIONS_INPUT_ARGUMENT { + public static final String First = "first"; + + public static final String After = "after"; + + public static final String Last = "last"; + + public static final String Before = "before"; + + public static final String Reverse = "reverse"; + } + + public static class TAXLINES_INPUT_ARGUMENT { + public static final String First = "first"; + } + } + + public static class LINEITEMCONNECTION { + public static final String TYPE_NAME = "LineItemConnection"; + + public static final String Edges = "edges"; + + public static final String Nodes = "nodes"; + + public static final String PageInfo = "pageInfo"; + } + + public static class LINEITEMEDGE { + public static final String TYPE_NAME = "LineItemEdge"; + + public static final String Cursor = "cursor"; + + public static final String Node = "node"; + } + + public static class LINEITEMGROUP { + public static final String TYPE_NAME = "LineItemGroup"; + + public static final String CustomAttributes = "customAttributes"; + + public static final String Id = "id"; + + public static final String ProductId = "productId"; + + public static final String Quantity = "quantity"; + + public static final String Title = "title"; + + public static final String VariantId = "variantId"; + + public static final String VariantSku = "variantSku"; + } + + public static class LINEITEMSELLINGPLAN { + public static final String TYPE_NAME = "LineItemSellingPlan"; + + public static final String Name = "name"; + + public static final String SellingPlanId = "sellingPlanId"; + } + + public static class LINK { + public static final String TYPE_NAME = "Link"; + + public static final String Label = "label"; + + public static final String Translations = "translations"; + + public static final String Url = "url"; + + public static class TRANSLATIONS_INPUT_ARGUMENT { + public static final String Locale = "locale"; + + public static final String MarketId = "marketId"; + } + } + + public static class LINKEDMETAFIELD { + public static final String TYPE_NAME = "LinkedMetafield"; + + public static final String Key = "key"; + + public static final String Namespace = "namespace"; + } + + public static class LOCALE { + public static final String TYPE_NAME = "Locale"; + + public static final String IsoCode = "isoCode"; + + public static final String Name = "name"; + } + + public static class LOCALIZATIONEXTENSION { + public static final String TYPE_NAME = "LocalizationExtension"; + + public static final String CountryCode = "countryCode"; + + public static final String Key = "key"; + + public static final String Purpose = "purpose"; + + public static final String Title = "title"; + + public static final String Value = "value"; + } + + public static class LOCALIZATIONEXTENSIONCONNECTION { + public static final String TYPE_NAME = "LocalizationExtensionConnection"; + + public static final String Edges = "edges"; + + public static final String Nodes = "nodes"; + + public static final String PageInfo = "pageInfo"; + } + + public static class LOCALIZATIONEXTENSIONEDGE { + public static final String TYPE_NAME = "LocalizationExtensionEdge"; + + public static final String Cursor = "cursor"; + + public static final String Node = "node"; + } + + public static class LOCALIZEDFIELD { + public static final String TYPE_NAME = "LocalizedField"; + + public static final String CountryCode = "countryCode"; + + public static final String Key = "key"; + + public static final String Purpose = "purpose"; + + public static final String Title = "title"; + + public static final String Value = "value"; + } + + public static class LOCALIZEDFIELDCONNECTION { + public static final String TYPE_NAME = "LocalizedFieldConnection"; + + public static final String Edges = "edges"; + + public static final String Nodes = "nodes"; + + public static final String PageInfo = "pageInfo"; + } + + public static class LOCALIZEDFIELDEDGE { + public static final String TYPE_NAME = "LocalizedFieldEdge"; + + public static final String Cursor = "cursor"; + + public static final String Node = "node"; + } + + public static class LOCALPAYMENTMETHODSPAYMENTDETAILS { + public static final String TYPE_NAME = "LocalPaymentMethodsPaymentDetails"; + + public static final String PaymentDescriptor = "paymentDescriptor"; + + public static final String PaymentMethodName = "paymentMethodName"; + } + + public static class LOCATION { + public static final String TYPE_NAME = "Location"; + + public static final String Activatable = "activatable"; + + public static final String Address = "address"; + + public static final String AddressVerified = "addressVerified"; + + public static final String CreatedAt = "createdAt"; + + public static final String Deactivatable = "deactivatable"; + + public static final String DeactivatedAt = "deactivatedAt"; + + public static final String Deletable = "deletable"; + + public static final String FulfillmentService = "fulfillmentService"; + + public static final String FulfillsOnlineOrders = "fulfillsOnlineOrders"; + + public static final String HasActiveInventory = "hasActiveInventory"; + + public static final String HasUnfulfilledOrders = "hasUnfulfilledOrders"; + + public static final String Id = "id"; + + public static final String InventoryLevel = "inventoryLevel"; + + public static final String InventoryLevels = "inventoryLevels"; + + public static final String IsActive = "isActive"; + + public static final String IsFulfillmentService = "isFulfillmentService"; + + public static final String IsPrimary = "isPrimary"; + + public static final String LegacyResourceId = "legacyResourceId"; + + public static final String LocalPickupSettingsV2 = "localPickupSettingsV2"; + + public static final String Metafield = "metafield"; + + public static final String MetafieldDefinitions = "metafieldDefinitions"; + + public static final String Metafields = "metafields"; + + public static final String Name = "name"; + + public static final String ShipsInventory = "shipsInventory"; + + public static final String SuggestedAddresses = "suggestedAddresses"; + + public static final String UpdatedAt = "updatedAt"; + + public static class INVENTORYLEVEL_INPUT_ARGUMENT { + public static final String InventoryItemId = "inventoryItemId"; + } + + public static class INVENTORYLEVELS_INPUT_ARGUMENT { public static final String First = "first"; public static final String After = "after"; @@ -12039,6 +13011,18 @@ public static class LOCATIONS_INPUT_ARGUMENT { } } + public static class LOCATIONSNAPSHOT { + public static final String TYPE_NAME = "LocationSnapshot"; + + public static final String Address = "address"; + + public static final String Location = "location"; + + public static final String Name = "name"; + + public static final String SnapshottedAt = "snapshottedAt"; + } + public static class LOCATIONSUGGESTEDADDRESS { public static final String TYPE_NAME = "LocationSuggestedAddress"; @@ -12318,6 +13302,8 @@ public static class MARKETSCOUNT_INPUT_ARGUMENT { public static final String Status = "status"; public static final String Query = "query"; + + public static final String Limit = "limit"; } } @@ -12375,6 +13361,8 @@ public static class MARKETCURRENCYSETTINGS { public static final String BaseCurrency = "baseCurrency"; public static final String LocalCurrencies = "localCurrencies"; + + public static final String RoundingEnabled = "roundingEnabled"; } public static class MARKETCURRENCYSETTINGSUPDATEPAYLOAD { @@ -12580,6 +13568,8 @@ public static class MARKETINGENGAGEMENT { public static final String AdSpend = "adSpend"; + public static final String AllConversions = "allConversions"; + public static final String ChannelHandle = "channelHandle"; public static final String ClicksCount = "clicksCount"; @@ -12604,6 +13594,8 @@ public static class MARKETINGENGAGEMENT { public static final String Orders = "orders"; + public static final String PrimaryConversions = "primaryConversions"; + public static final String ReturningCustomers = "returningCustomers"; public static final String Sales = "sales"; @@ -12859,6 +13851,42 @@ public static class MARKETSREGIONSENTITLEMENT { public static final String Enabled = "enabled"; } + public static class MARKETSRESOLVEDVALUES { + public static final String TYPE_NAME = "MarketsResolvedValues"; + + public static final String Catalogs = "catalogs"; + + public static final String CurrencyCode = "currencyCode"; + + public static final String PriceInclusivity = "priceInclusivity"; + + public static final String WebPresences = "webPresences"; + + public static class CATALOGS_INPUT_ARGUMENT { + public static final String First = "first"; + + public static final String After = "after"; + + public static final String Last = "last"; + + public static final String Before = "before"; + + public static final String Reverse = "reverse"; + } + + public static class WEBPRESENCES_INPUT_ARGUMENT { + public static final String First = "first"; + + public static final String After = "after"; + + public static final String Last = "last"; + + public static final String Before = "before"; + + public static final String Reverse = "reverse"; + } + } + public static class MARKETSRETAILENTITLEMENT { public static final String TYPE_NAME = "MarketsRetailEntitlement"; @@ -13048,6 +14076,8 @@ public static class MEDIAIMAGE { public static final String Status = "status"; + public static final String Translations = "translations"; + public static final String UpdatedAt = "updatedAt"; public static class METAFIELD_INPUT_ARGUMENT { @@ -13071,6 +14101,12 @@ public static class METAFIELDS_INPUT_ARGUMENT { public static final String Reverse = "reverse"; } + + public static class TRANSLATIONS_INPUT_ARGUMENT { + public static final String Locale = "locale"; + + public static final String MarketId = "marketId"; + } } public static class MEDIAIMAGEORIGINALSOURCE { @@ -13286,19 +14322,9 @@ public static class METAFIELDACCESS { public static final String CustomerAccount = "customerAccount"; - public static final String Grants = "grants"; - public static final String Storefront = "storefront"; } - public static class METAFIELDACCESSGRANT { - public static final String TYPE_NAME = "MetafieldAccessGrant"; - - public static final String Access = "access"; - - public static final String Grantee = "grantee"; - } - public static class METAFIELDCAPABILITIES { public static final String TYPE_NAME = "MetafieldCapabilities"; @@ -13704,6 +14730,8 @@ public static class METAOBJECT { public static final String Capabilities = "capabilities"; + public static final String CreatedAt = "createdAt"; + public static final String CreatedBy = "createdBy"; public static final String CreatedByApp = "createdByApp"; @@ -13754,6 +14782,8 @@ public static class METAOBJECTACCESS { public static final String Admin = "admin"; + public static final String CustomerAccount = "customerAccount"; + public static final String Storefront = "storefront"; } @@ -13991,9 +15021,19 @@ public static class REFERENCES_INPUT_ARGUMENT { } } + public static class METAOBJECTFIELDCAPABILITYADMINFILTERABLE { + public static final String TYPE_NAME = "MetaobjectFieldCapabilityAdminFilterable"; + + public static final String Eligible = "eligible"; + + public static final String Enabled = "enabled"; + } + public static class METAOBJECTFIELDDEFINITION { public static final String TYPE_NAME = "MetaobjectFieldDefinition"; + public static final String Capabilities = "capabilities"; + public static final String Description = "description"; public static final String Key = "key"; @@ -14007,6 +15047,12 @@ public static class METAOBJECTFIELDDEFINITION { public static final String Validations = "validations"; } + public static class METAOBJECTFIELDDEFINITIONCAPABILITIES { + public static final String TYPE_NAME = "MetaobjectFieldDefinitionCapabilities"; + + public static final String AdminFilterable = "adminFilterable"; + } + public static class METAOBJECTTHUMBNAIL { public static final String TYPE_NAME = "MetaobjectThumbnail"; @@ -14184,6 +15230,8 @@ public static class MUTATION { public static final String AppSubscriptionTrialExtend = "appSubscriptionTrialExtend"; + public static final String AppUninstall = "appUninstall"; + public static final String AppUsageRecordCreate = "appUsageRecordCreate"; public static final String ArticleCreate = "articleCreate"; @@ -14236,6 +15284,8 @@ public static class MUTATION { public static final String CollectionDelete = "collectionDelete"; + public static final String CollectionDuplicate = "collectionDuplicate"; + public static final String CollectionPublish = "collectionPublish"; public static final String CollectionRemoveProducts = "collectionRemoveProducts"; @@ -14480,8 +15530,6 @@ public static class MUTATION { public static final String DraftOrderCreateFromOrder = "draftOrderCreateFromOrder"; - public static final String DraftOrderCreateMerchantCheckout = "draftOrderCreateMerchantCheckout"; - public static final String DraftOrderDelete = "draftOrderDelete"; public static final String DraftOrderDuplicate = "draftOrderDuplicate"; @@ -14556,6 +15604,8 @@ public static class MUTATION { public static final String FulfillmentOrderSubmitFulfillmentRequest = "fulfillmentOrderSubmitFulfillmentRequest"; + public static final String FulfillmentOrdersReroute = "fulfillmentOrdersReroute"; + public static final String FulfillmentOrdersSetFulfillmentDeadline = "fulfillmentOrdersSetFulfillmentDeadline"; public static final String FulfillmentServiceCreate = "fulfillmentServiceCreate"; @@ -14600,6 +15650,42 @@ public static class MUTATION { public static final String InventorySetScheduledChanges = "inventorySetScheduledChanges"; + public static final String InventoryShipmentAddItems = "inventoryShipmentAddItems"; + + public static final String InventoryShipmentCreate = "inventoryShipmentCreate"; + + public static final String InventoryShipmentCreateInTransit = "inventoryShipmentCreateInTransit"; + + public static final String InventoryShipmentDelete = "inventoryShipmentDelete"; + + public static final String InventoryShipmentMarkInTransit = "inventoryShipmentMarkInTransit"; + + public static final String InventoryShipmentReceive = "inventoryShipmentReceive"; + + public static final String InventoryShipmentRemoveItems = "inventoryShipmentRemoveItems"; + + public static final String InventoryShipmentSetTracking = "inventoryShipmentSetTracking"; + + public static final String InventoryShipmentUpdateItemQuantities = "inventoryShipmentUpdateItemQuantities"; + + public static final String InventoryTransferCancel = "inventoryTransferCancel"; + + public static final String InventoryTransferCreate = "inventoryTransferCreate"; + + public static final String InventoryTransferCreateAsReadyToShip = "inventoryTransferCreateAsReadyToShip"; + + public static final String InventoryTransferDelete = "inventoryTransferDelete"; + + public static final String InventoryTransferDuplicate = "inventoryTransferDuplicate"; + + public static final String InventoryTransferEdit = "inventoryTransferEdit"; + + public static final String InventoryTransferMarkAsReadyToShip = "inventoryTransferMarkAsReadyToShip"; + + public static final String InventoryTransferRemoveItems = "inventoryTransferRemoveItems"; + + public static final String InventoryTransferSetItems = "inventoryTransferSetItems"; + public static final String LocationActivate = "locationActivate"; public static final String LocationAdd = "locationAdd"; @@ -14710,6 +15796,10 @@ public static class MUTATION { public static final String OrderCreateManualPayment = "orderCreateManualPayment"; + public static final String OrderCustomerRemove = "orderCustomerRemove"; + + public static final String OrderCustomerSet = "orderCustomerSet"; + public static final String OrderDelete = "orderDelete"; public static final String OrderEditAddCustomItem = "orderEditAddCustomItem"; @@ -14876,6 +15966,8 @@ public static class MUTATION { public static final String RefundCreate = "refundCreate"; + public static final String RemoveFromReturn = "removeFromReturn"; + public static final String ReturnApproveRequest = "returnApproveRequest"; public static final String ReturnCancel = "returnCancel"; @@ -14888,6 +15980,8 @@ public static class MUTATION { public static final String ReturnLineItemRemoveFromReturn = "returnLineItemRemoveFromReturn"; + public static final String ReturnProcess = "returnProcess"; + public static final String ReturnRefund = "returnRefund"; public static final String ReturnReopen = "returnReopen"; @@ -15044,10 +16138,14 @@ public static class MUTATION { public static final String TaxAppConfigure = "taxAppConfigure"; + public static final String TaxSummaryCreate = "taxSummaryCreate"; + public static final String ThemeCreate = "themeCreate"; public static final String ThemeDelete = "themeDelete"; + public static final String ThemeDuplicate = "themeDuplicate"; + public static final String ThemeFilesCopy = "themeFilesCopy"; public static final String ThemeFilesDelete = "themeFilesDelete"; @@ -15234,6 +16332,8 @@ public static class BULKOPERATIONRUNMUTATION_INPUT_ARGUMENT { public static class BULKOPERATIONRUNQUERY_INPUT_ARGUMENT { public static final String Query = "query"; + + public static final String GroupObjects = "groupObjects"; } public static class BULKPRODUCTRESOURCEFEEDBACKCREATE_INPUT_ARGUMENT { @@ -15253,7 +16353,7 @@ public static class CARRIERSERVICEUPDATE_INPUT_ARGUMENT { } public static class CARTTRANSFORMCREATE_INPUT_ARGUMENT { - public static final String FunctionId = "functionId"; + public static final String FunctionHandle = "functionHandle"; public static final String BlockOnFailure = "blockOnFailure"; @@ -15314,6 +16414,10 @@ public static class COLLECTIONDELETE_INPUT_ARGUMENT { public static final String Input = "input"; } + public static class COLLECTIONDUPLICATE_INPUT_ARGUMENT { + public static final String Input = "input"; + } + public static class COLLECTIONPUBLISH_INPUT_ARGUMENT { public static final String Input = "input"; } @@ -15768,8 +16872,6 @@ public static class DELIVERYPROFILEUPDATE_INPUT_ARGUMENT { public static final String Id = "id"; public static final String Profile = "profile"; - - public static final String LeaveLegacyModeProfiles = "leaveLegacyModeProfiles"; } public static class DELIVERYPROMISEPARTICIPANTSUPDATE_INPUT_ARGUMENT { @@ -16004,10 +17106,6 @@ public static class DRAFTORDERCREATEFROMORDER_INPUT_ARGUMENT { public static final String OrderId = "orderId"; } - public static class DRAFTORDERCREATEMERCHANTCHECKOUT_INPUT_ARGUMENT { - public static final String Id = "id"; - } - public static class DRAFTORDERDELETE_INPUT_ARGUMENT { public static final String Input = "input"; } @@ -16083,7 +17181,7 @@ public static class FULFILLMENTCANCEL_INPUT_ARGUMENT { } public static class FULFILLMENTCONSTRAINTRULECREATE_INPUT_ARGUMENT { - public static final String FunctionId = "functionId"; + public static final String FunctionHandle = "functionHandle"; public static final String DeliveryMethodTypes = "deliveryMethodTypes"; @@ -16126,6 +17224,8 @@ public static class FULFILLMENTORDERACCEPTFULFILLMENTREQUEST_INPUT_ARGUMENT { public static final String Id = "id"; public static final String Message = "message"; + + public static final String EstimatedShippedAt = "estimatedShippedAt"; } public static class FULFILLMENTORDERCANCEL_INPUT_ARGUMENT { @@ -16214,6 +17314,14 @@ public static class FULFILLMENTORDERSUBMITFULFILLMENTREQUEST_INPUT_ARGUMENT { public static final String FulfillmentOrderLineItems = "fulfillmentOrderLineItems"; } + public static class FULFILLMENTORDERSREROUTE_INPUT_ARGUMENT { + public static final String FulfillmentOrderIds = "fulfillmentOrderIds"; + + public static final String IncludedLocationIds = "includedLocationIds"; + + public static final String ExcludedLocationIds = "excludedLocationIds"; + } + public static class FULFILLMENTORDERSSETFULFILLMENTDEADLINE_INPUT_ARGUMENT { public static final String FulfillmentOrderIds = "fulfillmentOrderIds"; @@ -16352,6 +17460,96 @@ public static class INVENTORYSETSCHEDULEDCHANGES_INPUT_ARGUMENT { public static final String Input = "input"; } + public static class INVENTORYSHIPMENTADDITEMS_INPUT_ARGUMENT { + public static final String Id = "id"; + + public static final String LineItems = "lineItems"; + } + + public static class INVENTORYSHIPMENTCREATE_INPUT_ARGUMENT { + public static final String Input = "input"; + } + + public static class INVENTORYSHIPMENTCREATEINTRANSIT_INPUT_ARGUMENT { + public static final String Input = "input"; + } + + public static class INVENTORYSHIPMENTDELETE_INPUT_ARGUMENT { + public static final String Id = "id"; + } + + public static class INVENTORYSHIPMENTMARKINTRANSIT_INPUT_ARGUMENT { + public static final String Id = "id"; + + public static final String DateShipped = "dateShipped"; + } + + public static class INVENTORYSHIPMENTRECEIVE_INPUT_ARGUMENT { + public static final String Id = "id"; + + public static final String LineItems = "lineItems"; + + public static final String DateReceived = "dateReceived"; + + public static final String BulkReceiveAction = "bulkReceiveAction"; + } + + public static class INVENTORYSHIPMENTREMOVEITEMS_INPUT_ARGUMENT { + public static final String Id = "id"; + + public static final String LineItems = "lineItems"; + } + + public static class INVENTORYSHIPMENTSETTRACKING_INPUT_ARGUMENT { + public static final String Id = "id"; + + public static final String Tracking = "tracking"; + } + + public static class INVENTORYSHIPMENTUPDATEITEMQUANTITIES_INPUT_ARGUMENT { + public static final String Id = "id"; + + public static final String Items = "items"; + } + + public static class INVENTORYTRANSFERCANCEL_INPUT_ARGUMENT { + public static final String Id = "id"; + } + + public static class INVENTORYTRANSFERCREATE_INPUT_ARGUMENT { + public static final String Input = "input"; + } + + public static class INVENTORYTRANSFERCREATEASREADYTOSHIP_INPUT_ARGUMENT { + public static final String Input = "input"; + } + + public static class INVENTORYTRANSFERDELETE_INPUT_ARGUMENT { + public static final String Id = "id"; + } + + public static class INVENTORYTRANSFERDUPLICATE_INPUT_ARGUMENT { + public static final String Id = "id"; + } + + public static class INVENTORYTRANSFEREDIT_INPUT_ARGUMENT { + public static final String Id = "id"; + + public static final String Input = "input"; + } + + public static class INVENTORYTRANSFERMARKASREADYTOSHIP_INPUT_ARGUMENT { + public static final String Id = "id"; + } + + public static class INVENTORYTRANSFERREMOVEITEMS_INPUT_ARGUMENT { + public static final String Input = "input"; + } + + public static class INVENTORYTRANSFERSETITEMS_INPUT_ARGUMENT { + public static final String Input = "input"; + } + public static class LOCATIONACTIVATE_INPUT_ARGUMENT { public static final String LocationId = "locationId"; } @@ -16609,7 +17807,7 @@ public static class MOBILEPLATFORMAPPLICATIONUPDATE_INPUT_ARGUMENT { public static class ORDERCANCEL_INPUT_ARGUMENT { public static final String OrderId = "orderId"; - public static final String Refund = "refund"; + public static final String RefundMethod = "refundMethod"; public static final String Restock = "restock"; @@ -16654,6 +17852,18 @@ public static class ORDERCREATEMANUALPAYMENT_INPUT_ARGUMENT { public static final String Amount = "amount"; public static final String PaymentMethodName = "paymentMethodName"; + + public static final String ProcessedAt = "processedAt"; + } + + public static class ORDERCUSTOMERREMOVE_INPUT_ARGUMENT { + public static final String OrderId = "orderId"; + } + + public static class ORDERCUSTOMERSET_INPUT_ARGUMENT { + public static final String OrderId = "orderId"; + + public static final String CustomerId = "customerId"; } public static class ORDERDELETE_INPUT_ARGUMENT { @@ -17162,6 +18372,14 @@ public static class REFUNDCREATE_INPUT_ARGUMENT { public static final String Input = "input"; } + public static class REMOVEFROMRETURN_INPUT_ARGUMENT { + public static final String ReturnId = "returnId"; + + public static final String ReturnLineItems = "returnLineItems"; + + public static final String ExchangeLineItems = "exchangeLineItems"; + } + public static class RETURNAPPROVEREQUEST_INPUT_ARGUMENT { public static final String Input = "input"; } @@ -17188,6 +18406,10 @@ public static class RETURNLINEITEMREMOVEFROMRETURN_INPUT_ARGUMENT { public static final String ReturnLineItems = "returnLineItems"; } + public static class RETURNPROCESS_INPUT_ARGUMENT { + public static final String Input = "input"; + } + public static class RETURNREFUND_INPUT_ARGUMENT { public static final String ReturnRefundInput = "returnRefundInput"; } @@ -17604,6 +18826,14 @@ public static class TAXAPPCONFIGURE_INPUT_ARGUMENT { public static final String Ready = "ready"; } + public static class TAXSUMMARYCREATE_INPUT_ARGUMENT { + public static final String OrderId = "orderId"; + + public static final String StartTime = "startTime"; + + public static final String EndTime = "endTime"; + } + public static class THEMECREATE_INPUT_ARGUMENT { public static final String Source = "source"; @@ -17616,6 +18846,12 @@ public static class THEMEDELETE_INPUT_ARGUMENT { public static final String Id = "id"; } + public static class THEMEDUPLICATE_INPUT_ARGUMENT { + public static final String Id = "id"; + + public static final String Name = "name"; + } + public static class THEMEFILESCOPY_INPUT_ARGUMENT { public static final String ThemeId = "themeId"; @@ -18094,6 +19330,8 @@ public static class ORDER { public static final String Note = "note"; + public static final String Number = "number"; + public static final String OriginalTotalAdditionalFeesSet = "originalTotalAdditionalFeesSet"; public static final String OriginalTotalDutiesSet = "originalTotalDutiesSet"; @@ -18116,6 +19354,8 @@ public static class ORDER { public static final String ProcessedAt = "processedAt"; + public static final String ProductNetwork = "productNetwork"; + public static final String Publication = "publication"; public static final String PurchasingEntity = "purchasingEntity"; @@ -18306,6 +19546,8 @@ public static class FULFILLMENTORDERS_INPUT_ARGUMENT { public static class FULFILLMENTS_INPUT_ARGUMENT { public static final String First = "first"; + + public static final String Query = "query"; } public static class LINEITEMS_INPUT_ARGUMENT { @@ -18442,6 +19684,12 @@ public static class SHIPPINGLINES_INPUT_ARGUMENT { public static final String Reverse = "reverse"; } + public static class STATUSPAGEURL_INPUT_ARGUMENT { + public static final String Audience = "audience"; + + public static final String NotificationUsage = "notificationUsage"; + } + public static class SUGGESTEDREFUND_INPUT_ARGUMENT { public static final String ShippingAmount = "shippingAmount"; @@ -18452,6 +19700,8 @@ public static class SUGGESTEDREFUND_INPUT_ARGUMENT { public static final String RefundDuties = "refundDuties"; public static final String SuggestFullRefund = "suggestFullRefund"; + + public static final String RefundMethodAllocation = "refundMethodAllocation"; } public static class TRANSACTIONS_INPUT_ARGUMENT { @@ -18641,6 +19891,42 @@ public static class ORDERCREATEUSERERROR { public static final String Message = "message"; } + public static class ORDERCUSTOMERREMOVEPAYLOAD { + public static final String TYPE_NAME = "OrderCustomerRemovePayload"; + + public static final String Order = "order"; + + public static final String UserErrors = "userErrors"; + } + + public static class ORDERCUSTOMERREMOVEUSERERROR { + public static final String TYPE_NAME = "OrderCustomerRemoveUserError"; + + public static final String Code = "code"; + + public static final String Field = "field"; + + public static final String Message = "message"; + } + + public static class ORDERCUSTOMERSETPAYLOAD { + public static final String TYPE_NAME = "OrderCustomerSetPayload"; + + public static final String Order = "order"; + + public static final String UserErrors = "userErrors"; + } + + public static class ORDERCUSTOMERSETUSERERROR { + public static final String TYPE_NAME = "OrderCustomerSetUserError"; + + public static final String Code = "code"; + + public static final String Field = "field"; + + public static final String Message = "message"; + } + public static class ORDERDELETEPAYLOAD { public static final String TYPE_NAME = "OrderDeletePayload"; @@ -18684,6 +19970,8 @@ public static class ORDEREDITADDCUSTOMITEMPAYLOAD { public static final String CalculatedOrder = "calculatedOrder"; + public static final String OrderEditSession = "orderEditSession"; + public static final String UserErrors = "userErrors"; } @@ -18696,6 +19984,8 @@ public static class ORDEREDITADDLINEITEMDISCOUNTPAYLOAD { public static final String CalculatedOrder = "calculatedOrder"; + public static final String OrderEditSession = "orderEditSession"; + public static final String UserErrors = "userErrors"; } @@ -18706,6 +19996,8 @@ public static class ORDEREDITADDSHIPPINGLINEPAYLOAD { public static final String CalculatedShippingLine = "calculatedShippingLine"; + public static final String OrderEditSession = "orderEditSession"; + public static final String UserErrors = "userErrors"; } @@ -18726,6 +20018,8 @@ public static class ORDEREDITADDVARIANTPAYLOAD { public static final String CalculatedOrder = "calculatedOrder"; + public static final String OrderEditSession = "orderEditSession"; + public static final String UserErrors = "userErrors"; } @@ -18762,6 +20056,8 @@ public static class ORDEREDITBEGINPAYLOAD { public static final String CalculatedOrder = "calculatedOrder"; + public static final String OrderEditSession = "orderEditSession"; + public static final String UserErrors = "userErrors"; } @@ -18770,6 +20066,8 @@ public static class ORDEREDITCOMMITPAYLOAD { public static final String Order = "order"; + public static final String SuccessMessages = "successMessages"; + public static final String UserErrors = "userErrors"; } @@ -18778,6 +20076,8 @@ public static class ORDEREDITREMOVEDISCOUNTPAYLOAD { public static final String CalculatedOrder = "calculatedOrder"; + public static final String OrderEditSession = "orderEditSession"; + public static final String UserErrors = "userErrors"; } @@ -18798,6 +20098,8 @@ public static class ORDEREDITREMOVELINEITEMDISCOUNTPAYLOAD { public static final String CalculatedOrder = "calculatedOrder"; + public static final String OrderEditSession = "orderEditSession"; + public static final String UserErrors = "userErrors"; } @@ -18806,6 +20108,8 @@ public static class ORDEREDITREMOVESHIPPINGLINEPAYLOAD { public static final String CalculatedOrder = "calculatedOrder"; + public static final String OrderEditSession = "orderEditSession"; + public static final String UserErrors = "userErrors"; } @@ -18819,6 +20123,12 @@ public static class ORDEREDITREMOVESHIPPINGLINEUSERERROR { public static final String Message = "message"; } + public static class ORDEREDITSESSION { + public static final String TYPE_NAME = "OrderEditSession"; + + public static final String Id = "id"; + } + public static class ORDEREDITSETQUANTITYPAYLOAD { public static final String TYPE_NAME = "OrderEditSetQuantityPayload"; @@ -18826,6 +20136,8 @@ public static class ORDEREDITSETQUANTITYPAYLOAD { public static final String CalculatedOrder = "calculatedOrder"; + public static final String OrderEditSession = "orderEditSession"; + public static final String UserErrors = "userErrors"; } @@ -18834,6 +20146,8 @@ public static class ORDEREDITUPDATEDISCOUNTPAYLOAD { public static final String CalculatedOrder = "calculatedOrder"; + public static final String OrderEditSession = "orderEditSession"; + public static final String UserErrors = "userErrors"; } @@ -18852,6 +20166,8 @@ public static class ORDEREDITUPDATESHIPPINGLINEPAYLOAD { public static final String CalculatedOrder = "calculatedOrder"; + public static final String OrderEditSession = "orderEditSession"; + public static final String UserErrors = "userErrors"; } @@ -19043,6 +20359,12 @@ public static class ORDERSTAGEDCHANGEINCREMENTITEM { public static final String LineItem = "lineItem"; } + public static class ORDERSTAGEDCHANGEREMOVEDISCOUNT { + public static final String TYPE_NAME = "OrderStagedChangeRemoveDiscount"; + + public static final String DiscountApplication = "discountApplication"; + } + public static class ORDERSTAGEDCHANGEREMOVESHIPPINGLINE { public static final String TYPE_NAME = "OrderStagedChangeRemoveShippingLine"; @@ -19068,6 +20390,10 @@ public static class ORDERTRANSACTION { public static final String CreatedAt = "createdAt"; + public static final String CurrencyExchangeAdjustment = "currencyExchangeAdjustment"; + + public static final String Device = "device"; + public static final String ErrorCode = "errorCode"; public static final String Fees = "fees"; @@ -19080,6 +20406,8 @@ public static class ORDERTRANSACTION { public static final String Kind = "kind"; + public static final String Location = "location"; + public static final String ManualPaymentGateway = "manualPaymentGateway"; public static final String ManuallyCapturable = "manuallyCapturable"; @@ -19467,6 +20795,32 @@ public static class PAYMENTMANDATE { public static final String PaymentInstrument = "paymentInstrument"; } + public static class PAYMENTMANDATERESOURCE { + public static final String TYPE_NAME = "PaymentMandateResource"; + + public static final String ResourceId = "resourceId"; + + public static final String ResourceType = "resourceType"; + } + + public static class PAYMENTMANDATERESOURCECONNECTION { + public static final String TYPE_NAME = "PaymentMandateResourceConnection"; + + public static final String Edges = "edges"; + + public static final String Nodes = "nodes"; + + public static final String PageInfo = "pageInfo"; + } + + public static class PAYMENTMANDATERESOURCEEDGE { + public static final String TYPE_NAME = "PaymentMandateResourceEdge"; + + public static final String Cursor = "cursor"; + + public static final String Node = "node"; + } + public static class PAYMENTREMINDERSENDPAYLOAD { public static final String TYPE_NAME = "PaymentReminderSendPayload"; @@ -19490,8 +20844,12 @@ public static class PAYMENTSCHEDULE { public static final String Amount = "amount"; + public static final String BalanceDue = "balanceDue"; + public static final String CompletedAt = "completedAt"; + public static final String Due = "due"; + public static final String DueAt = "dueAt"; public static final String Id = "id"; @@ -19499,6 +20857,8 @@ public static class PAYMENTSCHEDULE { public static final String IssuedAt = "issuedAt"; public static final String PaymentTerms = "paymentTerms"; + + public static final String TotalBalance = "totalBalance"; } public static class PAYMENTSCHEDULECONNECTION { @@ -19530,6 +20890,8 @@ public static class PAYMENTTERMS { public static final String DraftOrder = "draftOrder"; + public static final String Due = "due"; + public static final String DueInDays = "dueInDays"; public static final String Id = "id"; @@ -19629,6 +20991,36 @@ public static class PAYMENTTERMSUPDATEUSERERROR { public static final String Message = "message"; } + public static class PAYPALWALLETPAYMENTDETAILS { + public static final String TYPE_NAME = "PaypalWalletPaymentDetails"; + + public static final String PaymentMethodName = "paymentMethodName"; + } + + public static class PICKUPINSTORELOCATION { + public static final String TYPE_NAME = "PickupInStoreLocation"; + + public static final String Code = "code"; + + public static final String DistanceFromBuyer = "distanceFromBuyer"; + + public static final String Handle = "handle"; + + public static final String Instructions = "instructions"; + + public static final String LocationId = "locationId"; + + public static final String Source = "source"; + + public static final String Title = "title"; + } + + public static class POINTOFSALEDEVICE { + public static final String TYPE_NAME = "PointOfSaleDevice"; + + public static final String Id = "id"; + } + public static class PRICELIST { public static final String TYPE_NAME = "PriceList"; @@ -20258,6 +21650,8 @@ public static class PRODUCT { public static final String BundleComponents = "bundleComponents"; + public static final String BundleConsolidatedOptions = "bundleConsolidatedOptions"; + public static final String Category = "category"; public static final String Collections = "collections"; @@ -20332,6 +21726,12 @@ public static class PRODUCT { public static final String ProductCategory = "productCategory"; + public static final String ProductComponents = "productComponents"; + + public static final String ProductComponentsCount = "productComponentsCount"; + + public static final String ProductParents = "productParents"; + public static final String ProductPublications = "productPublications"; public static final String ProductType = "productType"; @@ -20536,6 +21936,32 @@ public static class OPTIONS_INPUT_ARGUMENT { public static final String First = "first"; } + public static class PRODUCTCOMPONENTS_INPUT_ARGUMENT { + public static final String First = "first"; + + public static final String After = "after"; + + public static final String Last = "last"; + + public static final String Before = "before"; + + public static final String Reverse = "reverse"; + } + + public static class PRODUCTPARENTS_INPUT_ARGUMENT { + public static final String First = "first"; + + public static final String After = "after"; + + public static final String Last = "last"; + + public static final String Before = "before"; + + public static final String Reverse = "reverse"; + + public static final String Query = "query"; + } + public static class PRODUCTPUBLICATIONS_INPUT_ARGUMENT { public static final String First = "first"; @@ -20825,6 +22251,62 @@ public static class PRODUCTCOMPAREATPRICERANGE { public static final String MinVariantCompareAtPrice = "minVariantCompareAtPrice"; } + public static class PRODUCTCOMPONENTTYPE { + public static final String TYPE_NAME = "ProductComponentType"; + + public static final String ComponentVariants = "componentVariants"; + + public static final String ComponentVariantsCount = "componentVariantsCount"; + + public static final String NonComponentVariants = "nonComponentVariants"; + + public static final String NonComponentVariantsCount = "nonComponentVariantsCount"; + + public static final String Product = "product"; + + public static class COMPONENTVARIANTS_INPUT_ARGUMENT { + public static final String First = "first"; + + public static final String After = "after"; + + public static final String Last = "last"; + + public static final String Before = "before"; + + public static final String Reverse = "reverse"; + } + + public static class NONCOMPONENTVARIANTS_INPUT_ARGUMENT { + public static final String First = "first"; + + public static final String After = "after"; + + public static final String Last = "last"; + + public static final String Before = "before"; + + public static final String Reverse = "reverse"; + } + } + + public static class PRODUCTCOMPONENTTYPECONNECTION { + public static final String TYPE_NAME = "ProductComponentTypeConnection"; + + public static final String Edges = "edges"; + + public static final String Nodes = "nodes"; + + public static final String PageInfo = "pageInfo"; + } + + public static class PRODUCTCOMPONENTTYPEEDGE { + public static final String TYPE_NAME = "ProductComponentTypeEdge"; + + public static final String Cursor = "cursor"; + + public static final String Node = "node"; + } + public static class PRODUCTCONNECTION { public static final String TYPE_NAME = "ProductConnection"; @@ -21412,6 +22894,8 @@ public static class PRODUCTVARIANT { public static final String Product = "product"; + public static final String ProductParents = "productParents"; + public static final String ProductVariantComponents = "productVariantComponents"; public static final String RequiresComponents = "requiresComponents"; @@ -21426,6 +22910,8 @@ public static class PRODUCTVARIANT { public static final String SellingPlanGroupsCount = "sellingPlanGroupsCount"; + public static final String ShowUnitPrice = "showUnitPrice"; + public static final String Sku = "sku"; public static final String StorefrontId = "storefrontId"; @@ -21438,6 +22924,8 @@ public static class PRODUCTVARIANT { public static final String Translations = "translations"; + public static final String UnitPrice = "unitPrice"; + public static final String UnitPriceMeasurement = "unitPriceMeasurement"; public static final String UpdatedAt = "updatedAt"; @@ -21530,6 +23018,20 @@ public static class PRESENTMENTPRICES_INPUT_ARGUMENT { public static final String Reverse = "reverse"; } + public static class PRODUCTPARENTS_INPUT_ARGUMENT { + public static final String First = "first"; + + public static final String After = "after"; + + public static final String Last = "last"; + + public static final String Before = "before"; + + public static final String Reverse = "reverse"; + + public static final String Query = "query"; + } + public static class PRODUCTVARIANTCOMPONENTS_INPUT_ARGUMENT { public static final String First = "first"; @@ -21620,6 +23122,8 @@ public static class PRODUCTVARIANTCONTEXTUALPRICING { public static final String QuantityRule = "quantityRule"; + public static final String UnitPrice = "unitPrice"; + public static class QUANTITYPRICEBREAKS_INPUT_ARGUMENT { public static final String First = "first"; @@ -21808,6 +23312,8 @@ public static class PUBLICATION { public static final String IncludedProducts = "includedProducts"; + public static final String IncludedProductsCount = "includedProductsCount"; + public static final String Name = "name"; public static final String Operation = "operation"; @@ -21856,6 +23362,20 @@ public static class INCLUDEDPRODUCTS_INPUT_ARGUMENT { public static final String Before = "before"; public static final String Reverse = "reverse"; + + public static final String SortKey = "sortKey"; + + public static final String Query = "query"; + + public static final String SavedSearchId = "savedSearchId"; + } + + public static class INCLUDEDPRODUCTSCOUNT_INPUT_ARGUMENT { + public static final String Query = "query"; + + public static final String SavedSearchId = "savedSearchId"; + + public static final String Limit = "limit"; } public static class PRODUCTPUBLICATIONSV3_INPUT_ARGUMENT { @@ -21880,6 +23400,12 @@ public static class PRODUCTS_INPUT_ARGUMENT { public static final String Before = "before"; public static final String Reverse = "reverse"; + + public static final String SortKey = "sortKey"; + + public static final String Query = "query"; + + public static final String SavedSearchId = "savedSearchId"; } } @@ -22212,6 +23738,10 @@ public static class QUERY { public static final String BlogsCount = "blogsCount"; + public static final String BulkOperation = "bulkOperation"; + + public static final String BulkOperations = "bulkOperations"; + public static final String BusinessEntities = "businessEntities"; public static final String BusinessEntity = "businessEntity"; @@ -22360,12 +23890,16 @@ public static class QUERY { public static final String DraftOrder = "draftOrder"; + public static final String DraftOrderAvailableDeliveryOptions = "draftOrderAvailableDeliveryOptions"; + public static final String DraftOrderSavedSearches = "draftOrderSavedSearches"; public static final String DraftOrderTag = "draftOrderTag"; public static final String DraftOrders = "draftOrders"; + public static final String DraftOrdersCount = "draftOrdersCount"; + public static final String Event = "event"; public static final String Events = "events"; @@ -22406,6 +23940,12 @@ public static class QUERY { public static final String InventoryProperties = "inventoryProperties"; + public static final String InventoryShipment = "inventoryShipment"; + + public static final String InventoryTransfer = "inventoryTransfer"; + + public static final String InventoryTransfers = "inventoryTransfers"; + public static final String Job = "job"; public static final String Location = "location"; @@ -22442,6 +23982,8 @@ public static class QUERY { public static final String Markets = "markets"; + public static final String MarketsResolvedValues = "marketsResolvedValues"; + public static final String Menu = "menu"; public static final String Menus = "menus"; @@ -22478,6 +24020,8 @@ public static class QUERY { public static final String OrderByIdentifier = "orderByIdentifier"; + public static final String OrderEditSession = "orderEditSession"; + public static final String OrderPaymentStatus = "orderPaymentStatus"; public static final String OrderSavedSearches = "orderSavedSearches"; @@ -22500,6 +24044,8 @@ public static class QUERY { public static final String PendingOrdersCount = "pendingOrdersCount"; + public static final String PointOfSaleDevice = "pointOfSaleDevice"; + public static final String PriceList = "priceList"; public static final String PriceLists = "priceLists"; @@ -22560,6 +24106,8 @@ public static class QUERY { public static final String ReturnCalculate = "returnCalculate"; + public static final String ReturnReasonDefinitions = "returnReasonDefinitions"; + public static final String ReturnableFulfillment = "returnableFulfillment"; public static final String ReturnableFulfillments = "returnableFulfillments"; @@ -22598,12 +24146,18 @@ public static class QUERY { public static final String ShopLocales = "shopLocales"; + public static final String ShopPayPaymentRequestReceipt = "shopPayPaymentRequestReceipt"; + + public static final String ShopPayPaymentRequestReceipts = "shopPayPaymentRequestReceipts"; + public static final String ShopifyFunction = "shopifyFunction"; public static final String ShopifyFunctions = "shopifyFunctions"; public static final String ShopifyPaymentsAccount = "shopifyPaymentsAccount"; + public static final String ShopifyqlQuery = "shopifyqlQuery"; + public static final String StaffMember = "staffMember"; public static final String StaffMembers = "staffMembers"; @@ -22884,6 +24438,28 @@ public static class BLOGS_INPUT_ARGUMENT { public static class BLOGSCOUNT_INPUT_ARGUMENT { public static final String Query = "query"; + + public static final String Limit = "limit"; + } + + public static class BULKOPERATION_INPUT_ARGUMENT { + public static final String Id = "id"; + } + + public static class BULKOPERATIONS_INPUT_ARGUMENT { + public static final String First = "first"; + + public static final String After = "after"; + + public static final String Last = "last"; + + public static final String Before = "before"; + + public static final String Reverse = "reverse"; + + public static final String SortKey = "sortKey"; + + public static final String Query = "query"; } public static class BUSINESSENTITY_INPUT_ARGUMENT { @@ -22968,6 +24544,8 @@ public static class CATALOGSCOUNT_INPUT_ARGUMENT { public static final String Type = "type"; public static final String Query = "query"; + + public static final String Limit = "limit"; } public static class CHANNEL_INPUT_ARGUMENT { @@ -23094,6 +24672,8 @@ public static class COLLECTIONSCOUNT_INPUT_ARGUMENT { public static final String Query = "query"; public static final String SavedSearchId = "savedSearchId"; + + public static final String Limit = "limit"; } public static class COMMENT_INPUT_ARGUMENT { @@ -23132,6 +24712,10 @@ public static class COMPANIES_INPUT_ARGUMENT { public static final String Query = "query"; } + public static class COMPANIESCOUNT_INPUT_ARGUMENT { + public static final String Limit = "limit"; + } + public static class COMPANY_INPUT_ARGUMENT { public static final String Id = "id"; } @@ -23288,6 +24872,8 @@ public static class CUSTOMERS_INPUT_ARGUMENT { public static class CUSTOMERSCOUNT_INPUT_ARGUMENT { public static final String Query = "query"; + + public static final String Limit = "limit"; } public static class DELETIONEVENTS_INPUT_ARGUMENT { @@ -23366,6 +24952,8 @@ public static class DELIVERYPROMISEPROVIDER_INPUT_ARGUMENT { public static class DISCOUNTCODESCOUNT_INPUT_ARGUMENT { public static final String Query = "query"; + + public static final String Limit = "limit"; } public static class DISCOUNTNODE_INPUT_ARGUMENT { @@ -23394,6 +24982,8 @@ public static class DISCOUNTNODESCOUNT_INPUT_ARGUMENT { public static final String Query = "query"; public static final String SavedSearchId = "savedSearchId"; + + public static final String Limit = "limit"; } public static class DISCOUNTREDEEMCODEBULKCREATION_INPUT_ARGUMENT { @@ -23446,6 +25036,18 @@ public static class DRAFTORDER_INPUT_ARGUMENT { public static final String Id = "id"; } + public static class DRAFTORDERAVAILABLEDELIVERYOPTIONS_INPUT_ARGUMENT { + public static final String Input = "input"; + + public static final String Search = "search"; + + public static final String LocalPickupFrom = "localPickupFrom"; + + public static final String LocalPickupCount = "localPickupCount"; + + public static final String SessionToken = "sessionToken"; + } + public static class DRAFTORDERSAVEDSEARCHES_INPUT_ARGUMENT { public static final String First = "first"; @@ -23480,6 +25082,14 @@ public static class DRAFTORDERS_INPUT_ARGUMENT { public static final String SavedSearchId = "savedSearchId"; } + public static class DRAFTORDERSCOUNT_INPUT_ARGUMENT { + public static final String Query = "query"; + + public static final String SavedSearchId = "savedSearchId"; + + public static final String Limit = "limit"; + } + public static class EVENT_INPUT_ARGUMENT { public static final String Id = "id"; } @@ -23590,6 +25200,8 @@ public static class GIFTCARDSCOUNT_INPUT_ARGUMENT { public static final String Query = "query"; public static final String SavedSearchId = "savedSearchId"; + + public static final String Limit = "limit"; } public static class INVENTORYITEM_INPUT_ARGUMENT { @@ -23614,6 +25226,32 @@ public static class INVENTORYLEVEL_INPUT_ARGUMENT { public static final String Id = "id"; } + public static class INVENTORYSHIPMENT_INPUT_ARGUMENT { + public static final String Id = "id"; + } + + public static class INVENTORYTRANSFER_INPUT_ARGUMENT { + public static final String Id = "id"; + } + + public static class INVENTORYTRANSFERS_INPUT_ARGUMENT { + public static final String First = "first"; + + public static final String After = "after"; + + public static final String Last = "last"; + + public static final String Before = "before"; + + public static final String Reverse = "reverse"; + + public static final String SortKey = "sortKey"; + + public static final String Query = "query"; + + public static final String SavedSearchId = "savedSearchId"; + } + public static class JOB_INPUT_ARGUMENT { public static final String Id = "id"; } @@ -23660,6 +25298,8 @@ public static class LOCATIONSAVAILABLEFORDELIVERYPROFILESCONNECTION_INPUT_ARGUME public static class LOCATIONSCOUNT_INPUT_ARGUMENT { public static final String Query = "query"; + + public static final String Limit = "limit"; } public static class MANUALHOLDSFULFILLMENTORDERS_INPUT_ARGUMENT { @@ -23782,6 +25422,10 @@ public static class MARKETS_INPUT_ARGUMENT { public static final String Query = "query"; } + public static class MARKETSRESOLVEDVALUES_INPUT_ARGUMENT { + public static final String BuyerSignal = "buyerSignal"; + } + public static class MENU_INPUT_ARGUMENT { public static final String Id = "id"; } @@ -23912,6 +25556,10 @@ public static class ORDERBYIDENTIFIER_INPUT_ARGUMENT { public static final String Identifier = "identifier"; } + public static class ORDEREDITSESSION_INPUT_ARGUMENT { + public static final String Id = "id"; + } + public static class ORDERPAYMENTSTATUS_INPUT_ARGUMENT { public static final String PaymentReferenceId = "paymentReferenceId"; @@ -23978,6 +25626,10 @@ public static class PAGES_INPUT_ARGUMENT { public static final String SavedSearchId = "savedSearchId"; } + public static class PAGESCOUNT_INPUT_ARGUMENT { + public static final String Limit = "limit"; + } + public static class PAYMENTCUSTOMIZATION_INPUT_ARGUMENT { public static final String Id = "id"; } @@ -24000,6 +25652,10 @@ public static class PAYMENTTERMSTEMPLATES_INPUT_ARGUMENT { public static final String PaymentTermsType = "paymentTermsType"; } + public static class POINTOFSALEDEVICE_INPUT_ARGUMENT { + public static final String Id = "id"; + } + public static class PRICELIST_INPUT_ARGUMENT { public static final String Id = "id"; } @@ -24122,6 +25778,8 @@ public static class PRODUCTVARIANTS_INPUT_ARGUMENT { public static class PRODUCTVARIANTSCOUNT_INPUT_ARGUMENT { public static final String Query = "query"; + + public static final String Limit = "limit"; } public static class PRODUCTVENDORS_INPUT_ARGUMENT { @@ -24182,10 +25840,14 @@ public static class PUBLICATIONS_INPUT_ARGUMENT { public static class PUBLICATIONSCOUNT_INPUT_ARGUMENT { public static final String CatalogType = "catalogType"; + + public static final String Limit = "limit"; } public static class PUBLISHEDPRODUCTSCOUNT_INPUT_ARGUMENT { public static final String PublicationId = "publicationId"; + + public static final String Limit = "limit"; } public static class REFUND_INPUT_ARGUMENT { @@ -24200,6 +25862,26 @@ public static class RETURNCALCULATE_INPUT_ARGUMENT { public static final String Input = "input"; } + public static class RETURNREASONDEFINITIONS_INPUT_ARGUMENT { + public static final String Ids = "ids"; + + public static final String Handles = "handles"; + + public static final String First = "first"; + + public static final String After = "after"; + + public static final String Last = "last"; + + public static final String Before = "before"; + + public static final String Reverse = "reverse"; + + public static final String SortKey = "sortKey"; + + public static final String Query = "query"; + } + public static class RETURNABLEFULFILLMENT_INPUT_ARGUMENT { public static final String Id = "id"; } @@ -24312,6 +25994,10 @@ public static class SEGMENTS_INPUT_ARGUMENT { public static final String Query = "query"; } + public static class SEGMENTSCOUNT_INPUT_ARGUMENT { + public static final String Limit = "limit"; + } + public static class SELLINGPLANGROUP_INPUT_ARGUMENT { public static final String Id = "id"; } @@ -24336,6 +26022,26 @@ public static class SHOPLOCALES_INPUT_ARGUMENT { public static final String Published = "published"; } + public static class SHOPPAYPAYMENTREQUESTRECEIPT_INPUT_ARGUMENT { + public static final String Token = "token"; + } + + public static class SHOPPAYPAYMENTREQUESTRECEIPTS_INPUT_ARGUMENT { + public static final String First = "first"; + + public static final String After = "after"; + + public static final String Last = "last"; + + public static final String Before = "before"; + + public static final String Reverse = "reverse"; + + public static final String SortKey = "sortKey"; + + public static final String Query = "query"; + } + public static class SHOPIFYFUNCTION_INPUT_ARGUMENT { public static final String Id = "id"; } @@ -24356,6 +26062,10 @@ public static class SHOPIFYFUNCTIONS_INPUT_ARGUMENT { public static final String Reverse = "reverse"; } + public static class SHOPIFYQLQUERY_INPUT_ARGUMENT { + public static final String Query = "query"; + } + public static class STAFFMEMBER_INPUT_ARGUMENT { public static final String Id = "id"; } @@ -24588,6 +26298,8 @@ public static class URLREDIRECTSCOUNT_INPUT_ARGUMENT { public static final String Query = "query"; public static final String SavedSearchId = "savedSearchId"; + + public static final String Limit = "limit"; } public static class VALIDATION_INPUT_ARGUMENT { @@ -24643,7 +26355,7 @@ public static class WEBHOOKSUBSCRIPTIONS_INPUT_ARGUMENT { public static final String Query = "query"; - public static final String CallbackUrl = "callbackUrl"; + public static final String Uri = "uri"; public static final String Format = "format"; @@ -24652,6 +26364,8 @@ public static class WEBHOOKSUBSCRIPTIONS_INPUT_ARGUMENT { public static class WEBHOOKSUBSCRIPTIONSCOUNT_INPUT_ARGUMENT { public static final String Query = "query"; + + public static final String Limit = "limit"; } } @@ -24672,6 +26386,8 @@ public static class REFUND { public static final String OrderAdjustments = "orderAdjustments"; + public static final String ProcessedAt = "processedAt"; + public static final String RefundLineItems = "refundLineItems"; public static final String RefundShippingLines = "refundShippingLines"; @@ -24849,6 +26565,16 @@ public static class REFUNDLINEITEMEDGE { public static final String Node = "node"; } + public static class REFUNDRETURNOUTCOME { + public static final String TYPE_NAME = "RefundReturnOutcome"; + + public static final String Amount = "amount"; + + public static final String SuggestedRefundMethods = "suggestedRefundMethods"; + + public static final String SuggestedTransactions = "suggestedTransactions"; + } + public static class REFUNDSHIPPINGLINE { public static final String TYPE_NAME = "RefundShippingLine"; @@ -24899,6 +26625,22 @@ public static class REGIONS_INPUT_ARGUMENT { } } + public static class REMOVEFROMRETURNPAYLOAD { + public static final String TYPE_NAME = "RemoveFromReturnPayload"; + + public static final String Return = "return"; + + public static final String UserErrors = "userErrors"; + } + + public static class RESOLVEDPRICEINCLUSIVITY { + public static final String TYPE_NAME = "ResolvedPriceInclusivity"; + + public static final String DutiesIncluded = "dutiesIncluded"; + + public static final String TaxesIncluded = "taxesIncluded"; + } + public static class RESOURCEALERT { public static final String TYPE_NAME = "ResourceAlert"; @@ -25020,6 +26762,10 @@ public static class RESTRICTEDFORRESOURCE { public static class RETURN { public static final String TYPE_NAME = "Return"; + public static final String ClosedAt = "closedAt"; + + public static final String CreatedAt = "createdAt"; + public static final String Decline = "decline"; public static final String ExchangeLineItems = "exchangeLineItems"; @@ -25032,21 +26778,31 @@ public static class RETURN { public static final String Refunds = "refunds"; + public static final String RequestApprovedAt = "requestApprovedAt"; + public static final String ReturnLineItems = "returnLineItems"; public static final String ReturnShippingFees = "returnShippingFees"; public static final String ReverseFulfillmentOrders = "reverseFulfillmentOrders"; + public static final String StaffMember = "staffMember"; + public static final String Status = "status"; + public static final String SuggestedFinancialOutcome = "suggestedFinancialOutcome"; + public static final String SuggestedRefund = "suggestedRefund"; public static final String TotalQuantity = "totalQuantity"; + public static final String Transactions = "transactions"; + public static class EXCHANGELINEITEMS_INPUT_ARGUMENT { public static final String IncludeRemovedItems = "includeRemovedItems"; + public static final String ProcessingStatus = "processingStatus"; + public static final String First = "first"; public static final String After = "after"; @@ -25071,6 +26827,8 @@ public static class REFUNDS_INPUT_ARGUMENT { } public static class RETURNLINEITEMS_INPUT_ARGUMENT { + public static final String ProcessingStatus = "processingStatus"; + public static final String First = "first"; public static final String After = "after"; @@ -25094,6 +26852,20 @@ public static class REVERSEFULFILLMENTORDERS_INPUT_ARGUMENT { public static final String Reverse = "reverse"; } + public static class SUGGESTEDFINANCIALOUTCOME_INPUT_ARGUMENT { + public static final String ReturnLineItems = "returnLineItems"; + + public static final String ExchangeLineItems = "exchangeLineItems"; + + public static final String RefundShipping = "refundShipping"; + + public static final String TipLineId = "tipLineId"; + + public static final String RefundDuties = "refundDuties"; + + public static final String RefundMethodAllocation = "refundMethodAllocation"; + } + public static class SUGGESTEDREFUND_INPUT_ARGUMENT { public static final String ReturnRefundLineItems = "returnRefundLineItems"; @@ -25101,6 +26873,18 @@ public static class SUGGESTEDREFUND_INPUT_ARGUMENT { public static final String RefundDuties = "refundDuties"; } + + public static class TRANSACTIONS_INPUT_ARGUMENT { + public static final String First = "first"; + + public static final String After = "after"; + + public static final String Last = "last"; + + public static final String Before = "before"; + + public static final String Reverse = "reverse"; + } } public static class RETURNABLEFULFILLMENT { @@ -25274,6 +27058,10 @@ public static class RETURNLINEITEM { public static final String Id = "id"; + public static final String ProcessableQuantity = "processableQuantity"; + + public static final String ProcessedQuantity = "processedQuantity"; + public static final String Quantity = "quantity"; public static final String RefundableQuantity = "refundableQuantity"; @@ -25284,10 +27072,14 @@ public static class RETURNLINEITEM { public static final String ReturnReason = "returnReason"; + public static final String ReturnReasonDefinition = "returnReasonDefinition"; + public static final String ReturnReasonNote = "returnReasonNote"; public static final String TotalWeight = "totalWeight"; + public static final String UnprocessedQuantity = "unprocessedQuantity"; + public static final String WithCodeDiscountedTotalPriceSet = "withCodeDiscountedTotalPriceSet"; } @@ -25317,6 +27109,44 @@ public static class RETURNLINEITEMTYPEEDGE { public static final String Node = "node"; } + public static class RETURNPROCESSPAYLOAD { + public static final String TYPE_NAME = "ReturnProcessPayload"; + + public static final String Return = "return"; + + public static final String UserErrors = "userErrors"; + } + + public static class RETURNREASONDEFINITION { + public static final String TYPE_NAME = "ReturnReasonDefinition"; + + public static final String Deleted = "deleted"; + + public static final String Handle = "handle"; + + public static final String Id = "id"; + + public static final String Name = "name"; + } + + public static class RETURNREASONDEFINITIONCONNECTION { + public static final String TYPE_NAME = "ReturnReasonDefinitionConnection"; + + public static final String Edges = "edges"; + + public static final String Nodes = "nodes"; + + public static final String PageInfo = "pageInfo"; + } + + public static class RETURNREASONDEFINITIONEDGE { + public static final String TYPE_NAME = "ReturnReasonDefinitionEdge"; + + public static final String Cursor = "cursor"; + + public static final String Node = "node"; + } + public static class RETURNREFUNDPAYLOAD { public static final String TYPE_NAME = "ReturnRefundPayload"; @@ -25536,6 +27366,8 @@ public static class REVERSEFULFILLMENTORDERDISPOSEPAYLOAD { public static class REVERSEFULFILLMENTORDERDISPOSITION { public static final String TYPE_NAME = "ReverseFulfillmentOrderDisposition"; + public static final String CreatedAt = "createdAt"; + public static final String Id = "id"; public static final String Location = "location"; @@ -25968,6 +27800,10 @@ public static class SEGMENTEVENTFILTERPARAMETER { public static final String LocalizedName = "localizedName"; + public static final String MaxRange = "maxRange"; + + public static final String MinRange = "minRange"; + public static final String Optional = "optional"; public static final String ParameterType = "parameterType"; @@ -25998,6 +27834,10 @@ public static class SEGMENTFLOATFILTER { public static final String LocalizedName = "localizedName"; + public static final String MaxRange = "maxRange"; + + public static final String MinRange = "minRange"; + public static final String MultiValue = "multiValue"; public static final String QueryName = "queryName"; @@ -26008,6 +27848,10 @@ public static class SEGMENTINTEGERFILTER { public static final String LocalizedName = "localizedName"; + public static final String MaxRange = "maxRange"; + + public static final String MinRange = "minRange"; + public static final String MultiValue = "multiValue"; public static final String QueryName = "queryName"; @@ -26744,8 +28588,6 @@ public static class SHOP { public static final String DraftOrderTags = "draftOrderTags"; - public static final String DraftOrders = "draftOrders"; - public static final String Email = "email"; public static final String EnabledPresentmentCurrencies = "enabledPresentmentCurrencies"; @@ -26774,6 +28616,8 @@ public static class SHOP { public static final String Metafield = "metafield"; + public static final String MetafieldDefinitions = "metafieldDefinitions"; + public static final String Metafields = "metafields"; public static final String MyshopifyDomain = "myshopifyDomain"; @@ -26822,6 +28666,8 @@ public static class SHOP { public static final String ShipsToCountries = "shipsToCountries"; + public static final String ShopAddress = "shopAddress"; + public static final String ShopOwnerName = "shopOwnerName"; public static final String ShopPolicies = "shopPolicies"; @@ -26950,22 +28796,6 @@ public static class DRAFTORDERTAGS_INPUT_ARGUMENT { public static final String First = "first"; } - public static class DRAFTORDERS_INPUT_ARGUMENT { - public static final String First = "first"; - - public static final String After = "after"; - - public static final String Last = "last"; - - public static final String Before = "before"; - - public static final String Reverse = "reverse"; - - public static final String SortKey = "sortKey"; - - public static final String Query = "query"; - } - public static class FULFILLMENTORDERS_INPUT_ARGUMENT { public static final String IncludeClosed = "includeClosed"; @@ -27024,6 +28854,26 @@ public static class METAFIELD_INPUT_ARGUMENT { public static final String Key = "key"; } + public static class METAFIELDDEFINITIONS_INPUT_ARGUMENT { + public static final String Namespace = "namespace"; + + public static final String PinnedStatus = "pinnedStatus"; + + public static final String First = "first"; + + public static final String After = "after"; + + public static final String Last = "last"; + + public static final String Before = "before"; + + public static final String Reverse = "reverse"; + + public static final String SortKey = "sortKey"; + + public static final String Query = "query"; + } + public static class METAFIELDS_INPUT_ARGUMENT { public static final String Namespace = "namespace"; @@ -27304,6 +29154,8 @@ public static class SHOPIFYFUNCTION { public static final String Description = "description"; + public static final String Handle = "handle"; + public static final String Id = "id"; public static final String InputQuery = "inputQuery"; @@ -27600,6 +29452,8 @@ public static class SHOPIFYPAYMENTSDISPUTE { public static final String Amount = "amount"; + public static final String DisputeEvidence = "disputeEvidence"; + public static final String EvidenceDueBy = "evidenceDueBy"; public static final String EvidenceSentOn = "evidenceSentOn"; @@ -27768,6 +29622,8 @@ public static class SHOPIFYPAYMENTSPAYOUT { public static final String BusinessEntity = "businessEntity"; + public static final String ExternalTraceId = "externalTraceId"; + public static final String Gross = "gross"; public static final String Id = "id"; @@ -27859,6 +29715,8 @@ public static class SHOPIFYPAYMENTSPAYOUTSUMMARY { public static final String RetriedPayoutsFee = "retriedPayoutsFee"; public static final String RetriedPayoutsGross = "retriedPayoutsGross"; + + public static final String UsdcRebateCreditAmount = "usdcRebateCreditAmount"; } public static class SHOPIFYPAYMENTSREFUNDSET { @@ -27897,36 +29755,46 @@ public static class SHOPIFYPAYMENTSTRANSACTIONSET { public static final String RefundSet = "refundSet"; } - public static class SHOPIFYPAYMENTSVERIFICATION { - public static final String TYPE_NAME = "ShopifyPaymentsVerification"; - - public static final String Id = "id"; + public static class SHOPIFYPROTECTORDERELIGIBILITY { + public static final String TYPE_NAME = "ShopifyProtectOrderEligibility"; public static final String Status = "status"; + } - public static final String Subject = "subject"; + public static class SHOPIFYPROTECTORDERSUMMARY { + public static final String TYPE_NAME = "ShopifyProtectOrderSummary"; + + public static final String Eligibility = "eligibility"; + + public static final String Status = "status"; } - public static class SHOPIFYPAYMENTSVERIFICATIONSUBJECT { - public static final String TYPE_NAME = "ShopifyPaymentsVerificationSubject"; + public static class SHOPIFYQLQUERYRESPONSE { + public static final String TYPE_NAME = "ShopifyqlQueryResponse"; - public static final String FamilyName = "familyName"; + public static final String ParseErrors = "parseErrors"; - public static final String GivenName = "givenName"; + public static final String TableData = "tableData"; } - public static class SHOPIFYPROTECTORDERELIGIBILITY { - public static final String TYPE_NAME = "ShopifyProtectOrderEligibility"; + public static class SHOPIFYQLTABLEDATA { + public static final String TYPE_NAME = "ShopifyqlTableData"; - public static final String Status = "status"; + public static final String Columns = "columns"; + + public static final String Rows = "rows"; } - public static class SHOPIFYPROTECTORDERSUMMARY { - public static final String TYPE_NAME = "ShopifyProtectOrderSummary"; + public static class SHOPIFYQLTABLEDATACOLUMN { + public static final String TYPE_NAME = "ShopifyqlTableDataColumn"; - public static final String Eligibility = "eligibility"; + public static final String DataType = "dataType"; - public static final String Status = "status"; + public static final String DisplayName = "displayName"; + + public static final String Name = "name"; + + public static final String SubType = "subType"; } public static class SHOPLOCALE { @@ -27973,6 +29841,162 @@ public static class SHOPPAYINSTALLMENTSPAYMENTDETAILS { public static final String PaymentMethodName = "paymentMethodName"; } + public static class SHOPPAYPAYMENTREQUEST { + public static final String TYPE_NAME = "ShopPayPaymentRequest"; + + public static final String Discounts = "discounts"; + + public static final String LineItems = "lineItems"; + + public static final String PresentmentCurrency = "presentmentCurrency"; + + public static final String SelectedDeliveryMethodType = "selectedDeliveryMethodType"; + + public static final String ShippingAddress = "shippingAddress"; + + public static final String ShippingLines = "shippingLines"; + + public static final String Subtotal = "subtotal"; + + public static final String Total = "total"; + + public static final String TotalShippingPrice = "totalShippingPrice"; + + public static final String TotalTax = "totalTax"; + } + + public static class SHOPPAYPAYMENTREQUESTCONTACTFIELD { + public static final String TYPE_NAME = "ShopPayPaymentRequestContactField"; + + public static final String Address1 = "address1"; + + public static final String Address2 = "address2"; + + public static final String City = "city"; + + public static final String CompanyName = "companyName"; + + public static final String CountryCode = "countryCode"; + + public static final String Email = "email"; + + public static final String FirstName = "firstName"; + + public static final String LastName = "lastName"; + + public static final String Phone = "phone"; + + public static final String PostalCode = "postalCode"; + + public static final String ProvinceCode = "provinceCode"; + } + + public static class SHOPPAYPAYMENTREQUESTDISCOUNT { + public static final String TYPE_NAME = "ShopPayPaymentRequestDiscount"; + + public static final String Amount = "amount"; + + public static final String Label = "label"; + } + + public static class SHOPPAYPAYMENTREQUESTIMAGE { + public static final String TYPE_NAME = "ShopPayPaymentRequestImage"; + + public static final String Alt = "alt"; + + public static final String Url = "url"; + } + + public static class SHOPPAYPAYMENTREQUESTLINEITEM { + public static final String TYPE_NAME = "ShopPayPaymentRequestLineItem"; + + public static final String FinalItemPrice = "finalItemPrice"; + + public static final String FinalLinePrice = "finalLinePrice"; + + public static final String Image = "image"; + + public static final String ItemDiscounts = "itemDiscounts"; + + public static final String Label = "label"; + + public static final String LineDiscounts = "lineDiscounts"; + + public static final String OriginalItemPrice = "originalItemPrice"; + + public static final String OriginalLinePrice = "originalLinePrice"; + + public static final String Quantity = "quantity"; + + public static final String RequiresShipping = "requiresShipping"; + + public static final String Sku = "sku"; + } + + public static class SHOPPAYPAYMENTREQUESTRECEIPT { + public static final String TYPE_NAME = "ShopPayPaymentRequestReceipt"; + + public static final String CreatedAt = "createdAt"; + + public static final String Order = "order"; + + public static final String PaymentRequest = "paymentRequest"; + + public static final String ProcessingStatus = "processingStatus"; + + public static final String SourceIdentifier = "sourceIdentifier"; + + public static final String Token = "token"; + } + + public static class SHOPPAYPAYMENTREQUESTRECEIPTCONNECTION { + public static final String TYPE_NAME = "ShopPayPaymentRequestReceiptConnection"; + + public static final String Edges = "edges"; + + public static final String Nodes = "nodes"; + + public static final String PageInfo = "pageInfo"; + } + + public static class SHOPPAYPAYMENTREQUESTRECEIPTEDGE { + public static final String TYPE_NAME = "ShopPayPaymentRequestReceiptEdge"; + + public static final String Cursor = "cursor"; + + public static final String Node = "node"; + } + + public static class SHOPPAYPAYMENTREQUESTRECEIPTPROCESSINGSTATUS { + public static final String TYPE_NAME = "ShopPayPaymentRequestReceiptProcessingStatus"; + + public static final String ErrorCode = "errorCode"; + + public static final String Message = "message"; + + public static final String State = "state"; + } + + public static class SHOPPAYPAYMENTREQUESTSHIPPINGLINE { + public static final String TYPE_NAME = "ShopPayPaymentRequestShippingLine"; + + public static final String Amount = "amount"; + + public static final String Code = "code"; + + public static final String Label = "label"; + } + + public static class SHOPPAYPAYMENTREQUESTTOTALSHIPPINGPRICE { + public static final String TYPE_NAME = "ShopPayPaymentRequestTotalShippingPrice"; + + public static final String Discounts = "discounts"; + + public static final String FinalTotal = "finalTotal"; + + public static final String OriginalTotal = "originalTotal"; + } + public static class SHOPPLAN { public static final String TYPE_NAME = "ShopPlan"; @@ -27980,6 +30004,8 @@ public static class SHOPPLAN { public static final String PartnerDevelopment = "partnerDevelopment"; + public static final String PublicDisplayName = "publicDisplayName"; + public static final String ShopifyPlus = "shopifyPlus"; } @@ -29699,36 +31725,6 @@ public static class SUBSCRIPTIONLOCALDELIVERYOPTION { public static final String Title = "title"; } - public static class SUBSCRIPTIONMAILINGADDRESS { - public static final String TYPE_NAME = "SubscriptionMailingAddress"; - - public static final String Address1 = "address1"; - - public static final String Address2 = "address2"; - - public static final String City = "city"; - - public static final String Company = "company"; - - public static final String Country = "country"; - - public static final String CountryCode = "countryCode"; - - public static final String FirstName = "firstName"; - - public static final String LastName = "lastName"; - - public static final String Name = "name"; - - public static final String Phone = "phone"; - - public static final String Province = "province"; - - public static final String ProvinceCode = "provinceCode"; - - public static final String Zip = "zip"; - } - public static class SUBSCRIPTIONMANUALDISCOUNT { public static final String TYPE_NAME = "SubscriptionManualDiscount"; @@ -29874,6 +31870,8 @@ public static class SUGGESTEDREFUND { public static final String SubtotalSet = "subtotalSet"; + public static final String SuggestedRefundMethods = "suggestedRefundMethods"; + public static final String SuggestedTransactions = "suggestedTransactions"; public static final String TotalCartDiscountAmountSet = "totalCartDiscountAmountSet"; @@ -29885,6 +31883,28 @@ public static class SUGGESTEDREFUND { public static final String TotalTaxes = "totalTaxes"; } + public static class SUGGESTEDRETURNFINANCIALOUTCOME { + public static final String TYPE_NAME = "SuggestedReturnFinancialOutcome"; + + public static final String DiscountedSubtotal = "discountedSubtotal"; + + public static final String FinancialTransfer = "financialTransfer"; + + public static final String MaximumRefundable = "maximumRefundable"; + + public static final String RefundDuties = "refundDuties"; + + public static final String Shipping = "shipping"; + + public static final String TotalAdditionalFees = "totalAdditionalFees"; + + public static final String TotalCartDiscountAmount = "totalCartDiscountAmount"; + + public static final String TotalDuties = "totalDuties"; + + public static final String TotalTax = "totalTax"; + } + public static class SUGGESTEDRETURNREFUND { public static final String TYPE_NAME = "SuggestedReturnRefund"; @@ -29909,6 +31929,16 @@ public static class SUGGESTEDRETURNREFUND { public static final String TotalTax = "totalTax"; } + public static class SUGGESTEDSTORECREDITREFUND { + public static final String TYPE_NAME = "SuggestedStoreCreditRefund"; + + public static final String Amount = "amount"; + + public static final String ExpiresAt = "expiresAt"; + + public static final String MaximumRefundable = "maximumRefundable"; + } + public static class TAGSADDPAYLOAD { public static final String TYPE_NAME = "TagsAddPayload"; @@ -30125,6 +32155,24 @@ public static class TAXONOMYVALUEEDGE { public static final String Node = "node"; } + public static class TAXSUMMARYCREATEPAYLOAD { + public static final String TYPE_NAME = "TaxSummaryCreatePayload"; + + public static final String EnqueuedOrders = "enqueuedOrders"; + + public static final String UserErrors = "userErrors"; + } + + public static class TAXSUMMARYCREATEUSERERROR { + public static final String TYPE_NAME = "TaxSummaryCreateUserError"; + + public static final String Code = "code"; + + public static final String Field = "field"; + + public static final String Message = "message"; + } + public static class TENDERTRANSACTION { public static final String TYPE_NAME = "TenderTransaction"; @@ -30209,6 +32257,24 @@ public static class THEMEDELETEUSERERROR { public static final String Message = "message"; } + public static class THEMEDUPLICATEPAYLOAD { + public static final String TYPE_NAME = "ThemeDuplicatePayload"; + + public static final String NewTheme = "newTheme"; + + public static final String UserErrors = "userErrors"; + } + + public static class THEMEDUPLICATEUSERERROR { + public static final String TYPE_NAME = "ThemeDuplicateUserError"; + + public static final String Code = "code"; + + public static final String Field = "field"; + + public static final String Message = "message"; + } + public static class THEMEFILESCOPYPAYLOAD { public static final String TYPE_NAME = "ThemeFilesCopyPayload"; @@ -30496,6 +32562,10 @@ public static class UNVERIFIEDRETURNLINEITEM { public static final String Id = "id"; + public static final String ProcessableQuantity = "processableQuantity"; + + public static final String ProcessedQuantity = "processedQuantity"; + public static final String Quantity = "quantity"; public static final String RefundableQuantity = "refundableQuantity"; @@ -30504,9 +32574,13 @@ public static class UNVERIFIEDRETURNLINEITEM { public static final String ReturnReason = "returnReason"; + public static final String ReturnReasonDefinition = "returnReasonDefinition"; + public static final String ReturnReasonNote = "returnReasonNote"; public static final String UnitPrice = "unitPrice"; + + public static final String UnprocessedQuantity = "unprocessedQuantity"; } public static class URLREDIRECT { @@ -30961,6 +33035,8 @@ public static class WEBHOOKSUBSCRIPTION { public static final String Topic = "topic"; public static final String UpdatedAt = "updatedAt"; + + public static final String Uri = "uri"; } public static class WEBHOOKSUBSCRIPTIONCONNECTION { @@ -31045,36 +33121,6 @@ public static class WEBPIXELUPDATEPAYLOAD { public static final String WebPixel = "webPixel"; } - public static class WEBPRESENCE { - public static final String TYPE_NAME = "WebPresence"; - - public static final String AlternateLocales = "alternateLocales"; - - public static final String DefaultLocale = "defaultLocale"; - - public static final String Domain = "domain"; - - public static final String Id = "id"; - - public static final String Markets = "markets"; - - public static final String RootUrls = "rootUrls"; - - public static final String SubfolderSuffix = "subfolderSuffix"; - - public static class MARKETS_INPUT_ARGUMENT { - public static final String First = "first"; - - public static final String After = "after"; - - public static final String Last = "last"; - - public static final String Before = "before"; - - public static final String Reverse = "reverse"; - } - } - public static class WEBPRESENCECREATEPAYLOAD { public static final String TYPE_NAME = "WebPresenceCreatePayload"; @@ -31091,14 +33137,6 @@ public static class WEBPRESENCEDELETEPAYLOAD { public static final String UserErrors = "userErrors"; } - public static class WEBPRESENCEROOTURL { - public static final String TYPE_NAME = "WebPresenceRootUrl"; - - public static final String Locale = "locale"; - - public static final String Url = "url"; - } - public static class WEBPRESENCEUPDATEPAYLOAD { public static final String TYPE_NAME = "WebPresenceUpdatePayload"; @@ -31311,6 +33349,12 @@ public static class BUYEREXPERIENCECONFIGURATIONINPUT { public static final String Deposit = "deposit"; } + public static class BUYERSIGNALINPUT { + public static final String TYPE_NAME = "BuyerSignalInput"; + + public static final String CountryCode = "countryCode"; + } + public static class CALCULATEEXCHANGELINEITEMINPUT { public static final String TYPE_NAME = "CalculateExchangeLineItemInput"; @@ -31921,6 +33965,16 @@ public static class COLLECTIONDELETEINPUT { public static final String Id = "id"; } + public static class COLLECTIONDUPLICATEINPUT { + public static final String TYPE_NAME = "CollectionDuplicateInput"; + + public static final String CollectionId = "collectionId"; + + public static final String NewTitle = "newTitle"; + + public static final String CopyPublications = "copyPublications"; + } + public static class COLLECTIONIDENTIFIERINPUT { public static final String TYPE_NAME = "CollectionIdentifierInput"; @@ -32214,8 +34268,6 @@ public static class CUSTOMERIDENTIFIERINPUT { public static class CUSTOMERINPUT { public static final String TYPE_NAME = "CustomerInput"; - public static final String Addresses = "addresses"; - public static final String Email = "email"; public static final String FirstName = "firstName"; @@ -32241,6 +34293,8 @@ public static class CUSTOMERINPUT { public static final String TaxExempt = "taxExempt"; public static final String TaxExemptions = "taxExemptions"; + + public static final String MultipassIdentifier = "multipassIdentifier"; } public static class CUSTOMERMERGEOVERRIDEFIELDS { @@ -32402,7 +34456,7 @@ public static class DELIVERYCOUNTRYINPUT { public static class DELIVERYCUSTOMIZATIONINPUT { public static final String TYPE_NAME = "DeliveryCustomizationInput"; - public static final String FunctionId = "functionId"; + public static final String FunctionHandle = "functionHandle"; public static final String Title = "title"; @@ -32602,7 +34656,9 @@ public static class DISCOUNTAUTOMATICAPPINPUT { public static final String EndsAt = "endsAt"; - public static final String FunctionId = "functionId"; + public static final String Context = "context"; + + public static final String FunctionHandle = "functionHandle"; public static final String Metafields = "metafields"; @@ -32624,6 +34680,8 @@ public static class DISCOUNTAUTOMATICBASICINPUT { public static final String EndsAt = "endsAt"; + public static final String Context = "context"; + public static final String MinimumRequirement = "minimumRequirement"; public static final String CustomerGets = "customerGets"; @@ -32642,6 +34700,8 @@ public static class DISCOUNTAUTOMATICBXGYINPUT { public static final String EndsAt = "endsAt"; + public static final String Context = "context"; + public static final String UsesPerOrderLimit = "usesPerOrderLimit"; public static final String CustomerBuys = "customerBuys"; @@ -32658,6 +34718,8 @@ public static class DISCOUNTAUTOMATICFREESHIPPINGINPUT { public static final String EndsAt = "endsAt"; + public static final String Context = "context"; + public static final String CombinesWith = "combinesWith"; public static final String MinimumRequirement = "minimumRequirement"; @@ -32690,11 +34752,11 @@ public static class DISCOUNTCODEAPPINPUT { public static final String Code = "code"; - public static final String CustomerSelection = "customerSelection"; - public static final String UsageLimit = "usageLimit"; - public static final String FunctionId = "functionId"; + public static final String Context = "context"; + + public static final String FunctionHandle = "functionHandle"; public static final String AppliesOnSubscription = "appliesOnSubscription"; @@ -32720,10 +34782,10 @@ public static class DISCOUNTCODEBASICINPUT { public static final String Code = "code"; - public static final String CustomerSelection = "customerSelection"; - public static final String UsageLimit = "usageLimit"; + public static final String Context = "context"; + public static final String MinimumRequirement = "minimumRequirement"; public static final String CustomerGets = "customerGets"; @@ -32746,10 +34808,10 @@ public static class DISCOUNTCODEBXGYINPUT { public static final String Code = "code"; - public static final String CustomerSelection = "customerSelection"; - public static final String UsageLimit = "usageLimit"; + public static final String Context = "context"; + public static final String CustomerBuys = "customerBuys"; public static final String CustomerGets = "customerGets"; @@ -32772,10 +34834,10 @@ public static class DISCOUNTCODEFREESHIPPINGINPUT { public static final String Code = "code"; - public static final String CustomerSelection = "customerSelection"; - public static final String UsageLimit = "usageLimit"; + public static final String Context = "context"; + public static final String MinimumRequirement = "minimumRequirement"; public static final String Destination = "destination"; @@ -32807,6 +34869,16 @@ public static class DISCOUNTCOMBINESWITHINPUT { public static final String ShippingDiscounts = "shippingDiscounts"; } + public static class DISCOUNTCONTEXTINPUT { + public static final String TYPE_NAME = "DiscountContextInput"; + + public static final String All = "all"; + + public static final String Customers = "customers"; + + public static final String CustomerSegments = "customerSegments"; + } + public static class DISCOUNTCOUNTRIESINPUT { public static final String TYPE_NAME = "DiscountCountriesInput"; @@ -32971,6 +35043,24 @@ public static class DRAFTORDERAPPLIEDDISCOUNTINPUT { public static final String ValueType = "valueType"; } + public static class DRAFTORDERAVAILABLEDELIVERYOPTIONSINPUT { + public static final String TYPE_NAME = "DraftOrderAvailableDeliveryOptionsInput"; + + public static final String AppliedDiscount = "appliedDiscount"; + + public static final String DiscountCodes = "discountCodes"; + + public static final String AcceptAutomaticDiscounts = "acceptAutomaticDiscounts"; + + public static final String LineItems = "lineItems"; + + public static final String ShippingAddress = "shippingAddress"; + + public static final String MarketRegionCountryCode = "marketRegionCountryCode"; + + public static final String PurchasingEntity = "purchasingEntity"; + } + public static class DRAFTORDERDELETEINPUT { public static final String TYPE_NAME = "DraftOrderDeleteInput"; @@ -33094,8 +35184,6 @@ public static class EMAILINPUT { public static class EVENTBRIDGEWEBHOOKSUBSCRIPTIONINPUT { public static final String TYPE_NAME = "EventBridgeWebhookSubscriptionInput"; - public static final String Arn = "arn"; - public static final String Format = "format"; public static final String IncludeFields = "includeFields"; @@ -33105,6 +35193,8 @@ public static class EVENTBRIDGEWEBHOOKSUBSCRIPTIONINPUT { public static final String MetafieldNamespaces = "metafieldNamespaces"; public static final String Metafields = "metafields"; + + public static final String Arn = "arn"; } public static class EXCHANGELINEITEMAPPLIEDDISCOUNTINPUT { @@ -33135,6 +35225,14 @@ public static class EXCHANGELINEITEMINPUT { public static final String AppliedDiscount = "appliedDiscount"; } + public static class EXCHANGELINEITEMREMOVEFROMRETURNINPUT { + public static final String TYPE_NAME = "ExchangeLineItemRemoveFromReturnInput"; + + public static final String ExchangeLineItemId = "exchangeLineItemId"; + + public static final String Quantity = "quantity"; + } + public static class FILECREATEINPUT { public static final String TYPE_NAME = "FileCreateInput"; @@ -33429,6 +35527,16 @@ public static class INCOMINGREQUESTLINEITEMINPUT { public static final String Message = "message"; } + public static class INVENTORYADJUSTMENTINPUT { + public static final String TYPE_NAME = "InventoryAdjustmentInput"; + + public static final String LocationId = "locationId"; + + public static final String Adjustment = "adjustment"; + + public static final String ChangeFromQuantity = "changeFromQuantity"; + } + public static class INVENTORYADJUSTQUANTITIESINPUT { public static final String TYPE_NAME = "InventoryAdjustQuantitiesInput"; @@ -33454,6 +35562,8 @@ public static class INVENTORYCHANGEINPUT { public static final String Delta = "delta"; + public static final String ChangeFromQuantity = "changeFromQuantity"; + public static final String InventoryItemId = "inventoryItemId"; public static final String LocationId = "locationId"; @@ -33487,6 +35597,8 @@ public static class INVENTORYITEMMEASUREMENTINPUT { public static final String TYPE_NAME = "InventoryItemMeasurementInput"; public static final String Weight = "weight"; + + public static final String ShippingPackageId = "shippingPackageId"; } public static class INVENTORYLEVELINPUT { @@ -33527,6 +35639,8 @@ public static class INVENTORYMOVEQUANTITYTERMINALINPUT { public static final String Name = "name"; public static final String LedgerDocumentUri = "ledgerDocumentUri"; + + public static final String ChangeFromQuantity = "changeFromQuantity"; } public static class INVENTORYQUANTITYINPUT { @@ -33538,7 +35652,7 @@ public static class INVENTORYQUANTITYINPUT { public static final String Quantity = "quantity"; - public static final String CompareQuantity = "compareQuantity"; + public static final String ChangeFromQuantity = "changeFromQuantity"; } public static class INVENTORYSCHEDULEDCHANGEINPUT { @@ -33583,8 +35697,6 @@ public static class INVENTORYSETQUANTITIESINPUT { public static final String ReferenceDocumentUri = "referenceDocumentUri"; public static final String Quantities = "quantities"; - - public static final String IgnoreCompareQuantity = "ignoreCompareQuantity"; } public static class INVENTORYSETQUANTITYINPUT { @@ -33595,6 +35707,8 @@ public static class INVENTORYSETQUANTITYINPUT { public static final String LocationId = "locationId"; public static final String Quantity = "quantity"; + + public static final String ChangeFromQuantity = "changeFromQuantity"; } public static class INVENTORYSETSCHEDULEDCHANGESINPUT { @@ -33607,6 +35721,132 @@ public static class INVENTORYSETSCHEDULEDCHANGESINPUT { public static final String ReferenceDocumentUri = "referenceDocumentUri"; } + public static class INVENTORYSHIPMENTCREATEINPUT { + public static final String TYPE_NAME = "InventoryShipmentCreateInput"; + + public static final String MovementId = "movementId"; + + public static final String TrackingInput = "trackingInput"; + + public static final String LineItems = "lineItems"; + + public static final String DateCreated = "dateCreated"; + } + + public static class INVENTORYSHIPMENTLINEITEMINPUT { + public static final String TYPE_NAME = "InventoryShipmentLineItemInput"; + + public static final String InventoryItemId = "inventoryItemId"; + + public static final String Quantity = "quantity"; + } + + public static class INVENTORYSHIPMENTRECEIVEITEMINPUT { + public static final String TYPE_NAME = "InventoryShipmentReceiveItemInput"; + + public static final String ShipmentLineItemId = "shipmentLineItemId"; + + public static final String Quantity = "quantity"; + + public static final String Reason = "reason"; + } + + public static class INVENTORYSHIPMENTTRACKINGINPUT { + public static final String TYPE_NAME = "InventoryShipmentTrackingInput"; + + public static final String TrackingNumber = "trackingNumber"; + + public static final String Company = "company"; + + public static final String TrackingUrl = "trackingUrl"; + + public static final String ArrivesAt = "arrivesAt"; + } + + public static class INVENTORYSHIPMENTUPDATEITEMQUANTITIESINPUT { + public static final String TYPE_NAME = "InventoryShipmentUpdateItemQuantitiesInput"; + + public static final String ShipmentLineItemId = "shipmentLineItemId"; + + public static final String Quantity = "quantity"; + } + + public static class INVENTORYTRANSFERCREATEASREADYTOSHIPINPUT { + public static final String TYPE_NAME = "InventoryTransferCreateAsReadyToShipInput"; + + public static final String OriginLocationId = "originLocationId"; + + public static final String DestinationLocationId = "destinationLocationId"; + + public static final String LineItems = "lineItems"; + + public static final String DateCreated = "dateCreated"; + + public static final String Note = "note"; + + public static final String Tags = "tags"; + + public static final String ReferenceName = "referenceName"; + } + + public static class INVENTORYTRANSFERCREATEINPUT { + public static final String TYPE_NAME = "InventoryTransferCreateInput"; + + public static final String OriginLocationId = "originLocationId"; + + public static final String DestinationLocationId = "destinationLocationId"; + + public static final String LineItems = "lineItems"; + + public static final String DateCreated = "dateCreated"; + + public static final String Note = "note"; + + public static final String Tags = "tags"; + + public static final String ReferenceName = "referenceName"; + } + + public static class INVENTORYTRANSFEREDITINPUT { + public static final String TYPE_NAME = "InventoryTransferEditInput"; + + public static final String OriginId = "originId"; + + public static final String DestinationId = "destinationId"; + + public static final String DateCreated = "dateCreated"; + + public static final String Note = "note"; + + public static final String Tags = "tags"; + + public static final String ReferenceName = "referenceName"; + } + + public static class INVENTORYTRANSFERLINEITEMINPUT { + public static final String TYPE_NAME = "InventoryTransferLineItemInput"; + + public static final String InventoryItemId = "inventoryItemId"; + + public static final String Quantity = "quantity"; + } + + public static class INVENTORYTRANSFERREMOVEITEMSINPUT { + public static final String TYPE_NAME = "InventoryTransferRemoveItemsInput"; + + public static final String Id = "id"; + + public static final String TransferLineItemIds = "transferLineItemIds"; + } + + public static class INVENTORYTRANSFERSETITEMSINPUT { + public static final String TYPE_NAME = "InventoryTransferSetItemsInput"; + + public static final String Id = "id"; + + public static final String LineItems = "lineItems"; + } + public static class LINKEDMETAFIELDCREATEINPUT { public static final String TYPE_NAME = "LinkedMetafieldCreateInput"; @@ -33882,21 +36122,9 @@ public static class MARKETINGACTIVITYCREATEEXTERNALINPUT { public static class MARKETINGACTIVITYCREATEINPUT { public static final String TYPE_NAME = "MarketingActivityCreateInput"; - public static final String MarketingActivityTitle = "marketingActivityTitle"; - - public static final String FormData = "formData"; - public static final String MarketingActivityExtensionId = "marketingActivityExtensionId"; - public static final String Context = "context"; - - public static final String Utm = "utm"; - - public static final String UrlParameterValue = "urlParameterValue"; - public static final String Status = "status"; - - public static final String Budget = "budget"; } public static class MARKETINGACTIVITYUPDATEEXTERNALINPUT { @@ -33933,26 +36161,6 @@ public static class MARKETINGACTIVITYUPDATEINPUT { public static final String TYPE_NAME = "MarketingActivityUpdateInput"; public static final String Id = "id"; - - public static final String MarketingRecommendationId = "marketingRecommendationId"; - - public static final String Title = "title"; - - public static final String Budget = "budget"; - - public static final String Status = "status"; - - public static final String TargetStatus = "targetStatus"; - - public static final String FormData = "formData"; - - public static final String Utm = "utm"; - - public static final String UrlParameterValue = "urlParameterValue"; - - public static final String MarketedResources = "marketedResources"; - - public static final String Errors = "errors"; } public static class MARKETINGACTIVITYUPSERTEXTERNALINPUT { @@ -34041,6 +36249,10 @@ public static class MARKETINGENGAGEMENTINPUT { public static final String FirstTimeCustomers = "firstTimeCustomers"; public static final String ReturningCustomers = "returningCustomers"; + + public static final String PrimaryConversions = "primaryConversions"; + + public static final String AllConversions = "allConversions"; } public static class MARKETLOCALIZATIONREGISTERINPUT { @@ -34361,6 +36573,8 @@ public static class METAOBJECTACCESSINPUT { public static final String Admin = "admin"; public static final String Storefront = "storefront"; + + public static final String CustomerAccount = "customerAccount"; } public static class METAOBJECTBULKDELETEWHERECONDITION { @@ -34507,6 +36721,18 @@ public static class METAOBJECTDEFINITIONUPDATEINPUT { public static final String Capabilities = "capabilities"; } + public static class METAOBJECTFIELDCAPABILITYADMINFILTERABLEINPUT { + public static final String TYPE_NAME = "MetaobjectFieldCapabilityAdminFilterableInput"; + + public static final String Enabled = "enabled"; + } + + public static class METAOBJECTFIELDDEFINITIONCAPABILITYCREATEINPUT { + public static final String TYPE_NAME = "MetaobjectFieldDefinitionCapabilityCreateInput"; + + public static final String AdminFilterable = "adminFilterable"; + } + public static class METAOBJECTFIELDDEFINITIONCREATEINPUT { public static final String TYPE_NAME = "MetaobjectFieldDefinitionCreateInput"; @@ -34521,6 +36747,8 @@ public static class METAOBJECTFIELDDEFINITIONCREATEINPUT { public static final String Required = "required"; public static final String Validations = "validations"; + + public static final String Capabilities = "capabilities"; } public static class METAOBJECTFIELDDEFINITIONDELETEINPUT { @@ -34551,6 +36779,8 @@ public static class METAOBJECTFIELDDEFINITIONUPDATEINPUT { public static final String Required = "required"; public static final String Validations = "validations"; + + public static final String Capabilities = "capabilities"; } public static class METAOBJECTFIELDINPUT { @@ -34807,6 +37037,20 @@ public static class OPTIONVALUEUPDATEINPUT { public static final String LinkedMetafieldValue = "linkedMetafieldValue"; } + public static class ORDERCANCELREFUNDMETHODINPUT { + public static final String TYPE_NAME = "OrderCancelRefundMethodInput"; + + public static final String OriginalPaymentMethodsRefund = "originalPaymentMethodsRefund"; + + public static final String StoreCreditRefund = "storeCreditRefund"; + } + + public static class ORDERCANCELSTORECREDITREFUNDINPUT { + public static final String TYPE_NAME = "OrderCancelStoreCreditRefundInput"; + + public static final String ExpiresAt = "expiresAt"; + } + public static class ORDERCAPTUREINPUT { public static final String TYPE_NAME = "OrderCaptureInput"; @@ -35162,6 +37406,8 @@ public static class ORDERINPUT { public static final String Email = "email"; + public static final String Phone = "phone"; + public static final String Note = "note"; public static final String Tags = "tags"; @@ -35262,7 +37508,7 @@ public static class PAGEUPDATEINPUT { public static class PAYMENTCUSTOMIZATIONINPUT { public static final String TYPE_NAME = "PaymentCustomizationInput"; - public static final String FunctionId = "functionId"; + public static final String FunctionHandle = "functionHandle"; public static final String Title = "title"; @@ -35381,6 +37627,8 @@ public static class PRICELISTPRODUCTPRICEINPUT { public static final String ProductId = "productId"; public static final String Price = "price"; + + public static final String CompareAtPrice = "compareAtPrice"; } public static class PRICELISTUPDATEINPUT { @@ -35433,11 +37681,37 @@ public static class PRODUCTBUNDLECOMPONENTQUANTITYOPTIONVALUEINPUT { public static final String Quantity = "quantity"; } + public static class PRODUCTBUNDLECONSOLIDATEDOPTIONCOMPONENTINPUT { + public static final String TYPE_NAME = "ProductBundleConsolidatedOptionComponentInput"; + + public static final String ComponentOptionValue = "componentOptionValue"; + + public static final String ComponentOptionId = "componentOptionId"; + } + + public static class PRODUCTBUNDLECONSOLIDATEDOPTIONINPUT { + public static final String TYPE_NAME = "ProductBundleConsolidatedOptionInput"; + + public static final String OptionName = "optionName"; + + public static final String OptionSelections = "optionSelections"; + } + + public static class PRODUCTBUNDLECONSOLIDATEDOPTIONSELECTIONINPUT { + public static final String TYPE_NAME = "ProductBundleConsolidatedOptionSelectionInput"; + + public static final String OptionValue = "optionValue"; + + public static final String Components = "components"; + } + public static class PRODUCTBUNDLECREATEINPUT { public static final String TYPE_NAME = "ProductBundleCreateInput"; public static final String Title = "title"; + public static final String ConsolidatedOptions = "consolidatedOptions"; + public static final String Components = "components"; } @@ -35448,6 +37722,8 @@ public static class PRODUCTBUNDLEUPDATEINPUT { public static final String Title = "title"; + public static final String ConsolidatedOptions = "consolidatedOptions"; + public static final String Components = "components"; } @@ -35468,8 +37744,6 @@ public static class PRODUCTCREATEINPUT { public static final String ProductType = "productType"; - public static final String Category = "category"; - public static final String Tags = "tags"; public static final String TemplateSuffix = "templateSuffix"; @@ -35480,6 +37754,8 @@ public static class PRODUCTCREATEINPUT { public static final String Vendor = "vendor"; + public static final String Category = "category"; + public static final String GiftCard = "giftCard"; public static final String CollectionsToJoin = "collectionsToJoin"; @@ -35532,8 +37808,6 @@ public static class PRODUCTINPUT { public static final String ProductType = "productType"; - public static final String Category = "category"; - public static final String Tags = "tags"; public static final String TemplateSuffix = "templateSuffix"; @@ -35544,6 +37818,8 @@ public static class PRODUCTINPUT { public static final String Vendor = "vendor"; + public static final String Category = "category"; + public static final String GiftCard = "giftCard"; public static final String RedirectNewHandle = "redirectNewHandle"; @@ -35618,8 +37894,6 @@ public static class PRODUCTSETINPUT { public static final String ProductType = "productType"; - public static final String Category = "category"; - public static final String Tags = "tags"; public static final String TemplateSuffix = "templateSuffix"; @@ -35630,23 +37904,25 @@ public static class PRODUCTSETINPUT { public static final String Vendor = "vendor"; + public static final String Category = "category"; + public static final String GiftCard = "giftCard"; public static final String RedirectNewHandle = "redirectNewHandle"; + public static final String Status = "status"; + public static final String Collections = "collections"; public static final String Metafields = "metafields"; - public static final String Variants = "variants"; - public static final String Files = "files"; - public static final String Status = "status"; + public static final String ProductOptions = "productOptions"; - public static final String RequiresSellingPlan = "requiresSellingPlan"; + public static final String Variants = "variants"; - public static final String ProductOptions = "productOptions"; + public static final String RequiresSellingPlan = "requiresSellingPlan"; public static final String ClaimOwnership = "claimOwnership"; @@ -35682,8 +37958,6 @@ public static class PRODUCTUPDATEINPUT { public static final String ProductType = "productType"; - public static final String Category = "category"; - public static final String Tags = "tags"; public static final String TemplateSuffix = "templateSuffix"; @@ -35694,6 +37968,8 @@ public static class PRODUCTUPDATEINPUT { public static final String Vendor = "vendor"; + public static final String Category = "category"; + public static final String RedirectNewHandle = "redirectNewHandle"; public static final String Id = "id"; @@ -35784,6 +38060,8 @@ public static class PRODUCTVARIANTSBULKINPUT { public static final String InventoryQuantities = "inventoryQuantities"; + public static final String QuantityAdjustments = "quantityAdjustments"; + public static final String InventoryItem = "inventoryItem"; public static final String MediaId = "mediaId"; @@ -35798,41 +38076,49 @@ public static class PRODUCTVARIANTSBULKINPUT { public static final String TaxCode = "taxCode"; + public static final String UnitPriceMeasurement = "unitPriceMeasurement"; + + public static final String ShowUnitPrice = "showUnitPrice"; + public static final String RequiresComponents = "requiresComponents"; } public static class PRODUCTVARIANTSETINPUT { public static final String TYPE_NAME = "ProductVariantSetInput"; - public static final String RequiresComponents = "requiresComponents"; + public static final String Id = "id"; - public static final String Barcode = "barcode"; + public static final String OptionValues = "optionValues"; - public static final String CompareAtPrice = "compareAtPrice"; + public static final String Price = "price"; - public static final String Id = "id"; + public static final String CompareAtPrice = "compareAtPrice"; - public static final String File = "file"; + public static final String Sku = "sku"; - public static final String InventoryPolicy = "inventoryPolicy"; + public static final String Barcode = "barcode"; - public static final String InventoryQuantities = "inventoryQuantities"; + public static final String Position = "position"; - public static final String InventoryItem = "inventoryItem"; + public static final String File = "file"; public static final String Metafields = "metafields"; - public static final String OptionValues = "optionValues"; + public static final String RequiresComponents = "requiresComponents"; - public static final String Position = "position"; + public static final String InventoryPolicy = "inventoryPolicy"; - public static final String Price = "price"; + public static final String InventoryQuantities = "inventoryQuantities"; - public static final String Sku = "sku"; + public static final String InventoryItem = "inventoryItem"; public static final String Taxable = "taxable"; public static final String TaxCode = "taxCode"; + + public static final String UnitPriceMeasurement = "unitPriceMeasurement"; + + public static final String ShowUnitPrice = "showUnitPrice"; } public static class PUBLICATIONCREATEINPUT { @@ -35866,10 +38152,6 @@ public static class PUBLICATIONUPDATEINPUT { public static class PUBSUBWEBHOOKSUBSCRIPTIONINPUT { public static final String TYPE_NAME = "PubSubWebhookSubscriptionInput"; - public static final String PubSubProject = "pubSubProject"; - - public static final String PubSubTopic = "pubSubTopic"; - public static final String Format = "format"; public static final String IncludeFields = "includeFields"; @@ -35879,6 +38161,10 @@ public static class PUBSUBWEBHOOKSUBSCRIPTIONINPUT { public static final String MetafieldNamespaces = "metafieldNamespaces"; public static final String Metafields = "metafields"; + + public static final String PubSubProject = "pubSubProject"; + + public static final String PubSubTopic = "pubSubTopic"; } public static class PURCHASINGCOMPANYINPUT { @@ -35960,13 +38246,19 @@ public static class REFUNDINPUT { public static final String Shipping = "shipping"; + public static final String ProcessedAt = "processedAt"; + public static final String RefundLineItems = "refundLineItems"; public static final String RefundDuties = "refundDuties"; public static final String Transactions = "transactions"; + public static final String RefundMethods = "refundMethods"; + public static final String DiscrepancyReason = "discrepancyReason"; + + public static final String AllowOverRefunding = "allowOverRefunding"; } public static class REFUNDLINEITEMINPUT { @@ -35981,6 +38273,12 @@ public static class REFUNDLINEITEMINPUT { public static final String LocationId = "locationId"; } + public static class REFUNDMETHODINPUT { + public static final String TYPE_NAME = "RefundMethodInput"; + + public static final String StoreCreditRefund = "storeCreditRefund"; + } + public static class REFUNDSHIPPINGINPUT { public static final String TYPE_NAME = "RefundShippingInput"; @@ -36068,7 +38366,7 @@ public static class RETURNLINEITEMINPUT { public static final String Quantity = "quantity"; - public static final String ReturnReason = "returnReason"; + public static final String ReturnReasonDefinitionId = "returnReasonDefinitionId"; public static final String ReturnReasonNote = "returnReasonNote"; @@ -36085,6 +38383,62 @@ public static class RETURNLINEITEMREMOVEFROMRETURNINPUT { public static final String Quantity = "quantity"; } + public static class RETURNPROCESSEXCHANGELINEITEMINPUT { + public static final String TYPE_NAME = "ReturnProcessExchangeLineItemInput"; + + public static final String Id = "id"; + + public static final String Quantity = "quantity"; + } + + public static class RETURNPROCESSFINANCIALTRANSFERINPUT { + public static final String TYPE_NAME = "ReturnProcessFinancialTransferInput"; + + public static final String IssueRefund = "issueRefund"; + } + + public static class RETURNPROCESSINPUT { + public static final String TYPE_NAME = "ReturnProcessInput"; + + public static final String ReturnId = "returnId"; + + public static final String ReturnLineItems = "returnLineItems"; + + public static final String ExchangeLineItems = "exchangeLineItems"; + + public static final String RefundDuties = "refundDuties"; + + public static final String RefundShipping = "refundShipping"; + + public static final String TipLineId = "tipLineId"; + + public static final String Note = "note"; + + public static final String NotifyCustomer = "notifyCustomer"; + + public static final String FinancialTransfer = "financialTransfer"; + } + + public static class RETURNPROCESSREFUNDINPUT { + public static final String TYPE_NAME = "ReturnProcessRefundInput"; + + public static final String AllowOverRefunding = "allowOverRefunding"; + + public static final String OrderTransactions = "orderTransactions"; + + public static final String RefundMethods = "refundMethods"; + } + + public static class RETURNPROCESSRETURNLINEITEMINPUT { + public static final String TYPE_NAME = "ReturnProcessReturnLineItemInput"; + + public static final String Id = "id"; + + public static final String Quantity = "quantity"; + + public static final String Dispositions = "dispositions"; + } + public static class RETURNREFUNDINPUT { public static final String TYPE_NAME = "ReturnRefundInput"; @@ -36136,7 +38490,7 @@ public static class RETURNREQUESTLINEITEMINPUT { public static final String RestockingFee = "restockingFee"; - public static final String ReturnReason = "returnReason"; + public static final String ReturnReasonDefinitionId = "returnReasonDefinitionId"; public static final String CustomerNote = "customerNote"; } @@ -36573,6 +38927,8 @@ public static class STORECREDITACCOUNTCREDITINPUT { public static final String CreditAmount = "creditAmount"; public static final String ExpiresAt = "expiresAt"; + + public static final String Notify = "notify"; } public static class STORECREDITACCOUNTDEBITINPUT { @@ -36581,6 +38937,14 @@ public static class STORECREDITACCOUNTDEBITINPUT { public static final String DebitAmount = "debitAmount"; } + public static class STORECREDITREFUNDINPUT { + public static final String TYPE_NAME = "StoreCreditRefundInput"; + + public static final String Amount = "amount"; + + public static final String ExpiresAt = "expiresAt"; + } + public static class STOREFRONTACCESSTOKENDELETEINPUT { public static final String TYPE_NAME = "StorefrontAccessTokenDeleteInput"; @@ -36941,6 +39305,22 @@ public static class SUBSCRIPTIONPRICINGPOLICYINPUT { public static final String CycleDiscounts = "cycleDiscounts"; } + public static class SUGGESTEDOUTCOMEEXCHANGELINEITEMINPUT { + public static final String TYPE_NAME = "SuggestedOutcomeExchangeLineItemInput"; + + public static final String Id = "id"; + + public static final String Quantity = "quantity"; + } + + public static class SUGGESTEDOUTCOMERETURNLINEITEMINPUT { + public static final String TYPE_NAME = "SuggestedOutcomeReturnLineItemInput"; + + public static final String Id = "id"; + + public static final String Quantity = "quantity"; + } + public static class THEMEFILESCOPYFILEINPUT { public static final String TYPE_NAME = "ThemeFilesCopyFileInput"; @@ -36973,6 +39353,18 @@ public static class UNIQUEMETAFIELDVALUEINPUT { public static final String Value = "value"; } + public static class UNITPRICEMEASUREMENTINPUT { + public static final String TYPE_NAME = "UnitPriceMeasurementInput"; + + public static final String QuantityValue = "quantityValue"; + + public static final String QuantityUnit = "quantityUnit"; + + public static final String ReferenceValue = "referenceValue"; + + public static final String ReferenceUnit = "referenceUnit"; + } + public static class UPDATEMEDIAINPUT { public static final String TYPE_NAME = "UpdateMediaInput"; @@ -37004,7 +39396,7 @@ public static class UTMINPUT { public static class VALIDATIONCREATEINPUT { public static final String TYPE_NAME = "ValidationCreateInput"; - public static final String FunctionId = "functionId"; + public static final String FunctionHandle = "functionHandle"; public static final String Enable = "enable"; @@ -37044,8 +39436,6 @@ public static class VARIANTOPTIONVALUEINPUT { public static class WEBHOOKSUBSCRIPTIONINPUT { public static final String TYPE_NAME = "WebhookSubscriptionInput"; - public static final String CallbackUrl = "callbackUrl"; - public static final String Format = "format"; public static final String IncludeFields = "includeFields"; @@ -37055,6 +39445,8 @@ public static class WEBHOOKSUBSCRIPTIONINPUT { public static final String MetafieldNamespaces = "metafieldNamespaces"; public static final String Metafields = "metafields"; + + public static final String Uri = "uri"; } public static class WEBPIXELINPUT { @@ -37444,6 +39836,10 @@ public static class RETURNLINEITEMTYPE { public static final String Id = "id"; + public static final String ProcessableQuantity = "processableQuantity"; + + public static final String ProcessedQuantity = "processedQuantity"; + public static final String Quantity = "quantity"; public static final String RefundableQuantity = "refundableQuantity"; @@ -37452,7 +39848,11 @@ public static class RETURNLINEITEMTYPE { public static final String ReturnReason = "returnReason"; + public static final String ReturnReasonDefinition = "returnReasonDefinition"; + public static final String ReturnReasonNote = "returnReasonNote"; + + public static final String UnprocessedQuantity = "unprocessedQuantity"; } public static class SALE { @@ -37576,4 +39976,12 @@ public static class SUBSCRIPTIONCONTRACTBASE { public static final String UpdatedAt = "updatedAt"; } + + public static class SUGGESTEDREFUNDMETHOD { + public static final String TYPE_NAME = "SuggestedRefundMethod"; + + public static final String Amount = "amount"; + + public static final String MaximumRefundable = "maximumRefundable"; + } } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AbandonedCheckoutLineItemFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AbandonedCheckoutLineItemFragmentProjection.java index 47460947..2d2fdad5 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AbandonedCheckoutLineItemFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AbandonedCheckoutLineItemFragmentProjection.java @@ -108,6 +108,13 @@ public MoneyBagProjection, ROOT> parentRelationship( + ) { + AbandonedCheckoutLineItemParentRelationshipProjection, ROOT> projection = new AbandonedCheckoutLineItemParentRelationshipProjection<>(this, getRoot()); + getFields().put("parentRelationship", projection); + return projection; + } + public ProductProjection, ROOT> product( ) { ProductProjection, ROOT> projection = new ProductProjection<>(this, getRoot()); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AbandonedCheckoutLineItemParentRelationshipProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AbandonedCheckoutLineItemParentRelationshipProjection.java new file mode 100644 index 00000000..e135cef5 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AbandonedCheckoutLineItemParentRelationshipProjection.java @@ -0,0 +1,21 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class AbandonedCheckoutLineItemParentRelationshipProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public AbandonedCheckoutLineItemParentRelationshipProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("AbandonedCheckoutLineItemParentRelationship")); + } + + public AbandonedCheckoutLineItemParentRelationshipProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public AbandonedCheckoutLineItemProjection, ROOT> _parent( + ) { + AbandonedCheckoutLineItemProjection, ROOT> projection = new AbandonedCheckoutLineItemProjection<>(this, getRoot()); + getFields().put("parent", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AbandonedCheckoutLineItemProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AbandonedCheckoutLineItemProjection.java index 1ba4ac6b..6ad565ad 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AbandonedCheckoutLineItemProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AbandonedCheckoutLineItemProjection.java @@ -103,6 +103,13 @@ public MoneyBagProjection, ROO return projection; } + public AbandonedCheckoutLineItemParentRelationshipProjection, ROOT> parentRelationship( + ) { + AbandonedCheckoutLineItemParentRelationshipProjection, ROOT> projection = new AbandonedCheckoutLineItemParentRelationshipProjection<>(this, getRoot()); + getFields().put("parentRelationship", projection); + return projection; + } + public ProductProjection, ROOT> product() { ProductProjection, ROOT> projection = new ProductProjection<>(this, getRoot()); getFields().put("product", projection); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AbandonedCheckoutsCountGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AbandonedCheckoutsCountGraphQLQuery.java index df1054b7..d764e7bf 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AbandonedCheckoutsCountGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AbandonedCheckoutsCountGraphQLQuery.java @@ -8,7 +8,7 @@ import java.util.Set; /** - * Returns the count of abandoned checkouts for the given shop. Limited to a maximum of 10000. + * Returns the count of abandoned checkouts for the given shop. Limited to a maximum of 10000 by default. */ public class AbandonedCheckoutsCountGraphQLQuery extends GraphQLQuery { public AbandonedCheckoutsCountGraphQLQuery(String query, String savedSearchId, Integer limit, @@ -89,7 +89,7 @@ public Builder savedSearchId(String savedSearchId) { } /** - * The upper bound on count value before returning a result. + * The upper bound on count value before returning a result. Use `null` to have no limit. */ public Builder limit(Integer limit) { this.limit = limit; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AbandonedCheckoutsGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AbandonedCheckoutsGraphQLQuery.java index 89d2ea50..4d054a7f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AbandonedCheckoutsGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AbandonedCheckoutsGraphQLQuery.java @@ -10,7 +10,13 @@ import java.util.Set; /** - * List of abandoned checkouts. Includes checkouts that were recovered after being abandoned. + * Returns a list of abandoned checkouts. A checkout is considered abandoned when + * a customer adds contact information but doesn't complete their purchase. + * Includes both abandoned and recovered checkouts. + * + * Each checkout provides [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer) details, [`AbandonedCheckoutLineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AbandonedCheckoutLineItem) + * objects, pricing information, and a recovery URL for re-engaging customers who + * didn't complete their purchase. */ public class AbandonedCheckoutsGraphQLQuery extends GraphQLQuery { public AbandonedCheckoutsGraphQLQuery(Integer first, String after, Integer last, String before, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AbandonmentGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AbandonmentGraphQLQuery.java index 7c326ed6..f2598b84 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AbandonmentGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AbandonmentGraphQLQuery.java @@ -7,7 +7,7 @@ import java.util.Set; /** - * Returns an abandonment by ID. + * Returns a `Abandonment` resource by ID. */ public class AbandonmentGraphQLQuery extends GraphQLQuery { public AbandonmentGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppByHandleGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppByHandleGraphQLQuery.java index 13237e7e..49e97338 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppByHandleGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppByHandleGraphQLQuery.java @@ -7,8 +7,10 @@ import java.util.Set; /** - * Fetches app by handle. - * Returns null if the app doesn't exist. + * Retrieves an app by its unique handle. The handle is a URL-friendly identifier for the app. + * + * Returns the [`App`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App) if + * found, or `null` if no app exists with the specified handle. */ public class AppByHandleGraphQLQuery extends GraphQLQuery { public AppByHandleGraphQLQuery(String handle, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppByKeyGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppByKeyGraphQLQuery.java index 9afd19b8..f0c7b061 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppByKeyGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppByKeyGraphQLQuery.java @@ -7,8 +7,11 @@ import java.util.Set; /** - * Fetches an app by its client ID. - * Returns null if the app doesn't exist. + * Retrieves an [`App`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App) by + * its client ID (API key). Returns the app's configuration, installation status, [`AccessScope`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AccessScope) + * objects, and developer information. + * + * Returns `null` if no app exists with the specified client ID. */ public class AppByKeyGraphQLQuery extends GraphQLQuery { public AppByKeyGraphQLQuery(String apiKey, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppGraphQLQuery.java index e26e9bf0..5b0855b8 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppGraphQLQuery.java @@ -7,7 +7,13 @@ import java.util.Set; /** - * Lookup an App by ID or return the currently authenticated App. + * Retrieves an [`App`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App) by + * its ID. If no ID is provided, returns details about the currently + * authenticated app. The query provides access to app details including title, + * icon, and pricing information. + * + * If the app isn't installed on the current shop, then the [`installation`](https://shopify.dev/docs/api/admin-graphql/latest/queries/app#returns-App.fields.installation) + * field will be `null`. */ public class AppGraphQLQuery extends GraphQLQuery { public AppGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppInstallationGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppInstallationGraphQLQuery.java index 77e4fca8..4ef8041f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppInstallationGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppInstallationGraphQLQuery.java @@ -7,7 +7,16 @@ import java.util.Set; /** - * Lookup an AppInstallation by ID or return the AppInstallation for the currently authenticated App. + * Retrieves an [`AppInstallation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AppInstallation) by ID. If no ID is provided, returns the installation for the currently authenticated + * [`App`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App). The + * query provides essential data for validating installation state and managing + * app functionality within a store. + * + * Use this query to access installation details including granted [`AccessScope`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AccessScope) + * objects, active [`AppSubscription`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AppSubscription) objects, [`AppCredit`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AppCredit) objects, [`AppPurchaseOneTime`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AppPurchaseOneTime) + * objects, and app-specific metadata. + * + * Learn more about [app installation](https://shopify.dev/docs/apps/build/authentication-authorization/app-installation). */ public class AppInstallationGraphQLQuery extends GraphQLQuery { public AppInstallationGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppInstallationsGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppInstallationsGraphQLQuery.java index f04e7c7b..e4e3fb91 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppInstallationsGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppInstallationsGraphQLQuery.java @@ -12,9 +12,13 @@ import java.util.Set; /** - * A list of app installations. To use this query, you need to contact [Shopify - * Support](https://partners.shopify.com/current/support/) to grant your custom - * app the `read_apps` access scope. Public apps can't be granted this access scope. + * A paginated list of [`AppInstallation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AppInstallation) + * objects across multiple stores where your app is installed. Use this query to + * monitor installation status, track billing and subscriptions through [`AppSubscription`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AppSubscription) + * objects, and review granted [`AccessScope`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AccessScope) objects. + * + * Filter by [`AppInstallationCategory`](https://shopify.dev/docs/api/admin-graphql/latest/enums/AppInstallationCategory) to find specific types of installations (such as POS or channel apps) and by [`AppInstallationPrivacy`](https://shopify.dev/docs/api/admin-graphql/latest/enums/AppInstallationPrivacy) + * to scope to public or private installations. */ public class AppInstallationsGraphQLQuery extends GraphQLQuery { public AppInstallationsGraphQLQuery(Integer first, String after, Integer last, String before, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppPurchaseOneTimeCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppPurchaseOneTimeCreateGraphQLQuery.java index 6da62c09..25d9dd70 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppPurchaseOneTimeCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppPurchaseOneTimeCreateGraphQLQuery.java @@ -9,9 +9,24 @@ import java.util.Set; /** - * Charges a shop for features or services one time. - * This type of charge is recommended for apps that aren't billed on a recurring basis. - * Test and demo shops aren't charged. + * Creates a one-time charge for app features or services that don't require + * recurring billing. This mutation is ideal for apps that sell individual + * features, premium content, or services on a per-use basis rather than + * subscription models. + * + * For example, a design app might charge merchants once for premium templates, + * or a marketing app could bill for individual campaign setups without ongoing monthly fees. + * + * Use the `AppPurchaseOneTimeCreate` mutation to: + * - Charge for premium features or content purchases + * - Bill for professional services or setup fees + * - Generate revenue from one-time digital product sales + * + * The mutation returns a confirmation URL that merchants must visit to approve + * the charge. Test and development stores are not charged, allowing safe testing + * of billing flows. + * + * Explore one-time billing options on the [app purchases page](https://shopify.dev/docs/apps/launch/billing/support-one-time-purchases). */ public class AppPurchaseOneTimeCreateGraphQLQuery extends GraphQLQuery { public AppPurchaseOneTimeCreateGraphQLQuery(String name, MoneyInput price, String returnUrl, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppRevokeAccessScopesGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppRevokeAccessScopesGraphQLQuery.java index dc48e0c7..145d1561 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppRevokeAccessScopesGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppRevokeAccessScopesGraphQLQuery.java @@ -8,7 +8,22 @@ import java.util.Set; /** - * Revokes access scopes previously granted for an app installation. + * Revokes previously granted access scopes from an app installation, allowing + * merchants to reduce an app's permissions without completely uninstalling it. + * This provides granular control over what data and functionality apps can access. + * + * For example, if a merchant no longer wants an app to access customer + * information but still wants to use its inventory features, they can revoke the + * customer-related scopes while keeping inventory permissions active. + * + * Use the `appRevokeAccessScopes` mutation to: + * - Remove specific permissions from installed apps + * - Maintain app functionality while minimizing data exposure + * + * The mutation returns details about which scopes were successfully revoked and + * any errors that prevented certain permissions from being removed. + * + * Learn more about [managing app permissions](https://shopify.dev/docs/apps/build/authentication-authorization/app-installation/manage-access-scopes#revoke-granted-scopes-dynamically). */ public class AppRevokeAccessScopesGraphQLQuery extends GraphQLQuery { public AppRevokeAccessScopesGraphQLQuery(List scopes, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppSubscriptionCancelGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppSubscriptionCancelGraphQLQuery.java index 5f3d302f..aa63d078 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppSubscriptionCancelGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppSubscriptionCancelGraphQLQuery.java @@ -8,7 +8,27 @@ import java.util.Set; /** - * Cancels an app subscription on a store. + * Cancels an active app subscription, stopping future billing cycles. The + * cancellation behavior depends on the `replacementBehavior` setting - it can + * either disable auto-renewal (allowing the subscription to continue until the + * end of the current billing period) or immediately cancel with prorated refunds. + * + * When a merchant decides to discontinue using subscription features, this + * mutation provides a clean cancellation workflow that respects billing periods + * and merchant expectations. + * + * Use the `AppSubscriptionCancel` mutation to: + * - Process merchant-initiated subscription cancellations + * - Terminate subscriptions due to policy violations or account issues + * - Handle subscription cancellations during app uninstallation workflows + * + * The cancellation timing and merchant access depends on the + * `replacementBehavior` setting and the app's specific implementation of + * subscription management. + * + * For subscription lifecycle management and cancellation best practices, consult + * the [subscription management + * guide](https://shopify.dev/docs/apps/launch/billing/subscription-billing). */ public class AppSubscriptionCancelGraphQLQuery extends GraphQLQuery { public AppSubscriptionCancelGraphQLQuery(String id, Boolean prorate, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppSubscriptionCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppSubscriptionCreateGraphQLQuery.java index a0dbc685..8971dd27 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppSubscriptionCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppSubscriptionCreateGraphQLQuery.java @@ -12,7 +12,18 @@ import java.util.Set; /** - * Allows an app to charge a store for features or services on a recurring basis. + * Creates a recurring or usage-based [`AppSubscription`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AppSubscription) + * that charges merchants for app features and services. The subscription + * includes one or more [`AppSubscriptionLineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AppSubscriptionLineItem) + * objects that define the pricing structure, billing intervals, and optional [`AppSubscriptionDiscount`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AppSubscriptionDiscount) values. + * + * Returns a [confirmation URL](https://shopify.dev/docs/api/admin-graphql/latest/mutations/appSubscriptionCreate#returns-confirmationUrl) + * where the merchant approves or declines the charges. After approval, the + * subscription becomes active and billing begins after any trial period expires. + * You can specify [`AppSubscriptionReplacementBehavior`](https://shopify.dev/docs/api/admin-graphql/latest/enums/AppSubscriptionReplacementBehavior) + * to control how this subscription interacts with existing active subscriptions. + * + * Learn more about [creating app subscriptions](https://shopify.dev/docs/apps/launch/billing/subscription-billing/create-time-based-subscriptions). */ public class AppSubscriptionCreateGraphQLQuery extends GraphQLQuery { public AppSubscriptionCreateGraphQLQuery(String name, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppSubscriptionLineItemUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppSubscriptionLineItemUpdateGraphQLQuery.java index 258eeead..e11a53e8 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppSubscriptionLineItemUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppSubscriptionLineItemUpdateGraphQLQuery.java @@ -8,7 +8,16 @@ import java.util.Set; /** - * Updates the capped amount on the usage pricing plan of an app subscription line item. + * Updates the capped amount on usage-based billing for an [`AppSubscriptionLineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AppSubscriptionLineItem). + * Enables you to modify the maximum charge limit that prevents merchants from + * exceeding a specified threshold during their billing period. + * + * The mutation returns a [confirmation URL](https://shopify.dev/docs/api/admin-graphql/latest/mutations/appSubscriptionCreate#returns-confirmationUrl) + * where the merchant must approve the new pricing limit before it takes effect. + * Use this when adjusting usage limits based on merchant needs or changing + * pricing models. + * + * Learn more about [updating the maximum charge for a subscription](https://shopify.dev/docs/apps/launch/billing/subscription-billing/update-max-charge). */ public class AppSubscriptionLineItemUpdateGraphQLQuery extends GraphQLQuery { public AppSubscriptionLineItemUpdateGraphQLQuery(String id, MoneyInput cappedAmount, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppSubscriptionTrialExtendGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppSubscriptionTrialExtendGraphQLQuery.java index a787c37a..d360da8c 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppSubscriptionTrialExtendGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppSubscriptionTrialExtendGraphQLQuery.java @@ -7,7 +7,14 @@ import java.util.Set; /** - * Extends the trial of an app subscription. + * Extends the trial period for an existing app subscription. Trial extensions + * give merchants additional time to use the app before committing to paid billing. + * + * Requires the subscription ID and the number of days to extend (between one and + * 1000). The extension modifies the existing trial end date, allowing continued + * access to subscription features without immediate billing. Returns the updated [`AppSubscription`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AppSubscription). + * + * Learn more about [offering free trials](https://shopify.dev/docs/apps/launch/billing/offer-free-trials). */ public class AppSubscriptionTrialExtendGraphQLQuery extends GraphQLQuery { public AppSubscriptionTrialExtendGraphQLQuery(String id, int days, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyPaymentsVerificationStatusProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppUninstallAppUninstallErrorCodeProjection.java similarity index 54% rename from mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyPaymentsVerificationStatusProjection.java rename to mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppUninstallAppUninstallErrorCodeProjection.java index 31736dc0..b26fc470 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyPaymentsVerificationStatusProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppUninstallAppUninstallErrorCodeProjection.java @@ -2,12 +2,12 @@ import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; -public class ShopifyPaymentsVerificationStatusProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { - public ShopifyPaymentsVerificationStatusProjection(PARENT parent, ROOT root) { - super(parent, root, java.util.Optional.of("ShopifyPaymentsVerificationStatus")); +public class AppUninstallAppUninstallErrorCodeProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public AppUninstallAppUninstallErrorCodeProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("AppUninstallAppUninstallErrorCode")); } - public ShopifyPaymentsVerificationStatusProjection __typename() { + public AppUninstallAppUninstallErrorCodeProjection __typename() { getFields().put("__typename", null); return this; } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppUninstallAppUninstallErrorProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppUninstallAppUninstallErrorProjection.java new file mode 100644 index 00000000..39d90d4c --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppUninstallAppUninstallErrorProjection.java @@ -0,0 +1,31 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class AppUninstallAppUninstallErrorProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public AppUninstallAppUninstallErrorProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("AppUninstallAppUninstallError")); + } + + public AppUninstallAppUninstallErrorProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public AppUninstallAppUninstallErrorCodeProjection, ROOT> code( + ) { + AppUninstallAppUninstallErrorCodeProjection, ROOT> projection = new AppUninstallAppUninstallErrorCodeProjection<>(this, getRoot()); + getFields().put("code", projection); + return projection; + } + + public AppUninstallAppUninstallErrorProjection field() { + getFields().put("field", null); + return this; + } + + public AppUninstallAppUninstallErrorProjection message() { + getFields().put("message", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppUninstallGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppUninstallGraphQLQuery.java new file mode 100644 index 00000000..e787637c --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppUninstallGraphQLQuery.java @@ -0,0 +1,57 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import java.lang.Override; +import java.lang.String; +import java.util.HashSet; +import java.util.Set; + +/** + * Uninstalls an [`App`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App) from + * a shop. Apps use this mutation to uninstall themselves programmatically, removing their [`AppInstallation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AppInstallation) + * from the merchant's store. + * + * When an app uninstalls, Shopify automatically performs cleanup tasks, such as deleting [`WebhookSubscription`](https://shopify.dev/docs/api/admin-graphql/latest/objects/WebhookSubscription) + * objects and [admin + * links](https://shopify.dev/docs/apps/build/admin/admin-links) associated with the app. + * + * Learn more about [app lifecycle management](https://shopify.dev/docs/apps/build/authentication-authorization/app-installation/uninstall-app-api-request). + * + * > Caution: + * > This action is irreversible. You can't restore an uninstalled app's + * configuration or data. Before you uninstall an app, make sure that you no + * longer need to make API calls for the store in which the app has been installed. + */ +public class AppUninstallGraphQLQuery extends GraphQLQuery { + public AppUninstallGraphQLQuery(String queryName) { + super("mutation", queryName); + } + + public AppUninstallGraphQLQuery() { + super("mutation"); + } + + @Override + public String getOperationName() { + return "appUninstall"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private String queryName; + + public AppUninstallGraphQLQuery build() { + return new AppUninstallGraphQLQuery(queryName); + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppUninstallProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppUninstallProjectionRoot.java new file mode 100644 index 00000000..7f4c0d1e --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppUninstallProjectionRoot.java @@ -0,0 +1,28 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class AppUninstallProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public AppUninstallProjectionRoot() { + super(null, null, java.util.Optional.of("AppUninstallPayload")); + } + + public AppUninstallProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public AppProjection, AppUninstallProjectionRoot> app( + ) { + AppProjection, AppUninstallProjectionRoot> projection = new AppProjection<>(this, this); + getFields().put("app", projection); + return projection; + } + + public AppUninstallAppUninstallErrorProjection, AppUninstallProjectionRoot> userErrors( + ) { + AppUninstallAppUninstallErrorProjection, AppUninstallProjectionRoot> projection = new AppUninstallAppUninstallErrorProjection<>(this, this); + getFields().put("userErrors", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppUsageRecordCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppUsageRecordCreateGraphQLQuery.java index 4cbb1259..fadf4af0 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppUsageRecordCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AppUsageRecordCreateGraphQLQuery.java @@ -8,12 +8,18 @@ import java.util.Set; /** - * Enables an app to charge a store for features or services on a per-use basis. - * The usage charge value is counted towards the `cappedAmount` limit that was - * specified in the `appUsagePricingDetails` field when the app subscription was created. - * If you create an app usage charge that causes the total usage charges in a - * billing interval to exceed the capped amount, then a `Total price exceeds - * balance remaining` error is returned. + * Creates a usage charge for an app subscription with usage-based pricing. The + * charge counts toward the capped amount limit set when creating the subscription. + * + * Usage records track consumption of app features or services on a per-use + * basis. You provide the charge amount, a description of what you consumed, and + * the subscription line item ID. The optional [`idempotencyKey`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AppUsageRecord#field-idempotencyKey) + * parameter prevents duplicate charges if you send the same request multiple times. + * + * If the new charge would cause total usage charges in the current billing + * interval to exceed the capped amount, then the mutation returns an error. + * + * Learn more about [creating usage-based subscriptions](https://shopify.dev/docs/apps/launch/billing/subscription-billing/create-usage-based-subscriptions). */ public class AppUsageRecordCreateGraphQLQuery extends GraphQLQuery { public AppUsageRecordCreateGraphQLQuery(String subscriptionLineItemId, MoneyInput price, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ArticleCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ArticleCreateGraphQLQuery.java index dbe7b434..92555c7e 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ArticleCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ArticleCreateGraphQLQuery.java @@ -9,7 +9,14 @@ import java.util.Set; /** - * Creates an article. + * Creates an [`Article`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Article). Articles are content pieces that include a title, body text, and author information. + * + * You can publish the article immediately or schedule it with a specific publish + * date. You can customize the article's URL handle, apply custom templates for + * rendering, and add optional fields like [tags](https://shopify.dev/docs/api/admin-graphql/latest/mutations/articleCreate#arguments-article.fields.tags), an [image](https://shopify.dev/docs/api/admin-graphql/latest/mutations/articleCreate#arguments-article.fields.image), and [`Metafield`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Metafield) objects. + * + * The mutation validates article content and ensures proper blog association. + * Error handling provides specific feedback for content requirements. */ public class ArticleCreateGraphQLQuery extends GraphQLQuery { public ArticleCreateGraphQLQuery(ArticleCreateInput article, ArticleBlogInput blog, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ArticleDeleteGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ArticleDeleteGraphQLQuery.java index 30cf5b6e..c6aa87b4 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ArticleDeleteGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ArticleDeleteGraphQLQuery.java @@ -7,7 +7,17 @@ import java.util.Set; /** - * Deletes an article. + * Permanently deletes a blog article from a shop's blog. This mutation removes the article and all associated metadata. + * + * For example, when outdated product information or seasonal content needs + * removal, merchants can use this mutation to clean up their blog. + * + * Use the `articleDelete` mutation to: + * - Remove outdated or incorrect blog content + * - Clean up seasonal or time-sensitive articles + * - Maintain blog organization + * + * The deletion is permanent and returns the deleted article's ID for confirmation. */ public class ArticleDeleteGraphQLQuery extends GraphQLQuery { public ArticleDeleteGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ArticleFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ArticleFragmentProjection.java index 2e18f186..0bf2115d 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ArticleFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ArticleFragmentProjection.java @@ -69,13 +69,15 @@ public CountProjection, ROOT> commentsCo return projection; } - public CountProjection, ROOT> commentsCount( - String query) { + public CountProjection, ROOT> commentsCount(String query, + Integer limit) { CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); getFields().put("commentsCount", projection); getInputArguments().computeIfAbsent("commentsCount", k -> new ArrayList<>()); InputArgument queryArg = new InputArgument("query", query); getInputArguments().get("commentsCount").add(queryArg); + InputArgument limitArg = new InputArgument("limit", limit); + getInputArguments().get("commentsCount").add(limitArg); return projection; } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ArticleGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ArticleGraphQLQuery.java index e2a576f9..369f81a6 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ArticleGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ArticleGraphQLQuery.java @@ -7,7 +7,7 @@ import java.util.Set; /** - * Returns an Article resource by ID. + * Returns a `Article` resource by ID. */ public class ArticleGraphQLQuery extends GraphQLQuery { public ArticleGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ArticleProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ArticleProjection.java index 526e86c6..7ddeb82f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ArticleProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ArticleProjection.java @@ -64,12 +64,15 @@ public CountProjection, ROOT> commentsCount() { return projection; } - public CountProjection, ROOT> commentsCount(String query) { + public CountProjection, ROOT> commentsCount(String query, + Integer limit) { CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); getFields().put("commentsCount", projection); getInputArguments().computeIfAbsent("commentsCount", k -> new ArrayList<>()); InputArgument queryArg = new InputArgument("query", query); getInputArguments().get("commentsCount").add(queryArg); + InputArgument limitArg = new InputArgument("limit", limit); + getInputArguments().get("commentsCount").add(limitArg); return projection; } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ArticleProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ArticleProjectionRoot.java index 4d24d9d7..d862fd7d 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ArticleProjectionRoot.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ArticleProjectionRoot.java @@ -69,12 +69,14 @@ public CountProjection, ArticleProjectionRoo } public CountProjection, ArticleProjectionRoot> commentsCount( - String query) { + String query, Integer limit) { CountProjection, ArticleProjectionRoot> projection = new CountProjection<>(this, this); getFields().put("commentsCount", projection); getInputArguments().computeIfAbsent("commentsCount", k -> new ArrayList<>()); InputArgument queryArg = new InputArgument("query", query); getInputArguments().get("commentsCount").add(queryArg); + InputArgument limitArg = new InputArgument("limit", limit); + getInputArguments().get("commentsCount").add(limitArg); return projection; } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ArticleUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ArticleUpdateGraphQLQuery.java index 9e1dd5b9..471d0d8a 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ArticleUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ArticleUpdateGraphQLQuery.java @@ -9,7 +9,12 @@ import java.util.Set; /** - * Updates an article. + * Updates an existing [`Article`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Article). + * You can modify the article's content, metadata, publication status, and + * associated properties like author information and tags. + * + * If you update the [`handle`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/articleUpdate#arguments-article.fields.handle), + * then you can optionally create a redirect from the old URL to the new one by setting [`redirectNewHandle`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/articleUpdate#arguments-article.fields.redirectNewHandle) to `true`. */ public class ArticleUpdateGraphQLQuery extends GraphQLQuery { public ArticleUpdateGraphQLQuery(String id, ArticleUpdateInput article, ArticleBlogInput blog, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ArticlesGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ArticlesGraphQLQuery.java index adeb77e0..1e390453 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ArticlesGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ArticlesGraphQLQuery.java @@ -10,7 +10,14 @@ import java.util.Set; /** - * List of the shop's articles. + * Returns a paginated list of articles from the shop's blogs. + * [`Article`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Article) + * objects are blog posts that contain content like text, images, and tags. + * + * Supports [cursor-based + * pagination](https://shopify.dev/docs/api/usage/pagination-graphql) to control + * the number of articles returned and their order. Use the [`query`](https://shopify.dev/docs/api/admin-graphql/latest/queries/articles#arguments-query) + * argument to filter results by specific criteria. */ public class ArticlesGraphQLQuery extends GraphQLQuery { public ArticlesGraphQLQuery(Integer first, String after, Integer last, String before, @@ -149,6 +156,7 @@ public Builder sortKey(ArticleSortKeys sortKey) { * | published_status | string | Filter by published status | * | tag | string | Filter objects by the `tag` field. | | | - `tag:my_tag` | * | tag_not | string | Filter by objects that don’t have the specified tag. | | | - `tag_not:my_tag` | + * | title | string | Filter by the title of the article. | | | - `title:summer-collection`
- `title:green hoodie` | * | updated_at | time | Filter by the date and time when the article was last * updated. | | | - `updated_at:>'2020-10-21T23:39:20Z'`
- * `updated_at:<now`
- `updated_at:<=2024` | diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AutomaticDiscountGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AutomaticDiscountGraphQLQuery.java index 87f1075e..129e4a84 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AutomaticDiscountGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AutomaticDiscountGraphQLQuery.java @@ -7,7 +7,7 @@ import java.util.Set; /** - * Returns an automatic discount resource by ID. + * Returns a `DiscountAutomatic` resource by ID. */ public class AutomaticDiscountGraphQLQuery extends GraphQLQuery { public AutomaticDiscountGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AutomaticDiscountNodeGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AutomaticDiscountNodeGraphQLQuery.java index 6ca6b56a..86e10f92 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AutomaticDiscountNodeGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AutomaticDiscountNodeGraphQLQuery.java @@ -7,7 +7,7 @@ import java.util.Set; /** - * Returns an automatic discount resource by ID. + * Returns a `DiscountAutomaticNode` resource by ID. */ public class AutomaticDiscountNodeGraphQLQuery extends GraphQLQuery { public AutomaticDiscountNodeGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AutomaticDiscountsGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AutomaticDiscountsGraphQLQuery.java index 6a39bb78..3224e1b5 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AutomaticDiscountsGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AutomaticDiscountsGraphQLQuery.java @@ -10,7 +10,7 @@ import java.util.Set; /** - * List of automatic discounts. + * Returns a list of automatic discounts that are applied in the cart and at checkout without requiring a discount code. */ public class AutomaticDiscountsGraphQLQuery extends GraphQLQuery { public AutomaticDiscountsGraphQLQuery(Integer first, String after, Integer last, String before, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AvailableBackupRegionsGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AvailableBackupRegionsGraphQLQuery.java index 9c09dbaa..a0950ac5 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AvailableBackupRegionsGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AvailableBackupRegionsGraphQLQuery.java @@ -7,7 +7,10 @@ import java.util.Set; /** - * The regions that can be used as the backup region of the shop. + * The geographic regions that you can set as the + * [`Shop`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Shop)'s + * backup region. The backup region serves as a fallback when the system can't + * determine a buyer's actual location. */ public class AvailableBackupRegionsGraphQLQuery extends GraphQLQuery { public AvailableBackupRegionsGraphQLQuery(String queryName) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AvailableLocalesGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AvailableLocalesGraphQLQuery.java index 12f9d28f..1a1e737c 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AvailableLocalesGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/AvailableLocalesGraphQLQuery.java @@ -7,7 +7,10 @@ import java.util.Set; /** - * A list of available locales. + * Returns all locales that Shopify supports. Each + * [`Locale`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Locale) + * includes an ISO code and human-readable name. Use this query to discover which + * locales you can enable on a shop with the [`shopLocaleEnable`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/shopLocaleEnable) mutation. */ public class AvailableLocalesGraphQLQuery extends GraphQLQuery { public AvailableLocalesGraphQLQuery(String queryName) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BankAccountFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BankAccountFragmentProjection.java new file mode 100644 index 00000000..5b6cb911 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BankAccountFragmentProjection.java @@ -0,0 +1,66 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; +import java.lang.Override; +import java.lang.String; + +public class BankAccountFragmentProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + { + getFields().put("__typename", null); + } + + public BankAccountFragmentProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("BankAccount")); + } + + public BankAccountFragmentProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public BankAccountHolderTypeProjection, ROOT> accountHolderType( + ) { + BankAccountHolderTypeProjection, ROOT> projection = new BankAccountHolderTypeProjection<>(this, getRoot()); + getFields().put("accountHolderType", projection); + return projection; + } + + public BankAccountTypeProjection, ROOT> accountType( + ) { + BankAccountTypeProjection, ROOT> projection = new BankAccountTypeProjection<>(this, getRoot()); + getFields().put("accountType", projection); + return projection; + } + + public CustomerPaymentInstrumentBillingAddressProjection, ROOT> billingAddress( + ) { + CustomerPaymentInstrumentBillingAddressProjection, ROOT> projection = new CustomerPaymentInstrumentBillingAddressProjection<>(this, getRoot()); + getFields().put("billingAddress", projection); + return projection; + } + + public BankAccountFragmentProjection bankName() { + getFields().put("bankName", null); + return this; + } + + public BankAccountFragmentProjection lastDigits() { + getFields().put("lastDigits", null); + return this; + } + + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + builder.append("... on BankAccount {"); + getFields().forEach((k, v) -> { + builder.append(" ").append(k); + if(v != null) { + builder.append(" ").append(v.toString()); + } + }); + builder.append("}"); + + return builder.toString(); + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BankAccountHolderTypeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BankAccountHolderTypeProjection.java new file mode 100644 index 00000000..8274e212 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BankAccountHolderTypeProjection.java @@ -0,0 +1,14 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class BankAccountHolderTypeProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public BankAccountHolderTypeProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("BankAccountHolderType")); + } + + public BankAccountHolderTypeProjection __typename() { + getFields().put("__typename", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BankAccountTypeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BankAccountTypeProjection.java new file mode 100644 index 00000000..1a90957f --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BankAccountTypeProjection.java @@ -0,0 +1,14 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class BankAccountTypeProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public BankAccountTypeProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("BankAccountType")); + } + + public BankAccountTypeProjection __typename() { + getFields().put("__typename", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BasicEventFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BasicEventFragmentProjection.java index aaf938ff..83604c79 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BasicEventFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BasicEventFragmentProjection.java @@ -66,6 +66,11 @@ public BasicEventFragmentProjection attributeToUser() { return this; } + public BasicEventFragmentProjection author() { + getFields().put("author", null); + return this; + } + public BasicEventFragmentProjection createdAt() { getFields().put("createdAt", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BlogCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BlogCreateGraphQLQuery.java index 7a7a1d73..23b8d902 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BlogCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BlogCreateGraphQLQuery.java @@ -8,7 +8,18 @@ import java.util.Set; /** - * Creates a blog. + * Creates a new blog within a shop, establishing a container for organizing articles. + * + * For example, a fitness equipment retailer launching a wellness blog would use + * this mutation to create the blog, enabling them to publish workout guides and + * nutrition tips. + * + * Use the `blogCreate` mutation to: + * - Launch new content marketing initiatives + * - Create separate blogs for different content themes + * - Establish spaces for article organization + * + * The mutation validates blog settings and establishes the structure for article publishing. */ public class BlogCreateGraphQLQuery extends GraphQLQuery { public BlogCreateGraphQLQuery(BlogCreateInput blog, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BlogDeleteGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BlogDeleteGraphQLQuery.java index 0314da45..d2459566 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BlogDeleteGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BlogDeleteGraphQLQuery.java @@ -7,7 +7,17 @@ import java.util.Set; /** - * Deletes a blog. + * Permanently deletes a blog from a shop. This mutation removes the blog container and its organizational structure. + * + * For example, when consolidating multiple seasonal blogs into a single + * year-round content strategy, merchants can use this mutation to remove unused blogs. + * + * Use the `blogDelete` mutation to: + * - Remove unused or outdated blogs + * - Consolidate content organization + * - Clean up blog structure + * + * The deletion is permanent and returns the deleted blog's ID for confirmation. */ public class BlogDeleteGraphQLQuery extends GraphQLQuery { public BlogDeleteGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BlogFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BlogFragmentProjection.java index 6b77a1f6..dfecab78 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BlogFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BlogFragmentProjection.java @@ -55,6 +55,15 @@ public CountProjection, ROOT> articlesCount return projection; } + public CountProjection, ROOT> articlesCount(Integer limit) { + CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); + getFields().put("articlesCount", projection); + getInputArguments().computeIfAbsent("articlesCount", k -> new ArrayList<>()); + InputArgument limitArg = new InputArgument("limit", limit); + getInputArguments().get("articlesCount").add(limitArg); + return projection; + } + public CommentPolicyProjection, ROOT> commentPolicy() { CommentPolicyProjection, ROOT> projection = new CommentPolicyProjection<>(this, getRoot()); getFields().put("commentPolicy", projection); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BlogGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BlogGraphQLQuery.java index 7a5e0e8c..c1ba4db2 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BlogGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BlogGraphQLQuery.java @@ -7,7 +7,7 @@ import java.util.Set; /** - * Returns a Blog resource by ID. + * Returns a `Blog` resource by ID. */ public class BlogGraphQLQuery extends GraphQLQuery { public BlogGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BlogProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BlogProjection.java index e6917cf4..700d4865 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BlogProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BlogProjection.java @@ -50,6 +50,15 @@ public CountProjection, ROOT> articlesCount() { return projection; } + public CountProjection, ROOT> articlesCount(Integer limit) { + CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); + getFields().put("articlesCount", projection); + getInputArguments().computeIfAbsent("articlesCount", k -> new ArrayList<>()); + InputArgument limitArg = new InputArgument("limit", limit); + getInputArguments().get("articlesCount").add(limitArg); + return projection; + } + public CommentPolicyProjection, ROOT> commentPolicy() { CommentPolicyProjection, ROOT> projection = new CommentPolicyProjection<>(this, getRoot()); getFields().put("commentPolicy", projection); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BlogProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BlogProjectionRoot.java index 174fcb86..d0f1c521 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BlogProjectionRoot.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BlogProjectionRoot.java @@ -52,6 +52,16 @@ public CountProjection, BlogProjectionRoot, BlogProjectionRoot> articlesCount( + Integer limit) { + CountProjection, BlogProjectionRoot> projection = new CountProjection<>(this, this); + getFields().put("articlesCount", projection); + getInputArguments().computeIfAbsent("articlesCount", k -> new ArrayList<>()); + InputArgument limitArg = new InputArgument("limit", limit); + getInputArguments().get("articlesCount").add(limitArg); + return projection; + } + public CommentPolicyProjection, BlogProjectionRoot> commentPolicy( ) { CommentPolicyProjection, BlogProjectionRoot> projection = new CommentPolicyProjection<>(this, this); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BlogUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BlogUpdateGraphQLQuery.java index 6b3a7df9..c92e4873 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BlogUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BlogUpdateGraphQLQuery.java @@ -8,7 +8,19 @@ import java.util.Set; /** - * Updates a blog. + * Updates an existing blog's configuration and settings. This mutation allows + * merchants to modify blog properties to keep their content strategy current. + * + * For example, a merchant might update their blog's title from "Company News" to + * "Sustainability Stories" when shifting their content focus, or modify the + * handle to improve URL structure. + * + * Use the `blogUpdate` mutation to: + * - Change blog titles for rebranding + * - Modify blog handles for better URLs + * - Adjust comment settings and moderation preferences + * + * The mutation returns the updated blog with any validation errors. */ public class BlogUpdateGraphQLQuery extends GraphQLQuery { public BlogUpdateGraphQLQuery(String id, BlogUpdateInput blog, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BlogsCountGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BlogsCountGraphQLQuery.java index 8652d581..5d6a87c1 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BlogsCountGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BlogsCountGraphQLQuery.java @@ -1,19 +1,23 @@ package com.shopify.admin.client; import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import java.lang.Integer; import java.lang.Override; import java.lang.String; import java.util.HashSet; import java.util.Set; /** - * Count of blogs. + * Count of blogs. Limited to a maximum of 10000 by default. */ public class BlogsCountGraphQLQuery extends GraphQLQuery { - public BlogsCountGraphQLQuery(String query, String queryName, Set fieldsSet) { + public BlogsCountGraphQLQuery(String query, Integer limit, String queryName, + Set fieldsSet) { super("query", queryName); if (query != null || fieldsSet.contains("query")) { getInput().put("query", query); + }if (limit != null || fieldsSet.contains("limit")) { + getInput().put("limit", limit); } } @@ -35,10 +39,12 @@ public static class Builder { private String query; + private Integer limit; + private String queryName; public BlogsCountGraphQLQuery build() { - return new BlogsCountGraphQLQuery(query, queryName, fieldsSet); + return new BlogsCountGraphQLQuery(query, limit, queryName, fieldsSet); } @@ -62,6 +68,15 @@ public Builder query(String query) { return this; } + /** + * The upper bound on count value before returning a result. Use `null` to have no limit. + */ + public Builder limit(Integer limit) { + this.limit = limit; + this.fieldsSet.add("limit"); + return this; + } + public Builder queryName(String queryName) { this.queryName = queryName; return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BlogsGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BlogsGraphQLQuery.java index 1053ba58..19cf2dc5 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BlogsGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BlogsGraphQLQuery.java @@ -10,7 +10,16 @@ import java.util.Set; /** - * List of the shop's blogs. + * Returns a paginated list of the shop's + * [`Blog`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Blog) + * objects. Blogs serve as containers for + * [`Article`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Article) + * objects and provide content management capabilities for the store's editorial content. + * + * Supports [cursor-based + * pagination](https://shopify.dev/docs/api/usage/pagination-graphql) to control + * the number of blogs returned and their order. Use the [`query`](https://shopify.dev/docs/api/admin-graphql/latest/queries/blogs#arguments-query) + * argument to filter results by specific criteria. */ public class BlogsGraphQLQuery extends GraphQLQuery { public BlogsGraphQLQuery(Integer first, String after, Integer last, String before, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BulkOperationConnectionProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BulkOperationConnectionProjection.java new file mode 100644 index 00000000..e9c0b271 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BulkOperationConnectionProjection.java @@ -0,0 +1,33 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class BulkOperationConnectionProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public BulkOperationConnectionProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("BulkOperationConnection")); + } + + public BulkOperationConnectionProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public BulkOperationEdgeProjection, ROOT> edges( + ) { + BulkOperationEdgeProjection, ROOT> projection = new BulkOperationEdgeProjection<>(this, getRoot()); + getFields().put("edges", projection); + return projection; + } + + public BulkOperationProjection, ROOT> nodes() { + BulkOperationProjection, ROOT> projection = new BulkOperationProjection<>(this, getRoot()); + getFields().put("nodes", projection); + return projection; + } + + public PageInfoProjection, ROOT> pageInfo() { + PageInfoProjection, ROOT> projection = new PageInfoProjection<>(this, getRoot()); + getFields().put("pageInfo", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BulkOperationEdgeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BulkOperationEdgeProjection.java new file mode 100644 index 00000000..af4ae710 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BulkOperationEdgeProjection.java @@ -0,0 +1,25 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class BulkOperationEdgeProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public BulkOperationEdgeProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("BulkOperationEdge")); + } + + public BulkOperationEdgeProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public BulkOperationProjection, ROOT> node() { + BulkOperationProjection, ROOT> projection = new BulkOperationProjection<>(this, getRoot()); + getFields().put("node", projection); + return projection; + } + + public BulkOperationEdgeProjection cursor() { + getFields().put("cursor", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BulkOperationGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BulkOperationGraphQLQuery.java new file mode 100644 index 00000000..dc8cf5c5 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BulkOperationGraphQLQuery.java @@ -0,0 +1,59 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import java.lang.Override; +import java.lang.String; +import java.util.HashSet; +import java.util.Set; + +/** + * Returns a `BulkOperation` resource by ID. + */ +public class BulkOperationGraphQLQuery extends GraphQLQuery { + public BulkOperationGraphQLQuery(String id, String queryName, Set fieldsSet) { + super("query", queryName); + if (id != null || fieldsSet.contains("id")) { + getInput().put("id", id); + } + } + + public BulkOperationGraphQLQuery() { + super("query"); + } + + @Override + public String getOperationName() { + return "bulkOperation"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private String id; + + private String queryName; + + public BulkOperationGraphQLQuery build() { + return new BulkOperationGraphQLQuery(id, queryName, fieldsSet); + + } + + /** + * The ID of the `BulkOperation` to return. + */ + public Builder id(String id) { + this.id = id; + this.fieldsSet.add("id"); + return this; + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BulkOperationProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BulkOperationProjectionRoot.java new file mode 100644 index 00000000..cb59a497 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BulkOperationProjectionRoot.java @@ -0,0 +1,80 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class BulkOperationProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public BulkOperationProjectionRoot() { + super(null, null, java.util.Optional.of("BulkOperation")); + } + + public BulkOperationProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public BulkOperationErrorCodeProjection, BulkOperationProjectionRoot> errorCode( + ) { + BulkOperationErrorCodeProjection, BulkOperationProjectionRoot> projection = new BulkOperationErrorCodeProjection<>(this, this); + getFields().put("errorCode", projection); + return projection; + } + + public BulkOperationStatusProjection, BulkOperationProjectionRoot> status( + ) { + BulkOperationStatusProjection, BulkOperationProjectionRoot> projection = new BulkOperationStatusProjection<>(this, this); + getFields().put("status", projection); + return projection; + } + + public BulkOperationTypeProjection, BulkOperationProjectionRoot> type( + ) { + BulkOperationTypeProjection, BulkOperationProjectionRoot> projection = new BulkOperationTypeProjection<>(this, this); + getFields().put("type", projection); + return projection; + } + + public BulkOperationProjectionRoot completedAt() { + getFields().put("completedAt", null); + return this; + } + + public BulkOperationProjectionRoot createdAt() { + getFields().put("createdAt", null); + return this; + } + + public BulkOperationProjectionRoot fileSize() { + getFields().put("fileSize", null); + return this; + } + + public BulkOperationProjectionRoot id() { + getFields().put("id", null); + return this; + } + + public BulkOperationProjectionRoot objectCount() { + getFields().put("objectCount", null); + return this; + } + + public BulkOperationProjectionRoot partialDataUrl() { + getFields().put("partialDataUrl", null); + return this; + } + + public BulkOperationProjectionRoot query() { + getFields().put("query", null); + return this; + } + + public BulkOperationProjectionRoot rootObjectCount() { + getFields().put("rootObjectCount", null); + return this; + } + + public BulkOperationProjectionRoot url() { + getFields().put("url", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BulkOperationRunMutationGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BulkOperationRunMutationGraphQLQuery.java index 723478d4..14b89bcc 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BulkOperationRunMutationGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BulkOperationRunMutationGraphQLQuery.java @@ -7,10 +7,17 @@ import java.util.Set; /** - * Creates and runs a bulk operation mutation. + * Creates and runs a [bulk operation](https://shopify.dev/docs/api/admin-graphql/latest/objects/BulkOperation) + * to import data asynchronously. This mutation executes a specified GraphQL + * mutation multiple times using input data from a [JSONL](http://jsonlines.org/) + * file that you've uploaded to Shopify. * - * To learn how to bulk import large volumes of data asynchronously, refer to the - * [bulk import data guide](https://shopify.dev/api/usage/bulk-operations/imports). + * The operation processes each line in your JSONL file as a separate mutation + * execution. The operation delivers results in a JSONL file when it completes. + * You can run one bulk mutation operation at a time per shop, though a [`bulkOperationRunQuery`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/bulkoperationrunquery) + * operation can run simultaneously. + * + * Learn more about [bulk importing data](https://shopify.dev/docs/api/usage/bulk-operations/imports). */ public class BulkOperationRunMutationGraphQLQuery extends GraphQLQuery { public BulkOperationRunMutationGraphQLQuery(String mutation, String stagedUploadPath, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BulkOperationRunQueryGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BulkOperationRunQueryGraphQLQuery.java index 80a2ace0..71ff2717 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BulkOperationRunQueryGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BulkOperationRunQueryGraphQLQuery.java @@ -7,16 +7,25 @@ import java.util.Set; /** - * Creates and runs a bulk operation query. + * Creates and runs a [bulk operation](https://shopify.dev/docs/api/admin-graphql/latest/objects/BulkOperation) + * to fetch data asynchronously. The operation processes your GraphQL query in + * the background and returns results in a [JSONL](http://jsonlines.org/) file when complete. * - * See the [bulk operations guide](https://shopify.dev/api/usage/bulk-operations/queries) for more details. + * Apps can run one bulk query operation and one bulk mutation operation at a + * time per shop. The query must include at least one connection field and + * supports up to five connections with a maximum nesting depth of two levels. + * + * > Note: Results remain available for seven days after completion. + * + * For more information, see the [bulk operations guide](https://shopify.dev/docs/api/usage/bulk-operations/queries). */ public class BulkOperationRunQueryGraphQLQuery extends GraphQLQuery { - public BulkOperationRunQueryGraphQLQuery(String query, String queryName, Set fieldsSet) { + public BulkOperationRunQueryGraphQLQuery(String query, boolean groupObjects, String queryName, + Set fieldsSet) { super("mutation", queryName); if (query != null || fieldsSet.contains("query")) { getInput().put("query", query); - } + }getInput().put("groupObjects", groupObjects); } public BulkOperationRunQueryGraphQLQuery() { @@ -37,10 +46,12 @@ public static class Builder { private String query; + private boolean groupObjects; + private String queryName; public BulkOperationRunQueryGraphQLQuery build() { - return new BulkOperationRunQueryGraphQLQuery(query, queryName, fieldsSet); + return new BulkOperationRunQueryGraphQLQuery(query, groupObjects, queryName, fieldsSet); } @@ -53,6 +64,18 @@ public Builder query(String query) { return this; } + /** + * Enables grouping objects directly under their corresponding parent objects + * in the JSONL output. Enabling grouping slows down bulk operations and + * increases the likelihood of timeouts. Only enable grouping if you depend on + * the grouped format. + */ + public Builder groupObjects(boolean groupObjects) { + this.groupObjects = groupObjects; + this.fieldsSet.add("groupObjects"); + return this; + } + public Builder queryName(String queryName) { this.queryName = queryName; return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BulkOperationsGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BulkOperationsGraphQLQuery.java new file mode 100644 index 00000000..0236a1c2 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BulkOperationsGraphQLQuery.java @@ -0,0 +1,153 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import com.shopify.admin.types.BulkOperationsSortKeys; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.Override; +import java.lang.String; +import java.util.HashSet; +import java.util.Set; + +/** + * Returns the app's bulk operations meeting the specified filters. Defaults to + * sorting by created_at, with newest operations first. + */ +public class BulkOperationsGraphQLQuery extends GraphQLQuery { + public BulkOperationsGraphQLQuery(Integer first, String after, Integer last, String before, + Boolean reverse, BulkOperationsSortKeys sortKey, String query, String queryName, + Set fieldsSet) { + super("query", queryName); + if (first != null || fieldsSet.contains("first")) { + getInput().put("first", first); + }if (after != null || fieldsSet.contains("after")) { + getInput().put("after", after); + }if (last != null || fieldsSet.contains("last")) { + getInput().put("last", last); + }if (before != null || fieldsSet.contains("before")) { + getInput().put("before", before); + }if (reverse != null || fieldsSet.contains("reverse")) { + getInput().put("reverse", reverse); + }if (sortKey != null || fieldsSet.contains("sortKey")) { + getInput().put("sortKey", sortKey); + }if (query != null || fieldsSet.contains("query")) { + getInput().put("query", query); + } + } + + public BulkOperationsGraphQLQuery() { + super("query"); + } + + @Override + public String getOperationName() { + return "bulkOperations"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private Integer first; + + private String after; + + private Integer last; + + private String before; + + private Boolean reverse; + + private BulkOperationsSortKeys sortKey; + + private String query; + + private String queryName; + + public BulkOperationsGraphQLQuery build() { + return new BulkOperationsGraphQLQuery(first, after, last, before, reverse, sortKey, query, queryName, fieldsSet); + + } + + /** + * The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + */ + public Builder first(Integer first) { + this.first = first; + this.fieldsSet.add("first"); + return this; + } + + /** + * The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + */ + public Builder after(String after) { + this.after = after; + this.fieldsSet.add("after"); + return this; + } + + /** + * The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + */ + public Builder last(Integer last) { + this.last = last; + this.fieldsSet.add("last"); + return this; + } + + /** + * The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + */ + public Builder before(String before) { + this.before = before; + this.fieldsSet.add("before"); + return this; + } + + /** + * Reverse the order of the underlying list. + */ + public Builder reverse(Boolean reverse) { + this.reverse = reverse; + this.fieldsSet.add("reverse"); + return this; + } + + /** + * Sort the underlying list using a key. If your query is slow or returns an + * error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). + */ + public Builder sortKey(BulkOperationsSortKeys sortKey) { + this.sortKey = sortKey; + this.fieldsSet.add("sortKey"); + return this; + } + + /** + * A filter made up of terms, connectives, modifiers, and comparators. + * | name | type | description | acceptable_values | default_value | example_use | + * | ---- | ---- | ---- | ---- | ---- | ---- | + * | created_at | time | Filter operations created after a specific date. | + * | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | + * | operation_type | string | Filter operations by type. | - `query`
- `mutation` | + * | status | string | Filter operations by status. | - `canceled`
- + * `canceling`
- `completed`
- `created`
- `failed`
- `running` | + * You can apply one or more filters to a query. Learn more about [Shopify API + * search syntax](https://shopify.dev/api/usage/search-syntax). + */ + public Builder query(String query) { + this.query = query; + this.fieldsSet.add("query"); + return this; + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BulkOperationsProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BulkOperationsProjectionRoot.java new file mode 100644 index 00000000..748e2b58 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BulkOperationsProjectionRoot.java @@ -0,0 +1,35 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class BulkOperationsProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public BulkOperationsProjectionRoot() { + super(null, null, java.util.Optional.of("BulkOperationConnection")); + } + + public BulkOperationsProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public BulkOperationEdgeProjection, BulkOperationsProjectionRoot> edges( + ) { + BulkOperationEdgeProjection, BulkOperationsProjectionRoot> projection = new BulkOperationEdgeProjection<>(this, this); + getFields().put("edges", projection); + return projection; + } + + public BulkOperationProjection, BulkOperationsProjectionRoot> nodes( + ) { + BulkOperationProjection, BulkOperationsProjectionRoot> projection = new BulkOperationProjection<>(this, this); + getFields().put("nodes", projection); + return projection; + } + + public PageInfoProjection, BulkOperationsProjectionRoot> pageInfo( + ) { + PageInfoProjection, BulkOperationsProjectionRoot> projection = new PageInfoProjection<>(this, this); + getFields().put("pageInfo", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BusinessEntitiesGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BusinessEntitiesGraphQLQuery.java index 98e6363a..7f24d4d8 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BusinessEntitiesGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BusinessEntitiesGraphQLQuery.java @@ -7,7 +7,16 @@ import java.util.Set; /** - * Returns a list of Business Entities associated with the shop. + * Returns the list of [business entities](https://shopify.dev/docs/api/admin-graphql/latest/objects/BusinessEntity) + * associated with the shop. Use this query to retrieve business entities for + * assigning to markets, managing payment providers per entity, or viewing entity + * attribution on orders. + * + * Each shop can have multiple business entities with one designated as primary. + * To identify the primary entity in the query results, set the [`primary`](https://shopify.dev/docs/api/admin-graphql/latest/queries/businessEntities#returns-BusinessEntity.fields.primary) + * field to `true`. + * + * Learn more about [managing multiple legal entities](https://shopify.dev/docs/apps/build/markets/multiple-entities). */ public class BusinessEntitiesGraphQLQuery extends GraphQLQuery { public BusinessEntitiesGraphQLQuery(String queryName) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BusinessEntitiesProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BusinessEntitiesProjectionRoot.java index 4a17b49a..4dc96786 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BusinessEntitiesProjectionRoot.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BusinessEntitiesProjectionRoot.java @@ -26,6 +26,11 @@ public ShopifyPaymentsAccountProjection archived() { + getFields().put("archived", null); + return this; + } + public BusinessEntitiesProjectionRoot companyName() { getFields().put("companyName", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BusinessEntityFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BusinessEntityFragmentProjection.java index 68d7b2c6..44a1bbc4 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BusinessEntityFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BusinessEntityFragmentProjection.java @@ -32,6 +32,11 @@ public ShopifyPaymentsAccountProjection archived() { + getFields().put("archived", null); + return this; + } + public BusinessEntityFragmentProjection companyName() { getFields().put("companyName", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BusinessEntityProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BusinessEntityProjection.java index 57f8a6d9..5013d8d5 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BusinessEntityProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BusinessEntityProjection.java @@ -25,6 +25,11 @@ public ShopifyPaymentsAccountProjection, return projection; } + public BusinessEntityProjection archived() { + getFields().put("archived", null); + return this; + } + public BusinessEntityProjection companyName() { getFields().put("companyName", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BusinessEntityProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BusinessEntityProjectionRoot.java index dc440bea..fe089644 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BusinessEntityProjectionRoot.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/BusinessEntityProjectionRoot.java @@ -26,6 +26,11 @@ public ShopifyPaymentsAccountProjection archived() { + getFields().put("archived", null); + return this; + } + public BusinessEntityProjectionRoot companyName() { getFields().put("companyName", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CarrierServiceCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CarrierServiceCreateGraphQLQuery.java index a919bf1c..32e8108b 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CarrierServiceCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CarrierServiceCreateGraphQLQuery.java @@ -8,7 +8,14 @@ import java.util.Set; /** - * Creates a new carrier service. + * Creates a carrier service that provides real-time shipping rates to Shopify. + * Carrier services provide real-time shipping rates from external providers like + * FedEx, UPS, or custom shipping solutions. The carrier service connects to your + * external shipping rate calculation system through a callback URL. + * + * When customers reach checkout, Shopify sends order details to your callback + * URL and displays the returned shipping rates. The service must be active to + * provide rates during checkout. */ public class CarrierServiceCreateGraphQLQuery extends GraphQLQuery { public CarrierServiceCreateGraphQLQuery(DeliveryCarrierServiceCreateInput input, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CarrierServiceGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CarrierServiceGraphQLQuery.java index 39347600..0089b4da 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CarrierServiceGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CarrierServiceGraphQLQuery.java @@ -7,7 +7,7 @@ import java.util.Set; /** - * Returns a `DeliveryCarrierService` object by ID. + * Returns a `DeliveryCarrierService` resource by ID. */ public class CarrierServiceGraphQLQuery extends GraphQLQuery { public CarrierServiceGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CarrierServicesGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CarrierServicesGraphQLQuery.java index 2b8a9555..d2bbca3d 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CarrierServicesGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CarrierServicesGraphQLQuery.java @@ -10,7 +10,10 @@ import java.util.Set; /** - * Retrieve a list of CarrierServices. + * A paginated list of carrier services configured for the shop. Carrier services + * provide real-time shipping rates from external providers like FedEx, UPS, or + * custom shipping solutions. Use the `query` parameter to filter results by + * attributes such as active status. */ public class CarrierServicesGraphQLQuery extends GraphQLQuery { public CarrierServicesGraphQLQuery(Integer first, String after, Integer last, String before, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CartTransformCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CartTransformCreateGraphQLQuery.java index 22d5cac2..e06daede 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CartTransformCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CartTransformCreateGraphQLQuery.java @@ -10,14 +10,43 @@ import java.util.Set; /** - * Create a CartTransform function to the Shop. + * Creates a cart transform function that lets merchants customize how products + * are bundled and presented during checkout. This gives merchants powerful + * control over their merchandising strategy by allowing apps to modify cart line + * items programmatically, supporting advanced approaches like dynamic bundles or + * personalized product recommendations. + * + * For example, a bundle app might create a cart transform that automatically + * groups related products (like a camera, lens, and case) into a single bundle + * line item when customers add them to their cart, complete with bundle pricing + * and unified presentation. + * + * Use `CartTransformCreate` to: + * - Deploy custom bundling logic to merchant stores + * - Enable dynamic product grouping during checkout + * - Implement personalized product recommendations + * - Create conditional offers based on cart contents + * - Support complex pricing strategies for product combinations + * + * The mutation processes synchronously and returns the created cart transform + * along with any validation errors. Once created, the cart transform function + * becomes active for the shop and will process cart modifications according to + * your defined logic. Cart transforms integrate with [Shopify + * Functions](https://shopify.dev/docs/api/functions) to provide powerful + * customization capabilities while maintaining checkout performance. + * + * Cart Transform functions can be configured to block checkout on failure or + * allow graceful degradation, giving you control over how errors are handled in + * the customer experience. + * + * Learn more about [customized bundles](https://shopify.dev/docs/apps/selling-strategies/bundles/add-a-customized-bundle). */ public class CartTransformCreateGraphQLQuery extends GraphQLQuery { - public CartTransformCreateGraphQLQuery(String functionId, Boolean blockOnFailure, + public CartTransformCreateGraphQLQuery(String functionHandle, Boolean blockOnFailure, List metafields, String queryName, Set fieldsSet) { super("mutation", queryName); - if (functionId != null || fieldsSet.contains("functionId")) { - getInput().put("functionId", functionId); + if (functionHandle != null || fieldsSet.contains("functionHandle")) { + getInput().put("functionHandle", functionHandle); }if (blockOnFailure != null || fieldsSet.contains("blockOnFailure")) { getInput().put("blockOnFailure", blockOnFailure); }if (metafields != null || fieldsSet.contains("metafields")) { @@ -41,7 +70,7 @@ public static Builder newRequest() { public static class Builder { private Set fieldsSet = new HashSet<>(); - private String functionId; + private String functionHandle; private Boolean blockOnFailure; @@ -50,16 +79,16 @@ public static class Builder { private String queryName; public CartTransformCreateGraphQLQuery build() { - return new CartTransformCreateGraphQLQuery(functionId, blockOnFailure, metafields, queryName, fieldsSet); + return new CartTransformCreateGraphQLQuery(functionHandle, blockOnFailure, metafields, queryName, fieldsSet); } /** - * The identifier of the Function providing the cart transform. + * The handle of the Function providing the cart transform. */ - public Builder functionId(String functionId) { - this.functionId = functionId; - this.fieldsSet.add("functionId"); + public Builder functionHandle(String functionHandle) { + this.functionHandle = functionHandle; + this.fieldsSet.add("functionHandle"); return this; } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CartTransformDeleteGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CartTransformDeleteGraphQLQuery.java index 3e09423b..e4a38d3c 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CartTransformDeleteGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CartTransformDeleteGraphQLQuery.java @@ -7,7 +7,33 @@ import java.util.Set; /** - * Destroy a cart transform function from the Shop. + * Removes an existing cart transform function from the merchant's store, + * disabling any customized bundle or cart modification logic it provided. This + * mutation persistently deletes the transform configuration and stops all + * associated cart processing. + * + * For example, when discontinuing a bundle app or removing specific + * merchandising features, you would delete the corresponding cart transform to + * ensure customers no longer see the bundled products or modified cart behavior. + * + * Use `CartTransformDelete` to: + * - Deactivate customized bundle logic when removing app features + * - Clean up unused transform functions + * - Disable cart modifications during app uninstallation + * - Remove outdated merchandising strategies + * - Restore default cart behavior for merchants + * + * The deletion processes immediately and returns the ID of the removed cart + * transform for confirmation. Once deleted, the transform function stops + * processing new cart operations, though existing cart sessions may retain their + * current state until refresh. This ensures a clean transition without + * disrupting active customer sessions. + * + * Consider the timing of deletions carefully, as removing transforms during peak + * shopping periods could affect customer experience if they have active carts + * with transformed items. + * + * Learn more about [managing cart transforms](https://shopify.dev/docs/apps/selling-strategies/bundles). */ public class CartTransformDeleteGraphQLQuery extends GraphQLQuery { public CartTransformDeleteGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CartTransformsGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CartTransformsGraphQLQuery.java index bce44753..9fbfb19a 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CartTransformsGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CartTransformsGraphQLQuery.java @@ -9,7 +9,20 @@ import java.util.Set; /** - * List of Cart transform objects owned by the current API client. + * Retrieves all cart transform functions currently deployed by your app within + * the merchant's store. This query provides comprehensive access to your active + * cart modification logic, enabling management and monitoring of bundling and + * merchandising features. + * + * The query returns paginated results with full cart transform details, + * including function IDs, configuration settings, and operational status. + * + * Cart Transform ownership is scoped to your API client, ensuring you only see + * and manage functions deployed by your specific app. This isolation prevents + * conflicts between different apps while maintaining security boundaries for + * sensitive merchandising logic. + * + * Learn more about [managing cart transforms](https://shopify.dev/docs/api/functions/latest/cart-transform). */ public class CartTransformsGraphQLQuery extends GraphQLQuery { public CartTransformsGraphQLQuery(Integer first, String after, Integer last, String before, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CashTrackingSessionGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CashTrackingSessionGraphQLQuery.java index 5d79e76f..9b89783a 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CashTrackingSessionGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CashTrackingSessionGraphQLQuery.java @@ -7,7 +7,7 @@ import java.util.Set; /** - * Lookup a cash tracking session by ID. + * Returns a `CashTrackingSession` resource by ID. */ public class CashTrackingSessionGraphQLQuery extends GraphQLQuery { public CashTrackingSessionGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CatalogContextUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CatalogContextUpdateGraphQLQuery.java index 87bb2e66..8d8e7d16 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CatalogContextUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CatalogContextUpdateGraphQLQuery.java @@ -8,7 +8,15 @@ import java.util.Set; /** - * Updates the context of a catalog. + * Modifies which contexts, like + * [markets](https://shopify.dev/docs/api/admin-graphql/latest/objects/Market) or B2B [company locations](https://shopify.dev/docs/api/admin-graphql/latest/objects/CompanyLocation), can access a [`Catalog`](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/Catalog). + * You can add or remove contexts to control where the catalog's products and + * prices are available. + * + * Learn more about [managing catalog + * contexts](https://shopify.dev/docs/apps/build/markets/new-markets/catalogs) + * and [managing B2B + * catalogs](https://shopify.dev/docs/apps/build/b2b/manage-catalogs). */ public class CatalogContextUpdateGraphQLQuery extends GraphQLQuery { public CatalogContextUpdateGraphQLQuery(String catalogId, CatalogContextInput contextsToAdd, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CatalogCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CatalogCreateGraphQLQuery.java index 725982b3..de665bb3 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CatalogCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CatalogCreateGraphQLQuery.java @@ -8,7 +8,36 @@ import java.util.Set; /** - * Creates a new catalog. + * Creates a [`Catalog`](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/Catalog) that controls product availability and pricing for specific contexts like + * [markets](https://shopify.dev/docs/api/admin-graphql/latest/objects/Market) or B2B [company locations](https://shopify.dev/docs/api/admin-graphql/latest/objects/CompanyLocation). + * + * ### Publications and Price Lists + * + * - **[`Publication`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication)** objects control which products are visible in a catalog. Publications are + * **optional**. When a publication isn't associated with a catalog, product + * availability is determined by the sales channel. + * - **[`PriceList`](https://shopify.dev/docs/api/admin-graphql/latest/objects/PriceList)** objects define custom pricing for products in a catalog. + * + * You can optionally associate a publication and price list when creating the + * catalog, or add them later using separate mutations. + * + * ### When to use Publications + * + * **Create a publication only if you need to:** + * - Limit which products are visible in a specific context (e.g., show different + * products to different company locations or markets) + * - Publish a curated subset of your product catalog + * + * **Do NOT create a publication if:** + * - You want product availability determined by the sales channel + * - You only need to customize pricing (use a price list without a publication) + * + * > **Important:** For company location catalogs that only require custom + * pricing, create the catalog with a price list but without a publication. + * + * Learn more about [managing catalog + * contexts](https://shopify.dev/docs/apps/build/markets/new-markets/catalogs) + * and [using catalogs for different markets](https://shopify.dev/docs/apps/build/markets/catalogs-different-markets). */ public class CatalogCreateGraphQLQuery extends GraphQLQuery { public CatalogCreateGraphQLQuery(CatalogCreateInput input, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CatalogGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CatalogGraphQLQuery.java index e190e92d..76ac868c 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CatalogGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CatalogGraphQLQuery.java @@ -7,7 +7,24 @@ import java.util.Set; /** - * Returns a Catalog resource by ID. + * Retrieves a [catalog](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/Catalog) by its ID. + * A catalog represents a list of products with publishing and pricing information, + * and can be associated with a context, such as a market, company location, or app. + * + * Use the `catalog` query to retrieve information associated with the following workflows: + * + * - Managing product publications across different contexts + * - Setting up contextual pricing with price lists + * - Managing market-specific product availability + * - Configuring B2B customer catalogs + * + * There are several types of catalogs: + * + * - [`MarketCatalog`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MarketCatalog) + * - [`AppCatalog`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AppCatalog) + * - [`CompanyLocationCatalog`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CompanyLocationCatalog) + * + * Learn more about [catalogs for different markets](https://shopify.dev/docs/apps/build/markets/catalogs-different-markets). */ public class CatalogGraphQLQuery extends GraphQLQuery { public CatalogGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CatalogUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CatalogUpdateGraphQLQuery.java index 33903009..4bdc2037 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CatalogUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CatalogUpdateGraphQLQuery.java @@ -8,7 +8,14 @@ import java.util.Set; /** - * Updates an existing catalog. + * Updates an existing [catalog's](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/Catalog) + * configuration. Catalogs control product publishing and pricing for specific contexts like + * [markets](https://shopify.dev/docs/api/admin-graphql/latest/objects/Market) or B2B [company locations](https://shopify.dev/docs/api/admin-graphql/latest/objects/CompanyLocation). + * + * You can modify the catalog's title, status, and associated context. You can + * also update the [`PriceList`](https://shopify.dev/docs/api/admin-graphql/latest/objects/PriceList) + * that determines pricing adjustments or the [`Publication`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication) + * that controls which products customers see. */ public class CatalogUpdateGraphQLQuery extends GraphQLQuery { public CatalogUpdateGraphQLQuery(String id, CatalogUpdateInput input, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CatalogsCountGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CatalogsCountGraphQLQuery.java index a1bf34f3..b4cbec22 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CatalogsCountGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CatalogsCountGraphQLQuery.java @@ -2,22 +2,25 @@ import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; import com.shopify.admin.types.CatalogType; +import java.lang.Integer; import java.lang.Override; import java.lang.String; import java.util.HashSet; import java.util.Set; /** - * The count of catalogs belonging to the shop. Limited to a maximum of 10000. + * The count of catalogs belonging to the shop. Limited to a maximum of 10000 by default. */ public class CatalogsCountGraphQLQuery extends GraphQLQuery { - public CatalogsCountGraphQLQuery(CatalogType type, String query, String queryName, + public CatalogsCountGraphQLQuery(CatalogType type, String query, Integer limit, String queryName, Set fieldsSet) { super("query", queryName); if (type != null || fieldsSet.contains("type")) { getInput().put("type", type); }if (query != null || fieldsSet.contains("query")) { getInput().put("query", query); + }if (limit != null || fieldsSet.contains("limit")) { + getInput().put("limit", limit); } } @@ -41,10 +44,12 @@ public static class Builder { private String query; + private Integer limit; + private String queryName; public CatalogsCountGraphQLQuery build() { - return new CatalogsCountGraphQLQuery(type, query, queryName, fieldsSet); + return new CatalogsCountGraphQLQuery(type, query, limit, queryName, fieldsSet); } @@ -80,6 +85,15 @@ public Builder query(String query) { return this; } + /** + * The upper bound on count value before returning a result. Use `null` to have no limit. + */ + public Builder limit(Integer limit) { + this.limit = limit; + this.fieldsSet.add("limit"); + return this; + } + public Builder queryName(String queryName) { this.queryName = queryName; return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CatalogsGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CatalogsGraphQLQuery.java index 6fb59094..62a8d2a0 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CatalogsGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CatalogsGraphQLQuery.java @@ -11,7 +11,16 @@ import java.util.Set; /** - * The catalogs belonging to the shop. + * Returns a paginated list of catalogs for the shop. Catalogs control which + * products are published and how they're priced in different contexts, such as + * international markets (Canada vs. United States), B2B company locations + * (different branches of the same business), or specific sales channels (such as + * online store vs. POS). + * + * Filter catalogs by [`type`](https://shopify.dev/docs/api/admin-graphql/latest/queries/catalogs#arguments-type) and use the [`query`](https://shopify.dev/docs/api/admin-graphql/latest/queries/catalogs#arguments-query) + * argument to search and filter by additional criteria. + * + * Learn more about [Shopify Catalogs](https://shopify.dev/docs/apps/build/markets/catalogs-different-markets). */ public class CatalogsGraphQLQuery extends GraphQLQuery { public CatalogsGraphQLQuery(CatalogType type, Integer first, String after, Integer last, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ChannelFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ChannelFragmentProjection.java index 78332fd4..8e9ebbd1 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ChannelFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ChannelFragmentProjection.java @@ -163,13 +163,15 @@ public CountProjection, ROOT> productsCo return projection; } - public CountProjection, ROOT> productsCount( - String query) { + public CountProjection, ROOT> productsCount(String query, + Integer limit) { CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); getFields().put("productsCount", projection); getInputArguments().computeIfAbsent("productsCount", k -> new ArrayList<>()); InputArgument queryArg = new InputArgument("query", query); getInputArguments().get("productsCount").add(queryArg); + InputArgument limitArg = new InputArgument("limit", limit); + getInputArguments().get("productsCount").add(limitArg); return projection; } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ChannelGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ChannelGraphQLQuery.java index 2d3764c1..851187cc 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ChannelGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ChannelGraphQLQuery.java @@ -7,7 +7,7 @@ import java.util.Set; /** - * Lookup a channel by ID. + * Returns a `Channel` resource by ID. */ public class ChannelGraphQLQuery extends GraphQLQuery { public ChannelGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ChannelInformationFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ChannelInformationFragmentProjection.java index 6aeb38c6..6cdb8d14 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ChannelInformationFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ChannelInformationFragmentProjection.java @@ -36,6 +36,11 @@ public ChannelInformationFragmentProjection channelId() { return this; } + public ChannelInformationFragmentProjection displayName() { + getFields().put("displayName", null); + return this; + } + public ChannelInformationFragmentProjection id() { getFields().put("id", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ChannelInformationProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ChannelInformationProjection.java index 464b6b9f..4181915d 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ChannelInformationProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ChannelInformationProjection.java @@ -30,6 +30,11 @@ public ChannelInformationProjection channelId() { return this; } + public ChannelInformationProjection displayName() { + getFields().put("displayName", null); + return this; + } + public ChannelInformationProjection id() { getFields().put("id", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ChannelProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ChannelProjection.java index dd9ac46f..3d5da753 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ChannelProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ChannelProjection.java @@ -157,12 +157,15 @@ public CountProjection, ROOT> productsCount() { return projection; } - public CountProjection, ROOT> productsCount(String query) { + public CountProjection, ROOT> productsCount(String query, + Integer limit) { CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); getFields().put("productsCount", projection); getInputArguments().computeIfAbsent("productsCount", k -> new ArrayList<>()); InputArgument queryArg = new InputArgument("query", query); getInputArguments().get("productsCount").add(queryArg); + InputArgument limitArg = new InputArgument("limit", limit); + getInputArguments().get("productsCount").add(limitArg); return projection; } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ChannelProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ChannelProjectionRoot.java index 272f3b64..cdbaf4ec 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ChannelProjectionRoot.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ChannelProjectionRoot.java @@ -173,12 +173,14 @@ public CountProjection, ChannelProjectionRoo } public CountProjection, ChannelProjectionRoot> productsCount( - String query) { + String query, Integer limit) { CountProjection, ChannelProjectionRoot> projection = new CountProjection<>(this, this); getFields().put("productsCount", projection); getInputArguments().computeIfAbsent("productsCount", k -> new ArrayList<>()); InputArgument queryArg = new InputArgument("query", query); getInputArguments().get("productsCount").add(queryArg); + InputArgument limitArg = new InputArgument("limit", limit); + getInputArguments().get("productsCount").add(limitArg); return projection; } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ChannelsGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ChannelsGraphQLQuery.java index b20a5d26..eb7db6d3 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ChannelsGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ChannelsGraphQLQuery.java @@ -9,7 +9,10 @@ import java.util.Set; /** - * List of the active sales channels. + * Returns active [channels](https://shopify.dev/docs/api/admin-graphql/latest/objects/Channel) + * where merchants sell products and collections. Each channel is an + * authenticated link to an external platform such as marketplaces, social media + * platforms, online stores, or point-of-sale systems. */ public class ChannelsGraphQLQuery extends GraphQLQuery { public ChannelsGraphQLQuery(Integer first, String after, Integer last, String before, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CheckoutBrandingGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CheckoutBrandingGraphQLQuery.java index 5f400852..1575bd88 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CheckoutBrandingGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CheckoutBrandingGraphQLQuery.java @@ -7,11 +7,11 @@ import java.util.Set; /** - * Returns the visual customizations for checkout for a given checkout profile. + * Returns the visual customizations for checkout for a given [checkout profile](https://shopify.dev/docs/api/admin-graphql/latest/objects/CheckoutProfile). * - * To learn more about updating checkout branding settings, refer to the - * [checkoutBrandingUpsert](https://shopify.dev/api/admin-graphql/unstable/mutations/checkoutBrandingUpsert) - * mutation and the checkout branding [tutorial](https://shopify.dev/docs/apps/checkout/styling). + * To update checkout branding settings, use the [`checkoutBrandingUpsert`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/checkoutBrandingUpsert) + * mutation. Learn more about [customizing checkout's + * appearance](https://shopify.dev/docs/apps/build/checkout/styling). */ public class CheckoutBrandingGraphQLQuery extends GraphQLQuery { public CheckoutBrandingGraphQLQuery(String checkoutProfileId, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CheckoutBrandingUpsertGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CheckoutBrandingUpsertGraphQLQuery.java index 65f0b35e..d0b9500f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CheckoutBrandingUpsertGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CheckoutBrandingUpsertGraphQLQuery.java @@ -8,15 +8,21 @@ import java.util.Set; /** - * Updates the checkout branding settings for a - * [checkout profile](https://shopify.dev/api/admin-graphql/unstable/queries/checkoutProfile). + * Updates the visual branding for a [`CheckoutProfile`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CheckoutProfile), + * customizing how checkout displays to customers. Creates new branding settings + * if none exist, or modifies existing settings. * - * 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. + * The mutation accepts two levels of customization through the [`CheckoutBrandingInput`](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/CheckoutBrandingInput) input object. [`designSystem`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/checkoutBrandingUpsert#arguments-checkoutBrandingInput.fields.designSystem) + * defines foundational brand attributes like colors, typography, and corner + * radius that apply consistently throughout checkout. [`customizations`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/checkoutBrandingUpsert#arguments-checkoutBrandingInput.fields.customizations) + * defines styles for specific parts of the UI, individual components, or groups + * of components like the header, buttons, form fields, and sections. * - * To learn more about updating checkout branding settings, refer to the checkout branding - * [tutorial](https://shopify.dev/docs/apps/checkout/styling). + * Changes to a published checkout profile display immediately in the store's + * checkout. You can preview draft profiles in the Shopify admin's checkout + * editor before publishing. + * + * Learn more about [checkout styling](https://shopify.dev/docs/apps/checkout/styling). */ public class CheckoutBrandingUpsertGraphQLQuery extends GraphQLQuery { public CheckoutBrandingUpsertGraphQLQuery(String checkoutProfileId, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CheckoutProfileGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CheckoutProfileGraphQLQuery.java index 550ff0e2..be82ace4 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CheckoutProfileGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CheckoutProfileGraphQLQuery.java @@ -7,7 +7,10 @@ import java.util.Set; /** - * A checkout profile on a shop. + * Returns a [`CheckoutProfile`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CheckoutProfile). Checkout profiles define the branding settings and UI extensions for a store's + * checkout experience. Stores can have one published profile that renders on + * their live checkout and multiple draft profiles for testing customizations in + * the checkout editor. */ public class CheckoutProfileGraphQLQuery extends GraphQLQuery { public CheckoutProfileGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CodeDiscountNodeByCodeGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CodeDiscountNodeByCodeGraphQLQuery.java index df4cde9e..491ab3a3 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CodeDiscountNodeByCodeGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CodeDiscountNodeByCodeGraphQLQuery.java @@ -7,7 +7,16 @@ import java.util.Set; /** - * Returns a code discount identified by its discount code. + * Retrieves a [code discount](https://help.shopify.com/manual/discounts/discount-types#discount-codes) + * by its discount code. The search is case-insensitive, enabling you to find + * discounts regardless of how customers enter the code. + * + * Returns a [`DiscountCodeNode`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCodeNode) that contains the underlying discount details, which could be a basic [amount off discount](https://help.shopify.com/manual/discounts/discount-types/percentage-fixed-amount), + * a ["Buy X Get Y" (BXGY) discount](https://help.shopify.com/manual/discounts/discount-types/buy-x-get-y), + * a [free shipping discount](https://help.shopify.com/manual/discounts/discount-types/free-shipping), + * or an [app-provided discount](https://help.shopify.com/manual/discounts/discount-types/discounts-with-apps). + * + * Learn more about working with [Shopify's discount model](https://shopify.dev/docs/apps/build/discounts). */ public class CodeDiscountNodeByCodeGraphQLQuery extends GraphQLQuery { public CodeDiscountNodeByCodeGraphQLQuery(String code, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CodeDiscountNodesGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CodeDiscountNodesGraphQLQuery.java index f0b9d1ba..5f0d1c69 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CodeDiscountNodesGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CodeDiscountNodesGraphQLQuery.java @@ -146,8 +146,8 @@ public Builder sortKey(CodeDiscountSortKeys sortKey) { * `created_at:<now`
- `created_at:<='2024'` | * | discount_type | string | Filter by the [discount * type](https://help.shopify.com/manual/discounts/discount-types). | - - * `bogo`
- `fixed_amount`
- `free_shipping`
- `percentage` | | - * - `discount_type:fixed_amount` | + * `app`
- `bogo`
- `fixed_amount`
- `free_shipping`
- + * `percentage` | | - `discount_type:fixed_amount` | * | ends_at | time | Filter by the date and time when the discount expires and * is no longer available for customer use. | | | - * `ends_at:>'2020-10-21T23:39:20Z'`
- `ends_at:<now`
- diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionAddProductsGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionAddProductsGraphQLQuery.java index dec50fa8..4d1d68d7 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionAddProductsGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionAddProductsGraphQLQuery.java @@ -8,7 +8,29 @@ import java.util.Set; /** - * Adds products to a collection. + * Adds multiple products to an existing collection in a single operation. This + * mutation provides an efficient way to bulk-manage collection membership + * without individual product updates. + * + * For example, when merchants create seasonal collections, they can add dozens + * of related products at once rather than updating each product individually. A + * clothing store might add all winter jackets to a "Winter Collection" in one operation. + * + * Use `CollectionAddProducts` to: + * - Bulk-add products to collections for efficient catalog management + * - Implement collection building tools in admin interfaces + * - Organize collection membership during bulk product operations + * - Reduce API calls when managing large product sets + * + * The mutation processes multiple product additions and returns success status + * along with any errors encountered during the operation. Products are added to + * the collection while preserving existing collection settings. + * + * This operation only works with manual collections where merchants explicitly + * choose which products to include. It will return an error if used with smart + * collections that automatically include products based on conditions. + * + * Learn more about [collection management](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection). */ public class CollectionAddProductsGraphQLQuery extends GraphQLQuery { public CollectionAddProductsGraphQLQuery(String id, List productIds, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionAddProductsV2GraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionAddProductsV2GraphQLQuery.java index e707f4ac..480b8281 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionAddProductsV2GraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionAddProductsV2GraphQLQuery.java @@ -8,9 +8,18 @@ import java.util.Set; /** - * Asynchronously adds a set of products to a given collection. It can take a - * long time to run. Instead of returning a collection, it returns a job which - * should be polled. + * Adds products to a [`Collection`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection) + * asynchronously and returns a + * [`Job`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Job) to + * track the operation's progress. This mutation handles large product sets + * efficiently by processing them in the background. + * + * You can poll the returned job using the + * [`job`](https://shopify.dev/docs/api/admin-graphql/latest/queries/job) query + * to monitor completion status. + * + * > Note: + * > This mutation adds products in the order specified in the [`productIds`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/collectionAddProducts#arguments-productIds) argument. */ public class CollectionAddProductsV2GraphQLQuery extends GraphQLQuery { public CollectionAddProductsV2GraphQLQuery(String id, List productIds, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionByHandleGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionByHandleGraphQLQuery.java index a7121966..186b46a2 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionByHandleGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionByHandleGraphQLQuery.java @@ -7,7 +7,22 @@ import java.util.Set; /** - * Return a collection by its handle. + * Retrieves a collection by its unique handle identifier. Handles provide a + * URL-friendly way to reference collections and are commonly used in storefront + * URLs and navigation. + * + * For example, a collection with the title "Summer Sale" might have the handle + * `summer-sale`, allowing you to fetch it directly without knowing the internal ID. + * + * Use `CollectionByHandle` to: + * - Fetch collections for storefront display and navigation + * - Build collection-based URLs and routing systems + * - Validate collection existence before displaying content + * + * Handles are automatically generated from collection titles but can be + * customized by merchants for SEO and branding purposes. + * + * Learn more about [collections](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection). */ public class CollectionByHandleGraphQLQuery extends GraphQLQuery { public CollectionByHandleGraphQLQuery(String handle, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionByHandleProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionByHandleProjectionRoot.java index 07da54ba..cea71fe7 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionByHandleProjectionRoot.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionByHandleProjectionRoot.java @@ -22,6 +22,13 @@ public CollectionByHandleProjectionRoot __typename() { return this; } + public CollectionOperationsProjection, CollectionByHandleProjectionRoot> activeOperations( + ) { + CollectionOperationsProjection, CollectionByHandleProjectionRoot> projection = new CollectionOperationsProjection<>(this, this); + getFields().put("activeOperations", projection); + return projection; + } + public CountProjection, CollectionByHandleProjectionRoot> availablePublicationsCount( ) { CountProjection, CollectionByHandleProjectionRoot> projection = new CountProjection<>(this, this); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionByIdentifierProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionByIdentifierProjectionRoot.java index e70852b1..02358bf4 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionByIdentifierProjectionRoot.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionByIdentifierProjectionRoot.java @@ -22,6 +22,13 @@ public CollectionByIdentifierProjectionRoot __typename() { return this; } + public CollectionOperationsProjection, CollectionByIdentifierProjectionRoot> activeOperations( + ) { + CollectionOperationsProjection, CollectionByIdentifierProjectionRoot> projection = new CollectionOperationsProjection<>(this, this); + getFields().put("activeOperations", projection); + return projection; + } + public CountProjection, CollectionByIdentifierProjectionRoot> availablePublicationsCount( ) { CountProjection, CollectionByIdentifierProjectionRoot> projection = new CountProjection<>(this, this); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionCreateGraphQLQuery.java index a7f9e72e..2730f5f4 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionCreateGraphQLQuery.java @@ -8,7 +8,32 @@ import java.util.Set; /** - * Creates a collection. + * Creates a [collection](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection) + * to group [products](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) together + * in the [online store](https://shopify.dev/docs/apps/build/online-store) and + * other [sales channels](https://shopify.dev/docs/apps/build/sales-channels). + * For example, an athletics store might create different collections for running attire, shoes, and accessories. + * + * There are two types of collections: + * + * - **[Custom (manual) collections](https://help.shopify.com/manual/products/collections/manual-shopify-collection)**: + * You specify the products to include in a collection. + * - **[Smart (automated) collections](https://help.shopify.com/manual/products/collections/automated-collections)**: + * You define rules, and products matching those rules are automatically + * included in the collection. + * + * Use the `collectionCreate` mutation when you need to: + * + * - Create a new collection for a product launch or campaign + * - Organize products by category, season, or promotion + * - Automate product grouping using rules (for example, by tag, type, or price) + * + * > Note: + * > The created collection is unpublished by default. To make it available to customers, + * use the [`publishablePublish`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/publishablePublish) + * mutation after creation. + * + * Learn more about [using metafields with smart collections](https://shopify.dev/docs/apps/build/custom-data/metafields/use-metafield-capabilities). */ public class CollectionCreateGraphQLQuery extends GraphQLQuery { public CollectionCreateGraphQLQuery(CollectionInput input, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionDeleteGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionDeleteGraphQLQuery.java index 0ac80aff..8bfe7748 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionDeleteGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionDeleteGraphQLQuery.java @@ -8,7 +8,22 @@ import java.util.Set; /** - * Deletes a collection. + * Deletes a collection and removes it permanently from the store. This operation + * cannot be undone and will remove the collection from all sales channels where + * it was published. + * + * For example, when merchants discontinue seasonal promotions or reorganize + * their catalog structure, they can delete outdated collections like "Back to + * School 2023" to keep their store organized. + * + * Use `CollectionDelete` to: + * - Remove outdated or unused collections from stores + * - Clean up collection structures during catalog reorganization + * - Implement collection management tools with deletion capabilities + * + * Products within the deleted collection remain in the store but are no longer grouped under that collection. + * + * Learn more about [collection management](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection). */ public class CollectionDeleteGraphQLQuery extends GraphQLQuery { public CollectionDeleteGraphQLQuery(CollectionDeleteInput input, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionDuplicateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionDuplicateGraphQLQuery.java new file mode 100644 index 00000000..1f77f8a0 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionDuplicateGraphQLQuery.java @@ -0,0 +1,70 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import com.shopify.admin.types.CollectionDuplicateInput; +import java.lang.Override; +import java.lang.String; +import java.util.HashSet; +import java.util.Set; + +/** + * Duplicates a [collection](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection). + * + * An existing collection ID and new title are required. + * + * ## Publication Duplication + * + * Publications may be excluded by passing `copyPublications: false` in the input. + * + * ## Metafields + * Metafield values are not duplicated if the unique values capability is enabled. + */ +public class CollectionDuplicateGraphQLQuery extends GraphQLQuery { + public CollectionDuplicateGraphQLQuery(CollectionDuplicateInput input, String queryName, + Set fieldsSet) { + super("mutation", queryName); + if (input != null || fieldsSet.contains("input")) { + getInput().put("input", input); + } + } + + public CollectionDuplicateGraphQLQuery() { + super("mutation"); + } + + @Override + public String getOperationName() { + return "collectionDuplicate"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private CollectionDuplicateInput input; + + private String queryName; + + public CollectionDuplicateGraphQLQuery build() { + return new CollectionDuplicateGraphQLQuery(input, queryName, fieldsSet); + + } + + /** + * The input for duplicating a collection. + */ + public Builder input(CollectionDuplicateInput input) { + this.input = input; + this.fieldsSet.add("input"); + return this; + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionDuplicateOperationProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionDuplicateOperationProjection.java new file mode 100644 index 00000000..56df922f --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionDuplicateOperationProjection.java @@ -0,0 +1,27 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class CollectionDuplicateOperationProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public CollectionDuplicateOperationProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("CollectionDuplicateOperation")); + } + + public CollectionDuplicateOperationProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public CollectionDuplicateOperationRoleProjection, ROOT> collectionRole( + ) { + CollectionDuplicateOperationRoleProjection, ROOT> projection = new CollectionDuplicateOperationRoleProjection<>(this, getRoot()); + getFields().put("collectionRole", projection); + return projection; + } + + public JobProjection, ROOT> job() { + JobProjection, ROOT> projection = new JobProjection<>(this, getRoot()); + getFields().put("job", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionDuplicateOperationRoleProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionDuplicateOperationRoleProjection.java new file mode 100644 index 00000000..6941cb0e --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionDuplicateOperationRoleProjection.java @@ -0,0 +1,14 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class CollectionDuplicateOperationRoleProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public CollectionDuplicateOperationRoleProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("CollectionDuplicateOperationRole")); + } + + public CollectionDuplicateOperationRoleProjection __typename() { + getFields().put("__typename", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionDuplicateProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionDuplicateProjectionRoot.java new file mode 100644 index 00000000..c0cb7af8 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionDuplicateProjectionRoot.java @@ -0,0 +1,35 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class CollectionDuplicateProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public CollectionDuplicateProjectionRoot() { + super(null, null, java.util.Optional.of("CollectionDuplicatePayload")); + } + + public CollectionDuplicateProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public CollectionProjection, CollectionDuplicateProjectionRoot> collection( + ) { + CollectionProjection, CollectionDuplicateProjectionRoot> projection = new CollectionProjection<>(this, this); + getFields().put("collection", projection); + return projection; + } + + public JobProjection, CollectionDuplicateProjectionRoot> job( + ) { + JobProjection, CollectionDuplicateProjectionRoot> projection = new JobProjection<>(this, this); + getFields().put("job", projection); + return projection; + } + + public CollectionDuplicateUserErrorProjection, CollectionDuplicateProjectionRoot> userErrors( + ) { + CollectionDuplicateUserErrorProjection, CollectionDuplicateProjectionRoot> projection = new CollectionDuplicateUserErrorProjection<>(this, this); + getFields().put("userErrors", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionDuplicateUserErrorCodeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionDuplicateUserErrorCodeProjection.java new file mode 100644 index 00000000..518330f7 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionDuplicateUserErrorCodeProjection.java @@ -0,0 +1,14 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class CollectionDuplicateUserErrorCodeProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public CollectionDuplicateUserErrorCodeProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("CollectionDuplicateUserErrorCode")); + } + + public CollectionDuplicateUserErrorCodeProjection __typename() { + getFields().put("__typename", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionDuplicateUserErrorProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionDuplicateUserErrorProjection.java new file mode 100644 index 00000000..0d5d8de8 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionDuplicateUserErrorProjection.java @@ -0,0 +1,31 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class CollectionDuplicateUserErrorProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public CollectionDuplicateUserErrorProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("CollectionDuplicateUserError")); + } + + public CollectionDuplicateUserErrorProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public CollectionDuplicateUserErrorCodeProjection, ROOT> code( + ) { + CollectionDuplicateUserErrorCodeProjection, ROOT> projection = new CollectionDuplicateUserErrorCodeProjection<>(this, getRoot()); + getFields().put("code", projection); + return projection; + } + + public CollectionDuplicateUserErrorProjection field() { + getFields().put("field", null); + return this; + } + + public CollectionDuplicateUserErrorProjection message() { + getFields().put("message", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionFragmentProjection.java index b8f9a573..a14c7422 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionFragmentProjection.java @@ -27,6 +27,13 @@ public CollectionFragmentProjection __typename() { return this; } + public CollectionOperationsProjection, ROOT> activeOperations( + ) { + CollectionOperationsProjection, ROOT> projection = new CollectionOperationsProjection<>(this, getRoot()); + getFields().put("activeOperations", projection); + return projection; + } + public CountProjection, ROOT> availablePublicationsCount( ) { CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionGraphQLQuery.java index 41d06184..e3752467 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionGraphQLQuery.java @@ -7,7 +7,23 @@ import java.util.Set; /** - * Returns a Collection resource by ID. + * Retrieves a [collection](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection) by its ID. + * A collection represents a grouping of [products](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) + * that merchants can display and sell as a group in their [online + * store](https://shopify.dev/docs/apps/build/online-store) and + * other [sales channels](https://shopify.dev/docs/apps/build/sales-channels). + * + * Use the `collection` query when you need to: + * + * - Manage collection publishing across sales channels + * - Access collection metadata and SEO information + * - Work with collection rules and product relationships + * + * A collection can be either a custom ([manual](https://help.shopify.com/manual/products/collections/manual-shopify-collection)) + * collection where products are manually added, or a smart ([automated](https://help.shopify.com/manual/products/collections/automated-collections)) + * collection where products are automatically included based on defined rules. + * Each collection has associated metadata including + * title, description, handle, image, and [metafields](https://shopify.dev/docs/apps/build/custom-data/metafields). */ public class CollectionGraphQLQuery extends GraphQLQuery { public CollectionGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionOperationsProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionOperationsProjection.java new file mode 100644 index 00000000..f5ca5168 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionOperationsProjection.java @@ -0,0 +1,21 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class CollectionOperationsProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public CollectionOperationsProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("CollectionOperations")); + } + + public CollectionOperationsProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public CollectionDuplicateOperationProjection, ROOT> duplicate( + ) { + CollectionDuplicateOperationProjection, ROOT> projection = new CollectionDuplicateOperationProjection<>(this, getRoot()); + getFields().put("duplicate", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionProjection.java index 73528150..ac38e75b 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionProjection.java @@ -22,6 +22,13 @@ public CollectionProjection __typename() { return this; } + public CollectionOperationsProjection, ROOT> activeOperations( + ) { + CollectionOperationsProjection, ROOT> projection = new CollectionOperationsProjection<>(this, getRoot()); + getFields().put("activeOperations", projection); + return projection; + } + public CountProjection, ROOT> availablePublicationsCount() { CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); getFields().put("availablePublicationsCount", projection); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionProjectionRoot.java index 2d8255c1..cad8631e 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionProjectionRoot.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionProjectionRoot.java @@ -22,6 +22,13 @@ public CollectionProjectionRoot __typename() { return this; } + public CollectionOperationsProjection, CollectionProjectionRoot> activeOperations( + ) { + CollectionOperationsProjection, CollectionProjectionRoot> projection = new CollectionOperationsProjection<>(this, this); + getFields().put("activeOperations", projection); + return projection; + } + public CountProjection, CollectionProjectionRoot> availablePublicationsCount( ) { CountProjection, CollectionProjectionRoot> projection = new CountProjection<>(this, this); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionRemoveProductsGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionRemoveProductsGraphQLQuery.java index 46ee3a63..d01e0dad 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionRemoveProductsGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionRemoveProductsGraphQLQuery.java @@ -8,11 +8,22 @@ import java.util.Set; /** - * Removes a set of products from a given collection. The mutation can take a - * long time to run. Instead of returning an updated collection the mutation - * returns a job, which should be - * [polled](https://shopify.dev/api/admin-graphql/latest/queries/job). For use - * with manual collections only. + * Removes multiple products from a collection in a single operation. This + * mutation can process large product sets (up to 250 products) and may take + * significant time to complete for collections with many products. + * + * For example, when ending a seasonal promotion, merchants can remove all sale + * items from a "Summer Clearance" collection at once rather than editing each + * product individually. + * + * Use `CollectionRemoveProducts` to: + * - Bulk-remove products from collections efficiently + * - Clean up collection membership during catalog updates + * - Implement automated collection management workflows + * + * The operation processes asynchronously to avoid timeouts and performance issues, especially for large product sets. + * + * Learn more about [collection management](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection). */ public class CollectionRemoveProductsGraphQLQuery extends GraphQLQuery { public CollectionRemoveProductsGraphQLQuery(String id, List productIds, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionReorderProductsGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionReorderProductsGraphQLQuery.java index f05afdeb..39ef77cc 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionReorderProductsGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionReorderProductsGraphQLQuery.java @@ -9,11 +9,29 @@ import java.util.Set; /** - * Asynchronously reorders a set of products within a specified collection. - * Instead of returning an updated collection, this mutation returns a job, which - * should be [polled](https://shopify.dev/api/admin-graphql/latest/queries/job). The [`Collection.sortOrder`](https://shopify.dev/api/admin-graphql/latest/objects/Collection#field-collection-sortorder) - * must be `MANUAL`. Displaced products will have their position altered in a - * consistent manner, with no gaps. + * Asynchronously reorders products within a specified collection. Instead of + * returning an updated collection, this mutation returns a job, which should be + * [polled](https://shopify.dev/api/admin-graphql/latest/queries/job). The [`Collection.sortOrder`](https://shopify.dev/api/admin-graphql/latest/objects/Collection#field-collection-sortorder) + * must be `MANUAL`. + * + * How to use this mutation: + * - Provide only the products that actually moved in the `moves` list; do not + * send the entire product list. For example: to move the product at index 1 to + * index N, send a single move for that product with `newPosition: N`. + * - Each move is applied sequentially in the order provided. + * - `newPosition` is a zero-based index within the collection at the moment the + * move is applied (after any prior moves in the list). + * - Products not included in `moves` keep their relative order, aside from any displacement caused by the moves. + * - If `newPosition` is greater than or equal to the number of products, the product is placed at the end. + * + * Example: + * - Initial order: [A, B, C, D, E] (indices 0..4) + * - Moves (applied in order): + * - E -> newPosition: 1 + * - C -> newPosition: 4 + * - Result: [A, E, B, D, C] + * + * Displaced products will have their position altered in a consistent manner with no gaps. */ public class CollectionReorderProductsGraphQLQuery extends GraphQLQuery { public CollectionReorderProductsGraphQLQuery(String id, List moves, String queryName, @@ -63,8 +81,12 @@ public Builder id(String id) { } /** - * A list of moves to perform, which will be evaluated in order. Up to 250 - * moves are supported, the `newPosition` does not have to be unique. + * A list of moves to perform, evaluated in order. Provide only products whose + * positions changed; do not send the full list. + * `newPosition` is a zero-based index evaluated at the time each move is applied (after any prior moves). + * `newPosition` values do not need to be unique, and if a value is greater + * than or equal to the number of products, the product is moved to the end. + * Up to 250 moves are supported. */ public Builder moves(List moves) { this.moves = moves; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionReorderProductsProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionReorderProductsProjectionRoot.java index 95657198..e5e483a6 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionReorderProductsProjectionRoot.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionReorderProductsProjectionRoot.java @@ -19,9 +19,9 @@ public JobProjection, Coll return projection; } - public UserErrorProjection, CollectionReorderProductsProjectionRoot> userErrors( + public CollectionReorderProductsUserErrorProjection, CollectionReorderProductsProjectionRoot> userErrors( ) { - UserErrorProjection, CollectionReorderProductsProjectionRoot> projection = new UserErrorProjection<>(this, this); + CollectionReorderProductsUserErrorProjection, CollectionReorderProductsProjectionRoot> projection = new CollectionReorderProductsUserErrorProjection<>(this, this); getFields().put("userErrors", projection); return projection; } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionReorderProductsUserErrorCodeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionReorderProductsUserErrorCodeProjection.java new file mode 100644 index 00000000..96104e39 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionReorderProductsUserErrorCodeProjection.java @@ -0,0 +1,14 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class CollectionReorderProductsUserErrorCodeProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public CollectionReorderProductsUserErrorCodeProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("CollectionReorderProductsUserErrorCode")); + } + + public CollectionReorderProductsUserErrorCodeProjection __typename() { + getFields().put("__typename", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionReorderProductsUserErrorProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionReorderProductsUserErrorProjection.java new file mode 100644 index 00000000..cda9879b --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionReorderProductsUserErrorProjection.java @@ -0,0 +1,31 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class CollectionReorderProductsUserErrorProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public CollectionReorderProductsUserErrorProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("CollectionReorderProductsUserError")); + } + + public CollectionReorderProductsUserErrorProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public CollectionReorderProductsUserErrorCodeProjection, ROOT> code( + ) { + CollectionReorderProductsUserErrorCodeProjection, ROOT> projection = new CollectionReorderProductsUserErrorCodeProjection<>(this, getRoot()); + getFields().put("code", projection); + return projection; + } + + public CollectionReorderProductsUserErrorProjection field() { + getFields().put("field", null); + return this; + } + + public CollectionReorderProductsUserErrorProjection message() { + getFields().put("message", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionUpdateGraphQLQuery.java index 27ad6504..7cb56596 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionUpdateGraphQLQuery.java @@ -8,7 +8,39 @@ import java.util.Set; /** - * Updates a collection. + * Updates a [collection](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection), + * modifying its properties, products, or publication settings. Collections help organize + * [products](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) together + * in the [online store](https://shopify.dev/docs/apps/build/online-store) and + * other [sales channels](https://shopify.dev/docs/apps/build/sales-channels). + * + * Use the `collectionUpdate` mutation to programmatically modify collections in scenarios such as: + * + * - Updating collection details, like title, description, or image + * - Modifying SEO metadata for better search visibility + * - Changing which products are included (using rule updates for smart collections) + * - Publishing or unpublishing collections across different sales channels + * - Updating custom data using [metafields](https://shopify.dev/docs/apps/build/custom-data/metafields) + * + * There are two types of collections with different update capabilities: + * + * - **[Custom (manual) collections](https://help.shopify.com/manual/products/collections/manual-shopify-collection)**: + * You can update collection properties, but rule sets can't be modified since + * products are manually selected. + * - **[Smart (automated) collections](https://help.shopify.com/manual/products/collections/automated-collections)**: + * You can update both collection properties and the rules that automatically + * determine which products are included. + * When updating [rule sets](https://shopify.dev/docs/api/admin-graphql/latest/objects/CollectionRuleConditions) + * for smart collections, the operation might be processed asynchronously. In + * these cases, the mutation returns a + * [`job`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Job) object + * that you can use to track the progress of the update. + * + * To publish or unpublish collections to specific sales channels, use the dedicated + * [`publishablePublish`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/publishablePublish) and + * [`publishableUnpublish`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/publishableUnpublish) mutations. + * + * Learn more about [using metafields with smart collections](https://shopify.dev/docs/apps/build/custom-data/metafields/use-metafield-capabilities). */ public class CollectionUpdateGraphQLQuery extends GraphQLQuery { public CollectionUpdateGraphQLQuery(CollectionInput input, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionsCountGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionsCountGraphQLQuery.java index 07a50bd2..710311c2 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionsCountGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionsCountGraphQLQuery.java @@ -1,22 +1,25 @@ package com.shopify.admin.client; import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import java.lang.Integer; import java.lang.Override; import java.lang.String; import java.util.HashSet; import java.util.Set; /** - * Count of collections. Limited to a maximum of 10000. + * Count of collections. Limited to a maximum of 10000 by default. */ public class CollectionsCountGraphQLQuery extends GraphQLQuery { - public CollectionsCountGraphQLQuery(String query, String savedSearchId, String queryName, - Set fieldsSet) { + public CollectionsCountGraphQLQuery(String query, String savedSearchId, Integer limit, + String queryName, Set fieldsSet) { super("query", queryName); if (query != null || fieldsSet.contains("query")) { getInput().put("query", query); }if (savedSearchId != null || fieldsSet.contains("savedSearchId")) { getInput().put("savedSearchId", savedSearchId); + }if (limit != null || fieldsSet.contains("limit")) { + getInput().put("limit", limit); } } @@ -40,10 +43,12 @@ public static class Builder { private String savedSearchId; + private Integer limit; + private String queryName; public CollectionsCountGraphQLQuery build() { - return new CollectionsCountGraphQLQuery(query, savedSearchId, queryName, fieldsSet); + return new CollectionsCountGraphQLQuery(query, savedSearchId, limit, queryName, fieldsSet); } @@ -57,29 +62,56 @@ public CollectionsCountGraphQLQuery build() { * | handle | string | * | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | * | product_id | id | Filter by collections containing a product by its ID. | - * | product_publication_status | string | Filter by the publishable status of - * the resource on a channel, such as the online store. The value is a - * composite of the [channel `app` - * ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) - * (`Channel.app.id`) and one of the valid values. | - `approved`
- - * `rejected`
- `needs_action`
- `awaiting_review`
- - * `published`
- `demoted`
- `scheduled`
- - * `provisionally_published` | | - `publishable_status:189769876-approved` | - * | publishable_status | string | Filter by the publishable status of the - * resource on a channel, such as the online store. The value is a composite of - * either the [channel `app` + * | product_publication_status | string | Filter by channel approval process + * status of the resource on a channel, such as the online store. The value is + * a composite of the [channel `app` ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#field-Channel.fields.app) + * (`Channel.app.id`) and one of the valid values. For simple visibility checks, use [published_status](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-publishable_status) + * instead. | - `* {channel_app_id}-approved`
- `* + * {channel_app_id}-rejected`
- `* {channel_app_id}-needs_action`
- + * `* {channel_app_id}-awaiting_review`
- `* + * {channel_app_id}-published`
- `* {channel_app_id}-demoted`
- `* + * {channel_app_id}-scheduled`
- `* + * {channel_app_id}-provisionally_published` | | - + * `product_publication_status:189769876-approved` | + * | publishable_status | string | **Deprecated:** This parameter is deprecated + * as of 2025-12 and will be removed in a future API version. Use [published_status](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-publishable_status) + * for visibility checks. Filter by the publishable status of the resource on a + * channel. The value is a composite of the [channel `app` * ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) - * (`Channel.app.id`) or [channel `name`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Channel#field-name) - * and one of the valid values. | - `online_store_channel`
- - * `published`
- `unpublished`
- `visible`
- `unavailable`
- * - `hidden`
- `intended`
- `visible` | | - - * `publishable_status:published`
- - * `publishable_status:189769876:visible`
- - * `publishable_status:pos:hidden` | + * (`Channel.app.id`) and one of the valid status values. | - `* + * {channel_app_id}-unset`
- `* {channel_app_id}-pending`
- `* + * {channel_app_id}-approved`
- `* {channel_app_id}-not_approved` | | - + * `publishable_status:580111-unset`
- `publishable_status:580111-pending` | * | published_at | time | Filter by the date and time when the collection was published to the Online Store. | - * | published_status | string | Filter by the published status of the resource - * on a channel, such as the online store. | - `unset`
- `pending`
- - * `approved`
- `not approved` | | - `published_status:approved` | + * | published_status | string | Filter resources by their visibility and + * publication state on a channel. Online store channel filtering: - + * `online_store_channel`: Returns all resources in the online store channel, + * regardless of publication status. - `published`/`visible`: Returns resources + * that are published to the online store. - `unpublished`: Returns resources + * that are not published to the online store. Channel-specific filtering using + * a channel ID, channel handle, [channel `app` + * ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) + * (`Channel.app.id`), or app handle with suffixes: - + * `{id_or_handle}-published`: Returns resources published to the specified + * channel. - `{id_or_handle}-visible`: Same as `{id_or_handle}-published` + * (kept for backwards compatibility). - `{id_or_handle}-intended`: Returns + * resources added to the channel but not yet published. - + * `{id_or_handle}-hidden`: Returns resources not added to the channel or not + * published. Other: - `unavailable`: Returns resources not published to any + * channel. | - `online_store_channel`
- `published`
- `visible`
+ * - `unpublished`
- `* {channel_id_or_handle}-published`
- `* + * {channel_id_or_handle}-visible`
- `* + * {channel_id_or_handle}-intended`
- `* + * {channel_id_or_handle}-hidden`
- `* + * {channel_app_id_or_handle}-published`
- `* + * {channel_app_id_or_handle}-visible`
- `* + * {channel_app_id_or_handle}-intended`
- `* + * {channel_app_id_or_handle}-hidden`
- `unavailable` | | - + * `published_status:online_store_channel`
- + * `published_status:published`
- `published_status:580111-published`
+ * - `published_status:580111-hidden`
- + * `published_status:my-channel-handle-published`
- + * `published_status:unavailable` | * | title | string | * | updated_at | time | * You can apply one or more filters to a query. Learn more about [Shopify API @@ -102,6 +134,15 @@ public Builder savedSearchId(String savedSearchId) { return this; } + /** + * The upper bound on count value before returning a result. Use `null` to have no limit. + */ + public Builder limit(Integer limit) { + this.limit = limit; + this.fieldsSet.add("limit"); + return this; + } + public Builder queryName(String queryName) { this.queryName = queryName; return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionsGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionsGraphQLQuery.java index 3c277b67..33c70069 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionsGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CollectionsGraphQLQuery.java @@ -10,7 +10,34 @@ import java.util.Set; /** - * Returns a list of collections. + * Retrieves a list of [collections](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection) + * in a store. Collections are groups of [products](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) + * that merchants can organize for display in their [online store](https://shopify.dev/docs/apps/build/online-store) and + * other [sales channels](https://shopify.dev/docs/apps/build/sales-channels). + * For example, an athletics store might create different collections for running attire, shoes, and accessories. + * + * Use the `collections` query when you need to: + * + * - Build a browsing interface for a store's product groupings. + * - Create collection searching, sorting, and filtering experiences (for example, by title, type, or published status). + * - Sync collection data with external systems. + * - Manage both custom ([manual](https://help.shopify.com/manual/products/collections/manual-shopify-collection)) + * and smart ([automated](https://help.shopify.com/manual/products/collections/automated-collections)) collections. + * + * The `collections` query supports [pagination](https://shopify.dev/docs/api/usage/pagination-graphql) + * for large catalogs and [saved searches](https://shopify.dev/docs/api/admin-graphql/latest/queries/collections#arguments-savedSearchId) + * for frequently used collection queries. + * + * The `collections` query returns collections with their associated metadata, including: + * + * - Basic collection information (title, description, handle, and type) + * - Collection image and SEO metadata + * - Product count and product relationships + * - Collection rules (for smart collections) + * - Publishing status and publication details + * - Metafields and custom attributes + * + * Learn more about [using metafields with smart collections](https://shopify.dev/docs/apps/build/custom-data/metafields/use-metafield-capabilities). */ public class CollectionsGraphQLQuery extends GraphQLQuery { public CollectionsGraphQLQuery(Integer first, String after, Integer last, String before, @@ -140,29 +167,56 @@ public Builder sortKey(CollectionSortKeys sortKey) { * | handle | string | * | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | * | product_id | id | Filter by collections containing a product by its ID. | - * | product_publication_status | string | Filter by the publishable status of - * the resource on a channel, such as the online store. The value is a - * composite of the [channel `app` + * | product_publication_status | string | Filter by channel approval process + * status of the resource on a channel, such as the online store. The value is + * a composite of the [channel `app` ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#field-Channel.fields.app) + * (`Channel.app.id`) and one of the valid values. For simple visibility checks, use [published_status](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-publishable_status) + * instead. | - `* {channel_app_id}-approved`
- `* + * {channel_app_id}-rejected`
- `* {channel_app_id}-needs_action`
- + * `* {channel_app_id}-awaiting_review`
- `* + * {channel_app_id}-published`
- `* {channel_app_id}-demoted`
- `* + * {channel_app_id}-scheduled`
- `* + * {channel_app_id}-provisionally_published` | | - + * `product_publication_status:189769876-approved` | + * | publishable_status | string | **Deprecated:** This parameter is deprecated + * as of 2025-12 and will be removed in a future API version. Use [published_status](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-publishable_status) + * for visibility checks. Filter by the publishable status of the resource on a + * channel. The value is a composite of the [channel `app` * ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) - * (`Channel.app.id`) and one of the valid values. | - `approved`
- - * `rejected`
- `needs_action`
- `awaiting_review`
- - * `published`
- `demoted`
- `scheduled`
- - * `provisionally_published` | | - `publishable_status:189769876-approved` | - * | publishable_status | string | Filter by the publishable status of the - * resource on a channel, such as the online store. The value is a composite of - * either the [channel `app` - * ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) - * (`Channel.app.id`) or [channel `name`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Channel#field-name) - * and one of the valid values. | - `online_store_channel`
- - * `published`
- `unpublished`
- `visible`
- `unavailable`
- * - `hidden`
- `intended`
- `visible` | | - - * `publishable_status:published`
- - * `publishable_status:189769876:visible`
- - * `publishable_status:pos:hidden` | + * (`Channel.app.id`) and one of the valid status values. | - `* + * {channel_app_id}-unset`
- `* {channel_app_id}-pending`
- `* + * {channel_app_id}-approved`
- `* {channel_app_id}-not_approved` | | - + * `publishable_status:580111-unset`
- `publishable_status:580111-pending` | * | published_at | time | Filter by the date and time when the collection was published to the Online Store. | - * | published_status | string | Filter by the published status of the resource - * on a channel, such as the online store. | - `unset`
- `pending`
- - * `approved`
- `not approved` | | - `published_status:approved` | + * | published_status | string | Filter resources by their visibility and + * publication state on a channel. Online store channel filtering: - + * `online_store_channel`: Returns all resources in the online store channel, + * regardless of publication status. - `published`/`visible`: Returns resources + * that are published to the online store. - `unpublished`: Returns resources + * that are not published to the online store. Channel-specific filtering using + * a channel ID, channel handle, [channel `app` + * ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) + * (`Channel.app.id`), or app handle with suffixes: - + * `{id_or_handle}-published`: Returns resources published to the specified + * channel. - `{id_or_handle}-visible`: Same as `{id_or_handle}-published` + * (kept for backwards compatibility). - `{id_or_handle}-intended`: Returns + * resources added to the channel but not yet published. - + * `{id_or_handle}-hidden`: Returns resources not added to the channel or not + * published. Other: - `unavailable`: Returns resources not published to any + * channel. | - `online_store_channel`
- `published`
- `visible`
+ * - `unpublished`
- `* {channel_id_or_handle}-published`
- `* + * {channel_id_or_handle}-visible`
- `* + * {channel_id_or_handle}-intended`
- `* + * {channel_id_or_handle}-hidden`
- `* + * {channel_app_id_or_handle}-published`
- `* + * {channel_app_id_or_handle}-visible`
- `* + * {channel_app_id_or_handle}-intended`
- `* + * {channel_app_id_or_handle}-hidden`
- `unavailable` | | - + * `published_status:online_store_channel`
- + * `published_status:published`
- `published_status:580111-published`
+ * - `published_status:580111-hidden`
- + * `published_status:my-channel-handle-published`
- + * `published_status:unavailable` | * | title | string | * | updated_at | time | * You can apply one or more filters to a query. Learn more about [Shopify API diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ColumnDataTypeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ColumnDataTypeProjection.java new file mode 100644 index 00000000..46ad7bb1 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ColumnDataTypeProjection.java @@ -0,0 +1,14 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class ColumnDataTypeProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public ColumnDataTypeProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("ColumnDataType")); + } + + public ColumnDataTypeProjection __typename() { + getFields().put("__typename", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CommentApproveGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CommentApproveGraphQLQuery.java index 763d86d5..e9796cf1 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CommentApproveGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CommentApproveGraphQLQuery.java @@ -7,7 +7,17 @@ import java.util.Set; /** - * Approves a comment. + * Approves a pending comment, making it visible to store visitors on the associated blog article. + * + * For example, when a customer submits a question about a product in a blog + * post, merchants can approve the comment to make it publicly visible. + * + * Use the `commentApprove` mutation to: + * - Publish pending comments after review + * - Enable customer discussions on blog articles + * - Maintain quality control over comments + * + * Once approved, the comment becomes visible to all store visitors. */ public class CommentApproveGraphQLQuery extends GraphQLQuery { public CommentApproveGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CommentDeleteGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CommentDeleteGraphQLQuery.java index b3c11ae6..3d3ead99 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CommentDeleteGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CommentDeleteGraphQLQuery.java @@ -7,7 +7,17 @@ import java.util.Set; /** - * Deletes a comment. + * Permanently removes a comment from a blog article. + * + * For example, when a comment contains spam links or inappropriate language that + * violates store policies, merchants can delete it entirely. + * + * Use the `commentDelete` mutation to: + * - Remove spam or inappropriate comments permanently + * - Clean up irrelevant discussions + * - Maintain content standards on blog articles + * + * Deletion is permanent and can't be undone. */ public class CommentDeleteGraphQLQuery extends GraphQLQuery { public CommentDeleteGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CommentEventEmbedProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CommentEventEmbedProjection.java index cd4c0d77..85c49e8f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CommentEventEmbedProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CommentEventEmbedProjection.java @@ -25,6 +25,13 @@ public DraftOrderFragmentProjection, R return fragment; } + public InventoryTransferFragmentProjection, ROOT> onInventoryTransfer( + ) { + InventoryTransferFragmentProjection, ROOT> fragment = new InventoryTransferFragmentProjection<>(this, getRoot()); + getFragments().add(fragment); + return fragment; + } + public OrderFragmentProjection, ROOT> onOrder() { OrderFragmentProjection, ROOT> fragment = new OrderFragmentProjection<>(this, getRoot()); getFragments().add(fragment); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CommentEventSubjectProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CommentEventSubjectProjection.java index 0da85b4c..4657ee78 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CommentEventSubjectProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CommentEventSubjectProjection.java @@ -49,6 +49,13 @@ public DraftOrderFragmentProjection, return fragment; } + public InventoryTransferFragmentProjection, ROOT> onInventoryTransfer( + ) { + InventoryTransferFragmentProjection, ROOT> fragment = new InventoryTransferFragmentProjection<>(this, getRoot()); + getFragments().add(fragment); + return fragment; + } + public OrderFragmentProjection, ROOT> onOrder() { OrderFragmentProjection, ROOT> fragment = new OrderFragmentProjection<>(this, getRoot()); getFragments().add(fragment); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CommentGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CommentGraphQLQuery.java index 552a8d85..9028e6dc 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CommentGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CommentGraphQLQuery.java @@ -7,7 +7,7 @@ import java.util.Set; /** - * Returns a Comment resource by ID. + * Returns a `Comment` resource by ID. */ public class CommentGraphQLQuery extends GraphQLQuery { public CommentGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CommentNotSpamGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CommentNotSpamGraphQLQuery.java index b9912bff..43ea26c0 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CommentNotSpamGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CommentNotSpamGraphQLQuery.java @@ -7,7 +7,21 @@ import java.util.Set; /** - * Marks a comment as not spam. + * Reverses a spam classification on a comment, restoring it to normal moderation + * status. This mutation allows merchants to change their decision when a comment + * has been manually marked as spam. + * + * For example, when a merchant reviews comments marked as spam and finds a + * legitimate customer question, they can use this mutation to restore the + * comment's normal status and make it eligible for approval. + * + * Use the `commentNotSpam` mutation to: + * - Unmark comments that were marked as spam + * - Restore comments to normal moderation status + * - Move comments back to the approval queue + * + * This action changes the comment's status from spam back to pending, where it + * can then be approved or managed according to standard moderation practices. */ public class CommentNotSpamGraphQLQuery extends GraphQLQuery { public CommentNotSpamGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CommentSpamGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CommentSpamGraphQLQuery.java index b9c17433..c482d24f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CommentSpamGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CommentSpamGraphQLQuery.java @@ -7,7 +7,20 @@ import java.util.Set; /** - * Marks a comment as spam. + * Marks a comment as spam, removing it from public view. This mutation enables + * merchants to quickly handle unwanted promotional content, malicious links, or + * other spam that appears in blog discussions. + * + * For example, when a comment contains suspicious links to unrelated products or + * services, merchants can mark it as spam to immediately hide it from customers. + * + * Use the `commentSpam` mutation to: + * - Hide promotional or malicious comments from public view + * - Protect customers from potentially harmful links + * - Maintain professional discussion quality on blog articles + * + * Spam-marked comments can be reviewed later and potentially restored using the + * `commentNotSpam` mutation if they were incorrectly classified. */ public class CommentSpamGraphQLQuery extends GraphQLQuery { public CommentSpamGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompaniesCountGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompaniesCountGraphQLQuery.java index 8575bd21..12d3a835 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompaniesCountGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompaniesCountGraphQLQuery.java @@ -1,17 +1,21 @@ package com.shopify.admin.client; import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import java.lang.Integer; import java.lang.Override; import java.lang.String; import java.util.HashSet; import java.util.Set; /** - * The number of companies for a shop. + * The number of companies for a shop. Limited to a maximum of 10000 by default. */ public class CompaniesCountGraphQLQuery extends GraphQLQuery { - public CompaniesCountGraphQLQuery(String queryName) { + public CompaniesCountGraphQLQuery(Integer limit, String queryName, Set fieldsSet) { super("query", queryName); + if (limit != null || fieldsSet.contains("limit")) { + getInput().put("limit", limit); + } } public CompaniesCountGraphQLQuery() { @@ -30,10 +34,22 @@ public static Builder newRequest() { public static class Builder { private Set fieldsSet = new HashSet<>(); + private Integer limit; + private String queryName; public CompaniesCountGraphQLQuery build() { - return new CompaniesCountGraphQLQuery(queryName); + return new CompaniesCountGraphQLQuery(limit, queryName, fieldsSet); + + } + + /** + * The upper bound on count value before returning a result. Use `null` to have no limit. + */ + public Builder limit(Integer limit) { + this.limit = limit; + this.fieldsSet.add("limit"); + return this; } public Builder queryName(String queryName) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompaniesGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompaniesGraphQLQuery.java index 64e5cdb8..be1e2d20 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompaniesGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompaniesGraphQLQuery.java @@ -10,7 +10,13 @@ import java.util.Set; /** - * Returns the list of companies in the shop. + * A paginated list of companies in the shop. + * [`Company`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Company) + * objects are business entities that purchase from the merchant. + * + * Use the [`query`](https://shopify.dev/docs/api/admin-graphql/latest/queries/companies#arguments-query) argument to filter companies by attributes like name or externalId. Sort and + * paginate results to handle large datasets efficiently. Learn more about + * [Shopify API search syntax](https://shopify.dev/docs/api/usage/search-syntax). */ public class CompaniesGraphQLQuery extends GraphQLQuery { public CompaniesGraphQLQuery(Integer first, String after, Integer last, String before, @@ -135,6 +141,11 @@ public Builder sortKey(CompanySortKeys sortKey) { * | created_at | time | * | external_id | id | * | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | + * | metafields.{namespace}.{key} | mixed | Filters resources by metafield + * value. Format: `metafields.{namespace}.{key}:{value}`. Learn more about + * [querying by metafield value](https://shopify.dev/apps/build/custom-data/metafields/query-by-metafield-value). + * | | | - `metafields.custom.on_sale:true`
- + * `metafields.product.material:"gid://shopify/Metaobject/43458085"` | * | name | string | * | since_date | time | * | updated_at | time | diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyAssignCustomerAsContactGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyAssignCustomerAsContactGraphQLQuery.java index fec3669b..7a80ff33 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyAssignCustomerAsContactGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyAssignCustomerAsContactGraphQLQuery.java @@ -7,7 +7,16 @@ import java.util.Set; /** - * Assigns the customer as a company contact. + * Adds an existing [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer) + * as a contact to a [`Company`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Company). + * Companies are business entities that make purchases from the merchant's + * store. Use this mutation when you have a customer who needs to be associated + * with a B2B company to make purchases on behalf of that company. + * + * The mutation returns the newly created [`CompanyContact`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CompanyContact) + * that links the customer to the company. After assignment, the customer becomes + * a company contact who can place orders on behalf of the company with access to + * any catalogs, pricing, and payment terms configured for the company's locations. */ public class CompanyAssignCustomerAsContactGraphQLQuery extends GraphQLQuery { public CompanyAssignCustomerAsContactGraphQLQuery(String companyId, String customerId, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyContactGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyContactGraphQLQuery.java index b9e974a2..5a108dd6 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyContactGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyContactGraphQLQuery.java @@ -7,7 +7,7 @@ import java.util.Set; /** - * Returns a `CompanyContact` object by ID. + * Returns a `CompanyContact` resource by ID. */ public class CompanyContactGraphQLQuery extends GraphQLQuery { public CompanyContactGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyContactRoleGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyContactRoleGraphQLQuery.java index 4e906ae7..ac89ae59 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyContactRoleGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyContactRoleGraphQLQuery.java @@ -7,7 +7,7 @@ import java.util.Set; /** - * Returns a `CompanyContactRole` object by ID. + * Returns a `CompanyContactRole` resource by ID. */ public class CompanyContactRoleGraphQLQuery extends GraphQLQuery { public CompanyContactRoleGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyCreateGraphQLQuery.java index 2d8ed4b2..cc9bf4a7 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyCreateGraphQLQuery.java @@ -8,7 +8,15 @@ import java.util.Set; /** - * Creates a company. + * Creates a [`Company`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Company) + * for B2B commerce. This mutation creates the company and can optionally create an initial [`CompanyContact`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CompanyContact) and [`CompanyLocation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CompanyLocation) + * in a single operation. Company contacts are people who place orders on behalf + * of the company. Company locations are branches or offices with their own + * billing and shipping addresses. + * + * > Note: Creating a company without a `name` [returns an error](https://shopify.dev/docs/api/admin-graphql/latest/mutations/companycreate?example=creating-a-company-without-a-name-returns-an-error). + * + * Learn more about [creating companies for B2B](https://shopify.dev/docs/apps/build/b2b/start-building#step-1-create-a-company). */ public class CompanyCreateGraphQLQuery extends GraphQLQuery { public CompanyCreateGraphQLQuery(CompanyCreateInput input, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyGraphQLQuery.java index ec799ecb..d79dc9a7 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyGraphQLQuery.java @@ -7,7 +7,7 @@ import java.util.Set; /** - * Returns a `Company` object by ID. + * Returns a `Company` resource by ID. */ public class CompanyGraphQLQuery extends GraphQLQuery { public CompanyGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyLocationCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyLocationCreateGraphQLQuery.java index 9383a852..52666d63 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyLocationCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyLocationCreateGraphQLQuery.java @@ -8,7 +8,14 @@ import java.util.Set; /** - * Creates a company location. + * Creates a new location for a [`Company`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Company). + * Company locations are branches or offices where B2B customers can place orders + * with specific pricing, catalogs, and payment terms. + * + * Creates a company location. Each location can have its own billing and + * shipping addresses, tax settings, and [`buyer experience configuration`](https://shopify.dev/docs/api/admin-graphql/latest/objects/BuyerExperienceConfiguration). + * You can assign [staff members](https://shopify.dev/docs/api/admin-graphql/latest/objects/StaffMember) and [`CompanyContact`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CompanyContact) + * objects to manage the location. */ public class CompanyLocationCreateGraphQLQuery extends GraphQLQuery { public CompanyLocationCreateGraphQLQuery(String companyId, CompanyLocationInput input, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyLocationFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyLocationFragmentProjection.java index a10364d8..04369b83 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyLocationFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyLocationFragmentProjection.java @@ -74,6 +74,16 @@ public CountProjection, ROOT> ca return projection; } + public CountProjection, ROOT> catalogsCount( + Integer limit) { + CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); + getFields().put("catalogsCount", projection); + getInputArguments().computeIfAbsent("catalogsCount", k -> new ArrayList<>()); + InputArgument limitArg = new InputArgument("limit", limit); + getInputArguments().get("catalogsCount").add(limitArg); + return projection; + } + public CompanyProjection, ROOT> company() { CompanyProjection, ROOT> projection = new CompanyProjection<>(this, getRoot()); getFields().put("company", projection); @@ -334,6 +344,31 @@ public CompanyLocationStaffMemberAssignmentConnectionProjection, ROOT> storeCreditAccounts( + ) { + StoreCreditAccountConnectionProjection, ROOT> projection = new StoreCreditAccountConnectionProjection<>(this, getRoot()); + getFields().put("storeCreditAccounts", projection); + return projection; + } + + public StoreCreditAccountConnectionProjection, ROOT> storeCreditAccounts( + Integer first, String after, Integer last, String before, String query) { + StoreCreditAccountConnectionProjection, ROOT> projection = new StoreCreditAccountConnectionProjection<>(this, getRoot()); + getFields().put("storeCreditAccounts", projection); + getInputArguments().computeIfAbsent("storeCreditAccounts", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("storeCreditAccounts").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("storeCreditAccounts").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("storeCreditAccounts").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("storeCreditAccounts").add(beforeArg); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("storeCreditAccounts").add(queryArg); + return projection; + } + public TaxExemptionProjection, ROOT> taxExemptions( ) { TaxExemptionProjection, ROOT> projection = new TaxExemptionProjection<>(this, getRoot()); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyLocationGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyLocationGraphQLQuery.java index ee8b274e..5d20104c 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyLocationGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyLocationGraphQLQuery.java @@ -7,7 +7,7 @@ import java.util.Set; /** - * Returns a `CompanyLocation` object by ID. + * Returns a `CompanyLocation` resource by ID. */ public class CompanyLocationGraphQLQuery extends GraphQLQuery { public CompanyLocationGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyLocationProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyLocationProjection.java index 17484220..c1d7ce84 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyLocationProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyLocationProjection.java @@ -67,6 +67,16 @@ public CountProjection, ROOT> catalogsCo return projection; } + public CountProjection, ROOT> catalogsCount( + Integer limit) { + CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); + getFields().put("catalogsCount", projection); + getInputArguments().computeIfAbsent("catalogsCount", k -> new ArrayList<>()); + InputArgument limitArg = new InputArgument("limit", limit); + getInputArguments().get("catalogsCount").add(limitArg); + return projection; + } + public CompanyProjection, ROOT> company() { CompanyProjection, ROOT> projection = new CompanyProjection<>(this, getRoot()); getFields().put("company", projection); @@ -325,6 +335,31 @@ public CompanyLocationStaffMemberAssignmentConnectionProjection, ROOT> storeCreditAccounts( + ) { + StoreCreditAccountConnectionProjection, ROOT> projection = new StoreCreditAccountConnectionProjection<>(this, getRoot()); + getFields().put("storeCreditAccounts", projection); + return projection; + } + + public StoreCreditAccountConnectionProjection, ROOT> storeCreditAccounts( + Integer first, String after, Integer last, String before, String query) { + StoreCreditAccountConnectionProjection, ROOT> projection = new StoreCreditAccountConnectionProjection<>(this, getRoot()); + getFields().put("storeCreditAccounts", projection); + getInputArguments().computeIfAbsent("storeCreditAccounts", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("storeCreditAccounts").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("storeCreditAccounts").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("storeCreditAccounts").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("storeCreditAccounts").add(beforeArg); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("storeCreditAccounts").add(queryArg); + return projection; + } + public TaxExemptionProjection, ROOT> taxExemptions() { TaxExemptionProjection, ROOT> projection = new TaxExemptionProjection<>(this, getRoot()); getFields().put("taxExemptions", projection); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyLocationProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyLocationProjectionRoot.java index bdad2312..42664b90 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyLocationProjectionRoot.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyLocationProjectionRoot.java @@ -70,6 +70,16 @@ public CountProjection, CompanyLocat return projection; } + public CountProjection, CompanyLocationProjectionRoot> catalogsCount( + Integer limit) { + CountProjection, CompanyLocationProjectionRoot> projection = new CountProjection<>(this, this); + getFields().put("catalogsCount", projection); + getInputArguments().computeIfAbsent("catalogsCount", k -> new ArrayList<>()); + InputArgument limitArg = new InputArgument("limit", limit); + getInputArguments().get("catalogsCount").add(limitArg); + return projection; + } + public CompanyProjection, CompanyLocationProjectionRoot> company( ) { CompanyProjection, CompanyLocationProjectionRoot> projection = new CompanyProjection<>(this, this); @@ -347,6 +357,31 @@ public CompanyLocationStaffMemberAssignmentConnectionProjection, CompanyLocationProjectionRoot> storeCreditAccounts( + ) { + StoreCreditAccountConnectionProjection, CompanyLocationProjectionRoot> projection = new StoreCreditAccountConnectionProjection<>(this, this); + getFields().put("storeCreditAccounts", projection); + return projection; + } + + public StoreCreditAccountConnectionProjection, CompanyLocationProjectionRoot> storeCreditAccounts( + Integer first, String after, Integer last, String before, String query) { + StoreCreditAccountConnectionProjection, CompanyLocationProjectionRoot> projection = new StoreCreditAccountConnectionProjection<>(this, this); + getFields().put("storeCreditAccounts", projection); + getInputArguments().computeIfAbsent("storeCreditAccounts", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("storeCreditAccounts").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("storeCreditAccounts").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("storeCreditAccounts").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("storeCreditAccounts").add(beforeArg); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("storeCreditAccounts").add(queryArg); + return projection; + } + public TaxExemptionProjection, CompanyLocationProjectionRoot> taxExemptions( ) { TaxExemptionProjection, CompanyLocationProjectionRoot> projection = new TaxExemptionProjection<>(this, this); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyLocationUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyLocationUpdateGraphQLQuery.java index 84c59e38..d8b46541 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyLocationUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyLocationUpdateGraphQLQuery.java @@ -8,7 +8,18 @@ import java.util.Set; /** - * Updates a company location. + * Updates a company location's information and B2B checkout settings. Company + * locations are branches or offices where [`CompanyContact`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CompanyContact) + * members place orders on behalf of the company. Contacts must be assigned to a + * location through `roleAssignments` to place orders. + * + * The mutation modifies details such as the location's name, contact + * information, preferred locale, and internal notes. You can also configure the + * B2B checkout experience through [`BuyerExperienceConfiguration`](https://shopify.dev/docs/api/admin-graphql/latest/objects/BuyerExperienceConfiguration) + * settings that control whether orders require merchant review, [`PaymentTermsTemplate`](https://shopify.dev/docs/api/admin-graphql/latest/objects/PaymentTermsTemplate) + * settings, shipping address editing permissions, and [`DepositConfiguration`](https://shopify.dev/docs/api/admin-graphql/latest/unions/DepositConfiguration) requirements. + * + * Learn more about [managing company locations](https://shopify.dev/docs/apps/build/b2b/manage-client-company-locations). */ public class CompanyLocationUpdateGraphQLQuery extends GraphQLQuery { public CompanyLocationUpdateGraphQLQuery(String companyLocationId, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyLocationsGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyLocationsGraphQLQuery.java index f2ae7e7e..bde4b7e2 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyLocationsGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyLocationsGraphQLQuery.java @@ -10,7 +10,16 @@ import java.util.Set; /** - * Returns the list of company locations in the shop. + * A paginated list of [`CompanyLocation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CompanyLocation) + * objects for B2B customers. Company locations represent individual branches or offices of a + * [`Company`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Company) + * where B2B orders can be placed. + * + * Each location can have its own billing and shipping addresses, tax settings, [`PaymentTerms`](https://shopify.dev/docs/api/admin-graphql/latest/objects/PaymentTerms), and [`Catalog`](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/Catalog) + * assignments with custom pricing. Use the query parameter to search locations + * by name or other attributes. + * + * Learn more about [managing company locations](https://shopify.dev/docs/apps/build/b2b/manage-client-company-locations). */ public class CompanyLocationsGraphQLQuery extends GraphQLQuery { public CompanyLocationsGraphQLQuery(Integer first, String after, Integer last, String before, @@ -136,6 +145,11 @@ public Builder sortKey(CompanyLocationSortKeys sortKey) { * | external_id | string | * | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | * | ids | string | + * | metafields.{namespace}.{key} | mixed | Filters resources by metafield + * value. Format: `metafields.{namespace}.{key}:{value}`. Learn more about + * [querying by metafield value](https://shopify.dev/apps/build/custom-data/metafields/query-by-metafield-value). + * | | | - `metafields.custom.on_sale:true`
- + * `metafields.product.material:"gid://shopify/Metaobject/43458085"` | * | name | string | * | updated_at | time | * You can apply one or more filters to a query. Learn more about [Shopify API diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyUpdateGraphQLQuery.java index 728cc0b5..46c0b833 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CompanyUpdateGraphQLQuery.java @@ -8,7 +8,17 @@ import java.util.Set; /** - * Updates a company. + * Updates a [`Company`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Company) + * with new information. Companies represent business customers that can have + * multiple contacts and locations with specific pricing, payment terms, and + * checkout settings. + * + * The mutation accepts the company's ID and an input object containing the + * fields to update. You can modify the company name, add or update internal + * notes, set an external ID for integration with other systems, or adjust the + * customer relationship start date. + * + * Learn more about [building B2B features](https://shopify.dev/docs/apps/build/b2b/start-building). */ public class CompanyUpdateGraphQLQuery extends GraphQLQuery { public CompanyUpdateGraphQLQuery(String companyId, CompanyInput input, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ComponentizedProductsBundleConsolidatedOptionProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ComponentizedProductsBundleConsolidatedOptionProjection.java new file mode 100644 index 00000000..8d2c37c5 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ComponentizedProductsBundleConsolidatedOptionProjection.java @@ -0,0 +1,26 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class ComponentizedProductsBundleConsolidatedOptionProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public ComponentizedProductsBundleConsolidatedOptionProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("ComponentizedProductsBundleConsolidatedOption")); + } + + public ComponentizedProductsBundleConsolidatedOptionProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public ComponentizedProductsBundleConsolidatedOptionSelectionProjection, ROOT> selections( + ) { + ComponentizedProductsBundleConsolidatedOptionSelectionProjection, ROOT> projection = new ComponentizedProductsBundleConsolidatedOptionSelectionProjection<>(this, getRoot()); + getFields().put("selections", projection); + return projection; + } + + public ComponentizedProductsBundleConsolidatedOptionProjection name() { + getFields().put("name", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ComponentizedProductsBundleConsolidatedOptionSelectionComponentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ComponentizedProductsBundleConsolidatedOptionSelectionComponentProjection.java new file mode 100644 index 00000000..e528dd9b --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ComponentizedProductsBundleConsolidatedOptionSelectionComponentProjection.java @@ -0,0 +1,28 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class ComponentizedProductsBundleConsolidatedOptionSelectionComponentProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public ComponentizedProductsBundleConsolidatedOptionSelectionComponentProjection(PARENT parent, + ROOT root) { + super(parent, root, java.util.Optional.of("ComponentizedProductsBundleConsolidatedOptionSelectionComponent")); + } + + public ComponentizedProductsBundleConsolidatedOptionSelectionComponentProjection __typename( + ) { + getFields().put("__typename", null); + return this; + } + + public ComponentizedProductsBundleConsolidatedOptionSelectionComponentProjection optionId( + ) { + getFields().put("optionId", null); + return this; + } + + public ComponentizedProductsBundleConsolidatedOptionSelectionComponentProjection value( + ) { + getFields().put("value", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ComponentizedProductsBundleConsolidatedOptionSelectionProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ComponentizedProductsBundleConsolidatedOptionSelectionProjection.java new file mode 100644 index 00000000..8e9dcebb --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ComponentizedProductsBundleConsolidatedOptionSelectionProjection.java @@ -0,0 +1,28 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class ComponentizedProductsBundleConsolidatedOptionSelectionProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public ComponentizedProductsBundleConsolidatedOptionSelectionProjection(PARENT parent, + ROOT root) { + super(parent, root, java.util.Optional.of("ComponentizedProductsBundleConsolidatedOptionSelection")); + } + + public ComponentizedProductsBundleConsolidatedOptionSelectionProjection __typename( + ) { + getFields().put("__typename", null); + return this; + } + + public ComponentizedProductsBundleConsolidatedOptionSelectionComponentProjection, ROOT> components( + ) { + ComponentizedProductsBundleConsolidatedOptionSelectionComponentProjection, ROOT> projection = new ComponentizedProductsBundleConsolidatedOptionSelectionComponentProjection<>(this, getRoot()); + getFields().put("components", projection); + return projection; + } + + public ComponentizedProductsBundleConsolidatedOptionSelectionProjection value() { + getFields().put("value", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CurrencyExchangeAdjustmentFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CurrencyExchangeAdjustmentFragmentProjection.java new file mode 100644 index 00000000..bf812882 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CurrencyExchangeAdjustmentFragmentProjection.java @@ -0,0 +1,61 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; +import java.lang.Override; +import java.lang.String; + +public class CurrencyExchangeAdjustmentFragmentProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + { + getFields().put("__typename", null); + } + + public CurrencyExchangeAdjustmentFragmentProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("CurrencyExchangeAdjustment")); + } + + public CurrencyExchangeAdjustmentFragmentProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public MoneyV2Projection, ROOT> adjustment( + ) { + MoneyV2Projection, ROOT> projection = new MoneyV2Projection<>(this, getRoot()); + getFields().put("adjustment", projection); + return projection; + } + + public MoneyV2Projection, ROOT> finalAmountSet( + ) { + MoneyV2Projection, ROOT> projection = new MoneyV2Projection<>(this, getRoot()); + getFields().put("finalAmountSet", projection); + return projection; + } + + public MoneyV2Projection, ROOT> originalAmountSet( + ) { + MoneyV2Projection, ROOT> projection = new MoneyV2Projection<>(this, getRoot()); + getFields().put("originalAmountSet", projection); + return projection; + } + + public CurrencyExchangeAdjustmentFragmentProjection id() { + getFields().put("id", null); + return this; + } + + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + builder.append("... on CurrencyExchangeAdjustment {"); + getFields().forEach((k, v) -> { + builder.append(" ").append(k); + if(v != null) { + builder.append(" ").append(v.toString()); + } + }); + builder.append("}"); + + return builder.toString(); + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CurrencyExchangeAdjustmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CurrencyExchangeAdjustmentProjection.java new file mode 100644 index 00000000..cf86e403 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CurrencyExchangeAdjustmentProjection.java @@ -0,0 +1,39 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class CurrencyExchangeAdjustmentProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public CurrencyExchangeAdjustmentProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("CurrencyExchangeAdjustment")); + } + + public CurrencyExchangeAdjustmentProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public MoneyV2Projection, ROOT> adjustment() { + MoneyV2Projection, ROOT> projection = new MoneyV2Projection<>(this, getRoot()); + getFields().put("adjustment", projection); + return projection; + } + + public MoneyV2Projection, ROOT> finalAmountSet( + ) { + MoneyV2Projection, ROOT> projection = new MoneyV2Projection<>(this, getRoot()); + getFields().put("finalAmountSet", projection); + return projection; + } + + public MoneyV2Projection, ROOT> originalAmountSet( + ) { + MoneyV2Projection, ROOT> projection = new MoneyV2Projection<>(this, getRoot()); + getFields().put("originalAmountSet", projection); + return projection; + } + + public CurrencyExchangeAdjustmentProjection id() { + getFields().put("id", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CurrencySettingProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CurrencySettingProjection.java index 7f0fb2fa..7a1f8b0b 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CurrencySettingProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CurrencySettingProjection.java @@ -28,6 +28,11 @@ public CurrencySettingProjection enabled() { return this; } + public CurrencySettingProjection manualRate() { + getFields().put("manualRate", null); + return this; + } + public CurrencySettingProjection rateUpdatedAt() { getFields().put("rateUpdatedAt", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CurrentAppInstallationGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CurrentAppInstallationGraphQLQuery.java index 9360a0f7..69368f4e 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CurrentAppInstallationGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CurrentAppInstallationGraphQLQuery.java @@ -7,7 +7,14 @@ import java.util.Set; /** - * Return the AppInstallation for the currently authenticated App. + * Returns the [`AppInstallation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AppInstallation) for the currently authenticated app. Provides access to granted access scopes, active [`AppSubscription`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AppSubscription) + * objects, and billing information for your app. + * + * Use this query to check which permissions your app has, monitor subscription + * status, or retrieve [`AppCredit`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AppCredit) + * objects. Learn more about [managing access scopes](https://shopify.dev/docs/api/usage/access-scopes#checking-granted-access-scopes), [subscription + * billing](https://shopify.dev/docs/apps/launch/billing/subscription-billing), and + * [app credits](https://shopify.dev/docs/apps/launch/billing/award-app-credits). */ public class CurrentAppInstallationGraphQLQuery extends GraphQLQuery { public CurrentAppInstallationGraphQLQuery(String queryName) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CurrentBulkOperationGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CurrentBulkOperationGraphQLQuery.java index b7ecb28b..8a407307 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CurrentBulkOperationGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CurrentBulkOperationGraphQLQuery.java @@ -8,8 +8,12 @@ import java.util.Set; /** - * Returns the current app's most recent BulkOperation. Apps can run one bulk - * query and one bulk mutation operation at a time, by shop. + * Returns the current app's most recent [`BulkOperation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/BulkOperation). + * Apps can run one bulk query and one bulk mutation operation at a time per shop. + * + * The operation type parameter determines whether to retrieve the most recent + * query or mutation bulk operation. Use this query to check the operation's + * status, track its progress, and retrieve the result URL when it completes. */ public class CurrentBulkOperationGraphQLQuery extends GraphQLQuery { public CurrentBulkOperationGraphQLQuery(BulkOperationType type, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerAccountPageGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerAccountPageGraphQLQuery.java index 0064607c..116a5d27 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerAccountPageGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerAccountPageGraphQLQuery.java @@ -7,7 +7,7 @@ import java.util.Set; /** - * Returns a customer account page. + * Returns a `CustomerAccountPage` resource by ID. */ public class CustomerAccountPageGraphQLQuery extends GraphQLQuery { public CustomerAccountPageGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerAddressCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerAddressCreateGraphQLQuery.java index 3d481b44..7245b90e 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerAddressCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerAddressCreateGraphQLQuery.java @@ -9,7 +9,9 @@ import java.util.Set; /** - * Create a new customer address. + * Creates a new [`MailingAddress`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MailingAddress) for a [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer). You can optionally set the address as the customer's default address. + * + * You can only add addresses to existing customers. Each customer can have multiple addresses. */ public class CustomerAddressCreateGraphQLQuery extends GraphQLQuery { public CustomerAddressCreateGraphQLQuery(String customerId, MailingAddressInput address, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerAddressUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerAddressUpdateGraphQLQuery.java index c52051ea..f672bb95 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerAddressUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerAddressUpdateGraphQLQuery.java @@ -9,7 +9,8 @@ import java.util.Set; /** - * Update a customer's address information. + * Updates a [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer)'s [`MailingAddress`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MailingAddress). You can modify any field of the address and optionally set it as the + * customer's default address. */ public class CustomerAddressUpdateGraphQLQuery extends GraphQLQuery { public CustomerAddressUpdateGraphQLQuery(String customerId, String addressId, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerCancelDataErasureGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerCancelDataErasureGraphQLQuery.java index e63abaf9..42299f8d 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerCancelDataErasureGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerCancelDataErasureGraphQLQuery.java @@ -7,7 +7,7 @@ import java.util.Set; /** - * Cancels a pending erasure of a customer's data. + * Cancels a pending erasure of a customer's data. Read more [here](https://help.shopify.com/manual/privacy-and-security/privacy/processing-customer-data-requests#cancel-customer-data-erasure). * * To request an erasure of a customer's data use the [customerRequestDataErasure mutation](https://shopify.dev/api/admin-graphql/unstable/mutations/customerRequestDataErasure). */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerCreateGraphQLQuery.java index 5d7c8e3d..fbf77524 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerCreateGraphQLQuery.java @@ -8,8 +8,14 @@ import java.util.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). + * Creates a new [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer) in the store. + * + * Accepts customer details including contact information, marketing consent + * preferences, and tax exemptions through the [`CustomerInput`](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/CustomerInput) + * input object. You can also associate [`metafields`](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/MetafieldInput) + * and tags to organize and extend customer data. + * + * Apps using protected customer data must meet Shopify's [protected customer data requirements](https://shopify.dev/docs/apps/launch/protected-customer-data#requirements). */ public class CustomerCreateGraphQLQuery extends GraphQLQuery { public CustomerCreateGraphQLQuery(CustomerInput input, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerDeleteGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerDeleteGraphQLQuery.java index 031be7a6..7a0ae44f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerDeleteGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerDeleteGraphQLQuery.java @@ -8,8 +8,10 @@ import java.util.Set; /** - * Delete a 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). + * Deletes a [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer) from the store. You can only delete customers who haven't placed any + * [orders](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order). + * + * Apps using protected customer data must meet Shopify's [protected customer data requirements](https://shopify.dev/docs/apps/launch/protected-customer-data#requirements). */ public class CustomerDeleteGraphQLQuery extends GraphQLQuery { public CustomerDeleteGraphQLQuery(CustomerDeleteInput input, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerEmailMarketingConsentUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerEmailMarketingConsentUpdateGraphQLQuery.java index 00edf9c6..17ebabdf 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerEmailMarketingConsentUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerEmailMarketingConsentUpdateGraphQLQuery.java @@ -8,7 +8,14 @@ import java.util.Set; /** - * Update a customer's email marketing information information. + * Updates a [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer)'s email marketing consent information. The customer must have an email address + * to update their consent. Records the [marketing state](https://shopify.dev/docs/api/admin-graphql/latest/objects/CustomerEmailAddress#field-marketingState) + * (such as subscribed, pending, unsubscribed), [opt-in level](https://shopify.dev/docs/api/admin-graphql/latest/objects/CustomerEmailAddress#field-marketingOptInLevel), + * and when and where the customer gave or withdrew consent. + * + * Only three values are accepted as input: SUBSCRIBED, UNSUBSCRIBED, and PENDING. + * NOT_SUBSCRIBED, REDACTED, and INVALID cannot be set via this mutation; they are + * read-only or internally-set states. */ public class CustomerEmailMarketingConsentUpdateGraphQLQuery extends GraphQLQuery { public CustomerEmailMarketingConsentUpdateGraphQLQuery( diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerGenerateAccountActivationUrlGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerGenerateAccountActivationUrlGraphQLQuery.java index cb2dc1d7..804d1227 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerGenerateAccountActivationUrlGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerGenerateAccountActivationUrlGraphQLQuery.java @@ -7,7 +7,15 @@ import java.util.Set; /** - * Generate an account activation URL for a customer. + * Generates a one-time activation URL for a [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer) + * whose legacy customer account isn't yet enabled. Use this after importing + * customers or creating accounts that need activation. + * + * The generated URL expires after 30 days and becomes invalid if you generate a new one. + * + * > Note: The generated URL only works when legacy customer accounts are enabled + * on the shop. It only works for customers with disabled or invited [`account states`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer#field-Customer.fields.state). + * Attempting to generate a URL for an already-enabled customer returns an error. */ public class CustomerGenerateAccountActivationUrlGraphQLQuery extends GraphQLQuery { public CustomerGenerateAccountActivationUrlGraphQLQuery(String customerId, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerGraphQLQuery.java index 6b766204..0759244f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerGraphQLQuery.java @@ -7,7 +7,7 @@ import java.util.Set; /** - * Returns a Customer resource by ID. + * Returns a `Customer` resource by ID. */ public class CustomerGraphQLQuery extends GraphQLQuery { public CustomerGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerPaymentInstrumentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerPaymentInstrumentProjection.java index 26b15509..5b2f972a 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerPaymentInstrumentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerPaymentInstrumentProjection.java @@ -12,6 +12,13 @@ public CustomerPaymentInstrumentProjection __typename() { return this; } + public BankAccountFragmentProjection, ROOT> onBankAccount( + ) { + BankAccountFragmentProjection, ROOT> fragment = new BankAccountFragmentProjection<>(this, getRoot()); + getFragments().add(fragment); + return fragment; + } + public CustomerCreditCardFragmentProjection, ROOT> onCustomerCreditCard( ) { CustomerCreditCardFragmentProjection, ROOT> fragment = new CustomerCreditCardFragmentProjection<>(this, getRoot()); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerPaymentMethodFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerPaymentMethodFragmentProjection.java index a202d564..d2f498d7 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerPaymentMethodFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerPaymentMethodFragmentProjection.java @@ -35,6 +35,31 @@ public CustomerPaymentInstrumentProjection, ROOT> mandates( + ) { + PaymentMandateResourceConnectionProjection, ROOT> projection = new PaymentMandateResourceConnectionProjection<>(this, getRoot()); + getFields().put("mandates", projection); + return projection; + } + + public PaymentMandateResourceConnectionProjection, ROOT> mandates( + Integer first, String after, Integer last, String before, Boolean reverse) { + PaymentMandateResourceConnectionProjection, ROOT> projection = new PaymentMandateResourceConnectionProjection<>(this, getRoot()); + getFields().put("mandates", projection); + getInputArguments().computeIfAbsent("mandates", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("mandates").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("mandates").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("mandates").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("mandates").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("mandates").add(reverseArg); + return projection; + } + public CustomerPaymentMethodRevocationReasonProjection, ROOT> revokedReason( ) { CustomerPaymentMethodRevocationReasonProjection, ROOT> projection = new CustomerPaymentMethodRevocationReasonProjection<>(this, getRoot()); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerPaymentMethodProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerPaymentMethodProjection.java index 29586b4a..7f5a6fdf 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerPaymentMethodProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerPaymentMethodProjection.java @@ -29,6 +29,31 @@ public CustomerPaymentInstrumentProjection, ROOT> mandates( + ) { + PaymentMandateResourceConnectionProjection, ROOT> projection = new PaymentMandateResourceConnectionProjection<>(this, getRoot()); + getFields().put("mandates", projection); + return projection; + } + + public PaymentMandateResourceConnectionProjection, ROOT> mandates( + Integer first, String after, Integer last, String before, Boolean reverse) { + PaymentMandateResourceConnectionProjection, ROOT> projection = new PaymentMandateResourceConnectionProjection<>(this, getRoot()); + getFields().put("mandates", projection); + getInputArguments().computeIfAbsent("mandates", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("mandates").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("mandates").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("mandates").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("mandates").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("mandates").add(reverseArg); + return projection; + } + public CustomerPaymentMethodRevocationReasonProjection, ROOT> revokedReason( ) { CustomerPaymentMethodRevocationReasonProjection, ROOT> projection = new CustomerPaymentMethodRevocationReasonProjection<>(this, getRoot()); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerPaymentMethodProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerPaymentMethodProjectionRoot.java index b4cd66f2..ddf936ea 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerPaymentMethodProjectionRoot.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerPaymentMethodProjectionRoot.java @@ -30,6 +30,31 @@ public CustomerPaymentInstrumentProjection, CustomerPaymentMethodProjectionRoot> mandates( + ) { + PaymentMandateResourceConnectionProjection, CustomerPaymentMethodProjectionRoot> projection = new PaymentMandateResourceConnectionProjection<>(this, this); + getFields().put("mandates", projection); + return projection; + } + + public PaymentMandateResourceConnectionProjection, CustomerPaymentMethodProjectionRoot> mandates( + Integer first, String after, Integer last, String before, Boolean reverse) { + PaymentMandateResourceConnectionProjection, CustomerPaymentMethodProjectionRoot> projection = new PaymentMandateResourceConnectionProjection<>(this, this); + getFields().put("mandates", projection); + getInputArguments().computeIfAbsent("mandates", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("mandates").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("mandates").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("mandates").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("mandates").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("mandates").add(reverseArg); + return projection; + } + public CustomerPaymentMethodRevocationReasonProjection, CustomerPaymentMethodProjectionRoot> revokedReason( ) { CustomerPaymentMethodRevocationReasonProjection, CustomerPaymentMethodProjectionRoot> projection = new CustomerPaymentMethodRevocationReasonProjection<>(this, this); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerPaymentMethodRemoteCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerPaymentMethodRemoteCreateGraphQLQuery.java index 9f54b22e..0ed3de25 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerPaymentMethodRemoteCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerPaymentMethodRemoteCreateGraphQLQuery.java @@ -8,11 +8,18 @@ import java.util.Set; /** - * Create a payment method from remote gateway identifiers. NOTE: This operation - * processes payment methods asynchronously. The returned payment method will - * initially have incomplete details. Developers must poll this payment method - * using customerPaymentMethod query until all payment method details are - * available, or the payment method is revoked (usually within seconds). + * Creates a customer payment method using identifiers from remote payment + * gateways like Stripe, Authorize.Net, or Braintree. Imports existing payment + * methods from external gateways and associates them with [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer) + * objects in Shopify. + * + * The operation processes payment methods asynchronously. The returned [`CustomerPaymentMethod`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CustomerPaymentMethod) + * initially has incomplete details while Shopify validates and processes the + * remote gateway information. Use the [`customerPaymentMethod`](https://shopify.dev/docs/api/admin-graphql/latest/queries/customerPaymentMethod) + * query to retrieve the payment method status until all details are available or + * the payment method is revoked. + * + * Learn more about [migrating customer payment methods from remote gateways](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/migrate-to-subscriptions-api/migrate-customer-information#step-2-import-payment-methods-for-customers). */ public class CustomerPaymentMethodRemoteCreateGraphQLQuery extends GraphQLQuery { public CustomerPaymentMethodRemoteCreateGraphQLQuery(String customerId, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerSegmentMembersGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerSegmentMembersGraphQLQuery.java index 32d41dec..9ef0c7e5 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerSegmentMembersGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerSegmentMembersGraphQLQuery.java @@ -9,7 +9,11 @@ import java.util.Set; /** - * The list of members, such as customers, that's associated with an individual segment. + * A paginated list of customers that belong to an individual [`Segment`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Segment). + * Segments group customers based on criteria defined through [ShopifyQL queries](https://shopify.dev/docs/api/shopifyql/segment-query-language-reference). + * Access segment members with their profile information and purchase summary + * data. The connection includes statistics for analyzing segment attributes + * (such as average and sum calculations) and a total count of all members. * The maximum page size is 1000. */ public class CustomerSegmentMembersGraphQLQuery extends GraphQLQuery { @@ -133,7 +137,15 @@ public Builder reverse(Boolean reverse) { } /** - * Sort the list by a given key. + * Sort the list by a given key. Valid values: + * • `created_at` - Sort by customer creation date + * • `first_order_date` - Sort by the date of the customer's first order + * • `last_abandoned_order_date` - Sort by the date of the customer's last abandoned checkout + * • `last_order_date` - Sort by the date of the customer's most recent order + * • `number_of_orders` - Sort by the total number of orders placed by the customer + * • `amount_spent` - Sort by the total amount the customer has spent across all orders + * + * Use with the `reverse` parameter to control sort direction (ascending by default, descending when reverse=true). */ public Builder sortKey(String sortKey) { this.sortKey = sortKey; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerSegmentMembersQueryGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerSegmentMembersQueryGraphQLQuery.java index 2985610c..4bd028a7 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerSegmentMembersQueryGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerSegmentMembersQueryGraphQLQuery.java @@ -7,7 +7,7 @@ import java.util.Set; /** - * Returns a segment members query resource by ID. + * Returns a `CustomerSegmentMembersQuery` resource by ID. */ public class CustomerSegmentMembersQueryGraphQLQuery extends GraphQLQuery { public CustomerSegmentMembersQueryGraphQLQuery(String id, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerSendAccountInviteEmailGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerSendAccountInviteEmailGraphQLQuery.java index b3f178c0..271a4707 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerSendAccountInviteEmailGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerSendAccountInviteEmailGraphQLQuery.java @@ -8,7 +8,15 @@ import java.util.Set; /** - * Sends the customer an account invite email. + * Sends an email invitation for a customer to create a legacy customer account. + * The invitation lets customers set up their password and activate their account + * in the online store. + * + * You can optionally customize the email content including the subject, sender, + * recipients, and message body. If you don't provide email customization, the + * store uses its default account invitation template. + * + * > Note: The invite only works when legacy customer accounts are enabled on the shop. */ public class CustomerSendAccountInviteEmailGraphQLQuery extends GraphQLQuery { public CustomerSendAccountInviteEmailGraphQLQuery(String customerId, EmailInput email, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerSmsMarketingConsentUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerSmsMarketingConsentUpdateGraphQLQuery.java index aa970595..4c0fa33d 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerSmsMarketingConsentUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerSmsMarketingConsentUpdateGraphQLQuery.java @@ -8,7 +8,12 @@ import java.util.Set; /** - * Update a customer's SMS marketing consent information. + * Updates a [customer](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer)'s SMS marketing consent information. The customer must have a phone number on + * their account to receive SMS marketing. + * + * You can set whether the customer subscribes or unsubscribes to SMS marketing + * and specify the [opt-in level](https://shopify.dev/docs/api/admin-graphql/latest/mutations/customerSmsMarketingConsentUpdate#arguments-input.fields.smsMarketingConsent.marketingOptInLevel). + * Optionally include when the consent was collected and which [location](https://shopify.dev/docs/api/admin-graphql/latest/mutations/customerSmsMarketingConsentUpdate#arguments-input.fields.smsMarketingConsent.sourceLocationId) collected it. */ public class CustomerSmsMarketingConsentUpdateGraphQLQuery extends GraphQLQuery { public CustomerSmsMarketingConsentUpdateGraphQLQuery(CustomerSmsMarketingConsentUpdateInput input, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerUpdateGraphQLQuery.java index 5e9445fa..26a3ea8d 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomerUpdateGraphQLQuery.java @@ -8,8 +8,9 @@ import java.util.Set; /** - * Update a customer's attributes. 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). + * Updates a [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer)'s attributes including personal information and [`tax exemptions`](https://shopify.dev/docs/api/admin-graphql/latest/enums/TaxExemption). + * + * Apps using protected customer data must meet Shopify's [protected customer data requirements](https://shopify.dev/docs/apps/launch/protected-customer-data#requirements). */ public class CustomerUpdateGraphQLQuery extends GraphQLQuery { public CustomerUpdateGraphQLQuery(CustomerInput input, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomersCountGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomersCountGraphQLQuery.java index 30e81eb3..0b69dab7 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomersCountGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomersCountGraphQLQuery.java @@ -1,19 +1,23 @@ package com.shopify.admin.client; import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import java.lang.Integer; import java.lang.Override; import java.lang.String; import java.util.HashSet; import java.util.Set; /** - * The number of customers. + * The number of customers. Limited to a maximum of 10000 by default. */ public class CustomersCountGraphQLQuery extends GraphQLQuery { - public CustomersCountGraphQLQuery(String query, String queryName, Set fieldsSet) { + public CustomersCountGraphQLQuery(String query, Integer limit, String queryName, + Set fieldsSet) { super("query", queryName); if (query != null || fieldsSet.contains("query")) { getInput().put("query", query); + }if (limit != null || fieldsSet.contains("limit")) { + getInput().put("limit", limit); } } @@ -35,10 +39,12 @@ public static class Builder { private String query; + private Integer limit; + private String queryName; public CustomersCountGraphQLQuery build() { - return new CustomersCountGraphQLQuery(query, queryName, fieldsSet); + return new CustomersCountGraphQLQuery(query, limit, queryName, fieldsSet); } @@ -58,6 +64,15 @@ public Builder query(String query) { return this; } + /** + * The upper bound on count value before returning a result. Use `null` to have no limit. + */ + public Builder limit(Integer limit) { + this.limit = limit; + this.fieldsSet.add("limit"); + return this; + } + public Builder queryName(String queryName) { this.queryName = queryName; return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomersGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomersGraphQLQuery.java index 4f04c944..57968987 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomersGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/CustomersGraphQLQuery.java @@ -147,12 +147,16 @@ public Builder sortKey(CustomerSortKeys sortKey) { * `country:Canada`
- `country:JP` | * | customer_date | time | Filter by the date and time when the customer * record was created. This query parameter filters by the [`createdAt`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer#field-createdAt) - * field. | | | - `customer_date:'2024-03-15T14:30:00Z'`
- - * `customer_date:'>=2024-01-01'` | + * field. | | | - `customer_date:'2024-03-15T14:30:00Z'`
- `customer_date: + * >='2024-01-01'` | * | email | string | The customer's email address, used to communicate * information about orders and for the purposes of email marketing campaigns. * You can use a wildcard value to filter the query by customers who have an - * email address specified. | | | - `email:bo.wang@example.com`
- `email:*` | + * email address specified. Please note that _email_ is a tokenized field: To + * retrieve exact matches, quote the email address (_phrase query_) as + * described in [Shopify API search + * syntax](https://shopify.dev/docs/api/usage/search-syntax). | | | - + * `email:gmail.com`
- `email:"bo.wang@example.com"`
- `email:*` | * | first_name | string | Filter by the customer's first name. | | | - `first_name:Jane` | * | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | * | last_abandoned_order_date | time | Filter by the date and time of the @@ -160,12 +164,12 @@ public Builder sortKey(CustomerSortKeys sortKey) { * a customer adds items to their cart, begins the checkout process, but leaves * the site without completing their purchase. | | | - * `last_abandoned_order_date:'2024-04-01T10:00:00Z'`
- - * `last_abandoned_order_date:'>=2024-01-01'` | + * `last_abandoned_order_date: >='2024-01-01'` | * | last_name | string | Filter by the customer's last name. | | | - `last_name:Reeves` | * | order_date | time | Filter by the date and time that the order was placed * by the customer. Use this query filter to check if a customer has placed at * least one order within a specified date range. | | | - - * `order_date:'2024-02-20T00:00:00Z'`
- `order_date:'>=2024-01-01'`
+ * `order_date:'2024-02-20T00:00:00Z'`
- `order_date: >='2024-01-01'`
* - `order_date:'2024-01-01..2024-03-31'` | * | orders_count | integer | Filter by the total number of orders a customer has placed. | | | - `orders_count:5` | * | phone | string | The phone number of the customer, used to communicate diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DelegateAccessTokenCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DelegateAccessTokenCreateGraphQLQuery.java index 6c4a94e4..6727ca34 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DelegateAccessTokenCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DelegateAccessTokenCreateGraphQLQuery.java @@ -8,10 +8,14 @@ import java.util.Set; /** - * Creates a delegate access token. + * Creates a [`DelegateAccessToken`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DelegateAccessToken) with a subset of the parent token's permissions. * - * To learn more about creating delegate access tokens, refer to - * [Delegate OAuth access tokens to subsystems](https://shopify.dev/docs/apps/build/authentication-authorization/access-tokens/use-delegate-tokens). + * Delegate access tokens enable secure permission delegation to subsystems or + * services that need limited access to shop resources. Each token inherits only + * the scopes you specify, ensuring subsystems operate with minimal required + * permissions rather than full app access. + * + * Learn more about [delegating access tokens to subsystems](https://shopify.dev/docs/apps/build/authentication-authorization/access-tokens/use-delegate-tokens). */ public class DelegateAccessTokenCreateGraphQLQuery extends GraphQLQuery { public DelegateAccessTokenCreateGraphQLQuery(DelegateAccessTokenInput input, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DeliveryProfileCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DeliveryProfileCreateGraphQLQuery.java index 230f8295..17a282da 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DeliveryProfileCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DeliveryProfileCreateGraphQLQuery.java @@ -8,7 +8,17 @@ import java.util.Set; /** - * Create a delivery profile. + * Creates a [`DeliveryProfile`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DeliveryProfile) that defines shipping rates for specific products and locations. + * + * A delivery profile groups products with their shipping zones and rates. You + * can associate profiles with [`SellingPlanGroup`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SellingPlanGroup) + * objects to customize shipping for subscriptions and pre-orders. Each profile contains [`DeliveryProfileLocationGroup`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DeliveryProfileLocationGroup) + * objects that specify which [`Location`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location) + * objects ship to which [`DeliveryZone`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DeliveryZone) + * objects with specific [`DeliveryMethodDefinition`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DeliveryMethodDefinition) + * objects and rates. + * + * Learn more about [building delivery profiles](https://shopify.dev/docs/apps/build/purchase-options/deferred/delivery-and-deferment/build-delivery-profiles). */ public class DeliveryProfileCreateGraphQLQuery extends GraphQLQuery { public DeliveryProfileCreateGraphQLQuery(DeliveryProfileInput profile, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DeliveryProfileFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DeliveryProfileFragmentProjection.java index 8b81a67f..371abad4 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DeliveryProfileFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DeliveryProfileFragmentProjection.java @@ -169,6 +169,11 @@ public DeliveryProfileFragmentProjection originLocationCount() { return this; } + public DeliveryProfileFragmentProjection version() { + getFields().put("version", null); + return this; + } + public DeliveryProfileFragmentProjection zoneCountryCount() { getFields().put("zoneCountryCount", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DeliveryProfileGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DeliveryProfileGraphQLQuery.java index df37d14e..48414cdb 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DeliveryProfileGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DeliveryProfileGraphQLQuery.java @@ -7,7 +7,14 @@ import java.util.Set; /** - * Returns a Delivery Profile resource by ID. + * Retrieves a [`DeliveryProfile`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DeliveryProfile) by ID. Delivery profiles group shipping settings for specific + * [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) + * objects that ship from selected [`Location`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location) + * objects to [delivery + * zones](https://shopify.dev/docs/api/admin-graphql/latest/objects/DeliveryZone + * with defined rates. + * + * Learn more about [delivery profiles](https://shopify.dev/docs/apps/build/purchase-options/deferred/delivery-and-deferment#whats-a-delivery-profile). */ public class DeliveryProfileGraphQLQuery extends GraphQLQuery { public DeliveryProfileGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DeliveryProfileProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DeliveryProfileProjection.java index 750e2619..a6ab16a8 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DeliveryProfileProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DeliveryProfileProjection.java @@ -162,6 +162,11 @@ public DeliveryProfileProjection originLocationCount() { return this; } + public DeliveryProfileProjection version() { + getFields().put("version", null); + return this; + } + public DeliveryProfileProjection zoneCountryCount() { getFields().put("zoneCountryCount", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DeliveryProfileProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DeliveryProfileProjectionRoot.java index 9d151d20..d75b9cc5 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DeliveryProfileProjectionRoot.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DeliveryProfileProjectionRoot.java @@ -164,6 +164,11 @@ public DeliveryProfileProjectionRoot originLocationCount() { return this; } + public DeliveryProfileProjectionRoot version() { + getFields().put("version", null); + return this; + } + public DeliveryProfileProjectionRoot zoneCountryCount() { getFields().put("zoneCountryCount", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DeliveryProfileUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DeliveryProfileUpdateGraphQLQuery.java index a5903ead..0ee55e2d 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DeliveryProfileUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DeliveryProfileUpdateGraphQLQuery.java @@ -2,25 +2,34 @@ import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; import com.shopify.admin.types.DeliveryProfileInput; -import java.lang.Boolean; import java.lang.Override; import java.lang.String; import java.util.HashSet; import java.util.Set; /** - * Update a delivery profile. + * Updates a [`DeliveryProfile`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DeliveryProfile)'s configuration, including its shipping zones, rates, and associated products. + * + * Modify location groups to control which fulfillment [`Location`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location) + * objects serve specific geographic areas. Add or remove shipping zones with + * custom countries and provinces. Create or update shipping methods with rate + * definitions and delivery conditions. Associate or dissociate [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) objects and [`SellingPlanGroup`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SellingPlanGroup) + * objects to determine which products use this profile's shipping rules. + * + * The mutation supports partial updates through dedicated input fields for + * creating, updating, and deleting specific components without affecting the + * entire profile structure. + * + * Learn more about [building delivery profiles](https://shopify.dev/docs/apps/build/purchase-options/deferred/delivery-and-deferment/build-delivery-profiles). */ public class DeliveryProfileUpdateGraphQLQuery extends GraphQLQuery { public DeliveryProfileUpdateGraphQLQuery(String id, DeliveryProfileInput profile, - Boolean leaveLegacyModeProfiles, String queryName, Set fieldsSet) { + String queryName, Set fieldsSet) { super("mutation", queryName); if (id != null || fieldsSet.contains("id")) { getInput().put("id", id); }if (profile != null || fieldsSet.contains("profile")) { getInput().put("profile", profile); - }if (leaveLegacyModeProfiles != null || fieldsSet.contains("leaveLegacyModeProfiles")) { - getInput().put("leaveLegacyModeProfiles", leaveLegacyModeProfiles); } } @@ -44,12 +53,10 @@ public static class Builder { private DeliveryProfileInput profile; - private Boolean leaveLegacyModeProfiles; - private String queryName; public DeliveryProfileUpdateGraphQLQuery build() { - return new DeliveryProfileUpdateGraphQLQuery(id, profile, leaveLegacyModeProfiles, queryName, fieldsSet); + return new DeliveryProfileUpdateGraphQLQuery(id, profile, queryName, fieldsSet); } @@ -71,15 +78,6 @@ public Builder profile(DeliveryProfileInput profile) { return this; } - /** - * Whether this delivery profile should leave legacy mode. - */ - public Builder leaveLegacyModeProfiles(Boolean leaveLegacyModeProfiles) { - this.leaveLegacyModeProfiles = leaveLegacyModeProfiles; - this.fieldsSet.add("leaveLegacyModeProfiles"); - return this; - } - public Builder queryName(String queryName) { this.queryName = queryName; return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DeliveryProfilesGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DeliveryProfilesGraphQLQuery.java index 17864de0..423b2fc2 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DeliveryProfilesGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DeliveryProfilesGraphQLQuery.java @@ -9,7 +9,18 @@ import java.util.Set; /** - * Returns a list of saved delivery profiles. + * Returns a paginated list of [`DeliveryProfile`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DeliveryProfile) + * objects for the shop. Delivery profiles group + * [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) and [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) + * objects that share shipping rates and zones. + * + * Each profile contains [`DeliveryLocationGroup`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DeliveryLocationGroup) + * objects that organize fulfillment [`Location`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location) + * objects and their associated delivery zones. [`DeliveryZone`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DeliveryZone) + * objects define geographic regions with specific shipping methods and rates. Use the [`merchantOwnedOnly`](https://shopify.dev/docs/api/admin-graphql/latest/queries/deliveryProfiles#arguments-merchantOwnedOnly) + * filter to exclude profiles that third-party apps manage. + * + * Learn more about [delivery profiles](https://shopify.dev/docs/apps/build/purchase-options/deferred/delivery-and-deferment#whats-a-delivery-profile). */ public class DeliveryProfilesGraphQLQuery extends GraphQLQuery { public DeliveryProfilesGraphQLQuery(Boolean merchantOwnedOnly, Integer first, String after, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DeliveryShippingOriginAssignGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DeliveryShippingOriginAssignGraphQLQuery.java index c8fe1fab..bc971aa9 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DeliveryShippingOriginAssignGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DeliveryShippingOriginAssignGraphQLQuery.java @@ -8,6 +8,7 @@ /** * Assigns a location as the shipping origin while using legacy compatibility mode for multi-location delivery profiles. + * Deprecated as of 2026-04 and will be removed in a future version as single origin shipping mode has been retired. */ public class DeliveryShippingOriginAssignGraphQLQuery extends GraphQLQuery { public DeliveryShippingOriginAssignGraphQLQuery(String locationId, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountAutomaticAppFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountAutomaticAppFragmentProjection.java index ab7dc243..fffc6c84 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountAutomaticAppFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountAutomaticAppFragmentProjection.java @@ -32,6 +32,13 @@ public DiscountCombinesWithProjection, ROOT> context( + ) { + DiscountContextProjection, ROOT> projection = new DiscountContextProjection<>(this, getRoot()); + getFields().put("context", projection); + return projection; + } + public DiscountClassProjection, ROOT> discountClass( ) { DiscountClassProjection, ROOT> projection = new DiscountClassProjection<>(this, getRoot()); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountAutomaticAppProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountAutomaticAppProjection.java index 1abea8de..c16c3e14 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountAutomaticAppProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountAutomaticAppProjection.java @@ -26,6 +26,12 @@ public DiscountCombinesWithProjection, ROOT> context() { + DiscountContextProjection, ROOT> projection = new DiscountContextProjection<>(this, getRoot()); + getFields().put("context", projection); + return projection; + } + public DiscountClassProjection, ROOT> discountClass( ) { DiscountClassProjection, ROOT> projection = new DiscountClassProjection<>(this, getRoot()); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountAutomaticBasicFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountAutomaticBasicFragmentProjection.java index e7606bbd..181baffc 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountAutomaticBasicFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountAutomaticBasicFragmentProjection.java @@ -25,6 +25,13 @@ public DiscountCombinesWithProjection, ROOT> context( + ) { + DiscountContextProjection, ROOT> projection = new DiscountContextProjection<>(this, getRoot()); + getFields().put("context", projection); + return projection; + } + public DiscountCustomerGetsProjection, ROOT> customerGets( ) { DiscountCustomerGetsProjection, ROOT> projection = new DiscountCustomerGetsProjection<>(this, getRoot()); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountAutomaticBulkDeleteGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountAutomaticBulkDeleteGraphQLQuery.java index 0e1333fd..f669364f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountAutomaticBulkDeleteGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountAutomaticBulkDeleteGraphQLQuery.java @@ -8,9 +8,24 @@ import java.util.Set; /** - * Asynchronously delete automatic discounts in bulk if a `search` or `saved_search_id` argument is provided or if a - * maximum discount threshold is reached (1,000). Otherwise, deletions will occur inline. - * **Warning:** All automatic discounts will be deleted if a blank `search` argument is provided. + * Deletes multiple automatic discounts in a single operation, providing + * efficient bulk management for stores with extensive discount catalogs. This + * mutation processes deletions asynchronously to handle large volumes without + * blocking other operations. + * + * For example, when cleaning up expired seasonal promotions or removing outdated + * automatic discounts across product categories, merchants can delete dozens of + * discounts simultaneously rather than processing each individually. + * + * Use `DiscountAutomaticBulkDelete` to: + * - Remove multiple automatic discounts efficiently + * - Clean up expired or obsolete promotions + * - Streamline discount management workflows + * - Process large-scale discount removals asynchronously + * + * The operation returns a job object for tracking deletion progress and any validation errors encountered during processing. + * + * Learn more about [discount management](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountAutomatic). */ public class DiscountAutomaticBulkDeleteGraphQLQuery extends GraphQLQuery { public DiscountAutomaticBulkDeleteGraphQLQuery(String search, String savedSearchId, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountAutomaticBxgyFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountAutomaticBxgyFragmentProjection.java index d44d3fd8..a7cc5ec3 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountAutomaticBxgyFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountAutomaticBxgyFragmentProjection.java @@ -29,6 +29,13 @@ public DiscountCombinesWithProjection, ROOT> context( + ) { + DiscountContextProjection, ROOT> projection = new DiscountContextProjection<>(this, getRoot()); + getFields().put("context", projection); + return projection; + } + public DiscountCustomerBuysProjection, ROOT> customerBuys( ) { DiscountCustomerBuysProjection, ROOT> projection = new DiscountCustomerBuysProjection<>(this, getRoot()); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountAutomaticDeleteGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountAutomaticDeleteGraphQLQuery.java index faf73ff9..5e7f508e 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountAutomaticDeleteGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountAutomaticDeleteGraphQLQuery.java @@ -7,8 +7,24 @@ import java.util.Set; /** - * Deletes an - * [automatic discount](https://help.shopify.com/manual/discounts/discount-types#automatic-discounts). + * Deletes an existing automatic discount from the store, permanently removing it + * from all future order calculations. This mutation provides a clean way to + * remove promotional campaigns that are no longer needed. + * + * For example, when a seasonal promotion ends or a flash sale concludes, + * merchants can use this mutation to ensure the discount no longer applies to + * new orders while preserving historical order data. + * + * Use `DiscountAutomaticDelete` to: + * - Remove expired promotional campaigns + * - Clean up test discounts during development + * - Delete automatic discounts that conflict with new promotions + * - Maintain a clean discount configuration + * + * The mutation returns the ID of the deleted discount for confirmation and any + * validation errors if the deletion cannot be completed. Once deleted, the + * automatic discount will no longer appear in discount lists or apply to new + * customer orders. */ public class DiscountAutomaticDeleteGraphQLQuery extends GraphQLQuery { public DiscountAutomaticDeleteGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountAutomaticFreeShippingCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountAutomaticFreeShippingCreateGraphQLQuery.java index f802e3a3..b1778937 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountAutomaticFreeShippingCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountAutomaticFreeShippingCreateGraphQLQuery.java @@ -8,14 +8,24 @@ import java.util.Set; /** - * Creates a - * [free shipping discount](https://help.shopify.com/manual/discounts/discount-types/free-shipping) - * that's automatically applied on a cart and at checkout. + * Creates automatic free shipping discounts that apply to qualifying orders + * without requiring discount codes. These promotions automatically activate when + * customers meet specified criteria, streamlining the checkout experience. * - * > Note: - * > To create code discounts, use the - * [`discountCodeFreeShippingCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/discountCodeFreeShippingCreate) - * mutation. + * For example, a store might create an automatic free shipping discount for + * orders over variable pricing to encourage larger purchases, or offer free + * shipping to specific customer segments during promotional periods. + * + * Use `DiscountAutomaticFreeShippingCreate` to: + * - Set up code-free shipping promotions + * - Create order value-based shipping incentives + * - Target specific customer groups with shipping benefits + * - Establish location-based shipping discounts + * + * The mutation validates discount configuration and returns the created + * automatic discount node along with any configuration errors that need resolution. + * + * Learn more about [automatic discounts](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountAutomaticNode). */ public class DiscountAutomaticFreeShippingCreateGraphQLQuery extends GraphQLQuery { public DiscountAutomaticFreeShippingCreateGraphQLQuery( diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountAutomaticFreeShippingFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountAutomaticFreeShippingFragmentProjection.java index cd53d823..21404138 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountAutomaticFreeShippingFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountAutomaticFreeShippingFragmentProjection.java @@ -25,6 +25,13 @@ public DiscountCombinesWithProjection, ROOT> context( + ) { + DiscountContextProjection, ROOT> projection = new DiscountContextProjection<>(this, getRoot()); + getFields().put("context", projection); + return projection; + } + public DiscountShippingDestinationSelectionProjection, ROOT> destinationSelection( ) { DiscountShippingDestinationSelectionProjection, ROOT> projection = new DiscountShippingDestinationSelectionProjection<>(this, getRoot()); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountAutomaticFreeShippingUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountAutomaticFreeShippingUpdateGraphQLQuery.java index 7d076373..fd94aa4f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountAutomaticFreeShippingUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountAutomaticFreeShippingUpdateGraphQLQuery.java @@ -8,14 +8,24 @@ import java.util.Set; /** - * Updates an existing - * [free shipping discount](https://help.shopify.com/manual/discounts/discount-types/free-shipping) - * that's automatically applied on a cart and at checkout. + * Updates existing automatic free shipping discounts, allowing merchants to + * modify promotion criteria, shipping destinations, and eligibility requirements + * without recreating the entire discount structure. * - * > Note: - * > To update code discounts, use the - * [`discountCodeFreeShippingUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/discountCodeFreeShippingUpdate) - * mutation instead. + * For example, extending a holiday free shipping promotion to include additional + * countries, adjusting the minimum order value threshold, or expanding customer + * eligibility to include new segments. + * + * Use `DiscountAutomaticFreeShippingUpdate` to: + * - Modify shipping discount thresholds and criteria + * - Expand or restrict geographic availability + * - Update customer targeting and eligibility rules + * - Adjust promotion timing and activation periods + * + * Changes take effect immediately for new orders, while the mutation validates + * all modifications and reports any configuration conflicts through user errors. + * + * Learn more about [managing automatic discounts](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountAutomaticFreeShipping). */ public class DiscountAutomaticFreeShippingUpdateGraphQLQuery extends GraphQLQuery { public DiscountAutomaticFreeShippingUpdateGraphQLQuery(String id, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountBuyerSelectionAllFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountBuyerSelectionAllFragmentProjection.java new file mode 100644 index 00000000..3f69c42a --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountBuyerSelectionAllFragmentProjection.java @@ -0,0 +1,42 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; +import java.lang.Override; +import java.lang.String; + +public class DiscountBuyerSelectionAllFragmentProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + { + getFields().put("__typename", null); + } + + public DiscountBuyerSelectionAllFragmentProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("DiscountBuyerSelectionAll")); + } + + public DiscountBuyerSelectionAllFragmentProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public DiscountBuyerSelectionProjection, ROOT> all( + ) { + DiscountBuyerSelectionProjection, ROOT> projection = new DiscountBuyerSelectionProjection<>(this, getRoot()); + getFields().put("all", projection); + return projection; + } + + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + builder.append("... on DiscountBuyerSelectionAll {"); + getFields().forEach((k, v) -> { + builder.append(" ").append(k); + if(v != null) { + builder.append(" ").append(v.toString()); + } + }); + builder.append("}"); + + return builder.toString(); + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountBuyerSelectionProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountBuyerSelectionProjection.java new file mode 100644 index 00000000..36f01dc9 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountBuyerSelectionProjection.java @@ -0,0 +1,14 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class DiscountBuyerSelectionProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public DiscountBuyerSelectionProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("DiscountBuyerSelection")); + } + + public DiscountBuyerSelectionProjection __typename() { + getFields().put("__typename", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountCodeActivateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountCodeActivateGraphQLQuery.java index 01572c8a..8dd59139 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountCodeActivateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountCodeActivateGraphQLQuery.java @@ -7,7 +7,23 @@ import java.util.Set; /** - * Activates a code discount. + * Activates a previously created code discount, making it available for + * customers to use during checkout. This mutation transitions inactive discount + * codes into an active state where they can be applied to orders. + * + * For example, after creating a "SUMMER20" discount code but leaving it inactive + * during setup, merchants can activate it when ready to launch their summer + * promotion campaign. + * + * Use `DiscountCodeActivate` to: + * - Launch scheduled promotional campaigns + * - Reactivate previously paused discount codes + * - Enable discount codes after configuration changes + * - Control the timing of discount availability + * + * The mutation returns the updated discount code node with its new active status + * and handles any validation errors that might prevent activation, such as + * conflicting discount rules or invalid date ranges. */ public class DiscountCodeActivateGraphQLQuery extends GraphQLQuery { public DiscountCodeActivateGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountCodeAppFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountCodeAppFragmentProjection.java index 88bfea1f..69c7ba30 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountCodeAppFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountCodeAppFragmentProjection.java @@ -74,6 +74,13 @@ public DiscountCombinesWithProjection, ROOT> context( + ) { + DiscountContextProjection, ROOT> projection = new DiscountContextProjection<>(this, getRoot()); + getFields().put("context", projection); + return projection; + } + public DiscountCustomerSelectionProjection, ROOT> customerSelection( ) { DiscountCustomerSelectionProjection, ROOT> projection = new DiscountCustomerSelectionProjection<>(this, getRoot()); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountCodeAppProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountCodeAppProjection.java index 1296e9d1..e37f78d0 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountCodeAppProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountCodeAppProjection.java @@ -69,6 +69,12 @@ public DiscountCombinesWithProjection, R return projection; } + public DiscountContextProjection, ROOT> context() { + DiscountContextProjection, ROOT> projection = new DiscountContextProjection<>(this, getRoot()); + getFields().put("context", projection); + return projection; + } + public DiscountCustomerSelectionProjection, ROOT> customerSelection( ) { DiscountCustomerSelectionProjection, ROOT> projection = new DiscountCustomerSelectionProjection<>(this, getRoot()); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountCodeBasicFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountCodeBasicFragmentProjection.java index 6798faca..8ce8cad5 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountCodeBasicFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountCodeBasicFragmentProjection.java @@ -67,6 +67,13 @@ public DiscountCombinesWithProjection, ROOT> context( + ) { + DiscountContextProjection, ROOT> projection = new DiscountContextProjection<>(this, getRoot()); + getFields().put("context", projection); + return projection; + } + public DiscountCustomerGetsProjection, ROOT> customerGets( ) { DiscountCustomerGetsProjection, ROOT> projection = new DiscountCustomerGetsProjection<>(this, getRoot()); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountCodeBxgyFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountCodeBxgyFragmentProjection.java index f0d0fcb2..cdadc2b1 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountCodeBxgyFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountCodeBxgyFragmentProjection.java @@ -67,6 +67,13 @@ public DiscountCombinesWithProjection, ROOT> context( + ) { + DiscountContextProjection, ROOT> projection = new DiscountContextProjection<>(this, getRoot()); + getFields().put("context", projection); + return projection; + } + public DiscountCustomerBuysProjection, ROOT> customerBuys( ) { DiscountCustomerBuysProjection, ROOT> projection = new DiscountCustomerBuysProjection<>(this, getRoot()); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountCodeDeactivateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountCodeDeactivateGraphQLQuery.java index fe47c69b..e1d4ed7f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountCodeDeactivateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountCodeDeactivateGraphQLQuery.java @@ -7,7 +7,23 @@ import java.util.Set; /** - * Deactivates a code discount. + * Temporarily suspends a code discount without permanently removing it from the + * store. Deactivation allows merchants to pause promotional campaigns while + * preserving the discount configuration for potential future use. + * + * For example, when a flash sale needs to end immediately or a discount code + * requires temporary suspension due to inventory issues, merchants can + * deactivate it to stop new redemptions while keeping the discount structure intact. + * + * Use `DiscountCodeDeactivate` to: + * - Pause active promotional campaigns timely + * - Temporarily suspend problematic discount codes + * - Control discount availability during inventory shortages + * - Maintain discount history while stopping usage + * + * Deactivated discounts remain in the system and can be reactivated later, + * unlike deletion which persistently removes the code. Customers attempting to + * use deactivated codes will receive appropriate error messages. */ public class DiscountCodeDeactivateGraphQLQuery extends GraphQLQuery { public DiscountCodeDeactivateGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountCodeDeleteGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountCodeDeleteGraphQLQuery.java index 920ecfd1..352c13c1 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountCodeDeleteGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountCodeDeleteGraphQLQuery.java @@ -7,8 +7,23 @@ import java.util.Set; /** - * Deletes a - * [code discount](https://help.shopify.com/manual/discounts/discount-types#discount-codes). + * Removes a code discount from the store, making it permanently unavailable for + * customer use. This mutation provides a clean way to eliminate discount codes + * that are no longer needed or have been replaced. + * + * For example, when a seasonal promotion ends or a discount code has been + * compromised, merchants can delete it entirely rather than just deactivating + * it, ensuring customers cannot attempt to use expired promotional codes. + * + * Use `DiscountCodeDelete` to: + * - persistently remove outdated promotional codes + * - Clean up discount code lists after campaigns end + * - Eliminate compromised or leaked discount codes + * - Maintain organized discount management + * + * Once deleted, the discount code cannot be recovered and any customer attempts + * to use it will fail. This differs from deactivation, which preserves the code + * for potential future reactivation. */ public class DiscountCodeDeleteGraphQLQuery extends GraphQLQuery { public DiscountCodeDeleteGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountCodeFreeShippingFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountCodeFreeShippingFragmentProjection.java index d2b094f8..703d633c 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountCodeFreeShippingFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountCodeFreeShippingFragmentProjection.java @@ -68,6 +68,13 @@ public DiscountCombinesWithProjection, ROOT> context( + ) { + DiscountContextProjection, ROOT> projection = new DiscountContextProjection<>(this, getRoot()); + getFields().put("context", projection); + return projection; + } + public DiscountCustomerSelectionProjection, ROOT> customerSelection( ) { DiscountCustomerSelectionProjection, ROOT> projection = new DiscountCustomerSelectionProjection<>(this, getRoot()); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountCodesCountGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountCodesCountGraphQLQuery.java index 52d2e859..c17a6e13 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountCodesCountGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountCodesCountGraphQLQuery.java @@ -1,19 +1,23 @@ package com.shopify.admin.client; import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import java.lang.Integer; import java.lang.Override; import java.lang.String; import java.util.HashSet; import java.util.Set; /** - * The total number of discount codes for the shop. + * The total number of discount codes for the shop. Limited to a maximum of 10000 by default. */ public class DiscountCodesCountGraphQLQuery extends GraphQLQuery { - public DiscountCodesCountGraphQLQuery(String query, String queryName, Set fieldsSet) { + public DiscountCodesCountGraphQLQuery(String query, Integer limit, String queryName, + Set fieldsSet) { super("query", queryName); if (query != null || fieldsSet.contains("query")) { getInput().put("query", query); + }if (limit != null || fieldsSet.contains("limit")) { + getInput().put("limit", limit); } } @@ -35,10 +39,12 @@ public static class Builder { private String query; + private Integer limit; + private String queryName; public DiscountCodesCountGraphQLQuery build() { - return new DiscountCodesCountGraphQLQuery(query, queryName, fieldsSet); + return new DiscountCodesCountGraphQLQuery(query, limit, queryName, fieldsSet); } @@ -59,6 +65,15 @@ public Builder query(String query) { return this; } + /** + * The upper bound on count value before returning a result. Use `null` to have no limit. + */ + public Builder limit(Integer limit) { + this.limit = limit; + this.fieldsSet.add("limit"); + return this; + } + public Builder queryName(String queryName) { this.queryName = queryName; return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountContextProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountContextProjection.java new file mode 100644 index 00000000..d91413e0 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountContextProjection.java @@ -0,0 +1,35 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class DiscountContextProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public DiscountContextProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("DiscountContext")); + } + + public DiscountContextProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public DiscountBuyerSelectionAllFragmentProjection, ROOT> onDiscountBuyerSelectionAll( + ) { + DiscountBuyerSelectionAllFragmentProjection, ROOT> fragment = new DiscountBuyerSelectionAllFragmentProjection<>(this, getRoot()); + getFragments().add(fragment); + return fragment; + } + + public DiscountCustomerSegmentsFragmentProjection, ROOT> onDiscountCustomerSegments( + ) { + DiscountCustomerSegmentsFragmentProjection, ROOT> fragment = new DiscountCustomerSegmentsFragmentProjection<>(this, getRoot()); + getFragments().add(fragment); + return fragment; + } + + public DiscountCustomersFragmentProjection, ROOT> onDiscountCustomers( + ) { + DiscountCustomersFragmentProjection, ROOT> fragment = new DiscountCustomersFragmentProjection<>(this, getRoot()); + getFragments().add(fragment); + return fragment; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountNodeGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountNodeGraphQLQuery.java index e84fe51c..019383e4 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountNodeGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountNodeGraphQLQuery.java @@ -7,7 +7,7 @@ import java.util.Set; /** - * Returns a discount resource by ID. + * Returns a `DiscountNode` resource by ID. */ public class DiscountNodeGraphQLQuery extends GraphQLQuery { public DiscountNodeGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountNodesCountGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountNodesCountGraphQLQuery.java index 8b5bf7bc..a60b0147 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountNodesCountGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountNodesCountGraphQLQuery.java @@ -1,22 +1,25 @@ package com.shopify.admin.client; import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import java.lang.Integer; import java.lang.Override; import java.lang.String; import java.util.HashSet; import java.util.Set; /** - * The total number of discounts for the shop. Limited to a maximum of 10000. + * The total number of discounts for the shop. Limited to a maximum of 10000 by default. */ public class DiscountNodesCountGraphQLQuery extends GraphQLQuery { - public DiscountNodesCountGraphQLQuery(String query, String savedSearchId, String queryName, - Set fieldsSet) { + public DiscountNodesCountGraphQLQuery(String query, String savedSearchId, Integer limit, + String queryName, Set fieldsSet) { super("query", queryName); if (query != null || fieldsSet.contains("query")) { getInput().put("query", query); }if (savedSearchId != null || fieldsSet.contains("savedSearchId")) { getInput().put("savedSearchId", savedSearchId); + }if (limit != null || fieldsSet.contains("limit")) { + getInput().put("limit", limit); } } @@ -40,10 +43,12 @@ public static class Builder { private String savedSearchId; + private Integer limit; + private String queryName; public DiscountNodesCountGraphQLQuery build() { - return new DiscountNodesCountGraphQLQuery(query, savedSearchId, queryName, fieldsSet); + return new DiscountNodesCountGraphQLQuery(query, savedSearchId, limit, queryName, fieldsSet); } @@ -57,32 +62,44 @@ public DiscountNodesCountGraphQLQuery build() { * | combines_with | string | Filter by the [Shopify Functions discount * classes](https://shopify.dev/docs/apps/build/discounts#discount-classes) * that the [discount type](https://shopify.dev/docs/api/admin-graphql/latest/queries/discountnodes#argument-query-filter-discount_type) - * can combine with. | - `order_discounts`
- `product_discounts`
- - * `shipping_discounts` | | - `combines_with:product_discounts` | + * can combine with. Supports multiple values separated by commas (e.g., + * combines_with:product_discounts,order_discounts). | - `order_discounts`
+ * - `product_discounts`
- `shipping_discounts` | | - + * `combines_with:product_discounts`
- + * `combines_with:product_discounts,order_discounts` | * | created_at | time | Filter by the date and time, in the shop's timezone, * when the discount was created. | | | - * `created_at:>'2020-10-21T23:39:20Z'`
- `created_at:<now`
- * `created_at:<='2024'` | * | discount_class | string | Filter by the [discount - * class](https://shopify.dev/docs/apps/build/discounts#discount-classes). | - - * `order`
- `product`
- `shipping` | | - `discount_class:product` | + * class](https://shopify.dev/docs/apps/build/discounts#discount-classes). + * Supports multiple classes separated by commas (e.g., + * discount_class:product,order). | - `order`
- `product`
- + * `shipping` | | - `discount_class:product`
- + * `discount_class:product,order` | * | discount_type | string | Filter by the [discount - * type](https://help.shopify.com/manual/discounts/discount-types). | - - * `bogo`
- `fixed_amount`
- `free_shipping`
- `percentage` | | - * - `type:fixed_amount` | + * type](https://help.shopify.com/manual/discounts/discount-types). Supports + * multiple types separated by commas (e.g., + * discount_type:percentage,fixed_amount). | - `app`
- `bogo`
- + * `fixed_amount`
- `free_shipping`
- `percentage` | | - + * `discount_type:fixed_amount`
- `discount_type:percentage,fixed_amount` | * | ends_at | time | Filter by the date and time, in the shop's timezone, when * the discount ends. | | | - `ends_at:>'2020-10-21T23:39:20Z'`
- * `ends_at:<now`
- `ends_at:<='2024'` | * | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | * | method | string | Filter by the [discount - * method](https://shopify.dev/docs/apps/build/discounts#discount-methods). | - - * `automatic`
- `code` | | - `method:code` | + * method](https://shopify.dev/docs/apps/build/discounts#discount-methods). + * Supports multiple methods separated by commas (e.g., method:code,automatic). + * | - `automatic`
- `code` | | - `method:code`
- + * `method:code,automatic` | * | starts_at | time | Filter by the date and time, in the shop's timezone, * when the discount becomes active and is available for customer use. | | | - * `starts_at:>'2020-10-21T23:39:20Z'`
- `starts_at:<now`
- * `starts_at:<='2024'` | - * | status | string | Filter by the status of the discount. | - `active`
- * - `expired`
- `scheduled` | | - `status:scheduled` | + * | status | string | Filter by the status of the discount. Supports multiple + * statuses separated by commas (e.g., status:active,scheduled). | - + * `active`
- `expired`
- `scheduled` | | - `status:scheduled`
- + * `status:active,scheduled` | * | times_used | integer | Filter by the number of times the discount has been * used. For example, if a "Buy 3, Get 1 Free" t-shirt discount is * automatically applied in 200 transactions, then the discount has been used @@ -92,10 +109,11 @@ public DiscountNodesCountGraphQLQuery build() { * | title | string | Filter by the discount name that displays to merchants in * the Shopify admin and to customers. | | | - `title:Black Friday Sale` | * | type | string | Filter by the [discount - * type](https://help.shopify.com/manual/discounts/discount-types). | - + * type](https://help.shopify.com/manual/discounts/discount-types). Supports + * multiple types separated by commas (e.g., type:percentage,fixed_amount). | - * `all`
- `all_with_app`
- `app`
- `bxgy`
- * `fixed_amount`
- `free_shipping`
- `percentage` | | - - * `type:percentage` | + * `type:percentage`
- `type:percentage,fixed_amount` | * | updated_at | time | Filter by the date and time, in the shop's timezone, * when the discount was last updated. | | | - * `updated_at:>'2020-10-21T23:39:20Z'`
- `updated_at:<now`
- @@ -120,6 +138,15 @@ public Builder savedSearchId(String savedSearchId) { return this; } + /** + * The upper bound on count value before returning a result. Use `null` to have no limit. + */ + public Builder limit(Integer limit) { + this.limit = limit; + this.fieldsSet.add("limit"); + return this; + } + public Builder queryName(String queryName) { this.queryName = queryName; return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountNodesGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountNodesGraphQLQuery.java index bdb4c33d..9b2144b5 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountNodesGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountNodesGraphQLQuery.java @@ -140,32 +140,44 @@ public Builder sortKey(DiscountSortKeys sortKey) { * | combines_with | string | Filter by the [Shopify Functions discount * classes](https://shopify.dev/docs/apps/build/discounts#discount-classes) * that the [discount type](https://shopify.dev/docs/api/admin-graphql/latest/queries/discountnodes#argument-query-filter-discount_type) - * can combine with. | - `order_discounts`
- `product_discounts`
- - * `shipping_discounts` | | - `combines_with:product_discounts` | + * can combine with. Supports multiple values separated by commas (e.g., + * combines_with:product_discounts,order_discounts). | - `order_discounts`
+ * - `product_discounts`
- `shipping_discounts` | | - + * `combines_with:product_discounts`
- + * `combines_with:product_discounts,order_discounts` | * | created_at | time | Filter by the date and time, in the shop's timezone, * when the discount was created. | | | - * `created_at:>'2020-10-21T23:39:20Z'`
- `created_at:<now`
- * `created_at:<='2024'` | * | discount_class | string | Filter by the [discount - * class](https://shopify.dev/docs/apps/build/discounts#discount-classes). | - - * `order`
- `product`
- `shipping` | | - `discount_class:product` | + * class](https://shopify.dev/docs/apps/build/discounts#discount-classes). + * Supports multiple classes separated by commas (e.g., + * discount_class:product,order). | - `order`
- `product`
- + * `shipping` | | - `discount_class:product`
- + * `discount_class:product,order` | * | discount_type | string | Filter by the [discount - * type](https://help.shopify.com/manual/discounts/discount-types). | - - * `bogo`
- `fixed_amount`
- `free_shipping`
- `percentage` | | - * - `type:fixed_amount` | + * type](https://help.shopify.com/manual/discounts/discount-types). Supports + * multiple types separated by commas (e.g., + * discount_type:percentage,fixed_amount). | - `app`
- `bogo`
- + * `fixed_amount`
- `free_shipping`
- `percentage` | | - + * `discount_type:fixed_amount`
- `discount_type:percentage,fixed_amount` | * | ends_at | time | Filter by the date and time, in the shop's timezone, when * the discount ends. | | | - `ends_at:>'2020-10-21T23:39:20Z'`
- * `ends_at:<now`
- `ends_at:<='2024'` | * | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | * | method | string | Filter by the [discount - * method](https://shopify.dev/docs/apps/build/discounts#discount-methods). | - - * `automatic`
- `code` | | - `method:code` | + * method](https://shopify.dev/docs/apps/build/discounts#discount-methods). + * Supports multiple methods separated by commas (e.g., method:code,automatic). + * | - `automatic`
- `code` | | - `method:code`
- + * `method:code,automatic` | * | starts_at | time | Filter by the date and time, in the shop's timezone, * when the discount becomes active and is available for customer use. | | | - * `starts_at:>'2020-10-21T23:39:20Z'`
- `starts_at:<now`
- * `starts_at:<='2024'` | - * | status | string | Filter by the status of the discount. | - `active`
- * - `expired`
- `scheduled` | | - `status:scheduled` | + * | status | string | Filter by the status of the discount. Supports multiple + * statuses separated by commas (e.g., status:active,scheduled). | - + * `active`
- `expired`
- `scheduled` | | - `status:scheduled`
- + * `status:active,scheduled` | * | times_used | integer | Filter by the number of times the discount has been * used. For example, if a "Buy 3, Get 1 Free" t-shirt discount is * automatically applied in 200 transactions, then the discount has been used @@ -175,10 +187,11 @@ public Builder sortKey(DiscountSortKeys sortKey) { * | title | string | Filter by the discount name that displays to merchants in * the Shopify admin and to customers. | | | - `title:Black Friday Sale` | * | type | string | Filter by the [discount - * type](https://help.shopify.com/manual/discounts/discount-types). | - + * type](https://help.shopify.com/manual/discounts/discount-types). Supports + * multiple types separated by commas (e.g., type:percentage,fixed_amount). | - * `all`
- `all_with_app`
- `app`
- `bxgy`
- * `fixed_amount`
- `free_shipping`
- `percentage` | | - - * `type:percentage` | + * `type:percentage`
- `type:percentage,fixed_amount` | * | updated_at | time | Filter by the date and time, in the shop's timezone, * when the discount was last updated. | | | - * `updated_at:>'2020-10-21T23:39:20Z'`
- `updated_at:<now`
- diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountRedeemCodeBulkAddGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountRedeemCodeBulkAddGraphQLQuery.java index a7f8bfc6..f8ea04a1 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountRedeemCodeBulkAddGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountRedeemCodeBulkAddGraphQLQuery.java @@ -55,7 +55,7 @@ public DiscountRedeemCodeBulkAddGraphQLQuery build() { /** * The ID of the - * [`DiscountCodeNode`](https://help.shopify.com/docs/api/admin-graphql/latest/objects/DiscountCodeNode#field-id) + * [`DiscountCodeNode`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCodeNode#field-id) * object that the codes will be added to. For example, `gid://shopify/DiscountCodeNode/123`. * You can use the * [`codeDiscountNodes` query](https://shopify.dev/docs/api/admin-graphql/latest/queries/codeDiscountNodes) @@ -70,7 +70,7 @@ public Builder discountId(String discountId) { /** * The list of codes to associate with the * [code discount](https://help.shopify.com/manual/discounts/discount-types#discount-codes). - * Maximum: 100 codes. + * Maximum: 250 codes. */ public Builder codes(List codes) { this.codes = codes; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountRedeemCodeBulkCreationGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountRedeemCodeBulkCreationGraphQLQuery.java index d3d54795..4eed1f7b 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountRedeemCodeBulkCreationGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DiscountRedeemCodeBulkCreationGraphQLQuery.java @@ -7,7 +7,7 @@ import java.util.Set; /** - * Returns a bulk code creation resource by ID. + * Returns a `DiscountRedeemCodeBulkCreation` resource by ID. */ public class DiscountRedeemCodeBulkCreationGraphQLQuery extends GraphQLQuery { public DiscountRedeemCodeBulkCreationGraphQLQuery(String id, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DisputeEvidenceGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DisputeEvidenceGraphQLQuery.java index 9b6d8e6d..b056faeb 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DisputeEvidenceGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DisputeEvidenceGraphQLQuery.java @@ -7,7 +7,7 @@ import java.util.Set; /** - * Returns dispute evidence details based on ID. + * Returns a `ShopifyPaymentsDisputeEvidence` resource by ID. */ public class DisputeEvidenceGraphQLQuery extends GraphQLQuery { public DisputeEvidenceGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DisputeGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DisputeGraphQLQuery.java index 8eab808b..272c9b34 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DisputeGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DisputeGraphQLQuery.java @@ -7,7 +7,7 @@ import java.util.Set; /** - * Returns dispute details based on ID. + * Returns a `ShopifyPaymentsDispute` resource by ID. */ public class DisputeGraphQLQuery extends GraphQLQuery { public DisputeGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DisputeProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DisputeProjectionRoot.java index 89596bb6..2e5c4f06 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DisputeProjectionRoot.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DisputeProjectionRoot.java @@ -19,6 +19,13 @@ public MoneyV2Projection, DisputeProjectionR return projection; } + public ShopifyPaymentsDisputeEvidenceProjection, DisputeProjectionRoot> disputeEvidence( + ) { + ShopifyPaymentsDisputeEvidenceProjection, DisputeProjectionRoot> projection = new ShopifyPaymentsDisputeEvidenceProjection<>(this, this); + getFields().put("disputeEvidence", projection); + return projection; + } + public OrderProjection, DisputeProjectionRoot> order( ) { OrderProjection, DisputeProjectionRoot> projection = new OrderProjection<>(this, this); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DistanceProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DistanceProjection.java new file mode 100644 index 00000000..fce5acac --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DistanceProjection.java @@ -0,0 +1,25 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class DistanceProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public DistanceProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("Distance")); + } + + public DistanceProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public DistanceUnitProjection, ROOT> unit() { + DistanceUnitProjection, ROOT> projection = new DistanceUnitProjection<>(this, getRoot()); + getFields().put("unit", projection); + return projection; + } + + public DistanceProjection value() { + getFields().put("value", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DistanceUnitProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DistanceUnitProjection.java new file mode 100644 index 00000000..39a2c670 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DistanceUnitProjection.java @@ -0,0 +1,14 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class DistanceUnitProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public DistanceUnitProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("DistanceUnit")); + } + + public DistanceUnitProjection __typename() { + getFields().put("__typename", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DomainGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DomainGraphQLQuery.java index f5a689f2..f97c0f35 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DomainGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DomainGraphQLQuery.java @@ -7,7 +7,7 @@ import java.util.Set; /** - * Lookup a Domain by ID. + * Returns a `Domain` resource by ID. */ public class DomainGraphQLQuery extends GraphQLQuery { public DomainGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderAvailableDeliveryOptionsGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderAvailableDeliveryOptionsGraphQLQuery.java new file mode 100644 index 00000000..bb3b8355 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderAvailableDeliveryOptionsGraphQLQuery.java @@ -0,0 +1,121 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import com.shopify.admin.types.DraftOrderAvailableDeliveryOptionsInput; +import java.lang.Integer; +import java.lang.Override; +import java.lang.String; +import java.util.HashSet; +import java.util.Set; + +/** + * Available delivery options for a [`DraftOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrder) + * based on the provided input. The query returns shipping rates, local delivery + * rates, and pickup locations that merchants can choose from when creating draft orders. + * + * Accepts draft order details including [`LineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItem) objects, [`MailingAddress`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MailingAddress) + * for shipping, and discounts to determine which delivery methods are available. + * Pagination parameters control the number of local pickup options returned. + */ +public class DraftOrderAvailableDeliveryOptionsGraphQLQuery extends GraphQLQuery { + public DraftOrderAvailableDeliveryOptionsGraphQLQuery( + DraftOrderAvailableDeliveryOptionsInput input, String search, Integer localPickupFrom, + Integer localPickupCount, String sessionToken, String queryName, Set fieldsSet) { + super("query", queryName); + if (input != null || fieldsSet.contains("input")) { + getInput().put("input", input); + }if (search != null || fieldsSet.contains("search")) { + getInput().put("search", search); + }if (localPickupFrom != null || fieldsSet.contains("localPickupFrom")) { + getInput().put("localPickupFrom", localPickupFrom); + }if (localPickupCount != null || fieldsSet.contains("localPickupCount")) { + getInput().put("localPickupCount", localPickupCount); + }if (sessionToken != null || fieldsSet.contains("sessionToken")) { + getInput().put("sessionToken", sessionToken); + } + } + + public DraftOrderAvailableDeliveryOptionsGraphQLQuery() { + super("query"); + } + + @Override + public String getOperationName() { + return "draftOrderAvailableDeliveryOptions"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private DraftOrderAvailableDeliveryOptionsInput input; + + private String search; + + private Integer localPickupFrom; + + private Integer localPickupCount; + + private String sessionToken; + + private String queryName; + + public DraftOrderAvailableDeliveryOptionsGraphQLQuery build() { + return new DraftOrderAvailableDeliveryOptionsGraphQLQuery(input, search, localPickupFrom, localPickupCount, sessionToken, queryName, fieldsSet); + + } + + /** + * The fields for the draft order. + */ + public Builder input(DraftOrderAvailableDeliveryOptionsInput input) { + this.input = input; + this.fieldsSet.add("input"); + return this; + } + + /** + * The search term for the delivery options. + */ + public Builder search(String search) { + this.search = search; + this.fieldsSet.add("search"); + return this; + } + + /** + * The offset for the local pickup options. + */ + public Builder localPickupFrom(Integer localPickupFrom) { + this.localPickupFrom = localPickupFrom; + this.fieldsSet.add("localPickupFrom"); + return this; + } + + /** + * The number of local pickup options required. + */ + public Builder localPickupCount(Integer localPickupCount) { + this.localPickupCount = localPickupCount; + this.fieldsSet.add("localPickupCount"); + return this; + } + + /** + * Unique token used to trace execution and help optimize the calculation. + */ + public Builder sessionToken(String sessionToken) { + this.sessionToken = sessionToken; + this.fieldsSet.add("sessionToken"); + return this; + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderAvailableDeliveryOptionsProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderAvailableDeliveryOptionsProjection.java new file mode 100644 index 00000000..36f235b6 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderAvailableDeliveryOptionsProjection.java @@ -0,0 +1,42 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class DraftOrderAvailableDeliveryOptionsProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public DraftOrderAvailableDeliveryOptionsProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("DraftOrderAvailableDeliveryOptions")); + } + + public DraftOrderAvailableDeliveryOptionsProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public DraftOrderShippingRateProjection, ROOT> availableLocalDeliveryRates( + ) { + DraftOrderShippingRateProjection, ROOT> projection = new DraftOrderShippingRateProjection<>(this, getRoot()); + getFields().put("availableLocalDeliveryRates", projection); + return projection; + } + + public PickupInStoreLocationProjection, ROOT> availableLocalPickupOptions( + ) { + PickupInStoreLocationProjection, ROOT> projection = new PickupInStoreLocationProjection<>(this, getRoot()); + getFields().put("availableLocalPickupOptions", projection); + return projection; + } + + public DraftOrderShippingRateProjection, ROOT> availableShippingRates( + ) { + DraftOrderShippingRateProjection, ROOT> projection = new DraftOrderShippingRateProjection<>(this, getRoot()); + getFields().put("availableShippingRates", projection); + return projection; + } + + public PageInfoProjection, ROOT> pageInfo( + ) { + PageInfoProjection, ROOT> projection = new PageInfoProjection<>(this, getRoot()); + getFields().put("pageInfo", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderAvailableDeliveryOptionsProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderAvailableDeliveryOptionsProjectionRoot.java new file mode 100644 index 00000000..0e9869cd --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderAvailableDeliveryOptionsProjectionRoot.java @@ -0,0 +1,42 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class DraftOrderAvailableDeliveryOptionsProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public DraftOrderAvailableDeliveryOptionsProjectionRoot() { + super(null, null, java.util.Optional.of("DraftOrderAvailableDeliveryOptions")); + } + + public DraftOrderAvailableDeliveryOptionsProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public DraftOrderShippingRateProjection, DraftOrderAvailableDeliveryOptionsProjectionRoot> availableLocalDeliveryRates( + ) { + DraftOrderShippingRateProjection, DraftOrderAvailableDeliveryOptionsProjectionRoot> projection = new DraftOrderShippingRateProjection<>(this, this); + getFields().put("availableLocalDeliveryRates", projection); + return projection; + } + + public PickupInStoreLocationProjection, DraftOrderAvailableDeliveryOptionsProjectionRoot> availableLocalPickupOptions( + ) { + PickupInStoreLocationProjection, DraftOrderAvailableDeliveryOptionsProjectionRoot> projection = new PickupInStoreLocationProjection<>(this, this); + getFields().put("availableLocalPickupOptions", projection); + return projection; + } + + public DraftOrderShippingRateProjection, DraftOrderAvailableDeliveryOptionsProjectionRoot> availableShippingRates( + ) { + DraftOrderShippingRateProjection, DraftOrderAvailableDeliveryOptionsProjectionRoot> projection = new DraftOrderShippingRateProjection<>(this, this); + getFields().put("availableShippingRates", projection); + return projection; + } + + public PageInfoProjection, DraftOrderAvailableDeliveryOptionsProjectionRoot> pageInfo( + ) { + PageInfoProjection, DraftOrderAvailableDeliveryOptionsProjectionRoot> projection = new PageInfoProjection<>(this, this); + getFields().put("pageInfo", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderCalculateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderCalculateGraphQLQuery.java index f242a500..74f432ce 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderCalculateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderCalculateGraphQLQuery.java @@ -8,8 +8,14 @@ import java.util.Set; /** - * Calculates the properties of a draft order. Useful for determining information - * such as total taxes or price without actually creating a draft order. + * Calculates the properties of a [`DraftOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrder) + * without creating it. Returns pricing information including [`CalculatedDraftOrderLineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CalculatedDraftOrderLineItem) + * totals, shipping charges, applicable discounts, and tax calculations based on the provided [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer) and [`MailingAddress`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MailingAddress) information. + * + * Use this mutation to preview total taxes and prices before creating a draft + * order. It's particularly useful when working with B2B [`PurchasingEntity`](https://shopify.dev/docs/api/admin-graphql/latest/unions/PurchasingEntity) + * or when you need to determine costs without committing to a draft order. Learn + * more about [calculating draft orders for B2B purchasing entities](https://shopify.dev/docs/apps/build/b2b/draft-orders#step-1-calculate-a-draft-order-for-a-purchasing-entity). */ public class DraftOrderCalculateGraphQLQuery extends GraphQLQuery { public DraftOrderCalculateGraphQLQuery(DraftOrderInput input, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderCompleteGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderCompleteGraphQLQuery.java index 96681a9e..42293243 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderCompleteGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderCompleteGraphQLQuery.java @@ -7,7 +7,27 @@ import java.util.Set; /** - * Completes a draft order and creates an order. + * Completes a [draft order](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrder) and + * converts it into a [regular order](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order). + * The order appears in the merchant's orders list, and the customer can be notified about their order. + * + * Use the `draftOrderComplete` mutation when a merchant is ready to finalize a draft order and create a real + * order in their store. The `draftOrderComplete` mutation also supports sales channel attribution for tracking + * order sources using the [`sourceName`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/draftOrderComplete#arguments-sourceName) + * argument, [cart validation](https://shopify.dev/docs/apps/build/checkout/cart-checkout-validation) + * controls for app integrations, and detailed error reporting for failed completions. + * + * You can complete a draft order with different [payment scenarios](https://help.shopify.com/manual/fulfillment/managing-orders/payments): + * + * - Mark the order as paid immediately. + * - Set the order as payment pending using [payment terms](https://shopify.dev/docs/api/admin-graphql/latest/objects/PaymentTerms). + * - Specify a custom payment amount. + * - Select a specific payment gateway. + * + * > Note: + * > When completing a draft order, inventory is [reserved](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps#inventory-states) + * for the items in the order. This means the items will no longer be available for other customers to purchase. + * Make sure to verify inventory availability before completing the draft order. */ public class DraftOrderCompleteGraphQLQuery extends GraphQLQuery { public DraftOrderCompleteGraphQLQuery(String id, String paymentGatewayId, String sourceName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderCreateGraphQLQuery.java index 9790d1ba..60ea9e48 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderCreateGraphQLQuery.java @@ -8,7 +8,29 @@ import java.util.Set; /** - * Creates a draft order. + * Creates a [draft order](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrder) + * with attributes such as customer information, line items, shipping and billing addresses, and payment terms. + * Draft orders are useful for merchants that need to: + * + * - Create new orders for sales made by phone, in person, by chat, or elsewhere. + * When a merchant accepts payment for a draft order, an order is created. + * - Send invoices to customers with a secure checkout link. + * - Use custom items to represent additional costs or products not in inventory. + * - Re-create orders manually from active sales channels. + * - Sell products at discount or wholesale rates. + * - Take pre-orders. + * + * After creating a draft order, you can: + * - Send an invoice to the customer using the [`draftOrderInvoiceSend`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/draftOrderInvoiceSend) mutation. + * - Complete the draft order using the [`draftOrderComplete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/draftOrderComplete) mutation. + * - Update the draft order using the [`draftOrderUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/draftOrderUpdate) mutation. + * - Duplicate a draft order using the [`draftOrderDuplicate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/draftOrderDuplicate) mutation. + * - Delete the draft order using the [`draftOrderDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/draftOrderDelete) mutation. + * + * > Note: + * > When you create a draft order, you can't [reserve or hold inventory](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps#inventory-states) + * for the items in the order by default. + * > However, you can reserve inventory using the [`reserveInventoryUntil`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/draftOrderCreate#arguments-input.fields.reserveInventoryUntil) input. */ public class DraftOrderCreateGraphQLQuery extends GraphQLQuery { public DraftOrderCreateGraphQLQuery(DraftOrderInput input, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderCreateMerchantCheckoutProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderCreateMerchantCheckoutProjectionRoot.java deleted file mode 100644 index ab25d652..00000000 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderCreateMerchantCheckoutProjectionRoot.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.shopify.admin.client; - -import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; - -public class DraftOrderCreateMerchantCheckoutProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { - public DraftOrderCreateMerchantCheckoutProjectionRoot() { - super(null, null, java.util.Optional.of("DraftOrderCreateMerchantCheckoutPayload")); - } - - public DraftOrderCreateMerchantCheckoutProjectionRoot __typename() { - getFields().put("__typename", null); - return this; - } - - public UserErrorProjection, DraftOrderCreateMerchantCheckoutProjectionRoot> userErrors( - ) { - UserErrorProjection, DraftOrderCreateMerchantCheckoutProjectionRoot> projection = new UserErrorProjection<>(this, this); - getFields().put("userErrors", projection); - return projection; - } -} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderGraphQLQuery.java index 6a99660b..0d5227f9 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderGraphQLQuery.java @@ -7,7 +7,25 @@ import java.util.Set; /** - * Returns a DraftOrder resource by ID. + * Retrieves a [draft order](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrder) by its ID. + * A draft order is an order created by a merchant on behalf of their + * customers. Draft orders contain all necessary order details (products, pricing, customer information) + * but require payment to be accepted before they can be converted into + * [completed orders](https://shopify.dev/docs/api/admin-graphql/latest/mutations/draftOrderComplete). + * + * Use the `draftOrder` query to retrieve information associated with the following workflows: + * + * - Creating orders for phone, in-person, or chat sales + * - Sending invoices to customers with secure checkout links + * - Managing custom items and additional costs + * - Selling products at discount or wholesale rates + * - Processing pre-orders and saving drafts for later completion + * + * A draft order is associated with a + * [customer](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer) + * and contains multiple [line items](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrderLineItem). + * Each draft order has a [status](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrder#field-DraftOrder.fields.status), + * which indicates its progress through the sales workflow. */ public class DraftOrderGraphQLQuery extends GraphQLQuery { public DraftOrderGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderInvoiceSendGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderInvoiceSendGraphQLQuery.java index dfefdd0f..14a8dcb9 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderInvoiceSendGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderInvoiceSendGraphQLQuery.java @@ -8,7 +8,9 @@ import java.util.Set; /** - * Sends an email invoice for a draft order. + * Sends an invoice email for a [`DraftOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrder). + * The invoice includes a secure checkout link for reviewing and paying for the order. Use the [`email`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/draftOrderInvoiceSend#arguments-email) + * argument to customize the email, such as the subject and message. */ public class DraftOrderInvoiceSendGraphQLQuery extends GraphQLQuery { public DraftOrderInvoiceSendGraphQLQuery(String id, EmailInput email, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderMarketRegionCountryCodeNotSupportedWarningFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderMarketRegionCountryCodeNotSupportedWarningFragmentProjection.java new file mode 100644 index 00000000..7031973e --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderMarketRegionCountryCodeNotSupportedWarningFragmentProjection.java @@ -0,0 +1,55 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; +import java.lang.Override; +import java.lang.String; + +public class DraftOrderMarketRegionCountryCodeNotSupportedWarningFragmentProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + { + getFields().put("__typename", null); + } + + public DraftOrderMarketRegionCountryCodeNotSupportedWarningFragmentProjection(PARENT parent, + ROOT root) { + super(parent, root, java.util.Optional.of("DraftOrderMarketRegionCountryCodeNotSupportedWarning")); + } + + public DraftOrderMarketRegionCountryCodeNotSupportedWarningFragmentProjection __typename( + ) { + getFields().put("__typename", null); + return this; + } + + public DraftOrderMarketRegionCountryCodeNotSupportedWarningFragmentProjection errorCode( + ) { + getFields().put("errorCode", null); + return this; + } + + public DraftOrderMarketRegionCountryCodeNotSupportedWarningFragmentProjection field( + ) { + getFields().put("field", null); + return this; + } + + public DraftOrderMarketRegionCountryCodeNotSupportedWarningFragmentProjection message( + ) { + getFields().put("message", null); + return this; + } + + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + builder.append("... on DraftOrderMarketRegionCountryCodeNotSupportedWarning {"); + getFields().forEach((k, v) -> { + builder.append(" ").append(k); + if(v != null) { + builder.append(" ").append(v.toString()); + } + }); + builder.append("}"); + + return builder.toString(); + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderPlatformDiscountProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderPlatformDiscountProjection.java index e9b6dbee..8936baee 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderPlatformDiscountProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderPlatformDiscountProjection.java @@ -26,6 +26,13 @@ public DiscountClassProjection, ROOT> discountClasses( + ) { + DiscountClassProjection, ROOT> projection = new DiscountClassProjection<>(this, getRoot()); + getFields().put("discountClasses", projection); + return projection; + } + public DiscountNodeProjection, ROOT> discountNode( ) { DiscountNodeProjection, ROOT> projection = new DiscountNodeProjection<>(this, getRoot()); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderShippingRateProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderShippingRateProjection.java new file mode 100644 index 00000000..99a7d683 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderShippingRateProjection.java @@ -0,0 +1,40 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class DraftOrderShippingRateProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public DraftOrderShippingRateProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("DraftOrderShippingRate")); + } + + public DraftOrderShippingRateProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public MoneyV2Projection, ROOT> price() { + MoneyV2Projection, ROOT> projection = new MoneyV2Projection<>(this, getRoot()); + getFields().put("price", projection); + return projection; + } + + public DraftOrderShippingRateProjection code() { + getFields().put("code", null); + return this; + } + + public DraftOrderShippingRateProjection handle() { + getFields().put("handle", null); + return this; + } + + public DraftOrderShippingRateProjection source() { + getFields().put("source", null); + return this; + } + + public DraftOrderShippingRateProjection title() { + getFields().put("title", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderTagGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderTagGraphQLQuery.java index 4993f45b..1c32b1a7 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderTagGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderTagGraphQLQuery.java @@ -7,7 +7,7 @@ import java.util.Set; /** - * Returns a DraftOrderTag resource by ID. + * Returns a `DraftOrderTag` resource by ID. */ public class DraftOrderTagGraphQLQuery extends GraphQLQuery { public DraftOrderTagGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderWarningProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderWarningProjection.java index 5b545c04..17d06aa8 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderWarningProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderWarningProjection.java @@ -40,4 +40,11 @@ public DraftOrderDiscountNotAppliedWarningFragmentProjection, ROOT> onDraftOrderMarketRegionCountryCodeNotSupportedWarning( + ) { + DraftOrderMarketRegionCountryCodeNotSupportedWarningFragmentProjection, ROOT> fragment = new DraftOrderMarketRegionCountryCodeNotSupportedWarningFragmentProjection<>(this, getRoot()); + getFragments().add(fragment); + return fragment; + } } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrdersCountGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrdersCountGraphQLQuery.java new file mode 100644 index 00000000..ee4d3ae9 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrdersCountGraphQLQuery.java @@ -0,0 +1,103 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import java.lang.Integer; +import java.lang.Override; +import java.lang.String; +import java.util.HashSet; +import java.util.Set; + +/** + * Returns the number of draft orders that match the query. Limited to a maximum of 10000 by default. + */ +public class DraftOrdersCountGraphQLQuery extends GraphQLQuery { + public DraftOrdersCountGraphQLQuery(String query, String savedSearchId, Integer limit, + String queryName, Set fieldsSet) { + super("query", queryName); + if (query != null || fieldsSet.contains("query")) { + getInput().put("query", query); + }if (savedSearchId != null || fieldsSet.contains("savedSearchId")) { + getInput().put("savedSearchId", savedSearchId); + }if (limit != null || fieldsSet.contains("limit")) { + getInput().put("limit", limit); + } + } + + public DraftOrdersCountGraphQLQuery() { + super("query"); + } + + @Override + public String getOperationName() { + return "draftOrdersCount"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private String query; + + private String savedSearchId; + + private Integer limit; + + private String queryName; + + public DraftOrdersCountGraphQLQuery build() { + return new DraftOrdersCountGraphQLQuery(query, savedSearchId, limit, queryName, fieldsSet); + + } + + /** + * A filter made up of terms, connectives, modifiers, and comparators. + * | name | type | description | acceptable_values | default_value | example_use | + * | ---- | ---- | ---- | ---- | ---- | ---- | + * | default | string | Filter by a case-insensitive search of multiple fields + * in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | + * | created_at | time | + * | customer_id | id | + * | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | + * | ids | string | + * | source | string | + * | status | string | + * | tag | string | + * | updated_at | time | + * You can apply one or more filters to a query. Learn more about [Shopify API + * search syntax](https://shopify.dev/api/usage/search-syntax). + */ + public Builder query(String query) { + this.query = query; + this.fieldsSet.add("query"); + return this; + } + + /** + * The ID of an existing saved search. + * The search’s query string is used as the query argument. + * Refer to the [`SavedSearch`](https://shopify.dev/api/admin-graphql/latest/objects/savedsearch) object. + */ + public Builder savedSearchId(String savedSearchId) { + this.savedSearchId = savedSearchId; + this.fieldsSet.add("savedSearchId"); + return this; + } + + /** + * The upper bound on count value before returning a result. Use `null` to have no limit. + */ + public Builder limit(Integer limit) { + this.limit = limit; + this.fieldsSet.add("limit"); + return this; + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrdersCountProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrdersCountProjectionRoot.java new file mode 100644 index 00000000..723ca905 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrdersCountProjectionRoot.java @@ -0,0 +1,26 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class DraftOrdersCountProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public DraftOrdersCountProjectionRoot() { + super(null, null, java.util.Optional.of("Count")); + } + + public DraftOrdersCountProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public CountPrecisionProjection, DraftOrdersCountProjectionRoot> precision( + ) { + CountPrecisionProjection, DraftOrdersCountProjectionRoot> projection = new CountPrecisionProjection<>(this, this); + getFields().put("precision", projection); + return projection; + } + + public DraftOrdersCountProjectionRoot count() { + getFields().put("count", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/EventBridgeWebhookSubscriptionCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/EventBridgeWebhookSubscriptionCreateGraphQLQuery.java index 2cbd3e2e..51a2020b 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/EventBridgeWebhookSubscriptionCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/EventBridgeWebhookSubscriptionCreateGraphQLQuery.java @@ -9,7 +9,21 @@ import java.util.Set; /** - * Creates a new Amazon EventBridge webhook subscription. + * Creates a webhook subscription that notifies your + * [`App`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App) when + * specific events occur in a shop. Webhooks push event data to your endpoint + * immediately when changes happen, eliminating the need for polling. + * + * This mutation configures webhook delivery to an Amazon EventBridge partner + * event source. You can filter events using [Shopify API search + * syntax](https://shopify.dev/docs/api/usage/search-syntax) to receive only + * relevant webhooks, control which data fields are included in webhook payloads, + * and specify metafield namespaces to include. + * + * > Note: + * > The Webhooks API version [configured in your app](https://shopify.dev/docs/apps/build/webhooks/subscribe/use-newer-api-version) + * determines the API version for webhook events. You can't specify it per subscription. + * * * Building an app? If you only use app-specific webhooks, you won't need this. * App-specific webhook subscriptions specified in your `shopify.app.toml` may be diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/EventGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/EventGraphQLQuery.java index 6f712c73..fea54723 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/EventGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/EventGraphQLQuery.java @@ -7,7 +7,10 @@ import java.util.Set; /** - * Get a single event by its id. + * Retrieves a single event by ID. Events chronicle activities in your store such + * as resource creation, updates, or staff comments. The query returns an + * [`Event`](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/Event) + * interface of type [`BasicEvent`](https://shopify.dev/docs/api/admin-graphql/latest/objects/BasicEvent) or [`CommentEvent`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CommentEvent). */ public class EventGraphQLQuery extends GraphQLQuery { public EventGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/EventsCountGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/EventsCountGraphQLQuery.java index c0095252..dd1bcc84 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/EventsCountGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/EventsCountGraphQLQuery.java @@ -50,8 +50,9 @@ public EventsCountGraphQLQuery build() { * | comments | boolean | Whether or not to include [comment-events](https://shopify.dev/api/admin-graphql/latest/objects/CommentEvent) * in your search, passing `false` will exclude comment-events, any other value * will include comment-events. | | | - `false`
- `true` | - * | created_at | time | Filter by the date and time when the event happened. | - * | | - `created_at:>2020-10-21`
- `created_at:<now` | + * | created_at | time | Filter by the date and time when the event occurred. + * Event data is retained for 1 year. | | | - `created_at:>2025-10-21`
- + * `created_at:<now` | * | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | * | subject_type | string | The resource type affected by this event. See [EventSubjectType](https://shopify.dev/api/admin-graphql/latest/enums/EventSubjectType) * for possible values. | | | - `PRODUCT_VARIANT`
- `PRODUCT`
- `COLLECTION` | diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/EventsGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/EventsGraphQLQuery.java index 413e8535..3f68fa5d 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/EventsGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/EventsGraphQLQuery.java @@ -10,7 +10,18 @@ import java.util.Set; /** - * The paginated list of events associated with the store. + * A paginated list of events that chronicle activities in the store. + * [`Event`](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/Event) + * is an interface implemented by types such as [`BasicEvent`](https://shopify.dev/docs/api/admin-graphql/latest/objects/BasicEvent) and [`CommentEvent`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CommentEvent) + * that track actions such as creating + * [`Article`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Article) + * objects, fulfilling + * [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) + * objects, adding + * [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) + * objects, or staff comments on timelines. + * + * The query supports filtering and sorting to help you find specific events or audit store activity over time. */ public class EventsGraphQLQuery extends GraphQLQuery { public EventsGraphQLQuery(Integer first, String after, Integer last, String before, @@ -134,8 +145,9 @@ public Builder sortKey(EventSortKeys sortKey) { * | comments | boolean | Whether or not to include [comment-events](https://shopify.dev/api/admin-graphql/latest/objects/CommentEvent) * in your search, passing `false` will exclude comment-events, any other value * will include comment-events. | | | - `false`
- `true` | - * | created_at | time | Filter by the date and time when the event happened. | - * | | - `created_at:>2020-10-21`
- `created_at:<now` | + * | created_at | time | Filter by the date and time when the event occurred. + * Event data is retained for 1 year. | | | - `created_at:>2025-10-21`
- + * `created_at:<now` | * | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | * | subject_type | string | The resource type affected by this event. See [EventSubjectType](https://shopify.dev/api/admin-graphql/latest/enums/EventSubjectType) * for possible values. | | | - `PRODUCT_VARIANT`
- `PRODUCT`
- `COLLECTION` | diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ExchangeLineItemFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ExchangeLineItemFragmentProjection.java index cadbac32..b288deae 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ExchangeLineItemFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ExchangeLineItemFragmentProjection.java @@ -24,11 +24,42 @@ public LineItemProjection, ROOT return projection; } + public LineItemProjection, ROOT> lineItems() { + LineItemProjection, ROOT> projection = new LineItemProjection<>(this, getRoot()); + getFields().put("lineItems", projection); + return projection; + } + public ExchangeLineItemFragmentProjection id() { getFields().put("id", null); return this; } + public ExchangeLineItemFragmentProjection processableQuantity() { + getFields().put("processableQuantity", null); + return this; + } + + public ExchangeLineItemFragmentProjection processedQuantity() { + getFields().put("processedQuantity", null); + return this; + } + + public ExchangeLineItemFragmentProjection quantity() { + getFields().put("quantity", null); + return this; + } + + public ExchangeLineItemFragmentProjection unprocessedQuantity() { + getFields().put("unprocessedQuantity", null); + return this; + } + + public ExchangeLineItemFragmentProjection variantId() { + getFields().put("variantId", null); + return this; + } + @Override public String toString() { StringBuilder builder = new StringBuilder(); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ExchangeLineItemProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ExchangeLineItemProjection.java index bb4943d9..daeefd78 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ExchangeLineItemProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ExchangeLineItemProjection.java @@ -18,8 +18,39 @@ public LineItemProjection, ROOT> lineIt return projection; } + public LineItemProjection, ROOT> lineItems() { + LineItemProjection, ROOT> projection = new LineItemProjection<>(this, getRoot()); + getFields().put("lineItems", projection); + return projection; + } + public ExchangeLineItemProjection id() { getFields().put("id", null); return this; } + + public ExchangeLineItemProjection processableQuantity() { + getFields().put("processableQuantity", null); + return this; + } + + public ExchangeLineItemProjection processedQuantity() { + getFields().put("processedQuantity", null); + return this; + } + + public ExchangeLineItemProjection quantity() { + getFields().put("quantity", null); + return this; + } + + public ExchangeLineItemProjection unprocessedQuantity() { + getFields().put("unprocessedQuantity", null); + return this; + } + + public ExchangeLineItemProjection variantId() { + getFields().put("variantId", null); + return this; + } } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FileCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FileCreateGraphQLQuery.java index c2e1ff70..b8304389 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FileCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FileCreateGraphQLQuery.java @@ -9,17 +9,43 @@ import java.util.Set; /** - * Creates file assets using an external URL or for files that were previously uploaded using the - * [stagedUploadsCreate mutation](https://shopify.dev/api/admin-graphql/latest/mutations/stageduploadscreate). - * These files are added to the [Files page](https://shopify.com/admin/settings/files) in Shopify admin. + * Creates file assets for a store from external URLs or files that were previously uploaded using the + * [`stagedUploadsCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/stageduploadscreate) + * mutation. * - * Files are processed asynchronously. Some data is not available until processing is completed. - * Check [fileStatus](https://shopify.dev/api/admin-graphql/latest/interfaces/File#field-file-filestatus) - * to know when the files are READY or FAILED. See the - * [FileStatus](https://shopify.dev/api/admin-graphql/latest/enums/filestatus) - * for the complete set of possible fileStatus values. + * Use the `fileCreate` mutation to add various types of media and documents to your store. These files are added to the + * [**Files** page](https://shopify.com/admin/settings/files) in the Shopify admin and can be referenced by other + * resources in your store. * - * To get a list of all files, use the [files query](https://shopify.dev/api/admin-graphql/latest/queries/files). + * The `fileCreate` mutation supports multiple file types: + * + * - **Images**: Product photos, variant images, and general store imagery + * - **Videos**: Shopify-hosted videos for product demonstrations and marketing + * - **External videos**: YouTube and Vimeo videos for enhanced product experiences + * - **3D models**: Interactive 3D representations of products + * - **Generic files**: PDFs, documents, and other file types for store resources + * + * The mutation handles duplicate filenames using configurable resolution modes that automatically append UUIDs, + * replace existing files, or raise errors when conflicts occur. + * + * > Note: + * > Files are processed asynchronously. Check the + * > [`fileStatus`](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/File#fields-fileStatus) + * > field to monitor processing completion. The maximum number of files that can be created in a single batch is 250. + * + * After creating files, you can make subsequent updates using the following mutations: + * + * - [`fileUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fileUpdate): + * Update file properties such as alt text or replace file contents while preserving the same URL. + * - [`fileDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fileDelete): + * Remove files from your store when they are no longer needed. + * + * To list all files in your store, use the + * [`files`](https://shopify.dev/docs/api/admin-graphql/latest/queries/files) query. + * + * Learn how to manage + * [product media and file assets](https://shopify.dev/docs/apps/build/online-store/product-media) + * in your app. */ public class FileCreateGraphQLQuery extends GraphQLQuery { public FileCreateGraphQLQuery(List files, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FileDeleteGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FileDeleteGraphQLQuery.java index 625f5b8f..7b039905 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FileDeleteGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FileDeleteGraphQLQuery.java @@ -8,7 +8,38 @@ import java.util.Set; /** - * Deletes existing file assets that were uploaded to Shopify. + * Deletes file assets that were previously uploaded to your store. + * + * Use the `fileDelete` mutation to permanently remove media and file assets from your store when they are no longer needed. + * This mutation handles the complete removal of files from both your store's file library and any associated references + * to products or other resources. + * + * The `fileDelete` mutation supports removal of multiple file types: + * + * - **Images**: Product photos, variant images, and general store imagery + * - **Videos**: Shopify-hosted videos for product demonstrations and marketing content + * - **External Videos**: YouTube and Vimeo videos linked to your products + * - **3D models**: Interactive 3D representations of products + * - **Generic files**: PDFs, documents, and other file types stored in your + * [**Files** page](https://shopify.com/admin/settings/files) + * + * When you delete files that are referenced by products, the mutation automatically removes those references and + * reorders any remaining media to maintain proper positioning. Product file references are database relationships + * managed through a media reference system, not just links in product descriptions. The Shopify admin provides a UI + * to manage these relationships, and when files are deleted, the system automatically cleans up all references. + * Files that are currently being processed by other operations are rejected to prevent conflicts. + * + * > Caution: + * > File deletion is permanent and can't be undone. When you delete a file that's being used in your store, + * > it will immediately stop appearing wherever it was displayed. For example, if you delete a product image, + * > that product will show a broken image or placeholder on your storefront and in the admin. The same applies + * > to any other files linked from themes, blog posts, or pages. Before deleting files, you can use the + * > [`files` query](https://shopify.dev/api/admin-graphql/latest/queries/files) to list and review + * > your store's file assets. + * + * Learn how to manage + * [product media and file assets](https://shopify.dev/docs/apps/build/online-store/product-media) + * in your app. */ public class FileDeleteGraphQLQuery extends GraphQLQuery { public FileDeleteGraphQLQuery(List fileIds, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FileUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FileUpdateGraphQLQuery.java index e038a41c..c9e40843 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FileUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FileUpdateGraphQLQuery.java @@ -9,7 +9,40 @@ import java.util.Set; /** - * Updates an existing file asset that was uploaded to Shopify. + * Updates properties, content, and metadata associated with an existing file + * asset that has already been uploaded to Shopify. + * + * Use the `fileUpdate` mutation to modify various aspects of files already stored in your store. + * Files can be updated individually or in batches. + * + * The `fileUpdate` mutation supports updating multiple file properties: + * + * - **Alt text**: Update accessibility descriptions for images and other media. + * - **File content**: Replace image or generic file content while maintaining the same URL. + * - **Filename**: Modify file names (extension must match the original). + * - **Product references**: Add or remove associations between files and products. Removing file-product associations + * deletes the file from the product's media gallery and clears the image from any product variants that were using it. + * + * The mutation handles different file types with specific capabilities: + * + * - **Images**: Update preview images, original source, filename, and alt text. + * - **Generic files**: Update original source, filename, and alt text. + * - **Videos and 3D models**: Update alt text and product references. + * + * > Note: + * > Files must be in `ready` state before they can be updated. The mutation includes file locking to prevent + * > conflicts during updates. You can't simultaneously update both `originalSource` and `previewImageSource`. + * + * After updating files, you can use related mutations for additional file management: + * + * - [`fileCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fileCreate): + * Create new file assets from external URLs or staged uploads. + * - [`fileDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fileDelete): + * Remove files from your store when they are no longer needed. + * + * Learn how to manage + * [product media and file assets](https://shopify.dev/docs/apps/build/online-store/product-media) + * in your app. */ public class FileUpdateGraphQLQuery extends GraphQLQuery { public FileUpdateGraphQLQuery(List files, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FilesGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FilesGraphQLQuery.java index 54e5e553..719b0dbf 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FilesGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FilesGraphQLQuery.java @@ -10,7 +10,23 @@ import java.util.Set; /** - * Returns a paginated list of files that have been uploaded to Shopify. + * Retrieves a paginated list of files that have been uploaded to a Shopify store. Files represent digital assets + * that merchants can upload to their store for various purposes including product images, marketing materials, + * documents, and brand assets. + * + * Use the `files` query to retrieve information associated with the following workflows: + * + * - [Managing product media and images](https://shopify.dev/docs/apps/build/online-store/product-media) + * - [Theme development and asset management](https://shopify.dev/docs/storefronts/themes/store/success/brand-assets) + * - Brand asset management and [checkout branding](https://shopify.dev/docs/apps/build/checkout/styling/add-favicon) + * + * Files can include multiple [content types](https://shopify.dev/docs/api/admin-graphql/latest/enums/FileContentType), + * such as images, videos, 3D models, and generic files. Each file has + * properties like dimensions, file size, alt text for accessibility, and upload status. Files can be filtered + * by [media type](https://shopify.dev/docs/api/admin-graphql/latest/enums/MediaContentType) and can be associated with + * [products](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product), + * [themes](https://shopify.dev/docs/api/admin-graphql/latest/objects/OnlineStoreTheme), + * and other store resources. */ public class FilesGraphQLQuery extends GraphQLQuery { public FilesGraphQLQuery(Integer first, String after, Integer last, String before, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentCancelGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentCancelGraphQLQuery.java index 9cd1d318..2230636a 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentCancelGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentCancelGraphQLQuery.java @@ -7,7 +7,20 @@ import java.util.Set; /** - * Cancels a fulfillment. + * Cancels an existing [`Fulfillment`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Fulfillment) + * and reverses its effects on associated [`FulfillmentOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder) + * objects. When you cancel a fulfillment, the system creates new fulfillment + * orders for the cancelled items so they can be fulfilled again. + * + * The cancellation affects fulfillment orders differently based on their + * fulfillment status. If a fulfillment order was entirely fulfilled, then it + * automatically closes. If a fulfillment order is partially fulfilled, then the + * remaining quantities adjust to include the cancelled items. The system creates + * new fulfillment orders at the original [`Location`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location) + * when items are still stocked there, or at alternative locations based on the + * store's fulfillment priority settings. + * + * Learn more about [canceling fulfillments](https://shopify.dev/docs/apps/build/orders-fulfillment/fulfillment-service-apps/build-for-fulfillment-services#step-7-cancel-a-fulfillment). */ public class FulfillmentCancelGraphQLQuery extends GraphQLQuery { public FulfillmentCancelGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentConstraintRuleCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentConstraintRuleCreateGraphQLQuery.java index ccb51d4a..858d7cb5 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentConstraintRuleCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentConstraintRuleCreateGraphQLQuery.java @@ -13,12 +13,12 @@ * Creates a fulfillment constraint rule and its metafield. */ public class FulfillmentConstraintRuleCreateGraphQLQuery extends GraphQLQuery { - public FulfillmentConstraintRuleCreateGraphQLQuery(String functionId, + public FulfillmentConstraintRuleCreateGraphQLQuery(String functionHandle, List deliveryMethodTypes, List metafields, String queryName, Set fieldsSet) { super("mutation", queryName); - if (functionId != null || fieldsSet.contains("functionId")) { - getInput().put("functionId", functionId); + if (functionHandle != null || fieldsSet.contains("functionHandle")) { + getInput().put("functionHandle", functionHandle); }if (deliveryMethodTypes != null || fieldsSet.contains("deliveryMethodTypes")) { getInput().put("deliveryMethodTypes", deliveryMethodTypes); }if (metafields != null || fieldsSet.contains("metafields")) { @@ -42,7 +42,7 @@ public static Builder newRequest() { public static class Builder { private Set fieldsSet = new HashSet<>(); - private String functionId; + private String functionHandle; private List deliveryMethodTypes; @@ -51,16 +51,16 @@ public static class Builder { private String queryName; public FulfillmentConstraintRuleCreateGraphQLQuery build() { - return new FulfillmentConstraintRuleCreateGraphQLQuery(functionId, deliveryMethodTypes, metafields, queryName, fieldsSet); + return new FulfillmentConstraintRuleCreateGraphQLQuery(functionHandle, deliveryMethodTypes, metafields, queryName, fieldsSet); } /** - * The identifier of the function providing the constraint rule. + * The handle of the function providing the constraint rule. */ - public Builder functionId(String functionId) { - this.functionId = functionId; - this.fieldsSet.add("functionId"); + public Builder functionHandle(String functionHandle) { + this.functionHandle = functionHandle; + this.fieldsSet.add("functionHandle"); return this; } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentCreateGraphQLQuery.java index 3dbb0c22..7f85a4a7 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentCreateGraphQLQuery.java @@ -8,8 +8,17 @@ import java.util.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. + * Creates a fulfillment for one or more [`FulfillmentOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder) + * objects. The fulfillment orders are associated with the same + * [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) and + * are assigned to the same [`Location`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location). + * + * Use this mutation to mark items as fulfilled when they're ready to ship. You + * can specify tracking information, customer notification preferences, and which [`FulfillmentOrderLineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/fulfillmentorderlineitem) + * objects to fulfill from each fulfillment order. If you don't specify line + * items, then the mutation fulfills all items in the fulfillment order. + * + * Learn more about [building fulfillment solutions](https://shopify.dev/docs/apps/build/orders-fulfillment/order-management-apps/build-fulfillment-solutions#create-a-fulfillment). */ public class FulfillmentCreateGraphQLQuery extends GraphQLQuery { public FulfillmentCreateGraphQLQuery(FulfillmentInput fulfillment, String message, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentEventCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentEventCreateGraphQLQuery.java index 6b291076..9940ad6a 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentEventCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentEventCreateGraphQLQuery.java @@ -8,7 +8,12 @@ import java.util.Set; /** - * Creates a fulfillment event for a specified fulfillment. + * Creates a [`FulfillmentEvent`](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentEvent) to track the shipment status and location of items that have shipped. Events + * capture status updates like carrier pickup, in transit, out for delivery, or delivered. + * + * Each event records the timestamp and current status of the [`Fulfillment`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Fulfillment). + * You can include optional details such as the location where the event + * occurred, estimated arrival time, and messages for tracking purposes. */ public class FulfillmentEventCreateGraphQLQuery extends GraphQLQuery { public FulfillmentEventCreateGraphQLQuery(FulfillmentEventInput fulfillmentEvent, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentGraphQLQuery.java index fd33b311..61058548 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentGraphQLQuery.java @@ -7,7 +7,15 @@ import java.util.Set; /** - * Returns a Fulfillment resource by ID. + * Retrieves a [`Fulfillment`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Fulfillment) by its ID. A fulfillment is a record that the merchant has completed their + * work required for one or more line items in an + * [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order). It + * includes tracking information, [`LineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItem) + * objects, and the status of the fulfillment. + * + * Use this query to track the progress of shipped items, view tracking details, + * or check [fulfillment events](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentEvent) + * for example when a package is out for delivery or delivered. */ public class FulfillmentGraphQLQuery extends GraphQLQuery { public FulfillmentGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrderAcceptFulfillmentRequestGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrderAcceptFulfillmentRequestGraphQLQuery.java index 54de65b9..5b2661a4 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrderAcceptFulfillmentRequestGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrderAcceptFulfillmentRequestGraphQLQuery.java @@ -3,20 +3,28 @@ import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; import java.lang.Override; import java.lang.String; +import java.time.OffsetDateTime; import java.util.HashSet; import java.util.Set; /** - * Accepts a fulfillment request sent to a fulfillment service for a fulfillment order. + * Accepts a fulfillment request that the fulfillment service has received for a [`FulfillmentOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder) + * which signals that the fulfillment service will process and fulfill the order. + * The fulfillment service can optionally provide a message to the merchant and + * an estimated shipped date when accepting the request. + * + * Learn more about [accepting fulfillment requests](https://shopify.dev/docs/apps/build/orders-fulfillment/fulfillment-service-apps/build-for-fulfillment-services#accept-a-fulfillment-request). */ public class FulfillmentOrderAcceptFulfillmentRequestGraphQLQuery extends GraphQLQuery { public FulfillmentOrderAcceptFulfillmentRequestGraphQLQuery(String id, String message, - String queryName, Set fieldsSet) { + OffsetDateTime estimatedShippedAt, String queryName, Set fieldsSet) { super("mutation", queryName); if (id != null || fieldsSet.contains("id")) { getInput().put("id", id); }if (message != null || fieldsSet.contains("message")) { getInput().put("message", message); + }if (estimatedShippedAt != null || fieldsSet.contains("estimatedShippedAt")) { + getInput().put("estimatedShippedAt", estimatedShippedAt); } } @@ -40,10 +48,12 @@ public static class Builder { private String message; + private OffsetDateTime estimatedShippedAt; + private String queryName; public FulfillmentOrderAcceptFulfillmentRequestGraphQLQuery build() { - return new FulfillmentOrderAcceptFulfillmentRequestGraphQLQuery(id, message, queryName, fieldsSet); + return new FulfillmentOrderAcceptFulfillmentRequestGraphQLQuery(id, message, estimatedShippedAt, queryName, fieldsSet); } @@ -65,6 +75,15 @@ public Builder message(String message) { return this; } + /** + * The estimated date and time when the fulfillment order will be shipped. + */ + public Builder estimatedShippedAt(OffsetDateTime estimatedShippedAt) { + this.estimatedShippedAt = estimatedShippedAt; + this.fieldsSet.add("estimatedShippedAt"); + return this; + } + public Builder queryName(String queryName) { this.queryName = queryName; return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrderCancelGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrderCancelGraphQLQuery.java index 71137b6f..4d654c0a 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrderCancelGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrderCancelGraphQLQuery.java @@ -7,7 +7,16 @@ import java.util.Set; /** - * Marks a fulfillment order as canceled. + * Cancels a [`FulfillmentOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder) and creates a replacement fulfillment order to represent the work left to be + * done. The original fulfillment order will be marked as closed. + * + * This mutation works when the fulfillment order has a `SUBMITTED` or + * `CANCELLATION_REQUESTED` status. For `SUBMITTED` orders, cancellation happens + * immediately because the fulfillment service hasn't accepted the request. + * + * > Note: Orders that have had cancellation requested but the cancellation has + * yet to be accepted by the fulfillment service might still have work completed + * despite cancellation. */ public class FulfillmentOrderCancelGraphQLQuery extends GraphQLQuery { public FulfillmentOrderCancelGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrderGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrderGraphQLQuery.java index 83208ad9..8d543003 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrderGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrderGraphQLQuery.java @@ -7,7 +7,7 @@ import java.util.Set; /** - * Returns a Fulfillment order resource by ID. + * Returns a `FulfillmentOrder` resource by ID. */ public class FulfillmentOrderGraphQLQuery extends GraphQLQuery { public FulfillmentOrderGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrderLineItemsPreparedForPickupGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrderLineItemsPreparedForPickupGraphQLQuery.java index 15fa7687..544ed8c6 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrderLineItemsPreparedForPickupGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrderLineItemsPreparedForPickupGraphQLQuery.java @@ -8,10 +8,15 @@ import java.util.Set; /** - * Mark line items associated with a fulfillment order as being ready for pickup by a customer. + * Marks [fulfillment order line items](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrderLineItem) + * as ready for customer pickup. When executed, this mutation automatically sends + * a "Ready For Pickup" notification to the customer. * - * Sends a Ready For Pickup notification to the customer to let them know that their order is ready - * to be picked up. + * Use this mutation for local pickup orders after the items have been prepared + * and are available for the customer to collect. You can specify one or more [fulfillment order](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder) + * objects by providing the fulfillment order IDs in the [`lineItemsByFulfillmentOrder`](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/PreparedFulfillmentOrderLineItemsInput) + * field. This allows you to mark fulfillment order line items from different + * fulfillment orders as ready for pickup. */ public class FulfillmentOrderLineItemsPreparedForPickupGraphQLQuery extends GraphQLQuery { public FulfillmentOrderLineItemsPreparedForPickupGraphQLQuery( diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrderMoveGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrderMoveGraphQLQuery.java index c21de5a1..a7c006e6 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrderMoveGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrderMoveGraphQLQuery.java @@ -14,7 +14,10 @@ * Moving a fulfillment order will fail in the following circumstances: * * * The fulfillment order is closed. - * * The destination location has never stocked the requested inventory item. + * * The fulfillment order has had progress manually reported. To move a + * fulfillment order that has had progress manually reported, the fulfillment + * order must first be marked as open resolving the ongoing progress state. + * * The destination location doesn't stock the requested inventory item. * * The API client doesn't have the correct permissions. * * Line items which have already been fulfilled can't be re-assigned diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrderOpenGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrderOpenGraphQLQuery.java index 20ad44fc..572d911c 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrderOpenGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrderOpenGraphQLQuery.java @@ -8,6 +8,9 @@ /** * Marks a scheduled fulfillment order as open. + * + * From API version 2026-01, this will also mark a fulfillment order as open when + * it is assigned to a merchant managed location and has had progress reported. */ public class FulfillmentOrderOpenGraphQLQuery extends GraphQLQuery { public FulfillmentOrderOpenGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrderSplitGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrderSplitGraphQLQuery.java index 59db27b2..ab8dafa0 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrderSplitGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrderSplitGraphQLQuery.java @@ -9,7 +9,11 @@ import java.util.Set; /** - * Splits a fulfillment order or orders based on line item inputs and quantities. + * Splits [`FulfillmentOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder) objects by moving the specified [`LineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItem) + * objects and quantities into a new fulfillment order. + * + * If the original fulfillment order can't be split due to its current state, + * then the mutation creates a replacement fulfillment order instead. */ public class FulfillmentOrderSplitGraphQLQuery extends GraphQLQuery { public FulfillmentOrderSplitGraphQLQuery(List fulfillmentOrderSplits, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrderSubmitFulfillmentRequestGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrderSubmitFulfillmentRequestGraphQLQuery.java index 30d7e690..b90793ff 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrderSubmitFulfillmentRequestGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrderSubmitFulfillmentRequestGraphQLQuery.java @@ -10,7 +10,18 @@ import java.util.Set; /** - * Sends a fulfillment request to the fulfillment service of a fulfillment order. + * Sends a fulfillment request to the fulfillment service assigned to a [`FulfillmentOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder). + * The fulfillment service must then accept or reject the request before + * processing can begin. + * + * You can either request fulfillment for all line items or specify individual + * items with quantities for partial fulfillment. When requesting partial + * fulfillment, Shopify splits the original fulfillment order into two: one with + * the submitted items and another with the remaining unsubmitted items. Include + * an optional message to communicate special instructions to the fulfillment + * service, such as gift wrapping or handling requirements. + * + * Learn more about [managing fulfillment requests as a fulfillment service](https://shopify.dev/docs/apps/build/orders-fulfillment/fulfillment-service-apps/build-for-fulfillment-services#step-4-act-on-fulfillment-requests). */ public class FulfillmentOrderSubmitFulfillmentRequestGraphQLQuery extends GraphQLQuery { public FulfillmentOrderSubmitFulfillmentRequestGraphQLQuery(String id, String message, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrdersRerouteGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrdersRerouteGraphQLQuery.java new file mode 100644 index 00000000..f17bafd2 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrdersRerouteGraphQLQuery.java @@ -0,0 +1,92 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import java.lang.Override; +import java.lang.String; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +/** + * Route the fulfillment orders to an alternative location, according to the shop's order routing settings. This involves: + * * Finding an alternate location that can fulfill the fulfillment orders. + * * Assigning the fulfillment orders to the new location. + */ +public class FulfillmentOrdersRerouteGraphQLQuery extends GraphQLQuery { + public FulfillmentOrdersRerouteGraphQLQuery(List fulfillmentOrderIds, + List includedLocationIds, List excludedLocationIds, String queryName, + Set fieldsSet) { + super("mutation", queryName); + if (fulfillmentOrderIds != null || fieldsSet.contains("fulfillmentOrderIds")) { + getInput().put("fulfillmentOrderIds", fulfillmentOrderIds); + }if (includedLocationIds != null || fieldsSet.contains("includedLocationIds")) { + getInput().put("includedLocationIds", includedLocationIds); + }if (excludedLocationIds != null || fieldsSet.contains("excludedLocationIds")) { + getInput().put("excludedLocationIds", excludedLocationIds); + } + } + + public FulfillmentOrdersRerouteGraphQLQuery() { + super("mutation"); + } + + @Override + public String getOperationName() { + return "fulfillmentOrdersReroute"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private List fulfillmentOrderIds; + + private List includedLocationIds; + + private List excludedLocationIds; + + private String queryName; + + public FulfillmentOrdersRerouteGraphQLQuery build() { + return new FulfillmentOrdersRerouteGraphQLQuery(fulfillmentOrderIds, includedLocationIds, excludedLocationIds, queryName, fieldsSet); + + } + + /** + * The list of IDs of the fulfillment orders. + */ + public Builder fulfillmentOrderIds(List fulfillmentOrderIds) { + this.fulfillmentOrderIds = fulfillmentOrderIds; + this.fieldsSet.add("fulfillmentOrderIds"); + return this; + } + + /** + * The list of IDs of the locations to include for rerouting. By default, all locations are included. + */ + public Builder includedLocationIds(List includedLocationIds) { + this.includedLocationIds = includedLocationIds; + this.fieldsSet.add("includedLocationIds"); + return this; + } + + /** + * The list of IDs of the locations to exclude for rerouting. Excluded + * locations specified here take precedence over included locations provided + * through included_location_ids. + */ + public Builder excludedLocationIds(List excludedLocationIds) { + this.excludedLocationIds = excludedLocationIds; + this.fieldsSet.add("excludedLocationIds"); + return this; + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrdersRerouteProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrdersRerouteProjectionRoot.java new file mode 100644 index 00000000..fcab7424 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrdersRerouteProjectionRoot.java @@ -0,0 +1,28 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class FulfillmentOrdersRerouteProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public FulfillmentOrdersRerouteProjectionRoot() { + super(null, null, java.util.Optional.of("FulfillmentOrdersReroutePayload")); + } + + public FulfillmentOrdersRerouteProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public FulfillmentOrderProjection, FulfillmentOrdersRerouteProjectionRoot> movedFulfillmentOrders( + ) { + FulfillmentOrderProjection, FulfillmentOrdersRerouteProjectionRoot> projection = new FulfillmentOrderProjection<>(this, this); + getFields().put("movedFulfillmentOrders", projection); + return projection; + } + + public FulfillmentOrdersRerouteUserErrorProjection, FulfillmentOrdersRerouteProjectionRoot> userErrors( + ) { + FulfillmentOrdersRerouteUserErrorProjection, FulfillmentOrdersRerouteProjectionRoot> projection = new FulfillmentOrdersRerouteUserErrorProjection<>(this, this); + getFields().put("userErrors", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrdersRerouteUserErrorCodeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrdersRerouteUserErrorCodeProjection.java new file mode 100644 index 00000000..b9d98387 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrdersRerouteUserErrorCodeProjection.java @@ -0,0 +1,14 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class FulfillmentOrdersRerouteUserErrorCodeProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public FulfillmentOrdersRerouteUserErrorCodeProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("FulfillmentOrdersRerouteUserErrorCode")); + } + + public FulfillmentOrdersRerouteUserErrorCodeProjection __typename() { + getFields().put("__typename", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrdersRerouteUserErrorProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrdersRerouteUserErrorProjection.java new file mode 100644 index 00000000..b2c360f2 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentOrdersRerouteUserErrorProjection.java @@ -0,0 +1,31 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class FulfillmentOrdersRerouteUserErrorProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public FulfillmentOrdersRerouteUserErrorProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("FulfillmentOrdersRerouteUserError")); + } + + public FulfillmentOrdersRerouteUserErrorProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public FulfillmentOrdersRerouteUserErrorCodeProjection, ROOT> code( + ) { + FulfillmentOrdersRerouteUserErrorCodeProjection, ROOT> projection = new FulfillmentOrdersRerouteUserErrorCodeProjection<>(this, getRoot()); + getFields().put("code", projection); + return projection; + } + + public FulfillmentOrdersRerouteUserErrorProjection field() { + getFields().put("field", null); + return this; + } + + public FulfillmentOrdersRerouteUserErrorProjection message() { + getFields().put("message", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentServiceCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentServiceCreateGraphQLQuery.java index fd8cc17e..05d1d36a 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentServiceCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentServiceCreateGraphQLQuery.java @@ -84,14 +84,20 @@ public Builder name(String name) { } /** - * The URL to send requests for the fulfillment service. The following considerations apply: + * The URL to send requests for the fulfillment service. * + * If `callbackUrl` is provided: * - Shopify queries the callback_url/fetch_tracking_numbers endpoint to retrieve tracking numbers * for orders, if `trackingSupport` is set to `true`. * - Shopify queries the callback_url/fetch_stock endpoint to retrieve inventory levels, * if `inventoryManagement` is set to `true`. * - Shopify uses the callback_url/fulfillment_order_notification endpoint to send * [fulfillment and cancellation requests](https://shopify.dev/apps/fulfillment/fulfillment-service-apps/manage-fulfillments#step-2-receive-fulfillment-requests-and-cancellations). + * + * Otherwise, if no `callbackUrl` is provided you need to submit this information via the api: + * - For submitting tracking info and handling fulfillment requests, see our + * docs on [building for fulfillment services](https://shopify.dev/apps/build/orders-fulfillment/fulfillment-service-apps/build-for-fulfillment-services). + * - For managing inventory quantities, see our docs on [managing inventory quantities and states](https://shopify.dev/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states). */ public Builder callbackUrl(String callbackUrl) { this.callbackUrl = callbackUrl; @@ -101,6 +107,12 @@ public Builder callbackUrl(String callbackUrl) { /** * Whether the fulfillment service provides tracking numbers for packages. + * + * If `callbackUrl` is provided ([optional as of API version "2026-01"](https://shopify.dev/changelog/fulfillment-service-callback-url-is-now-optional)), + * Shopify will periodically fetch tracking numbers via the callback endpoint. + * + * If no `callbackUrl` is provided you need to submit this information via the + * api, see our docs on [building for fulfillment services](https://shopify.dev/apps/build/orders-fulfillment/fulfillment-service-apps/build-for-fulfillment-services). */ public Builder trackingSupport(Boolean trackingSupport) { this.trackingSupport = trackingSupport; @@ -110,6 +122,12 @@ public Builder trackingSupport(Boolean trackingSupport) { /** * Whether the fulfillment service manages product inventory and provides updates to Shopify. + * + * If `callbackUrl` is provided ([optional as of API version "2026-01"](https://shopify.dev/changelog/fulfillment-service-callback-url-is-now-optional)), + * Shopify will periodically fetch inventory levels via the callback endpoint. + * + * If no `callbackUrl` is provided you need to submit this information via the + * api, see our docs on [managing inventory quantities and states](https://shopify.dev/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states). */ public Builder inventoryManagement(Boolean inventoryManagement) { this.inventoryManagement = inventoryManagement; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentServiceGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentServiceGraphQLQuery.java index 8e8eaaf1..20832670 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentServiceGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentServiceGraphQLQuery.java @@ -7,7 +7,14 @@ import java.util.Set; /** - * Returns a FulfillmentService resource by ID. + * Returns a [`FulfillmentService`](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentService) by its ID. The service can manage inventory, process fulfillment requests, and + * provide tracking details through callback endpoints or directly calling + * Shopify's APIs. + * + * When you register a fulfillment service, Shopify automatically creates an associated [`Location`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location) + * where fulfillment order's can be assigned to be processed. + * + * Learn more about [building fulfillment service apps](https://shopify.dev/docs/apps/build/orders-fulfillment/fulfillment-service-apps/build-for-fulfillment-services). */ public class FulfillmentServiceGraphQLQuery extends GraphQLQuery { public FulfillmentServiceGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentServiceUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentServiceUpdateGraphQLQuery.java index 48c45a06..c7189773 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentServiceUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentServiceUpdateGraphQLQuery.java @@ -8,14 +8,17 @@ import java.util.Set; /** - * Updates a fulfillment service. + * Updates the [`FulfillmentService`](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentService) configuration, including its name, callback URL, and operational settings. * - * If you are using API version `2023-10` or later, - * and you need to update the location managed by the fulfillment service - * (for example, to change the address of a fulfillment service), - * use the - * [LocationEdit](https://shopify.dev/api/admin-graphql/latest/mutations/locationEdit) - * mutation. + * The mutation modifies how the fulfillment service handles inventory tracking, + * shipping requirements, and package tracking support. + * + * > Note: + * > To update the physical address or other location details of the fulfillment + * service, use the [`locationEdit`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/locationEdit) + * mutation instead. + * + * Learn more about [editing fulfillment service locations](https://shopify.dev/docs/apps/build/orders-fulfillment/fulfillment-service-apps/build-for-fulfillment-services#step-2-edit-locations). */ public class FulfillmentServiceUpdateGraphQLQuery extends GraphQLQuery { public FulfillmentServiceUpdateGraphQLQuery(String id, String name, String callbackUrl, @@ -91,14 +94,20 @@ public Builder name(String name) { } /** - * The URL to send requests for the fulfillment service. The following considerations apply: + * The URL to send requests for the fulfillment service. * + * If `callbackUrl` is provided: * - Shopify queries the callback_url/fetch_tracking_numbers endpoint to retrieve tracking numbers * for orders, if `trackingSupport` is set to `true`. * - Shopify queries the callback_url/fetch_stock endpoint to retrieve inventory levels, * if `inventoryManagement` is set to `true`. * - Shopify uses the callback_url/fulfillment_order_notification endpoint to send * [fulfillment and cancellation requests](https://shopify.dev/apps/fulfillment/fulfillment-service-apps/manage-fulfillments#step-2-receive-fulfillment-requests-and-cancellations). + * + * Otherwise, if no `callbackUrl` is provided you need to submit this information via the api: + * - For submitting tracking info and handling fulfillment requests, see our + * docs on [building for fulfillment services](https://shopify.dev/apps/build/orders-fulfillment/fulfillment-service-apps/build-for-fulfillment-services). + * - For managing inventory quantities, see our docs on [managing inventory quantities and states](https://shopify.dev/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states). */ public Builder callbackUrl(String callbackUrl) { this.callbackUrl = callbackUrl; @@ -108,6 +117,11 @@ public Builder callbackUrl(String callbackUrl) { /** * Whether the fulfillment service provides tracking numbers for packages. + * + * If `callbackUrl` is provided, Shopify will periodically fetch tracking numbers via the callback endpoint. + * + * If no `callbackUrl` is provided you need to submit this information via the + * api, see our docs on [building for fulfillment services](https://shopify.dev/apps/build/orders-fulfillment/fulfillment-service-apps/build-for-fulfillment-services). */ public Builder trackingSupport(Boolean trackingSupport) { this.trackingSupport = trackingSupport; @@ -116,7 +130,12 @@ public Builder trackingSupport(Boolean trackingSupport) { } /** - * Whether the fulfillment service tracks product inventory and provides updates to Shopify. + * Whether the fulfillment service manages product inventory and provides updates to Shopify. + * + * If `callbackUrl` is provided, Shopify will periodically fetch inventory levels via the callback endpoint. + * + * If no `callbackUrl` is provided you need to submit this information via the + * api, see our docs on [managing inventory quantities and states](https://shopify.dev/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states). */ public Builder inventoryManagement(Boolean inventoryManagement) { this.inventoryManagement = inventoryManagement; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentTrackingInfoUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentTrackingInfoUpdateGraphQLQuery.java index c6bf0a99..be29a720 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentTrackingInfoUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/FulfillmentTrackingInfoUpdateGraphQLQuery.java @@ -9,7 +9,22 @@ import java.util.Set; /** - * Updates tracking information for a fulfillment. + * Updates tracking information for a fulfillment, including the carrier name, + * tracking numbers, and tracking URLs. You can provide either single or multiple + * tracking numbers for shipments with multiple packages. + * + * The mutation accepts a [`FulfillmentTrackingInput`](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/FulfillmentTrackingInput) + * that supports both single tracking (using [`number`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentTrackingInfoUpdate#arguments-trackingInfoInput.fields.number) and [`url`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentTrackingInfoUpdate#arguments-trackingInfoInput.fields.url) + * fields) and multi-package tracking (using [`numbers`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentTrackingInfoUpdate#arguments-trackingInfoInput.fields.numbers) and [`urls`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentTrackingInfoUpdate#arguments-trackingInfoInput.fields.urls) + * fields). When you specify a [supported carrier name](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentTrackingInfo#supported-tracking-companies), + * Shopify automatically generates tracking URLs for the provided tracking numbers. + * + * You can optionally notify customers about tracking updates with the [`notifyCustomer`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentTrackingInfoUpdate#arguments-notifyCustomer) + * argument. When enabled, customers receive shipping update emails with tracking + * details and receive notifications about future updates to the fulfillment. + * + * Learn more about [enabling tracking support](https://shopify.dev/docs/apps/build/orders-fulfillment/fulfillment-service-apps/build-for-fulfillment-services#step-9-optional-enable-tracking-support) + * for fulfillment services. */ public class FulfillmentTrackingInfoUpdateGraphQLQuery extends GraphQLQuery { public FulfillmentTrackingInfoUpdateGraphQLQuery(String fulfillmentId, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/GiftCardCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/GiftCardCreateGraphQLQuery.java index 75877cec..052320ef 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/GiftCardCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/GiftCardCreateGraphQLQuery.java @@ -8,7 +8,14 @@ import java.util.Set; /** - * Create a gift card. + * Creates a new [`GiftCard`](https://shopify.dev/docs/api/admin-graphql/latest/objects/GiftCard) with a specified initial value. You can assign the gift card to a [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer) + * or create it without assignment for manual distribution. + * + * You can customize the gift card with an optional code, expiration date, and + * internal note. If you don't provide a code, the system generates a random 16 + * character alphanumeric code. The mutation also supports scheduling gift card + * notifications to recipients, with a personalized message, through the [`recipientAttributes`](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/GiftCardCreateInput#fields-recipientAttributes) + * field on the `GiftCardCreateInput` input object. */ public class GiftCardCreateGraphQLQuery extends GraphQLQuery { public GiftCardCreateGraphQLQuery(GiftCardCreateInput input, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/GiftCardGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/GiftCardGraphQLQuery.java index d952f891..1cc52d9a 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/GiftCardGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/GiftCardGraphQLQuery.java @@ -7,7 +7,14 @@ import java.util.Set; /** - * Returns a gift card resource by ID. + * Retrieves a [`GiftCard`](https://shopify.dev/docs/api/admin-graphql/latest/objects/GiftCard) by its ID. Returns the gift card's balance, transaction history, [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer) + * information, and whether it's enabled. + * + * Additional fields include the initial value, expiration date, deactivation + * timestamp (if applicable), and the associated + * [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) if + * the gift card was purchased by a customer through checkout. Gift cards that + * merchants create manually won't have an associated order. */ public class GiftCardGraphQLQuery extends GraphQLQuery { public GiftCardGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/GiftCardsCountGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/GiftCardsCountGraphQLQuery.java index 0f7ea158..0399543a 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/GiftCardsCountGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/GiftCardsCountGraphQLQuery.java @@ -1,22 +1,25 @@ package com.shopify.admin.client; import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import java.lang.Integer; import java.lang.Override; import java.lang.String; import java.util.HashSet; import java.util.Set; /** - * The total number of gift cards issued for the shop. Limited to a maximum of 10000. + * The total number of gift cards issued for the shop. Limited to a maximum of 10000 by default. */ public class GiftCardsCountGraphQLQuery extends GraphQLQuery { - public GiftCardsCountGraphQLQuery(String query, String savedSearchId, String queryName, - Set fieldsSet) { + public GiftCardsCountGraphQLQuery(String query, String savedSearchId, Integer limit, + String queryName, Set fieldsSet) { super("query", queryName); if (query != null || fieldsSet.contains("query")) { getInput().put("query", query); }if (savedSearchId != null || fieldsSet.contains("savedSearchId")) { getInput().put("savedSearchId", savedSearchId); + }if (limit != null || fieldsSet.contains("limit")) { + getInput().put("limit", limit); } } @@ -40,10 +43,12 @@ public static class Builder { private String savedSearchId; + private Integer limit; + private String queryName; public GiftCardsCountGraphQLQuery build() { - return new GiftCardsCountGraphQLQuery(query, savedSearchId, queryName, fieldsSet); + return new GiftCardsCountGraphQLQuery(query, savedSearchId, limit, queryName, fieldsSet); } @@ -51,7 +56,9 @@ public GiftCardsCountGraphQLQuery build() { * A filter made up of terms, connectives, modifiers, and comparators. * | name | type | description | acceptable_values | default_value | example_use | * | ---- | ---- | ---- | ---- | ---- | ---- | - * | default | string | Searched fields: code. | | | - `query=Bob Norman`
- `query=title:green hoodie` | + * | default | string | Filter by a case-insensitive search of multiple fields + * in a document, including gift card codes. | | | - + * `query=a5bh6h64b329j4k7`
- `query=Bob Norman` | * | balance_status | string | | - `full`
- `partial`
- `empty`
* - `full_or_partial` | | - `balance_status:full` | * | created_at | time | | | | - `created_at:>=2020-01-01T12:00:00Z` | @@ -81,6 +88,15 @@ public Builder savedSearchId(String savedSearchId) { return this; } + /** + * The upper bound on count value before returning a result. Use `null` to have no limit. + */ + public Builder limit(Integer limit) { + this.limit = limit; + this.fieldsSet.add("limit"); + return this; + } + public Builder queryName(String queryName) { this.queryName = queryName; return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/GiftCardsGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/GiftCardsGraphQLQuery.java index a6dc8201..0ddd97d1 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/GiftCardsGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/GiftCardsGraphQLQuery.java @@ -10,7 +10,13 @@ import java.util.Set; /** - * Returns a list of gift cards. + * Returns a paginated list of [`GiftCard`](https://shopify.dev/docs/api/admin-graphql/latest/objects/GiftCard) + * objects issued for the shop. + * + * You can filter gift cards by attributes such as status, last characters of the + * code, balance status, and other values using the [`query`](https://shopify.dev/docs/api/admin-graphql/latest/queries/giftCards#arguments-query) + * parameter. You can also apply [`SavedSearch`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SavedSearch) + * objects to filter results. */ public class GiftCardsGraphQLQuery extends GraphQLQuery { public GiftCardsGraphQLQuery(Integer first, String after, Integer last, String before, @@ -134,7 +140,9 @@ public Builder sortKey(GiftCardSortKeys sortKey) { * A filter made up of terms, connectives, modifiers, and comparators. * | name | type | description | acceptable_values | default_value | example_use | * | ---- | ---- | ---- | ---- | ---- | ---- | - * | default | string | Searched fields: code. | | | - `query=Bob Norman`
- `query=title:green hoodie` | + * | default | string | Filter by a case-insensitive search of multiple fields + * in a document, including gift card codes. | | | - + * `query=a5bh6h64b329j4k7`
- `query=Bob Norman` | * | balance_status | string | | - `full`
- `partial`
- `empty`
* - `full_or_partial` | | - `balance_status:full` | * | created_at | time | | | | - `created_at:>=2020-01-01T12:00:00Z` | diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/HasEventsProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/HasEventsProjection.java index 926fc3f2..246b762d 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/HasEventsProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/HasEventsProjection.java @@ -122,6 +122,13 @@ public DraftOrderFragmentProjection, ROOT> onD return fragment; } + public InventoryTransferFragmentProjection, ROOT> onInventoryTransfer( + ) { + InventoryTransferFragmentProjection, ROOT> fragment = new InventoryTransferFragmentProjection<>(this, getRoot()); + getFragments().add(fragment); + return fragment; + } + public OrderFragmentProjection, ROOT> onOrder() { OrderFragmentProjection, ROOT> fragment = new OrderFragmentProjection<>(this, getRoot()); getFragments().add(fragment); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/HasMetafieldsProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/HasMetafieldsProjection.java index 596e0380..11fbf430 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/HasMetafieldsProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/HasMetafieldsProjection.java @@ -183,6 +183,13 @@ public ImageFragmentProjection, ROOT> onIm return fragment; } + public InventoryTransferFragmentProjection, ROOT> onInventoryTransfer( + ) { + InventoryTransferFragmentProjection, ROOT> fragment = new InventoryTransferFragmentProjection<>(this, getRoot()); + getFragments().add(fragment); + return fragment; + } + public LocationFragmentProjection, ROOT> onLocation() { LocationFragmentProjection, ROOT> fragment = new LocationFragmentProjection<>(this, getRoot()); getFragments().add(fragment); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/HasStoreCreditAccountsProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/HasStoreCreditAccountsProjection.java index 6c9c78e0..93dd4d5f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/HasStoreCreditAccountsProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/HasStoreCreditAccountsProjection.java @@ -40,6 +40,13 @@ public StoreCreditAccountConnectionProjection, ROOT> onCompanyLocation( + ) { + CompanyLocationFragmentProjection, ROOT> fragment = new CompanyLocationFragmentProjection<>(this, getRoot()); + getFragments().add(fragment); + return fragment; + } + public CustomerFragmentProjection, ROOT> onCustomer( ) { CustomerFragmentProjection, ROOT> fragment = new CustomerFragmentProjection<>(this, getRoot()); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ImageFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ImageFragmentProjection.java index c576362b..f41daa98 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ImageFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ImageFragmentProjection.java @@ -72,6 +72,24 @@ public MetafieldConnectionProjection, ROOT return projection; } + public TranslationProjection, ROOT> translations() { + TranslationProjection, ROOT> projection = new TranslationProjection<>(this, getRoot()); + getFields().put("translations", projection); + return projection; + } + + public TranslationProjection, ROOT> translations( + String locale, String marketId) { + TranslationProjection, ROOT> projection = new TranslationProjection<>(this, getRoot()); + getFields().put("translations", projection); + getInputArguments().computeIfAbsent("translations", k -> new ArrayList<>()); + InputArgument localeArg = new InputArgument("locale", locale); + getInputArguments().get("translations").add(localeArg); + InputArgument marketIdArg = new InputArgument("marketId", marketId); + getInputArguments().get("translations").add(marketIdArg); + return projection; + } + public ImageFragmentProjection altText() { getFields().put("altText", null); return this; @@ -97,6 +115,11 @@ public ImageFragmentProjection src() { return this; } + public ImageFragmentProjection thumbhash() { + getFields().put("thumbhash", null); + return this; + } + public ImageFragmentProjection transformedSrc() { getFields().put("transformedSrc", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ImageProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ImageProjection.java index 05d09e67..29d4c7f3 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ImageProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ImageProjection.java @@ -67,6 +67,24 @@ public MetafieldConnectionProjection, ROOT> metafi return projection; } + public TranslationProjection, ROOT> translations() { + TranslationProjection, ROOT> projection = new TranslationProjection<>(this, getRoot()); + getFields().put("translations", projection); + return projection; + } + + public TranslationProjection, ROOT> translations(String locale, + String marketId) { + TranslationProjection, ROOT> projection = new TranslationProjection<>(this, getRoot()); + getFields().put("translations", projection); + getInputArguments().computeIfAbsent("translations", k -> new ArrayList<>()); + InputArgument localeArg = new InputArgument("locale", locale); + getInputArguments().get("translations").add(localeArg); + InputArgument marketIdArg = new InputArgument("marketId", marketId); + getInputArguments().get("translations").add(marketIdArg); + return projection; + } + public ImageProjection altText() { getFields().put("altText", null); return this; @@ -92,6 +110,11 @@ public ImageProjection src() { return this; } + public ImageProjection thumbhash() { + getFields().put("thumbhash", null); + return this; + } + public ImageProjection transformedSrc() { getFields().put("transformedSrc", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryActivateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryActivateGraphQLQuery.java index a90c0037..eb5445f7 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryActivateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryActivateGraphQLQuery.java @@ -9,7 +9,21 @@ import java.util.Set; /** - * Activate an inventory item at a location. + * Activates an inventory item at a [`Location`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location) by creating an [`InventoryLevel`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryLevel) + * that tracks stock quantities. This enables you to manage inventory for a [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) + * at the specified location. + * + * When you activate an inventory item, you can set its initial quantities. The [`available`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/inventoryActivate#arguments-available) + * argument sets the quantity that's available for sale. [`onHand`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/inventoryActivate#arguments-onHand) + * argument sets the total physical quantity at the location. If you don't + * specify quantities, then `available` and `onHand` default to zero. + * + * > Caution: + * > As of version `2026-01`, this mutation supports an optional idempotency key using the `@idempotent` directive. + * > As of version `2026-04`, the idempotency key is required and must be provided using the `@idempotent` directive. + * > For more information, see the [idempotency documentation](https://shopify.dev/docs/api/usage/idempotent-requests). + * + * Learn more about [managing inventory quantities and states](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states). */ public class InventoryActivateGraphQLQuery extends GraphQLQuery { public InventoryActivateGraphQLQuery(String inventoryItemId, String locationId, Integer available, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryAdjustQuantitiesGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryAdjustQuantitiesGraphQLQuery.java index 22138e25..dc698509 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryAdjustQuantitiesGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryAdjustQuantitiesGraphQLQuery.java @@ -8,7 +8,20 @@ import java.util.Set; /** - * Apply changes to inventory quantities. + * Adjusts quantities for inventory items by applying incremental changes at + * specific locations. Each adjustment modifies the quantity by a delta value + * rather than setting an absolute amount. + * + * The mutation tracks adjustments with a reason code and optional reference URI + * for audit trails. Returns an [`InventoryAdjustmentGroup`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryAdjustmentGroup) + * that records all changes made in the operation. + * + * Learn more about [managing inventory quantities and states](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states#adjust-inventory-quantities). + * + * > Caution: + * > As of version `2026-01`, this mutation supports an optional idempotency key using the `@idempotent` directive. + * > As of version `2026-04`, the idempotency key is required and must be provided using the `@idempotent` directive. + * > For more information, see the [idempotency documentation](https://shopify.dev/docs/api/usage/idempotent-requests). */ public class InventoryAdjustQuantitiesGraphQLQuery extends GraphQLQuery { public InventoryAdjustQuantitiesGraphQLQuery(InventoryAdjustQuantitiesInput input, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryBulkToggleActivationGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryBulkToggleActivationGraphQLQuery.java index 0fb53b21..e33dbccb 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryBulkToggleActivationGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryBulkToggleActivationGraphQLQuery.java @@ -9,10 +9,15 @@ import java.util.Set; /** - * Modify the activation status of an inventory item at locations. Activating an - * inventory item at a particular location allows that location to stock that - * inventory item. Deactivating an inventory item at a location removes the - * inventory item's quantities and turns off the inventory item from that location. + * Activates or deactivates an inventory item at multiple locations. When you activate an [`InventoryItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryItem) at a [`Location`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location), + * that location can stock and track quantities for that item. When you + * deactivate an inventory item at a location, the inventory item is no longer + * stocked at that location. + * + * The mutation accepts an inventory item ID and a list of location-specific + * activation settings. It returns the updated inventory item and any activated [`InventoryLevel`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryLevel) objects. + * + * Learn more about [managing inventory quantities and states](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states#inventory-object-relationships). */ public class InventoryBulkToggleActivationGraphQLQuery extends GraphQLQuery { public InventoryBulkToggleActivationGraphQLQuery(String inventoryItemId, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryItemFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryItemFragmentProjection.java index 674423a0..eb82e780 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryItemFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryItemFragmentProjection.java @@ -129,6 +129,29 @@ public ProductVariantProjection, R return projection; } + public ProductVariantConnectionProjection, ROOT> variants( + ) { + ProductVariantConnectionProjection, ROOT> projection = new ProductVariantConnectionProjection<>(this, getRoot()); + getFields().put("variants", projection); + return projection; + } + + public ProductVariantConnectionProjection, ROOT> variants( + Integer first, String after, Integer last, String before) { + ProductVariantConnectionProjection, ROOT> projection = new ProductVariantConnectionProjection<>(this, getRoot()); + getFields().put("variants", projection); + getInputArguments().computeIfAbsent("variants", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("variants").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("variants").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("variants").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("variants").add(beforeArg); + return projection; + } + public InventoryItemFragmentProjection createdAt() { getFields().put("createdAt", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryItemProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryItemProjection.java index 5ee4a739..b02a5dec 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryItemProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryItemProjection.java @@ -121,6 +121,29 @@ public ProductVariantProjection, ROOT> var return projection; } + public ProductVariantConnectionProjection, ROOT> variants( + ) { + ProductVariantConnectionProjection, ROOT> projection = new ProductVariantConnectionProjection<>(this, getRoot()); + getFields().put("variants", projection); + return projection; + } + + public ProductVariantConnectionProjection, ROOT> variants( + Integer first, String after, Integer last, String before) { + ProductVariantConnectionProjection, ROOT> projection = new ProductVariantConnectionProjection<>(this, getRoot()); + getFields().put("variants", projection); + getInputArguments().computeIfAbsent("variants", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("variants").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("variants").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("variants").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("variants").add(beforeArg); + return projection; + } + public InventoryItemProjection createdAt() { getFields().put("createdAt", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryItemProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryItemProjectionRoot.java index 2b50a48e..f17d6277 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryItemProjectionRoot.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryItemProjectionRoot.java @@ -127,6 +127,29 @@ public ProductVariantProjection, Inven return projection; } + public ProductVariantConnectionProjection, InventoryItemProjectionRoot> variants( + ) { + ProductVariantConnectionProjection, InventoryItemProjectionRoot> projection = new ProductVariantConnectionProjection<>(this, this); + getFields().put("variants", projection); + return projection; + } + + public ProductVariantConnectionProjection, InventoryItemProjectionRoot> variants( + Integer first, String after, Integer last, String before) { + ProductVariantConnectionProjection, InventoryItemProjectionRoot> projection = new ProductVariantConnectionProjection<>(this, this); + getFields().put("variants", projection); + getInputArguments().computeIfAbsent("variants", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("variants").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("variants").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("variants").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("variants").add(beforeArg); + return projection; + } + public InventoryItemProjectionRoot createdAt() { getFields().put("createdAt", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryItemUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryItemUpdateGraphQLQuery.java index e67bebae..442bbb7e 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryItemUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryItemUpdateGraphQLQuery.java @@ -8,7 +8,9 @@ import java.util.Set; /** - * Updates an inventory item. + * Updates an [`InventoryItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryItem)'s properties including whether inventory is tracked, cost, SKU, and whether + * shipping is required. Inventory items represent the goods available to be + * shipped to customers. */ public class InventoryItemUpdateGraphQLQuery extends GraphQLQuery { public InventoryItemUpdateGraphQLQuery(String id, InventoryItemInput input, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryMoveQuantitiesGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryMoveQuantitiesGraphQLQuery.java index 2daca854..eefee9fc 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryMoveQuantitiesGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryMoveQuantitiesGraphQLQuery.java @@ -8,7 +8,19 @@ import java.util.Set; /** - * Moves inventory between inventory quantity names at a single location. + * Moves inventory quantities for a single inventory item between different + * states at a single location. Use this mutation to reallocate inventory across + * quantity states without moving it between locations. + * + * Each change specifies the quantity to move, the source state and location, and + * the destination state and location. The mutation returns an [`InventoryAdjustmentGroup`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryAdjustmentGroup) + * that tracks all changes made in a single operation, providing an audit trail + * with the reason and reference document URI. + * + * > Caution: + * > As of version `2026-01`, this mutation supports an optional idempotency key using the `@idempotent` directive. + * > As of version `2026-04`, the idempotency key is required and must be provided using the `@idempotent` directive. + * > For more information, see the [idempotency documentation](https://shopify.dev/docs/api/usage/idempotent-requests). */ public class InventoryMoveQuantitiesGraphQLQuery extends GraphQLQuery { public InventoryMoveQuantitiesGraphQLQuery(InventoryMoveQuantitiesInput input, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryPropertiesGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryPropertiesGraphQLQuery.java index c63ed308..f20c97a4 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryPropertiesGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryPropertiesGraphQLQuery.java @@ -7,7 +7,9 @@ import java.util.Set; /** - * General inventory properties for the shop. + * Returns the shop's inventory configuration, including all inventory quantity + * names. Quantity names represent different [inventory states](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps#inventory-states) + * that merchants use to track inventory. */ public class InventoryPropertiesGraphQLQuery extends GraphQLQuery { public InventoryPropertiesGraphQLQuery(String queryName) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventorySetOnHandQuantitiesGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventorySetOnHandQuantitiesGraphQLQuery.java index 33d8e416..a64d0b5f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventorySetOnHandQuantitiesGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventorySetOnHandQuantitiesGraphQLQuery.java @@ -8,7 +8,17 @@ import java.util.Set; /** - * Set inventory on-hand quantities using absolute values. + * Sets an inventory item's on-hand quantities to specific absolute values at + * designated locations. The mutation takes a reason for tracking purposes and a + * reference document URI for audit trails. + * + * Returns an [`InventoryAdjustmentGroup`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryAdjustmentGroup) that tracks all changes made in this operation, including the delta values + * calculated from the previous quantities. + * + * > Caution: + * > As of 2026-01, this mutation supports an optional idempotency key using the `@idempotent` directive. + * > As of 2026-04, the idempotency key is required and must be provided using the `@idempotent` directive. + * > For more information, see the [idempotency documentation](https://shopify.dev/docs/api/usage/idempotent-requests). */ public class InventorySetOnHandQuantitiesGraphQLQuery extends GraphQLQuery { public InventorySetOnHandQuantitiesGraphQLQuery(InventorySetOnHandQuantitiesInput input, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventorySetQuantitiesGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventorySetQuantitiesGraphQLQuery.java index 3c1b1161..3e7cb094 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventorySetQuantitiesGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventorySetQuantitiesGraphQLQuery.java @@ -24,6 +24,11 @@ * > It is recommended to always include the `compareQuantity` value to ensure * the accuracy of the inventory quantities and to opt out * > of the check using `ignoreCompareQuantity` only when necessary. + * + * > Caution: + * > As of 2026-01, this mutation supports an optional idempotency key using the `@idempotent` directive. + * > As of 2026-04, the idempotency key is required and must be provided using the `@idempotent` directive. + * > For more information, see the [idempotency documentation](https://shopify.dev/docs/api/usage/idempotent-requests). */ public class InventorySetQuantitiesGraphQLQuery extends GraphQLQuery { public InventorySetQuantitiesGraphQLQuery(InventorySetQuantitiesInput input, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventorySetScheduledChangesGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventorySetScheduledChangesGraphQLQuery.java index 4a1c8c27..02056a94 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventorySetScheduledChangesGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventorySetScheduledChangesGraphQLQuery.java @@ -9,6 +9,11 @@ /** * Set up scheduled changes of inventory items. + * + * > Caution: + * > As of 2026-01, this mutation supports an optional idempotency key using the `@idempotent` directive. + * > As of 2026-04, the idempotency key is required and must be provided using the `@idempotent` directive. + * > For more information, see the [idempotency documentation](https://shopify.dev/docs/api/usage/idempotent-requests). */ public class InventorySetScheduledChangesGraphQLQuery extends GraphQLQuery { public InventorySetScheduledChangesGraphQLQuery(InventorySetScheduledChangesInput input, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentAddItemsGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentAddItemsGraphQLQuery.java new file mode 100644 index 00000000..0a165a2d --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentAddItemsGraphQLQuery.java @@ -0,0 +1,80 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import com.shopify.admin.types.InventoryShipmentLineItemInput; +import java.lang.Override; +import java.lang.String; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +/** + * Adds items to an inventory shipment. + * + * > Caution: + * > As of 2026-01, this mutation supports an optional idempotency key using the `@idempotent` directive. + * > As of 2026-04, the idempotency key is required and must be provided using the `@idempotent` directive. + * > For more information, see the [idempotency documentation](https://shopify.dev/docs/api/usage/idempotent-requests). + */ +public class InventoryShipmentAddItemsGraphQLQuery extends GraphQLQuery { + public InventoryShipmentAddItemsGraphQLQuery(String id, + List lineItems, String queryName, Set fieldsSet) { + super("mutation", queryName); + if (id != null || fieldsSet.contains("id")) { + getInput().put("id", id); + }if (lineItems != null || fieldsSet.contains("lineItems")) { + getInput().put("lineItems", lineItems); + } + } + + public InventoryShipmentAddItemsGraphQLQuery() { + super("mutation"); + } + + @Override + public String getOperationName() { + return "inventoryShipmentAddItems"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private String id; + + private List lineItems; + + private String queryName; + + public InventoryShipmentAddItemsGraphQLQuery build() { + return new InventoryShipmentAddItemsGraphQLQuery(id, lineItems, queryName, fieldsSet); + + } + + /** + * The ID of the inventory shipment to modify. + */ + public Builder id(String id) { + this.id = id; + this.fieldsSet.add("id"); + return this; + } + + /** + * The list of line items to add to the inventory shipment. + */ + public Builder lineItems(List lineItems) { + this.lineItems = lineItems; + this.fieldsSet.add("lineItems"); + return this; + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentAddItemsProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentAddItemsProjectionRoot.java new file mode 100644 index 00000000..feb94bb7 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentAddItemsProjectionRoot.java @@ -0,0 +1,35 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryShipmentAddItemsProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryShipmentAddItemsProjectionRoot() { + super(null, null, java.util.Optional.of("InventoryShipmentAddItemsPayload")); + } + + public InventoryShipmentAddItemsProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryShipmentLineItemProjection, InventoryShipmentAddItemsProjectionRoot> addedItems( + ) { + InventoryShipmentLineItemProjection, InventoryShipmentAddItemsProjectionRoot> projection = new InventoryShipmentLineItemProjection<>(this, this); + getFields().put("addedItems", projection); + return projection; + } + + public InventoryShipmentProjection, InventoryShipmentAddItemsProjectionRoot> inventoryShipment( + ) { + InventoryShipmentProjection, InventoryShipmentAddItemsProjectionRoot> projection = new InventoryShipmentProjection<>(this, this); + getFields().put("inventoryShipment", projection); + return projection; + } + + public InventoryShipmentAddItemsUserErrorProjection, InventoryShipmentAddItemsProjectionRoot> userErrors( + ) { + InventoryShipmentAddItemsUserErrorProjection, InventoryShipmentAddItemsProjectionRoot> projection = new InventoryShipmentAddItemsUserErrorProjection<>(this, this); + getFields().put("userErrors", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentAddItemsUserErrorCodeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentAddItemsUserErrorCodeProjection.java new file mode 100644 index 00000000..1a5ac5c4 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentAddItemsUserErrorCodeProjection.java @@ -0,0 +1,14 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryShipmentAddItemsUserErrorCodeProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryShipmentAddItemsUserErrorCodeProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryShipmentAddItemsUserErrorCode")); + } + + public InventoryShipmentAddItemsUserErrorCodeProjection __typename() { + getFields().put("__typename", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentAddItemsUserErrorProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentAddItemsUserErrorProjection.java new file mode 100644 index 00000000..b3d23da5 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentAddItemsUserErrorProjection.java @@ -0,0 +1,31 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryShipmentAddItemsUserErrorProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryShipmentAddItemsUserErrorProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryShipmentAddItemsUserError")); + } + + public InventoryShipmentAddItemsUserErrorProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryShipmentAddItemsUserErrorCodeProjection, ROOT> code( + ) { + InventoryShipmentAddItemsUserErrorCodeProjection, ROOT> projection = new InventoryShipmentAddItemsUserErrorCodeProjection<>(this, getRoot()); + getFields().put("code", projection); + return projection; + } + + public InventoryShipmentAddItemsUserErrorProjection field() { + getFields().put("field", null); + return this; + } + + public InventoryShipmentAddItemsUserErrorProjection message() { + getFields().put("message", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentConnectionProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentConnectionProjection.java new file mode 100644 index 00000000..ba478456 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentConnectionProjection.java @@ -0,0 +1,34 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryShipmentConnectionProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryShipmentConnectionProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryShipmentConnection")); + } + + public InventoryShipmentConnectionProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryShipmentEdgeProjection, ROOT> edges( + ) { + InventoryShipmentEdgeProjection, ROOT> projection = new InventoryShipmentEdgeProjection<>(this, getRoot()); + getFields().put("edges", projection); + return projection; + } + + public InventoryShipmentProjection, ROOT> nodes( + ) { + InventoryShipmentProjection, ROOT> projection = new InventoryShipmentProjection<>(this, getRoot()); + getFields().put("nodes", projection); + return projection; + } + + public PageInfoProjection, ROOT> pageInfo() { + PageInfoProjection, ROOT> projection = new PageInfoProjection<>(this, getRoot()); + getFields().put("pageInfo", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentCreateGraphQLQuery.java new file mode 100644 index 00000000..24d89aaa --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentCreateGraphQLQuery.java @@ -0,0 +1,66 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import com.shopify.admin.types.InventoryShipmentCreateInput; +import java.lang.Override; +import java.lang.String; +import java.util.HashSet; +import java.util.Set; + +/** + * Adds a draft shipment to an inventory transfer. + * + * > Caution: + * > As of 2026-01, this mutation supports an optional idempotency key using the `@idempotent` directive. + * > As of 2026-04, the idempotency key is required and must be provided using the `@idempotent` directive. + * > For more information, see the [idempotency documentation](https://shopify.dev/docs/api/usage/idempotent-requests). + */ +public class InventoryShipmentCreateGraphQLQuery extends GraphQLQuery { + public InventoryShipmentCreateGraphQLQuery(InventoryShipmentCreateInput input, String queryName, + Set fieldsSet) { + super("mutation", queryName); + if (input != null || fieldsSet.contains("input")) { + getInput().put("input", input); + } + } + + public InventoryShipmentCreateGraphQLQuery() { + super("mutation"); + } + + @Override + public String getOperationName() { + return "inventoryShipmentCreate"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private InventoryShipmentCreateInput input; + + private String queryName; + + public InventoryShipmentCreateGraphQLQuery build() { + return new InventoryShipmentCreateGraphQLQuery(input, queryName, fieldsSet); + + } + + /** + * The input fields for the inventory shipment. + */ + public Builder input(InventoryShipmentCreateInput input) { + this.input = input; + this.fieldsSet.add("input"); + return this; + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentCreateInTransitGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentCreateInTransitGraphQLQuery.java new file mode 100644 index 00000000..d1e576c5 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentCreateInTransitGraphQLQuery.java @@ -0,0 +1,66 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import com.shopify.admin.types.InventoryShipmentCreateInput; +import java.lang.Override; +import java.lang.String; +import java.util.HashSet; +import java.util.Set; + +/** + * Adds an in-transit shipment to an inventory transfer. + * + * > Caution: + * > As of 2026-01, this mutation supports an optional idempotency key using the `@idempotent` directive. + * > As of 2026-04, the idempotency key is required and must be provided using the `@idempotent` directive. + * > For more information, see the [idempotency documentation](https://shopify.dev/docs/api/usage/idempotent-requests). + */ +public class InventoryShipmentCreateInTransitGraphQLQuery extends GraphQLQuery { + public InventoryShipmentCreateInTransitGraphQLQuery(InventoryShipmentCreateInput input, + String queryName, Set fieldsSet) { + super("mutation", queryName); + if (input != null || fieldsSet.contains("input")) { + getInput().put("input", input); + } + } + + public InventoryShipmentCreateInTransitGraphQLQuery() { + super("mutation"); + } + + @Override + public String getOperationName() { + return "inventoryShipmentCreateInTransit"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private InventoryShipmentCreateInput input; + + private String queryName; + + public InventoryShipmentCreateInTransitGraphQLQuery build() { + return new InventoryShipmentCreateInTransitGraphQLQuery(input, queryName, fieldsSet); + + } + + /** + * The input fields for the inventory shipment. + */ + public Builder input(InventoryShipmentCreateInput input) { + this.input = input; + this.fieldsSet.add("input"); + return this; + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentCreateInTransitProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentCreateInTransitProjectionRoot.java new file mode 100644 index 00000000..f0bbab79 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentCreateInTransitProjectionRoot.java @@ -0,0 +1,28 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryShipmentCreateInTransitProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryShipmentCreateInTransitProjectionRoot() { + super(null, null, java.util.Optional.of("InventoryShipmentCreateInTransitPayload")); + } + + public InventoryShipmentCreateInTransitProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryShipmentProjection, InventoryShipmentCreateInTransitProjectionRoot> inventoryShipment( + ) { + InventoryShipmentProjection, InventoryShipmentCreateInTransitProjectionRoot> projection = new InventoryShipmentProjection<>(this, this); + getFields().put("inventoryShipment", projection); + return projection; + } + + public InventoryShipmentCreateInTransitUserErrorProjection, InventoryShipmentCreateInTransitProjectionRoot> userErrors( + ) { + InventoryShipmentCreateInTransitUserErrorProjection, InventoryShipmentCreateInTransitProjectionRoot> projection = new InventoryShipmentCreateInTransitUserErrorProjection<>(this, this); + getFields().put("userErrors", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentCreateInTransitUserErrorCodeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentCreateInTransitUserErrorCodeProjection.java new file mode 100644 index 00000000..f9cac838 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentCreateInTransitUserErrorCodeProjection.java @@ -0,0 +1,14 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryShipmentCreateInTransitUserErrorCodeProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryShipmentCreateInTransitUserErrorCodeProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryShipmentCreateInTransitUserErrorCode")); + } + + public InventoryShipmentCreateInTransitUserErrorCodeProjection __typename() { + getFields().put("__typename", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentCreateInTransitUserErrorProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentCreateInTransitUserErrorProjection.java new file mode 100644 index 00000000..1052f55a --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentCreateInTransitUserErrorProjection.java @@ -0,0 +1,31 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryShipmentCreateInTransitUserErrorProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryShipmentCreateInTransitUserErrorProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryShipmentCreateInTransitUserError")); + } + + public InventoryShipmentCreateInTransitUserErrorProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryShipmentCreateInTransitUserErrorCodeProjection, ROOT> code( + ) { + InventoryShipmentCreateInTransitUserErrorCodeProjection, ROOT> projection = new InventoryShipmentCreateInTransitUserErrorCodeProjection<>(this, getRoot()); + getFields().put("code", projection); + return projection; + } + + public InventoryShipmentCreateInTransitUserErrorProjection field() { + getFields().put("field", null); + return this; + } + + public InventoryShipmentCreateInTransitUserErrorProjection message() { + getFields().put("message", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentCreateProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentCreateProjectionRoot.java new file mode 100644 index 00000000..98d63bec --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentCreateProjectionRoot.java @@ -0,0 +1,28 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryShipmentCreateProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryShipmentCreateProjectionRoot() { + super(null, null, java.util.Optional.of("InventoryShipmentCreatePayload")); + } + + public InventoryShipmentCreateProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryShipmentProjection, InventoryShipmentCreateProjectionRoot> inventoryShipment( + ) { + InventoryShipmentProjection, InventoryShipmentCreateProjectionRoot> projection = new InventoryShipmentProjection<>(this, this); + getFields().put("inventoryShipment", projection); + return projection; + } + + public InventoryShipmentCreateUserErrorProjection, InventoryShipmentCreateProjectionRoot> userErrors( + ) { + InventoryShipmentCreateUserErrorProjection, InventoryShipmentCreateProjectionRoot> projection = new InventoryShipmentCreateUserErrorProjection<>(this, this); + getFields().put("userErrors", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentCreateUserErrorCodeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentCreateUserErrorCodeProjection.java new file mode 100644 index 00000000..bd1b9cd0 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentCreateUserErrorCodeProjection.java @@ -0,0 +1,14 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryShipmentCreateUserErrorCodeProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryShipmentCreateUserErrorCodeProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryShipmentCreateUserErrorCode")); + } + + public InventoryShipmentCreateUserErrorCodeProjection __typename() { + getFields().put("__typename", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentCreateUserErrorProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentCreateUserErrorProjection.java new file mode 100644 index 00000000..187f7d09 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentCreateUserErrorProjection.java @@ -0,0 +1,31 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryShipmentCreateUserErrorProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryShipmentCreateUserErrorProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryShipmentCreateUserError")); + } + + public InventoryShipmentCreateUserErrorProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryShipmentCreateUserErrorCodeProjection, ROOT> code( + ) { + InventoryShipmentCreateUserErrorCodeProjection, ROOT> projection = new InventoryShipmentCreateUserErrorCodeProjection<>(this, getRoot()); + getFields().put("code", projection); + return projection; + } + + public InventoryShipmentCreateUserErrorProjection field() { + getFields().put("field", null); + return this; + } + + public InventoryShipmentCreateUserErrorProjection message() { + getFields().put("message", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentDeleteGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentDeleteGraphQLQuery.java new file mode 100644 index 00000000..a9b4e533 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentDeleteGraphQLQuery.java @@ -0,0 +1,59 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import java.lang.Override; +import java.lang.String; +import java.util.HashSet; +import java.util.Set; + +/** + * Deletes an inventory shipment. Only draft shipments can be deleted. + */ +public class InventoryShipmentDeleteGraphQLQuery extends GraphQLQuery { + public InventoryShipmentDeleteGraphQLQuery(String id, String queryName, Set fieldsSet) { + super("mutation", queryName); + if (id != null || fieldsSet.contains("id")) { + getInput().put("id", id); + } + } + + public InventoryShipmentDeleteGraphQLQuery() { + super("mutation"); + } + + @Override + public String getOperationName() { + return "inventoryShipmentDelete"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private String id; + + private String queryName; + + public InventoryShipmentDeleteGraphQLQuery build() { + return new InventoryShipmentDeleteGraphQLQuery(id, queryName, fieldsSet); + + } + + /** + * The ID of the inventory shipment to be deleted. + */ + public Builder id(String id) { + this.id = id; + this.fieldsSet.add("id"); + return this; + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentDeleteProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentDeleteProjectionRoot.java new file mode 100644 index 00000000..56e2cec3 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentDeleteProjectionRoot.java @@ -0,0 +1,26 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryShipmentDeleteProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryShipmentDeleteProjectionRoot() { + super(null, null, java.util.Optional.of("InventoryShipmentDeletePayload")); + } + + public InventoryShipmentDeleteProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryShipmentDeleteUserErrorProjection, InventoryShipmentDeleteProjectionRoot> userErrors( + ) { + InventoryShipmentDeleteUserErrorProjection, InventoryShipmentDeleteProjectionRoot> projection = new InventoryShipmentDeleteUserErrorProjection<>(this, this); + getFields().put("userErrors", projection); + return projection; + } + + public InventoryShipmentDeleteProjectionRoot id() { + getFields().put("id", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentDeleteUserErrorCodeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentDeleteUserErrorCodeProjection.java new file mode 100644 index 00000000..8f760f3f --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentDeleteUserErrorCodeProjection.java @@ -0,0 +1,14 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryShipmentDeleteUserErrorCodeProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryShipmentDeleteUserErrorCodeProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryShipmentDeleteUserErrorCode")); + } + + public InventoryShipmentDeleteUserErrorCodeProjection __typename() { + getFields().put("__typename", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentDeleteUserErrorProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentDeleteUserErrorProjection.java new file mode 100644 index 00000000..36901a40 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentDeleteUserErrorProjection.java @@ -0,0 +1,31 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryShipmentDeleteUserErrorProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryShipmentDeleteUserErrorProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryShipmentDeleteUserError")); + } + + public InventoryShipmentDeleteUserErrorProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryShipmentDeleteUserErrorCodeProjection, ROOT> code( + ) { + InventoryShipmentDeleteUserErrorCodeProjection, ROOT> projection = new InventoryShipmentDeleteUserErrorCodeProjection<>(this, getRoot()); + getFields().put("code", projection); + return projection; + } + + public InventoryShipmentDeleteUserErrorProjection field() { + getFields().put("field", null); + return this; + } + + public InventoryShipmentDeleteUserErrorProjection message() { + getFields().put("message", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentEdgeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentEdgeProjection.java new file mode 100644 index 00000000..935a0f2e --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentEdgeProjection.java @@ -0,0 +1,25 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryShipmentEdgeProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryShipmentEdgeProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryShipmentEdge")); + } + + public InventoryShipmentEdgeProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryShipmentProjection, ROOT> node() { + InventoryShipmentProjection, ROOT> projection = new InventoryShipmentProjection<>(this, getRoot()); + getFields().put("node", projection); + return projection; + } + + public InventoryShipmentEdgeProjection cursor() { + getFields().put("cursor", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentFragmentProjection.java new file mode 100644 index 00000000..b9b69c6b --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentFragmentProjection.java @@ -0,0 +1,146 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; +import com.shopify.admin.types.ShipmentLineItemSortKeys; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.Override; +import java.lang.String; +import java.util.ArrayList; + +public class InventoryShipmentFragmentProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + { + getFields().put("__typename", null); + } + + public InventoryShipmentFragmentProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryShipment")); + } + + public InventoryShipmentFragmentProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryShipmentLineItemConnectionProjection, ROOT> lineItems( + ) { + InventoryShipmentLineItemConnectionProjection, ROOT> projection = new InventoryShipmentLineItemConnectionProjection<>(this, getRoot()); + getFields().put("lineItems", projection); + return projection; + } + + public InventoryShipmentLineItemConnectionProjection, ROOT> lineItems( + Integer first, String after, Integer last, String before, Boolean reverse, + ShipmentLineItemSortKeys sortKey, String query) { + InventoryShipmentLineItemConnectionProjection, ROOT> projection = new InventoryShipmentLineItemConnectionProjection<>(this, getRoot()); + getFields().put("lineItems", projection); + getInputArguments().computeIfAbsent("lineItems", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("lineItems").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("lineItems").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("lineItems").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("lineItems").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("lineItems").add(reverseArg); + InputArgument sortKeyArg = new InputArgument("sortKey", sortKey); + getInputArguments().get("lineItems").add(sortKeyArg); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("lineItems").add(queryArg); + return projection; + } + + public CountProjection, ROOT> lineItemsCount() { + CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); + getFields().put("lineItemsCount", projection); + return projection; + } + + public CountProjection, ROOT> lineItemsCount( + String query, Integer limit) { + CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); + getFields().put("lineItemsCount", projection); + getInputArguments().computeIfAbsent("lineItemsCount", k -> new ArrayList<>()); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("lineItemsCount").add(queryArg); + InputArgument limitArg = new InputArgument("limit", limit); + getInputArguments().get("lineItemsCount").add(limitArg); + return projection; + } + + public InventoryShipmentStatusProjection, ROOT> status( + ) { + InventoryShipmentStatusProjection, ROOT> projection = new InventoryShipmentStatusProjection<>(this, getRoot()); + getFields().put("status", projection); + return projection; + } + + public InventoryShipmentTrackingProjection, ROOT> tracking( + ) { + InventoryShipmentTrackingProjection, ROOT> projection = new InventoryShipmentTrackingProjection<>(this, getRoot()); + getFields().put("tracking", projection); + return projection; + } + + public InventoryShipmentFragmentProjection dateCreated() { + getFields().put("dateCreated", null); + return this; + } + + public InventoryShipmentFragmentProjection dateReceived() { + getFields().put("dateReceived", null); + return this; + } + + public InventoryShipmentFragmentProjection dateShipped() { + getFields().put("dateShipped", null); + return this; + } + + public InventoryShipmentFragmentProjection id() { + getFields().put("id", null); + return this; + } + + public InventoryShipmentFragmentProjection lineItemTotalQuantity() { + getFields().put("lineItemTotalQuantity", null); + return this; + } + + public InventoryShipmentFragmentProjection name() { + getFields().put("name", null); + return this; + } + + public InventoryShipmentFragmentProjection totalAcceptedQuantity() { + getFields().put("totalAcceptedQuantity", null); + return this; + } + + public InventoryShipmentFragmentProjection totalReceivedQuantity() { + getFields().put("totalReceivedQuantity", null); + return this; + } + + public InventoryShipmentFragmentProjection totalRejectedQuantity() { + getFields().put("totalRejectedQuantity", null); + return this; + } + + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + builder.append("... on InventoryShipment {"); + getFields().forEach((k, v) -> { + builder.append(" ").append(k); + if(v != null) { + builder.append(" ").append(v.toString()); + } + }); + builder.append("}"); + + return builder.toString(); + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentGraphQLQuery.java new file mode 100644 index 00000000..33243a31 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentGraphQLQuery.java @@ -0,0 +1,60 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import java.lang.Override; +import java.lang.String; +import java.util.HashSet; +import java.util.Set; + +/** + * Retrieves an [`InventoryShipment`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryShipment) by ID. Returns tracking details, [`InventoryShipmentLineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryShipmentLineItem) + * objects with quantities, and the shipment's current [`InventoryShipmentStatus`](https://shopify.dev/docs/api/admin-graphql/latest/enums/InventoryShipmentStatus). + */ +public class InventoryShipmentGraphQLQuery extends GraphQLQuery { + public InventoryShipmentGraphQLQuery(String id, String queryName, Set fieldsSet) { + super("query", queryName); + if (id != null || fieldsSet.contains("id")) { + getInput().put("id", id); + } + } + + public InventoryShipmentGraphQLQuery() { + super("query"); + } + + @Override + public String getOperationName() { + return "inventoryShipment"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private String id; + + private String queryName; + + public InventoryShipmentGraphQLQuery build() { + return new InventoryShipmentGraphQLQuery(id, queryName, fieldsSet); + + } + + /** + * The ID of the inventory shipment. + */ + public Builder id(String id) { + this.id = id; + this.fieldsSet.add("id"); + return this; + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentLineItemConnectionProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentLineItemConnectionProjection.java new file mode 100644 index 00000000..456e7f79 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentLineItemConnectionProjection.java @@ -0,0 +1,35 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryShipmentLineItemConnectionProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryShipmentLineItemConnectionProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryShipmentLineItemConnection")); + } + + public InventoryShipmentLineItemConnectionProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryShipmentLineItemEdgeProjection, ROOT> edges( + ) { + InventoryShipmentLineItemEdgeProjection, ROOT> projection = new InventoryShipmentLineItemEdgeProjection<>(this, getRoot()); + getFields().put("edges", projection); + return projection; + } + + public InventoryShipmentLineItemProjection, ROOT> nodes( + ) { + InventoryShipmentLineItemProjection, ROOT> projection = new InventoryShipmentLineItemProjection<>(this, getRoot()); + getFields().put("nodes", projection); + return projection; + } + + public PageInfoProjection, ROOT> pageInfo( + ) { + PageInfoProjection, ROOT> projection = new PageInfoProjection<>(this, getRoot()); + getFields().put("pageInfo", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentLineItemEdgeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentLineItemEdgeProjection.java new file mode 100644 index 00000000..280fecbf --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentLineItemEdgeProjection.java @@ -0,0 +1,26 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryShipmentLineItemEdgeProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryShipmentLineItemEdgeProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryShipmentLineItemEdge")); + } + + public InventoryShipmentLineItemEdgeProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryShipmentLineItemProjection, ROOT> node( + ) { + InventoryShipmentLineItemProjection, ROOT> projection = new InventoryShipmentLineItemProjection<>(this, getRoot()); + getFields().put("node", projection); + return projection; + } + + public InventoryShipmentLineItemEdgeProjection cursor() { + getFields().put("cursor", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentLineItemFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentLineItemFragmentProjection.java new file mode 100644 index 00000000..1b5ac96f --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentLineItemFragmentProjection.java @@ -0,0 +1,67 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; +import java.lang.Override; +import java.lang.String; + +public class InventoryShipmentLineItemFragmentProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + { + getFields().put("__typename", null); + } + + public InventoryShipmentLineItemFragmentProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryShipmentLineItem")); + } + + public InventoryShipmentLineItemFragmentProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryItemProjection, ROOT> inventoryItem( + ) { + InventoryItemProjection, ROOT> projection = new InventoryItemProjection<>(this, getRoot()); + getFields().put("inventoryItem", projection); + return projection; + } + + public InventoryShipmentLineItemFragmentProjection acceptedQuantity() { + getFields().put("acceptedQuantity", null); + return this; + } + + public InventoryShipmentLineItemFragmentProjection id() { + getFields().put("id", null); + return this; + } + + public InventoryShipmentLineItemFragmentProjection quantity() { + getFields().put("quantity", null); + return this; + } + + public InventoryShipmentLineItemFragmentProjection rejectedQuantity() { + getFields().put("rejectedQuantity", null); + return this; + } + + public InventoryShipmentLineItemFragmentProjection unreceivedQuantity() { + getFields().put("unreceivedQuantity", null); + return this; + } + + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + builder.append("... on InventoryShipmentLineItem {"); + getFields().forEach((k, v) -> { + builder.append(" ").append(k); + if(v != null) { + builder.append(" ").append(v.toString()); + } + }); + builder.append("}"); + + return builder.toString(); + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentLineItemProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentLineItemProjection.java new file mode 100644 index 00000000..a1dd6cc8 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentLineItemProjection.java @@ -0,0 +1,46 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryShipmentLineItemProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryShipmentLineItemProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryShipmentLineItem")); + } + + public InventoryShipmentLineItemProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryItemProjection, ROOT> inventoryItem( + ) { + InventoryItemProjection, ROOT> projection = new InventoryItemProjection<>(this, getRoot()); + getFields().put("inventoryItem", projection); + return projection; + } + + public InventoryShipmentLineItemProjection acceptedQuantity() { + getFields().put("acceptedQuantity", null); + return this; + } + + public InventoryShipmentLineItemProjection id() { + getFields().put("id", null); + return this; + } + + public InventoryShipmentLineItemProjection quantity() { + getFields().put("quantity", null); + return this; + } + + public InventoryShipmentLineItemProjection rejectedQuantity() { + getFields().put("rejectedQuantity", null); + return this; + } + + public InventoryShipmentLineItemProjection unreceivedQuantity() { + getFields().put("unreceivedQuantity", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentMarkInTransitGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentMarkInTransitGraphQLQuery.java new file mode 100644 index 00000000..fa1f21fd --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentMarkInTransitGraphQLQuery.java @@ -0,0 +1,74 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import java.lang.Override; +import java.lang.String; +import java.time.OffsetDateTime; +import java.util.HashSet; +import java.util.Set; + +/** + * Marks a draft inventory shipment as in transit. + */ +public class InventoryShipmentMarkInTransitGraphQLQuery extends GraphQLQuery { + public InventoryShipmentMarkInTransitGraphQLQuery(String id, OffsetDateTime dateShipped, + String queryName, Set fieldsSet) { + super("mutation", queryName); + if (id != null || fieldsSet.contains("id")) { + getInput().put("id", id); + }if (dateShipped != null || fieldsSet.contains("dateShipped")) { + getInput().put("dateShipped", dateShipped); + } + } + + public InventoryShipmentMarkInTransitGraphQLQuery() { + super("mutation"); + } + + @Override + public String getOperationName() { + return "inventoryShipmentMarkInTransit"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private String id; + + private OffsetDateTime dateShipped; + + private String queryName; + + public InventoryShipmentMarkInTransitGraphQLQuery build() { + return new InventoryShipmentMarkInTransitGraphQLQuery(id, dateShipped, queryName, fieldsSet); + + } + + /** + * The ID of the inventory shipment to mark in transit. + */ + public Builder id(String id) { + this.id = id; + this.fieldsSet.add("id"); + return this; + } + + /** + * The date the shipment was shipped. + */ + public Builder dateShipped(OffsetDateTime dateShipped) { + this.dateShipped = dateShipped; + this.fieldsSet.add("dateShipped"); + return this; + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentMarkInTransitProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentMarkInTransitProjectionRoot.java new file mode 100644 index 00000000..cef99761 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentMarkInTransitProjectionRoot.java @@ -0,0 +1,28 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryShipmentMarkInTransitProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryShipmentMarkInTransitProjectionRoot() { + super(null, null, java.util.Optional.of("InventoryShipmentMarkInTransitPayload")); + } + + public InventoryShipmentMarkInTransitProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryShipmentProjection, InventoryShipmentMarkInTransitProjectionRoot> inventoryShipment( + ) { + InventoryShipmentProjection, InventoryShipmentMarkInTransitProjectionRoot> projection = new InventoryShipmentProjection<>(this, this); + getFields().put("inventoryShipment", projection); + return projection; + } + + public InventoryShipmentMarkInTransitUserErrorProjection, InventoryShipmentMarkInTransitProjectionRoot> userErrors( + ) { + InventoryShipmentMarkInTransitUserErrorProjection, InventoryShipmentMarkInTransitProjectionRoot> projection = new InventoryShipmentMarkInTransitUserErrorProjection<>(this, this); + getFields().put("userErrors", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentMarkInTransitUserErrorCodeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentMarkInTransitUserErrorCodeProjection.java new file mode 100644 index 00000000..d0eff12d --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentMarkInTransitUserErrorCodeProjection.java @@ -0,0 +1,14 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryShipmentMarkInTransitUserErrorCodeProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryShipmentMarkInTransitUserErrorCodeProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryShipmentMarkInTransitUserErrorCode")); + } + + public InventoryShipmentMarkInTransitUserErrorCodeProjection __typename() { + getFields().put("__typename", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentMarkInTransitUserErrorProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentMarkInTransitUserErrorProjection.java new file mode 100644 index 00000000..74e55b59 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentMarkInTransitUserErrorProjection.java @@ -0,0 +1,31 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryShipmentMarkInTransitUserErrorProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryShipmentMarkInTransitUserErrorProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryShipmentMarkInTransitUserError")); + } + + public InventoryShipmentMarkInTransitUserErrorProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryShipmentMarkInTransitUserErrorCodeProjection, ROOT> code( + ) { + InventoryShipmentMarkInTransitUserErrorCodeProjection, ROOT> projection = new InventoryShipmentMarkInTransitUserErrorCodeProjection<>(this, getRoot()); + getFields().put("code", projection); + return projection; + } + + public InventoryShipmentMarkInTransitUserErrorProjection field() { + getFields().put("field", null); + return this; + } + + public InventoryShipmentMarkInTransitUserErrorProjection message() { + getFields().put("message", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentProjection.java new file mode 100644 index 00000000..a7428b79 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentProjection.java @@ -0,0 +1,126 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; +import com.shopify.admin.types.ShipmentLineItemSortKeys; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.String; +import java.util.ArrayList; + +public class InventoryShipmentProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryShipmentProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryShipment")); + } + + public InventoryShipmentProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryShipmentLineItemConnectionProjection, ROOT> lineItems( + ) { + InventoryShipmentLineItemConnectionProjection, ROOT> projection = new InventoryShipmentLineItemConnectionProjection<>(this, getRoot()); + getFields().put("lineItems", projection); + return projection; + } + + public InventoryShipmentLineItemConnectionProjection, ROOT> lineItems( + Integer first, String after, Integer last, String before, Boolean reverse, + ShipmentLineItemSortKeys sortKey, String query) { + InventoryShipmentLineItemConnectionProjection, ROOT> projection = new InventoryShipmentLineItemConnectionProjection<>(this, getRoot()); + getFields().put("lineItems", projection); + getInputArguments().computeIfAbsent("lineItems", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("lineItems").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("lineItems").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("lineItems").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("lineItems").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("lineItems").add(reverseArg); + InputArgument sortKeyArg = new InputArgument("sortKey", sortKey); + getInputArguments().get("lineItems").add(sortKeyArg); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("lineItems").add(queryArg); + return projection; + } + + public CountProjection, ROOT> lineItemsCount() { + CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); + getFields().put("lineItemsCount", projection); + return projection; + } + + public CountProjection, ROOT> lineItemsCount( + String query, Integer limit) { + CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); + getFields().put("lineItemsCount", projection); + getInputArguments().computeIfAbsent("lineItemsCount", k -> new ArrayList<>()); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("lineItemsCount").add(queryArg); + InputArgument limitArg = new InputArgument("limit", limit); + getInputArguments().get("lineItemsCount").add(limitArg); + return projection; + } + + public InventoryShipmentStatusProjection, ROOT> status( + ) { + InventoryShipmentStatusProjection, ROOT> projection = new InventoryShipmentStatusProjection<>(this, getRoot()); + getFields().put("status", projection); + return projection; + } + + public InventoryShipmentTrackingProjection, ROOT> tracking( + ) { + InventoryShipmentTrackingProjection, ROOT> projection = new InventoryShipmentTrackingProjection<>(this, getRoot()); + getFields().put("tracking", projection); + return projection; + } + + public InventoryShipmentProjection dateCreated() { + getFields().put("dateCreated", null); + return this; + } + + public InventoryShipmentProjection dateReceived() { + getFields().put("dateReceived", null); + return this; + } + + public InventoryShipmentProjection dateShipped() { + getFields().put("dateShipped", null); + return this; + } + + public InventoryShipmentProjection id() { + getFields().put("id", null); + return this; + } + + public InventoryShipmentProjection lineItemTotalQuantity() { + getFields().put("lineItemTotalQuantity", null); + return this; + } + + public InventoryShipmentProjection name() { + getFields().put("name", null); + return this; + } + + public InventoryShipmentProjection totalAcceptedQuantity() { + getFields().put("totalAcceptedQuantity", null); + return this; + } + + public InventoryShipmentProjection totalReceivedQuantity() { + getFields().put("totalReceivedQuantity", null); + return this; + } + + public InventoryShipmentProjection totalRejectedQuantity() { + getFields().put("totalRejectedQuantity", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentProjectionRoot.java new file mode 100644 index 00000000..61f9bfe3 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentProjectionRoot.java @@ -0,0 +1,127 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; +import com.shopify.admin.types.ShipmentLineItemSortKeys; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.String; +import java.util.ArrayList; + +public class InventoryShipmentProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryShipmentProjectionRoot() { + super(null, null, java.util.Optional.of("InventoryShipment")); + } + + public InventoryShipmentProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryShipmentLineItemConnectionProjection, InventoryShipmentProjectionRoot> lineItems( + ) { + InventoryShipmentLineItemConnectionProjection, InventoryShipmentProjectionRoot> projection = new InventoryShipmentLineItemConnectionProjection<>(this, this); + getFields().put("lineItems", projection); + return projection; + } + + public InventoryShipmentLineItemConnectionProjection, InventoryShipmentProjectionRoot> lineItems( + Integer first, String after, Integer last, String before, Boolean reverse, + ShipmentLineItemSortKeys sortKey, String query) { + InventoryShipmentLineItemConnectionProjection, InventoryShipmentProjectionRoot> projection = new InventoryShipmentLineItemConnectionProjection<>(this, this); + getFields().put("lineItems", projection); + getInputArguments().computeIfAbsent("lineItems", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("lineItems").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("lineItems").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("lineItems").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("lineItems").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("lineItems").add(reverseArg); + InputArgument sortKeyArg = new InputArgument("sortKey", sortKey); + getInputArguments().get("lineItems").add(sortKeyArg); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("lineItems").add(queryArg); + return projection; + } + + public CountProjection, InventoryShipmentProjectionRoot> lineItemsCount( + ) { + CountProjection, InventoryShipmentProjectionRoot> projection = new CountProjection<>(this, this); + getFields().put("lineItemsCount", projection); + return projection; + } + + public CountProjection, InventoryShipmentProjectionRoot> lineItemsCount( + String query, Integer limit) { + CountProjection, InventoryShipmentProjectionRoot> projection = new CountProjection<>(this, this); + getFields().put("lineItemsCount", projection); + getInputArguments().computeIfAbsent("lineItemsCount", k -> new ArrayList<>()); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("lineItemsCount").add(queryArg); + InputArgument limitArg = new InputArgument("limit", limit); + getInputArguments().get("lineItemsCount").add(limitArg); + return projection; + } + + public InventoryShipmentStatusProjection, InventoryShipmentProjectionRoot> status( + ) { + InventoryShipmentStatusProjection, InventoryShipmentProjectionRoot> projection = new InventoryShipmentStatusProjection<>(this, this); + getFields().put("status", projection); + return projection; + } + + public InventoryShipmentTrackingProjection, InventoryShipmentProjectionRoot> tracking( + ) { + InventoryShipmentTrackingProjection, InventoryShipmentProjectionRoot> projection = new InventoryShipmentTrackingProjection<>(this, this); + getFields().put("tracking", projection); + return projection; + } + + public InventoryShipmentProjectionRoot dateCreated() { + getFields().put("dateCreated", null); + return this; + } + + public InventoryShipmentProjectionRoot dateReceived() { + getFields().put("dateReceived", null); + return this; + } + + public InventoryShipmentProjectionRoot dateShipped() { + getFields().put("dateShipped", null); + return this; + } + + public InventoryShipmentProjectionRoot id() { + getFields().put("id", null); + return this; + } + + public InventoryShipmentProjectionRoot lineItemTotalQuantity() { + getFields().put("lineItemTotalQuantity", null); + return this; + } + + public InventoryShipmentProjectionRoot name() { + getFields().put("name", null); + return this; + } + + public InventoryShipmentProjectionRoot totalAcceptedQuantity() { + getFields().put("totalAcceptedQuantity", null); + return this; + } + + public InventoryShipmentProjectionRoot totalReceivedQuantity() { + getFields().put("totalReceivedQuantity", null); + return this; + } + + public InventoryShipmentProjectionRoot totalRejectedQuantity() { + getFields().put("totalRejectedQuantity", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentReceiveGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentReceiveGraphQLQuery.java new file mode 100644 index 00000000..d98ac051 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentReceiveGraphQLQuery.java @@ -0,0 +1,110 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import com.shopify.admin.types.InventoryShipmentReceiveItemInput; +import com.shopify.admin.types.InventoryShipmentReceiveLineItemReason; +import java.lang.Override; +import java.lang.String; +import java.time.OffsetDateTime; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +/** + * Receive an inventory shipment. + * + * > Caution: + * > As of 2026-01, this mutation supports an optional idempotency key using the `@idempotent` directive. + * > As of 2026-04, the idempotency key is required and must be provided using the `@idempotent` directive. + * > For more information, see the [idempotency documentation](https://shopify.dev/docs/api/usage/idempotent-requests). + */ +public class InventoryShipmentReceiveGraphQLQuery extends GraphQLQuery { + public InventoryShipmentReceiveGraphQLQuery(String id, + List lineItems, OffsetDateTime dateReceived, + InventoryShipmentReceiveLineItemReason bulkReceiveAction, String queryName, + Set fieldsSet) { + super("mutation", queryName); + if (id != null || fieldsSet.contains("id")) { + getInput().put("id", id); + }if (lineItems != null || fieldsSet.contains("lineItems")) { + getInput().put("lineItems", lineItems); + }if (dateReceived != null || fieldsSet.contains("dateReceived")) { + getInput().put("dateReceived", dateReceived); + }if (bulkReceiveAction != null || fieldsSet.contains("bulkReceiveAction")) { + getInput().put("bulkReceiveAction", bulkReceiveAction); + } + } + + public InventoryShipmentReceiveGraphQLQuery() { + super("mutation"); + } + + @Override + public String getOperationName() { + return "inventoryShipmentReceive"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private String id; + + private List lineItems; + + private OffsetDateTime dateReceived; + + private InventoryShipmentReceiveLineItemReason bulkReceiveAction; + + private String queryName; + + public InventoryShipmentReceiveGraphQLQuery build() { + return new InventoryShipmentReceiveGraphQLQuery(id, lineItems, dateReceived, bulkReceiveAction, queryName, fieldsSet); + + } + + /** + * The ID of the inventory shipment to receive. + */ + public Builder id(String id) { + this.id = id; + this.fieldsSet.add("id"); + return this; + } + + /** + * The list of receive line items for the inventory shipment. + */ + public Builder lineItems(List lineItems) { + this.lineItems = lineItems; + this.fieldsSet.add("lineItems"); + return this; + } + + /** + * The date the inventory shipment was initially received. + */ + public Builder dateReceived(OffsetDateTime dateReceived) { + this.dateReceived = dateReceived; + this.fieldsSet.add("dateReceived"); + return this; + } + + /** + * The bulk receive action for the inventory shipment. + */ + public Builder bulkReceiveAction(InventoryShipmentReceiveLineItemReason bulkReceiveAction) { + this.bulkReceiveAction = bulkReceiveAction; + this.fieldsSet.add("bulkReceiveAction"); + return this; + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentReceiveProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentReceiveProjectionRoot.java new file mode 100644 index 00000000..4d89540d --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentReceiveProjectionRoot.java @@ -0,0 +1,28 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryShipmentReceiveProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryShipmentReceiveProjectionRoot() { + super(null, null, java.util.Optional.of("InventoryShipmentReceivePayload")); + } + + public InventoryShipmentReceiveProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryShipmentProjection, InventoryShipmentReceiveProjectionRoot> inventoryShipment( + ) { + InventoryShipmentProjection, InventoryShipmentReceiveProjectionRoot> projection = new InventoryShipmentProjection<>(this, this); + getFields().put("inventoryShipment", projection); + return projection; + } + + public InventoryShipmentReceiveUserErrorProjection, InventoryShipmentReceiveProjectionRoot> userErrors( + ) { + InventoryShipmentReceiveUserErrorProjection, InventoryShipmentReceiveProjectionRoot> projection = new InventoryShipmentReceiveUserErrorProjection<>(this, this); + getFields().put("userErrors", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentReceiveUserErrorCodeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentReceiveUserErrorCodeProjection.java new file mode 100644 index 00000000..a83d7dd7 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentReceiveUserErrorCodeProjection.java @@ -0,0 +1,14 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryShipmentReceiveUserErrorCodeProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryShipmentReceiveUserErrorCodeProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryShipmentReceiveUserErrorCode")); + } + + public InventoryShipmentReceiveUserErrorCodeProjection __typename() { + getFields().put("__typename", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentReceiveUserErrorProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentReceiveUserErrorProjection.java new file mode 100644 index 00000000..30511a11 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentReceiveUserErrorProjection.java @@ -0,0 +1,31 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryShipmentReceiveUserErrorProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryShipmentReceiveUserErrorProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryShipmentReceiveUserError")); + } + + public InventoryShipmentReceiveUserErrorProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryShipmentReceiveUserErrorCodeProjection, ROOT> code( + ) { + InventoryShipmentReceiveUserErrorCodeProjection, ROOT> projection = new InventoryShipmentReceiveUserErrorCodeProjection<>(this, getRoot()); + getFields().put("code", projection); + return projection; + } + + public InventoryShipmentReceiveUserErrorProjection field() { + getFields().put("field", null); + return this; + } + + public InventoryShipmentReceiveUserErrorProjection message() { + getFields().put("message", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentRemoveItemsGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentRemoveItemsGraphQLQuery.java new file mode 100644 index 00000000..3b2dce3c --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentRemoveItemsGraphQLQuery.java @@ -0,0 +1,74 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import java.lang.Override; +import java.lang.String; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +/** + * Remove items from an inventory shipment. + */ +public class InventoryShipmentRemoveItemsGraphQLQuery extends GraphQLQuery { + public InventoryShipmentRemoveItemsGraphQLQuery(String id, List lineItems, + String queryName, Set fieldsSet) { + super("mutation", queryName); + if (id != null || fieldsSet.contains("id")) { + getInput().put("id", id); + }if (lineItems != null || fieldsSet.contains("lineItems")) { + getInput().put("lineItems", lineItems); + } + } + + public InventoryShipmentRemoveItemsGraphQLQuery() { + super("mutation"); + } + + @Override + public String getOperationName() { + return "inventoryShipmentRemoveItems"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private String id; + + private List lineItems; + + private String queryName; + + public InventoryShipmentRemoveItemsGraphQLQuery build() { + return new InventoryShipmentRemoveItemsGraphQLQuery(id, lineItems, queryName, fieldsSet); + + } + + /** + * The ID of the inventory shipment to remove items from. + */ + public Builder id(String id) { + this.id = id; + this.fieldsSet.add("id"); + return this; + } + + /** + * A list of inventory shipment line item ids representing the items to be removed from the shipment. + */ + public Builder lineItems(List lineItems) { + this.lineItems = lineItems; + this.fieldsSet.add("lineItems"); + return this; + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentRemoveItemsProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentRemoveItemsProjectionRoot.java new file mode 100644 index 00000000..5770fd00 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentRemoveItemsProjectionRoot.java @@ -0,0 +1,28 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryShipmentRemoveItemsProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryShipmentRemoveItemsProjectionRoot() { + super(null, null, java.util.Optional.of("InventoryShipmentRemoveItemsPayload")); + } + + public InventoryShipmentRemoveItemsProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryShipmentProjection, InventoryShipmentRemoveItemsProjectionRoot> inventoryShipment( + ) { + InventoryShipmentProjection, InventoryShipmentRemoveItemsProjectionRoot> projection = new InventoryShipmentProjection<>(this, this); + getFields().put("inventoryShipment", projection); + return projection; + } + + public InventoryShipmentRemoveItemsUserErrorProjection, InventoryShipmentRemoveItemsProjectionRoot> userErrors( + ) { + InventoryShipmentRemoveItemsUserErrorProjection, InventoryShipmentRemoveItemsProjectionRoot> projection = new InventoryShipmentRemoveItemsUserErrorProjection<>(this, this); + getFields().put("userErrors", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentRemoveItemsUserErrorCodeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentRemoveItemsUserErrorCodeProjection.java new file mode 100644 index 00000000..ece6ef64 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentRemoveItemsUserErrorCodeProjection.java @@ -0,0 +1,14 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryShipmentRemoveItemsUserErrorCodeProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryShipmentRemoveItemsUserErrorCodeProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryShipmentRemoveItemsUserErrorCode")); + } + + public InventoryShipmentRemoveItemsUserErrorCodeProjection __typename() { + getFields().put("__typename", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentRemoveItemsUserErrorProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentRemoveItemsUserErrorProjection.java new file mode 100644 index 00000000..e81aa549 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentRemoveItemsUserErrorProjection.java @@ -0,0 +1,31 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryShipmentRemoveItemsUserErrorProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryShipmentRemoveItemsUserErrorProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryShipmentRemoveItemsUserError")); + } + + public InventoryShipmentRemoveItemsUserErrorProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryShipmentRemoveItemsUserErrorCodeProjection, ROOT> code( + ) { + InventoryShipmentRemoveItemsUserErrorCodeProjection, ROOT> projection = new InventoryShipmentRemoveItemsUserErrorCodeProjection<>(this, getRoot()); + getFields().put("code", projection); + return projection; + } + + public InventoryShipmentRemoveItemsUserErrorProjection field() { + getFields().put("field", null); + return this; + } + + public InventoryShipmentRemoveItemsUserErrorProjection message() { + getFields().put("message", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentSetTrackingGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentSetTrackingGraphQLQuery.java new file mode 100644 index 00000000..c9e47492 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentSetTrackingGraphQLQuery.java @@ -0,0 +1,74 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import com.shopify.admin.types.InventoryShipmentTrackingInput; +import java.lang.Override; +import java.lang.String; +import java.util.HashSet; +import java.util.Set; + +/** + * Edits the tracking info on an inventory shipment. + */ +public class InventoryShipmentSetTrackingGraphQLQuery extends GraphQLQuery { + public InventoryShipmentSetTrackingGraphQLQuery(String id, + InventoryShipmentTrackingInput tracking, String queryName, Set fieldsSet) { + super("mutation", queryName); + if (id != null || fieldsSet.contains("id")) { + getInput().put("id", id); + }if (tracking != null || fieldsSet.contains("tracking")) { + getInput().put("tracking", tracking); + } + } + + public InventoryShipmentSetTrackingGraphQLQuery() { + super("mutation"); + } + + @Override + public String getOperationName() { + return "inventoryShipmentSetTracking"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private String id; + + private InventoryShipmentTrackingInput tracking; + + private String queryName; + + public InventoryShipmentSetTrackingGraphQLQuery build() { + return new InventoryShipmentSetTrackingGraphQLQuery(id, tracking, queryName, fieldsSet); + + } + + /** + * The ID of the inventory shipment whose tracking info is being edited. + */ + public Builder id(String id) { + this.id = id; + this.fieldsSet.add("id"); + return this; + } + + /** + * The tracking info to edit on the inventory shipment. + */ + public Builder tracking(InventoryShipmentTrackingInput tracking) { + this.tracking = tracking; + this.fieldsSet.add("tracking"); + return this; + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentSetTrackingProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentSetTrackingProjectionRoot.java new file mode 100644 index 00000000..a30d9285 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentSetTrackingProjectionRoot.java @@ -0,0 +1,28 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryShipmentSetTrackingProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryShipmentSetTrackingProjectionRoot() { + super(null, null, java.util.Optional.of("InventoryShipmentSetTrackingPayload")); + } + + public InventoryShipmentSetTrackingProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryShipmentProjection, InventoryShipmentSetTrackingProjectionRoot> inventoryShipment( + ) { + InventoryShipmentProjection, InventoryShipmentSetTrackingProjectionRoot> projection = new InventoryShipmentProjection<>(this, this); + getFields().put("inventoryShipment", projection); + return projection; + } + + public InventoryShipmentSetTrackingUserErrorProjection, InventoryShipmentSetTrackingProjectionRoot> userErrors( + ) { + InventoryShipmentSetTrackingUserErrorProjection, InventoryShipmentSetTrackingProjectionRoot> projection = new InventoryShipmentSetTrackingUserErrorProjection<>(this, this); + getFields().put("userErrors", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentSetTrackingUserErrorCodeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentSetTrackingUserErrorCodeProjection.java new file mode 100644 index 00000000..14955b90 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentSetTrackingUserErrorCodeProjection.java @@ -0,0 +1,14 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryShipmentSetTrackingUserErrorCodeProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryShipmentSetTrackingUserErrorCodeProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryShipmentSetTrackingUserErrorCode")); + } + + public InventoryShipmentSetTrackingUserErrorCodeProjection __typename() { + getFields().put("__typename", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentSetTrackingUserErrorProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentSetTrackingUserErrorProjection.java new file mode 100644 index 00000000..b632f7e9 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentSetTrackingUserErrorProjection.java @@ -0,0 +1,31 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryShipmentSetTrackingUserErrorProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryShipmentSetTrackingUserErrorProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryShipmentSetTrackingUserError")); + } + + public InventoryShipmentSetTrackingUserErrorProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryShipmentSetTrackingUserErrorCodeProjection, ROOT> code( + ) { + InventoryShipmentSetTrackingUserErrorCodeProjection, ROOT> projection = new InventoryShipmentSetTrackingUserErrorCodeProjection<>(this, getRoot()); + getFields().put("code", projection); + return projection; + } + + public InventoryShipmentSetTrackingUserErrorProjection field() { + getFields().put("field", null); + return this; + } + + public InventoryShipmentSetTrackingUserErrorProjection message() { + getFields().put("message", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentStatusProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentStatusProjection.java new file mode 100644 index 00000000..54ed3348 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentStatusProjection.java @@ -0,0 +1,14 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryShipmentStatusProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryShipmentStatusProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryShipmentStatus")); + } + + public InventoryShipmentStatusProjection __typename() { + getFields().put("__typename", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentTrackingProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentTrackingProjection.java new file mode 100644 index 00000000..2df8757a --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentTrackingProjection.java @@ -0,0 +1,34 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryShipmentTrackingProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryShipmentTrackingProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryShipmentTracking")); + } + + public InventoryShipmentTrackingProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryShipmentTrackingProjection arrivesAt() { + getFields().put("arrivesAt", null); + return this; + } + + public InventoryShipmentTrackingProjection company() { + getFields().put("company", null); + return this; + } + + public InventoryShipmentTrackingProjection trackingNumber() { + getFields().put("trackingNumber", null); + return this; + } + + public InventoryShipmentTrackingProjection trackingUrl() { + getFields().put("trackingUrl", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentUpdateItemQuantitiesGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentUpdateItemQuantitiesGraphQLQuery.java new file mode 100644 index 00000000..8d484b71 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentUpdateItemQuantitiesGraphQLQuery.java @@ -0,0 +1,76 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import com.shopify.admin.types.InventoryShipmentUpdateItemQuantitiesInput; +import java.lang.Override; +import java.lang.String; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +/** + * Updates items on an inventory shipment. + */ +public class InventoryShipmentUpdateItemQuantitiesGraphQLQuery extends GraphQLQuery { + public InventoryShipmentUpdateItemQuantitiesGraphQLQuery(String id, + List items, String queryName, + Set fieldsSet) { + super("mutation", queryName); + if (id != null || fieldsSet.contains("id")) { + getInput().put("id", id); + }if (items != null || fieldsSet.contains("items")) { + getInput().put("items", items); + } + } + + public InventoryShipmentUpdateItemQuantitiesGraphQLQuery() { + super("mutation"); + } + + @Override + public String getOperationName() { + return "inventoryShipmentUpdateItemQuantities"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private String id; + + private List items; + + private String queryName; + + public InventoryShipmentUpdateItemQuantitiesGraphQLQuery build() { + return new InventoryShipmentUpdateItemQuantitiesGraphQLQuery(id, items, queryName, fieldsSet); + + } + + /** + * The ID of the inventory shipment to update item quantities. + */ + public Builder id(String id) { + this.id = id; + this.fieldsSet.add("id"); + return this; + } + + /** + * The list of line items to be updated to the shipment. + */ + public Builder items(List items) { + this.items = items; + this.fieldsSet.add("items"); + return this; + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentUpdateItemQuantitiesProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentUpdateItemQuantitiesProjectionRoot.java new file mode 100644 index 00000000..bc4aac84 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentUpdateItemQuantitiesProjectionRoot.java @@ -0,0 +1,35 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryShipmentUpdateItemQuantitiesProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryShipmentUpdateItemQuantitiesProjectionRoot() { + super(null, null, java.util.Optional.of("InventoryShipmentUpdateItemQuantitiesPayload")); + } + + public InventoryShipmentUpdateItemQuantitiesProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryShipmentProjection, InventoryShipmentUpdateItemQuantitiesProjectionRoot> shipment( + ) { + InventoryShipmentProjection, InventoryShipmentUpdateItemQuantitiesProjectionRoot> projection = new InventoryShipmentProjection<>(this, this); + getFields().put("shipment", projection); + return projection; + } + + public InventoryShipmentLineItemProjection, InventoryShipmentUpdateItemQuantitiesProjectionRoot> updatedLineItems( + ) { + InventoryShipmentLineItemProjection, InventoryShipmentUpdateItemQuantitiesProjectionRoot> projection = new InventoryShipmentLineItemProjection<>(this, this); + getFields().put("updatedLineItems", projection); + return projection; + } + + public InventoryShipmentUpdateItemQuantitiesUserErrorProjection, InventoryShipmentUpdateItemQuantitiesProjectionRoot> userErrors( + ) { + InventoryShipmentUpdateItemQuantitiesUserErrorProjection, InventoryShipmentUpdateItemQuantitiesProjectionRoot> projection = new InventoryShipmentUpdateItemQuantitiesUserErrorProjection<>(this, this); + getFields().put("userErrors", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentUpdateItemQuantitiesUserErrorCodeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentUpdateItemQuantitiesUserErrorCodeProjection.java new file mode 100644 index 00000000..37101c33 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentUpdateItemQuantitiesUserErrorCodeProjection.java @@ -0,0 +1,14 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryShipmentUpdateItemQuantitiesUserErrorCodeProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryShipmentUpdateItemQuantitiesUserErrorCodeProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryShipmentUpdateItemQuantitiesUserErrorCode")); + } + + public InventoryShipmentUpdateItemQuantitiesUserErrorCodeProjection __typename() { + getFields().put("__typename", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentUpdateItemQuantitiesUserErrorProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentUpdateItemQuantitiesUserErrorProjection.java new file mode 100644 index 00000000..f633c8bf --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryShipmentUpdateItemQuantitiesUserErrorProjection.java @@ -0,0 +1,31 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryShipmentUpdateItemQuantitiesUserErrorProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryShipmentUpdateItemQuantitiesUserErrorProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryShipmentUpdateItemQuantitiesUserError")); + } + + public InventoryShipmentUpdateItemQuantitiesUserErrorProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryShipmentUpdateItemQuantitiesUserErrorCodeProjection, ROOT> code( + ) { + InventoryShipmentUpdateItemQuantitiesUserErrorCodeProjection, ROOT> projection = new InventoryShipmentUpdateItemQuantitiesUserErrorCodeProjection<>(this, getRoot()); + getFields().put("code", projection); + return projection; + } + + public InventoryShipmentUpdateItemQuantitiesUserErrorProjection field() { + getFields().put("field", null); + return this; + } + + public InventoryShipmentUpdateItemQuantitiesUserErrorProjection message() { + getFields().put("message", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferCancelGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferCancelGraphQLQuery.java new file mode 100644 index 00000000..4b593d6a --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferCancelGraphQLQuery.java @@ -0,0 +1,59 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import java.lang.Override; +import java.lang.String; +import java.util.HashSet; +import java.util.Set; + +/** + * Cancels an inventory transfer. + */ +public class InventoryTransferCancelGraphQLQuery extends GraphQLQuery { + public InventoryTransferCancelGraphQLQuery(String id, String queryName, Set fieldsSet) { + super("mutation", queryName); + if (id != null || fieldsSet.contains("id")) { + getInput().put("id", id); + } + } + + public InventoryTransferCancelGraphQLQuery() { + super("mutation"); + } + + @Override + public String getOperationName() { + return "inventoryTransferCancel"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private String id; + + private String queryName; + + public InventoryTransferCancelGraphQLQuery build() { + return new InventoryTransferCancelGraphQLQuery(id, queryName, fieldsSet); + + } + + /** + * The ID of the inventory transfer to cancel. + */ + public Builder id(String id) { + this.id = id; + this.fieldsSet.add("id"); + return this; + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferCancelProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferCancelProjectionRoot.java new file mode 100644 index 00000000..7d86da88 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferCancelProjectionRoot.java @@ -0,0 +1,28 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryTransferCancelProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryTransferCancelProjectionRoot() { + super(null, null, java.util.Optional.of("InventoryTransferCancelPayload")); + } + + public InventoryTransferCancelProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryTransferProjection, InventoryTransferCancelProjectionRoot> inventoryTransfer( + ) { + InventoryTransferProjection, InventoryTransferCancelProjectionRoot> projection = new InventoryTransferProjection<>(this, this); + getFields().put("inventoryTransfer", projection); + return projection; + } + + public InventoryTransferCancelUserErrorProjection, InventoryTransferCancelProjectionRoot> userErrors( + ) { + InventoryTransferCancelUserErrorProjection, InventoryTransferCancelProjectionRoot> projection = new InventoryTransferCancelUserErrorProjection<>(this, this); + getFields().put("userErrors", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferCancelUserErrorCodeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferCancelUserErrorCodeProjection.java new file mode 100644 index 00000000..ce7f4606 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferCancelUserErrorCodeProjection.java @@ -0,0 +1,14 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryTransferCancelUserErrorCodeProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryTransferCancelUserErrorCodeProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryTransferCancelUserErrorCode")); + } + + public InventoryTransferCancelUserErrorCodeProjection __typename() { + getFields().put("__typename", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferCancelUserErrorProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferCancelUserErrorProjection.java new file mode 100644 index 00000000..276fabca --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferCancelUserErrorProjection.java @@ -0,0 +1,31 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryTransferCancelUserErrorProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryTransferCancelUserErrorProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryTransferCancelUserError")); + } + + public InventoryTransferCancelUserErrorProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryTransferCancelUserErrorCodeProjection, ROOT> code( + ) { + InventoryTransferCancelUserErrorCodeProjection, ROOT> projection = new InventoryTransferCancelUserErrorCodeProjection<>(this, getRoot()); + getFields().put("code", projection); + return projection; + } + + public InventoryTransferCancelUserErrorProjection field() { + getFields().put("field", null); + return this; + } + + public InventoryTransferCancelUserErrorProjection message() { + getFields().put("message", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferConnectionProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferConnectionProjection.java new file mode 100644 index 00000000..11f51bda --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferConnectionProjection.java @@ -0,0 +1,34 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryTransferConnectionProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryTransferConnectionProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryTransferConnection")); + } + + public InventoryTransferConnectionProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryTransferEdgeProjection, ROOT> edges( + ) { + InventoryTransferEdgeProjection, ROOT> projection = new InventoryTransferEdgeProjection<>(this, getRoot()); + getFields().put("edges", projection); + return projection; + } + + public InventoryTransferProjection, ROOT> nodes( + ) { + InventoryTransferProjection, ROOT> projection = new InventoryTransferProjection<>(this, getRoot()); + getFields().put("nodes", projection); + return projection; + } + + public PageInfoProjection, ROOT> pageInfo() { + PageInfoProjection, ROOT> projection = new PageInfoProjection<>(this, getRoot()); + getFields().put("pageInfo", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferCreateAsReadyToShipGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferCreateAsReadyToShipGraphQLQuery.java new file mode 100644 index 00000000..cf34eaea --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferCreateAsReadyToShipGraphQLQuery.java @@ -0,0 +1,66 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import com.shopify.admin.types.InventoryTransferCreateAsReadyToShipInput; +import java.lang.Override; +import java.lang.String; +import java.util.HashSet; +import java.util.Set; + +/** + * Creates an inventory transfer in ready to ship. + * + * > Caution: + * > As of 2026-01, this mutation supports an optional idempotency key using the `@idempotent` directive. + * > As of 2026-04, the idempotency key is required and must be provided using the `@idempotent` directive. + * > For more information, see the [idempotency documentation](https://shopify.dev/docs/api/usage/idempotent-requests). + */ +public class InventoryTransferCreateAsReadyToShipGraphQLQuery extends GraphQLQuery { + public InventoryTransferCreateAsReadyToShipGraphQLQuery( + InventoryTransferCreateAsReadyToShipInput input, String queryName, Set fieldsSet) { + super("mutation", queryName); + if (input != null || fieldsSet.contains("input")) { + getInput().put("input", input); + } + } + + public InventoryTransferCreateAsReadyToShipGraphQLQuery() { + super("mutation"); + } + + @Override + public String getOperationName() { + return "inventoryTransferCreateAsReadyToShip"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private InventoryTransferCreateAsReadyToShipInput input; + + private String queryName; + + public InventoryTransferCreateAsReadyToShipGraphQLQuery build() { + return new InventoryTransferCreateAsReadyToShipGraphQLQuery(input, queryName, fieldsSet); + + } + + /** + * The input fields for the inventory transfer. + */ + public Builder input(InventoryTransferCreateAsReadyToShipInput input) { + this.input = input; + this.fieldsSet.add("input"); + return this; + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferCreateAsReadyToShipProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferCreateAsReadyToShipProjectionRoot.java new file mode 100644 index 00000000..803eaf04 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferCreateAsReadyToShipProjectionRoot.java @@ -0,0 +1,28 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryTransferCreateAsReadyToShipProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryTransferCreateAsReadyToShipProjectionRoot() { + super(null, null, java.util.Optional.of("InventoryTransferCreateAsReadyToShipPayload")); + } + + public InventoryTransferCreateAsReadyToShipProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryTransferProjection, InventoryTransferCreateAsReadyToShipProjectionRoot> inventoryTransfer( + ) { + InventoryTransferProjection, InventoryTransferCreateAsReadyToShipProjectionRoot> projection = new InventoryTransferProjection<>(this, this); + getFields().put("inventoryTransfer", projection); + return projection; + } + + public InventoryTransferCreateAsReadyToShipUserErrorProjection, InventoryTransferCreateAsReadyToShipProjectionRoot> userErrors( + ) { + InventoryTransferCreateAsReadyToShipUserErrorProjection, InventoryTransferCreateAsReadyToShipProjectionRoot> projection = new InventoryTransferCreateAsReadyToShipUserErrorProjection<>(this, this); + getFields().put("userErrors", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferCreateAsReadyToShipUserErrorCodeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferCreateAsReadyToShipUserErrorCodeProjection.java new file mode 100644 index 00000000..7a313aba --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferCreateAsReadyToShipUserErrorCodeProjection.java @@ -0,0 +1,14 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryTransferCreateAsReadyToShipUserErrorCodeProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryTransferCreateAsReadyToShipUserErrorCodeProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryTransferCreateAsReadyToShipUserErrorCode")); + } + + public InventoryTransferCreateAsReadyToShipUserErrorCodeProjection __typename() { + getFields().put("__typename", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferCreateAsReadyToShipUserErrorProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferCreateAsReadyToShipUserErrorProjection.java new file mode 100644 index 00000000..053390b7 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferCreateAsReadyToShipUserErrorProjection.java @@ -0,0 +1,31 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryTransferCreateAsReadyToShipUserErrorProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryTransferCreateAsReadyToShipUserErrorProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryTransferCreateAsReadyToShipUserError")); + } + + public InventoryTransferCreateAsReadyToShipUserErrorProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryTransferCreateAsReadyToShipUserErrorCodeProjection, ROOT> code( + ) { + InventoryTransferCreateAsReadyToShipUserErrorCodeProjection, ROOT> projection = new InventoryTransferCreateAsReadyToShipUserErrorCodeProjection<>(this, getRoot()); + getFields().put("code", projection); + return projection; + } + + public InventoryTransferCreateAsReadyToShipUserErrorProjection field() { + getFields().put("field", null); + return this; + } + + public InventoryTransferCreateAsReadyToShipUserErrorProjection message() { + getFields().put("message", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferCreateGraphQLQuery.java new file mode 100644 index 00000000..9cffb8f6 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferCreateGraphQLQuery.java @@ -0,0 +1,70 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import com.shopify.admin.types.InventoryTransferCreateInput; +import java.lang.Override; +import java.lang.String; +import java.util.HashSet; +import java.util.Set; + +/** + * Creates a draft inventory transfer to move inventory items between [`Location`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location) + * objects in your store. The transfer tracks which items to move, their + * quantities, and the origin and destination locations. + * + * Use [`inventoryTransferMarkAsReadyToShip`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/inventoryTransferMarkAsReadyToShip) to mark the transfer as ready to ship. + * + * > Caution: + * > As of version `2026-01`, this mutation supports an optional idempotency key using the `@idempotent` directive. + * > As of version `2026-04`, the idempotency key is required and must be provided using the `@idempotent` directive. + * > For more information, see the [idempotency documentation](https://shopify.dev/docs/api/usage/idempotent-requests). + */ +public class InventoryTransferCreateGraphQLQuery extends GraphQLQuery { + public InventoryTransferCreateGraphQLQuery(InventoryTransferCreateInput input, String queryName, + Set fieldsSet) { + super("mutation", queryName); + if (input != null || fieldsSet.contains("input")) { + getInput().put("input", input); + } + } + + public InventoryTransferCreateGraphQLQuery() { + super("mutation"); + } + + @Override + public String getOperationName() { + return "inventoryTransferCreate"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private InventoryTransferCreateInput input; + + private String queryName; + + public InventoryTransferCreateGraphQLQuery build() { + return new InventoryTransferCreateGraphQLQuery(input, queryName, fieldsSet); + + } + + /** + * The input fields for the inventory transfer. + */ + public Builder input(InventoryTransferCreateInput input) { + this.input = input; + this.fieldsSet.add("input"); + return this; + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferCreateProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferCreateProjectionRoot.java new file mode 100644 index 00000000..842f00ca --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferCreateProjectionRoot.java @@ -0,0 +1,28 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryTransferCreateProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryTransferCreateProjectionRoot() { + super(null, null, java.util.Optional.of("InventoryTransferCreatePayload")); + } + + public InventoryTransferCreateProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryTransferProjection, InventoryTransferCreateProjectionRoot> inventoryTransfer( + ) { + InventoryTransferProjection, InventoryTransferCreateProjectionRoot> projection = new InventoryTransferProjection<>(this, this); + getFields().put("inventoryTransfer", projection); + return projection; + } + + public InventoryTransferCreateUserErrorProjection, InventoryTransferCreateProjectionRoot> userErrors( + ) { + InventoryTransferCreateUserErrorProjection, InventoryTransferCreateProjectionRoot> projection = new InventoryTransferCreateUserErrorProjection<>(this, this); + getFields().put("userErrors", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferCreateUserErrorCodeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferCreateUserErrorCodeProjection.java new file mode 100644 index 00000000..d1b83d50 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferCreateUserErrorCodeProjection.java @@ -0,0 +1,14 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryTransferCreateUserErrorCodeProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryTransferCreateUserErrorCodeProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryTransferCreateUserErrorCode")); + } + + public InventoryTransferCreateUserErrorCodeProjection __typename() { + getFields().put("__typename", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferCreateUserErrorProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferCreateUserErrorProjection.java new file mode 100644 index 00000000..a3bff671 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferCreateUserErrorProjection.java @@ -0,0 +1,31 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryTransferCreateUserErrorProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryTransferCreateUserErrorProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryTransferCreateUserError")); + } + + public InventoryTransferCreateUserErrorProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryTransferCreateUserErrorCodeProjection, ROOT> code( + ) { + InventoryTransferCreateUserErrorCodeProjection, ROOT> projection = new InventoryTransferCreateUserErrorCodeProjection<>(this, getRoot()); + getFields().put("code", projection); + return projection; + } + + public InventoryTransferCreateUserErrorProjection field() { + getFields().put("field", null); + return this; + } + + public InventoryTransferCreateUserErrorProjection message() { + getFields().put("message", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferDeleteGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferDeleteGraphQLQuery.java new file mode 100644 index 00000000..a4936f13 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferDeleteGraphQLQuery.java @@ -0,0 +1,59 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import java.lang.Override; +import java.lang.String; +import java.util.HashSet; +import java.util.Set; + +/** + * Deletes an inventory transfer. + */ +public class InventoryTransferDeleteGraphQLQuery extends GraphQLQuery { + public InventoryTransferDeleteGraphQLQuery(String id, String queryName, Set fieldsSet) { + super("mutation", queryName); + if (id != null || fieldsSet.contains("id")) { + getInput().put("id", id); + } + } + + public InventoryTransferDeleteGraphQLQuery() { + super("mutation"); + } + + @Override + public String getOperationName() { + return "inventoryTransferDelete"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private String id; + + private String queryName; + + public InventoryTransferDeleteGraphQLQuery build() { + return new InventoryTransferDeleteGraphQLQuery(id, queryName, fieldsSet); + + } + + /** + * The ID of the inventory transfer to delete. + */ + public Builder id(String id) { + this.id = id; + this.fieldsSet.add("id"); + return this; + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferDeleteProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferDeleteProjectionRoot.java new file mode 100644 index 00000000..34a9350b --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferDeleteProjectionRoot.java @@ -0,0 +1,26 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryTransferDeleteProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryTransferDeleteProjectionRoot() { + super(null, null, java.util.Optional.of("InventoryTransferDeletePayload")); + } + + public InventoryTransferDeleteProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryTransferDeleteUserErrorProjection, InventoryTransferDeleteProjectionRoot> userErrors( + ) { + InventoryTransferDeleteUserErrorProjection, InventoryTransferDeleteProjectionRoot> projection = new InventoryTransferDeleteUserErrorProjection<>(this, this); + getFields().put("userErrors", projection); + return projection; + } + + public InventoryTransferDeleteProjectionRoot deletedId() { + getFields().put("deletedId", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferDeleteUserErrorCodeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferDeleteUserErrorCodeProjection.java new file mode 100644 index 00000000..a9c5f9ce --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferDeleteUserErrorCodeProjection.java @@ -0,0 +1,14 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryTransferDeleteUserErrorCodeProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryTransferDeleteUserErrorCodeProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryTransferDeleteUserErrorCode")); + } + + public InventoryTransferDeleteUserErrorCodeProjection __typename() { + getFields().put("__typename", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferDeleteUserErrorProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferDeleteUserErrorProjection.java new file mode 100644 index 00000000..c344a0b7 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferDeleteUserErrorProjection.java @@ -0,0 +1,31 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryTransferDeleteUserErrorProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryTransferDeleteUserErrorProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryTransferDeleteUserError")); + } + + public InventoryTransferDeleteUserErrorProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryTransferDeleteUserErrorCodeProjection, ROOT> code( + ) { + InventoryTransferDeleteUserErrorCodeProjection, ROOT> projection = new InventoryTransferDeleteUserErrorCodeProjection<>(this, getRoot()); + getFields().put("code", projection); + return projection; + } + + public InventoryTransferDeleteUserErrorProjection field() { + getFields().put("field", null); + return this; + } + + public InventoryTransferDeleteUserErrorProjection message() { + getFields().put("message", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferDuplicateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferDuplicateGraphQLQuery.java new file mode 100644 index 00000000..6c853de1 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferDuplicateGraphQLQuery.java @@ -0,0 +1,66 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import java.lang.Override; +import java.lang.String; +import java.util.HashSet; +import java.util.Set; + +/** + * This mutation allows duplicating an existing inventory transfer. The duplicated transfer will have the same + * line items and quantities as the original transfer, but will be in a draft state with no shipments. + * + * > Caution: + * > As of 2026-01, this mutation supports an optional idempotency key using the `@idempotent` directive. + * > As of 2026-04, the idempotency key is required and must be provided using the `@idempotent` directive. + * > For more information, see the [idempotency documentation](https://shopify.dev/docs/api/usage/idempotent-requests). + */ +public class InventoryTransferDuplicateGraphQLQuery extends GraphQLQuery { + public InventoryTransferDuplicateGraphQLQuery(String id, String queryName, + Set fieldsSet) { + super("mutation", queryName); + if (id != null || fieldsSet.contains("id")) { + getInput().put("id", id); + } + } + + public InventoryTransferDuplicateGraphQLQuery() { + super("mutation"); + } + + @Override + public String getOperationName() { + return "inventoryTransferDuplicate"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private String id; + + private String queryName; + + public InventoryTransferDuplicateGraphQLQuery build() { + return new InventoryTransferDuplicateGraphQLQuery(id, queryName, fieldsSet); + + } + + /** + * The ID of the inventory transfer to duplicate. + */ + public Builder id(String id) { + this.id = id; + this.fieldsSet.add("id"); + return this; + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferDuplicateProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferDuplicateProjectionRoot.java new file mode 100644 index 00000000..f1d40c15 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferDuplicateProjectionRoot.java @@ -0,0 +1,28 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryTransferDuplicateProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryTransferDuplicateProjectionRoot() { + super(null, null, java.util.Optional.of("InventoryTransferDuplicatePayload")); + } + + public InventoryTransferDuplicateProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryTransferProjection, InventoryTransferDuplicateProjectionRoot> inventoryTransfer( + ) { + InventoryTransferProjection, InventoryTransferDuplicateProjectionRoot> projection = new InventoryTransferProjection<>(this, this); + getFields().put("inventoryTransfer", projection); + return projection; + } + + public InventoryTransferDuplicateUserErrorProjection, InventoryTransferDuplicateProjectionRoot> userErrors( + ) { + InventoryTransferDuplicateUserErrorProjection, InventoryTransferDuplicateProjectionRoot> projection = new InventoryTransferDuplicateUserErrorProjection<>(this, this); + getFields().put("userErrors", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferDuplicateUserErrorCodeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferDuplicateUserErrorCodeProjection.java new file mode 100644 index 00000000..6a9481da --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferDuplicateUserErrorCodeProjection.java @@ -0,0 +1,14 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryTransferDuplicateUserErrorCodeProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryTransferDuplicateUserErrorCodeProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryTransferDuplicateUserErrorCode")); + } + + public InventoryTransferDuplicateUserErrorCodeProjection __typename() { + getFields().put("__typename", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferDuplicateUserErrorProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferDuplicateUserErrorProjection.java new file mode 100644 index 00000000..e28e55f0 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferDuplicateUserErrorProjection.java @@ -0,0 +1,31 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryTransferDuplicateUserErrorProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryTransferDuplicateUserErrorProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryTransferDuplicateUserError")); + } + + public InventoryTransferDuplicateUserErrorProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryTransferDuplicateUserErrorCodeProjection, ROOT> code( + ) { + InventoryTransferDuplicateUserErrorCodeProjection, ROOT> projection = new InventoryTransferDuplicateUserErrorCodeProjection<>(this, getRoot()); + getFields().put("code", projection); + return projection; + } + + public InventoryTransferDuplicateUserErrorProjection field() { + getFields().put("field", null); + return this; + } + + public InventoryTransferDuplicateUserErrorProjection message() { + getFields().put("message", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferEdgeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferEdgeProjection.java new file mode 100644 index 00000000..62d944ec --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferEdgeProjection.java @@ -0,0 +1,25 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryTransferEdgeProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryTransferEdgeProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryTransferEdge")); + } + + public InventoryTransferEdgeProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryTransferProjection, ROOT> node() { + InventoryTransferProjection, ROOT> projection = new InventoryTransferProjection<>(this, getRoot()); + getFields().put("node", projection); + return projection; + } + + public InventoryTransferEdgeProjection cursor() { + getFields().put("cursor", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferEditGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferEditGraphQLQuery.java new file mode 100644 index 00000000..b2cb5c16 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferEditGraphQLQuery.java @@ -0,0 +1,74 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import com.shopify.admin.types.InventoryTransferEditInput; +import java.lang.Override; +import java.lang.String; +import java.util.HashSet; +import java.util.Set; + +/** + * Edits an inventory transfer. + */ +public class InventoryTransferEditGraphQLQuery extends GraphQLQuery { + public InventoryTransferEditGraphQLQuery(String id, InventoryTransferEditInput input, + String queryName, Set fieldsSet) { + super("mutation", queryName); + if (id != null || fieldsSet.contains("id")) { + getInput().put("id", id); + }if (input != null || fieldsSet.contains("input")) { + getInput().put("input", input); + } + } + + public InventoryTransferEditGraphQLQuery() { + super("mutation"); + } + + @Override + public String getOperationName() { + return "inventoryTransferEdit"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private String id; + + private InventoryTransferEditInput input; + + private String queryName; + + public InventoryTransferEditGraphQLQuery build() { + return new InventoryTransferEditGraphQLQuery(id, input, queryName, fieldsSet); + + } + + /** + * The ID of the inventory Transfer to be edited. + */ + public Builder id(String id) { + this.id = id; + this.fieldsSet.add("id"); + return this; + } + + /** + * The input fields to edit the inventory transfer. + */ + public Builder input(InventoryTransferEditInput input) { + this.input = input; + this.fieldsSet.add("input"); + return this; + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferEditProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferEditProjectionRoot.java new file mode 100644 index 00000000..7a4a363c --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferEditProjectionRoot.java @@ -0,0 +1,28 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryTransferEditProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryTransferEditProjectionRoot() { + super(null, null, java.util.Optional.of("InventoryTransferEditPayload")); + } + + public InventoryTransferEditProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryTransferProjection, InventoryTransferEditProjectionRoot> inventoryTransfer( + ) { + InventoryTransferProjection, InventoryTransferEditProjectionRoot> projection = new InventoryTransferProjection<>(this, this); + getFields().put("inventoryTransfer", projection); + return projection; + } + + public InventoryTransferEditUserErrorProjection, InventoryTransferEditProjectionRoot> userErrors( + ) { + InventoryTransferEditUserErrorProjection, InventoryTransferEditProjectionRoot> projection = new InventoryTransferEditUserErrorProjection<>(this, this); + getFields().put("userErrors", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferEditUserErrorCodeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferEditUserErrorCodeProjection.java new file mode 100644 index 00000000..08f563c8 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferEditUserErrorCodeProjection.java @@ -0,0 +1,14 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryTransferEditUserErrorCodeProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryTransferEditUserErrorCodeProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryTransferEditUserErrorCode")); + } + + public InventoryTransferEditUserErrorCodeProjection __typename() { + getFields().put("__typename", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferEditUserErrorProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferEditUserErrorProjection.java new file mode 100644 index 00000000..2928f168 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferEditUserErrorProjection.java @@ -0,0 +1,31 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryTransferEditUserErrorProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryTransferEditUserErrorProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryTransferEditUserError")); + } + + public InventoryTransferEditUserErrorProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryTransferEditUserErrorCodeProjection, ROOT> code( + ) { + InventoryTransferEditUserErrorCodeProjection, ROOT> projection = new InventoryTransferEditUserErrorCodeProjection<>(this, getRoot()); + getFields().put("code", projection); + return projection; + } + + public InventoryTransferEditUserErrorProjection field() { + getFields().put("field", null); + return this; + } + + public InventoryTransferEditUserErrorProjection message() { + getFields().put("message", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferFragmentProjection.java new file mode 100644 index 00000000..fef42198 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferFragmentProjection.java @@ -0,0 +1,291 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; +import com.shopify.admin.types.EventSortKeys; +import com.shopify.admin.types.MetafieldDefinitionPinnedStatus; +import com.shopify.admin.types.MetafieldDefinitionSortKeys; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.Override; +import java.lang.String; +import java.util.ArrayList; +import java.util.List; + +public class InventoryTransferFragmentProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + { + getFields().put("__typename", null); + } + + public InventoryTransferFragmentProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryTransfer")); + } + + public InventoryTransferFragmentProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public LocationSnapshotProjection, ROOT> destination( + ) { + LocationSnapshotProjection, ROOT> projection = new LocationSnapshotProjection<>(this, getRoot()); + getFields().put("destination", projection); + return projection; + } + + public EventConnectionProjection, ROOT> events( + ) { + EventConnectionProjection, ROOT> projection = new EventConnectionProjection<>(this, getRoot()); + getFields().put("events", projection); + return projection; + } + + public EventConnectionProjection, ROOT> events( + Integer first, String after, Integer last, String before, Boolean reverse, + EventSortKeys sortKey, String query) { + EventConnectionProjection, ROOT> projection = new EventConnectionProjection<>(this, getRoot()); + getFields().put("events", projection); + getInputArguments().computeIfAbsent("events", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("events").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("events").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("events").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("events").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("events").add(reverseArg); + InputArgument sortKeyArg = new InputArgument("sortKey", sortKey); + getInputArguments().get("events").add(sortKeyArg); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("events").add(queryArg); + return projection; + } + + public InventoryTransferLineItemConnectionProjection, ROOT> lineItems( + ) { + InventoryTransferLineItemConnectionProjection, ROOT> projection = new InventoryTransferLineItemConnectionProjection<>(this, getRoot()); + getFields().put("lineItems", projection); + return projection; + } + + public InventoryTransferLineItemConnectionProjection, ROOT> lineItems( + Integer first, String after, Integer last, String before, Boolean reverse, String query) { + InventoryTransferLineItemConnectionProjection, ROOT> projection = new InventoryTransferLineItemConnectionProjection<>(this, getRoot()); + getFields().put("lineItems", projection); + getInputArguments().computeIfAbsent("lineItems", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("lineItems").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("lineItems").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("lineItems").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("lineItems").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("lineItems").add(reverseArg); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("lineItems").add(queryArg); + return projection; + } + + public CountProjection, ROOT> lineItemsCount() { + CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); + getFields().put("lineItemsCount", projection); + return projection; + } + + public CountProjection, ROOT> lineItemsCount( + String query, Integer limit) { + CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); + getFields().put("lineItemsCount", projection); + getInputArguments().computeIfAbsent("lineItemsCount", k -> new ArrayList<>()); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("lineItemsCount").add(queryArg); + InputArgument limitArg = new InputArgument("limit", limit); + getInputArguments().get("lineItemsCount").add(limitArg); + return projection; + } + + public MetafieldProjection, ROOT> metafield() { + MetafieldProjection, ROOT> projection = new MetafieldProjection<>(this, getRoot()); + getFields().put("metafield", projection); + return projection; + } + + public MetafieldProjection, ROOT> metafield( + String namespace, String key) { + MetafieldProjection, ROOT> projection = new MetafieldProjection<>(this, getRoot()); + getFields().put("metafield", projection); + getInputArguments().computeIfAbsent("metafield", k -> new ArrayList<>()); + InputArgument namespaceArg = new InputArgument("namespace", namespace); + getInputArguments().get("metafield").add(namespaceArg); + InputArgument keyArg = new InputArgument("key", key); + getInputArguments().get("metafield").add(keyArg); + return projection; + } + + public MetafieldDefinitionConnectionProjection, ROOT> metafieldDefinitions( + ) { + MetafieldDefinitionConnectionProjection, ROOT> projection = new MetafieldDefinitionConnectionProjection<>(this, getRoot()); + getFields().put("metafieldDefinitions", projection); + return projection; + } + + public MetafieldDefinitionConnectionProjection, ROOT> metafieldDefinitions( + String namespace, MetafieldDefinitionPinnedStatus pinnedStatus, Integer first, String after, + Integer last, String before, Boolean reverse, MetafieldDefinitionSortKeys sortKey, + String query) { + MetafieldDefinitionConnectionProjection, ROOT> projection = new MetafieldDefinitionConnectionProjection<>(this, getRoot()); + getFields().put("metafieldDefinitions", projection); + getInputArguments().computeIfAbsent("metafieldDefinitions", k -> new ArrayList<>()); + InputArgument namespaceArg = new InputArgument("namespace", namespace); + getInputArguments().get("metafieldDefinitions").add(namespaceArg); + InputArgument pinnedStatusArg = new InputArgument("pinnedStatus", pinnedStatus); + getInputArguments().get("metafieldDefinitions").add(pinnedStatusArg); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("metafieldDefinitions").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("metafieldDefinitions").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("metafieldDefinitions").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("metafieldDefinitions").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("metafieldDefinitions").add(reverseArg); + InputArgument sortKeyArg = new InputArgument("sortKey", sortKey); + getInputArguments().get("metafieldDefinitions").add(sortKeyArg); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("metafieldDefinitions").add(queryArg); + return projection; + } + + public MetafieldConnectionProjection, ROOT> metafields( + ) { + MetafieldConnectionProjection, ROOT> projection = new MetafieldConnectionProjection<>(this, getRoot()); + getFields().put("metafields", projection); + return projection; + } + + public MetafieldConnectionProjection, ROOT> metafields( + String namespace, List keys, Integer first, String after, Integer last, String before, + Boolean reverse) { + MetafieldConnectionProjection, ROOT> projection = new MetafieldConnectionProjection<>(this, getRoot()); + getFields().put("metafields", projection); + getInputArguments().computeIfAbsent("metafields", k -> new ArrayList<>()); + InputArgument namespaceArg = new InputArgument("namespace", namespace); + getInputArguments().get("metafields").add(namespaceArg); + InputArgument keysArg = new InputArgument("keys", keys); + getInputArguments().get("metafields").add(keysArg); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("metafields").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("metafields").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("metafields").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("metafields").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("metafields").add(reverseArg); + return projection; + } + + public LocationSnapshotProjection, ROOT> origin( + ) { + LocationSnapshotProjection, ROOT> projection = new LocationSnapshotProjection<>(this, getRoot()); + getFields().put("origin", projection); + return projection; + } + + public InventoryShipmentConnectionProjection, ROOT> shipments( + ) { + InventoryShipmentConnectionProjection, ROOT> projection = new InventoryShipmentConnectionProjection<>(this, getRoot()); + getFields().put("shipments", projection); + return projection; + } + + public InventoryShipmentConnectionProjection, ROOT> shipments( + Integer first, String after, Integer last, String before, Boolean reverse) { + InventoryShipmentConnectionProjection, ROOT> projection = new InventoryShipmentConnectionProjection<>(this, getRoot()); + getFields().put("shipments", projection); + getInputArguments().computeIfAbsent("shipments", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("shipments").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("shipments").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("shipments").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("shipments").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("shipments").add(reverseArg); + return projection; + } + + public InventoryTransferStatusProjection, ROOT> status( + ) { + InventoryTransferStatusProjection, ROOT> projection = new InventoryTransferStatusProjection<>(this, getRoot()); + getFields().put("status", projection); + return projection; + } + + public InventoryTransferFragmentProjection dateCreated() { + getFields().put("dateCreated", null); + return this; + } + + public InventoryTransferFragmentProjection hasTimelineComment() { + getFields().put("hasTimelineComment", null); + return this; + } + + public InventoryTransferFragmentProjection id() { + getFields().put("id", null); + return this; + } + + public InventoryTransferFragmentProjection name() { + getFields().put("name", null); + return this; + } + + public InventoryTransferFragmentProjection note() { + getFields().put("note", null); + return this; + } + + public InventoryTransferFragmentProjection receivedQuantity() { + getFields().put("receivedQuantity", null); + return this; + } + + public InventoryTransferFragmentProjection referenceName() { + getFields().put("referenceName", null); + return this; + } + + public InventoryTransferFragmentProjection tags() { + getFields().put("tags", null); + return this; + } + + public InventoryTransferFragmentProjection totalQuantity() { + getFields().put("totalQuantity", null); + return this; + } + + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + builder.append("... on InventoryTransfer {"); + getFields().forEach((k, v) -> { + builder.append(" ").append(k); + if(v != null) { + builder.append(" ").append(v.toString()); + } + }); + builder.append("}"); + + return builder.toString(); + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferGraphQLQuery.java new file mode 100644 index 00000000..2cb7592d --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferGraphQLQuery.java @@ -0,0 +1,61 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import java.lang.Override; +import java.lang.String; +import java.util.HashSet; +import java.util.Set; + +/** + * Returns an [`InventoryTransfer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryTransfer) by ID. Inventory transfers track the movement of inventory between locations, + * including origin and destination details, [`InventoryTransferLineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryTransferLineItem) + * objects, quantities, and [`InventoryTransferStatus`](https://shopify.dev/docs/api/admin-graphql/latest/enums/InventoryTransferStatus) values. + */ +public class InventoryTransferGraphQLQuery extends GraphQLQuery { + public InventoryTransferGraphQLQuery(String id, String queryName, Set fieldsSet) { + super("query", queryName); + if (id != null || fieldsSet.contains("id")) { + getInput().put("id", id); + } + } + + public InventoryTransferGraphQLQuery() { + super("query"); + } + + @Override + public String getOperationName() { + return "inventoryTransfer"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private String id; + + private String queryName; + + public InventoryTransferGraphQLQuery build() { + return new InventoryTransferGraphQLQuery(id, queryName, fieldsSet); + + } + + /** + * The ID of the inventory transfer. + */ + public Builder id(String id) { + this.id = id; + this.fieldsSet.add("id"); + return this; + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferLineItemConnectionProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferLineItemConnectionProjection.java new file mode 100644 index 00000000..6ee3c383 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferLineItemConnectionProjection.java @@ -0,0 +1,35 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryTransferLineItemConnectionProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryTransferLineItemConnectionProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryTransferLineItemConnection")); + } + + public InventoryTransferLineItemConnectionProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryTransferLineItemEdgeProjection, ROOT> edges( + ) { + InventoryTransferLineItemEdgeProjection, ROOT> projection = new InventoryTransferLineItemEdgeProjection<>(this, getRoot()); + getFields().put("edges", projection); + return projection; + } + + public InventoryTransferLineItemProjection, ROOT> nodes( + ) { + InventoryTransferLineItemProjection, ROOT> projection = new InventoryTransferLineItemProjection<>(this, getRoot()); + getFields().put("nodes", projection); + return projection; + } + + public PageInfoProjection, ROOT> pageInfo( + ) { + PageInfoProjection, ROOT> projection = new PageInfoProjection<>(this, getRoot()); + getFields().put("pageInfo", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferLineItemEdgeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferLineItemEdgeProjection.java new file mode 100644 index 00000000..86094b2b --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferLineItemEdgeProjection.java @@ -0,0 +1,26 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryTransferLineItemEdgeProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryTransferLineItemEdgeProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryTransferLineItemEdge")); + } + + public InventoryTransferLineItemEdgeProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryTransferLineItemProjection, ROOT> node( + ) { + InventoryTransferLineItemProjection, ROOT> projection = new InventoryTransferLineItemProjection<>(this, getRoot()); + getFields().put("node", projection); + return projection; + } + + public InventoryTransferLineItemEdgeProjection cursor() { + getFields().put("cursor", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferLineItemFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferLineItemFragmentProjection.java new file mode 100644 index 00000000..d66313a4 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferLineItemFragmentProjection.java @@ -0,0 +1,77 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; +import java.lang.Override; +import java.lang.String; + +public class InventoryTransferLineItemFragmentProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + { + getFields().put("__typename", null); + } + + public InventoryTransferLineItemFragmentProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryTransferLineItem")); + } + + public InventoryTransferLineItemFragmentProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryItemProjection, ROOT> inventoryItem( + ) { + InventoryItemProjection, ROOT> projection = new InventoryItemProjection<>(this, getRoot()); + getFields().put("inventoryItem", projection); + return projection; + } + + public InventoryTransferLineItemFragmentProjection id() { + getFields().put("id", null); + return this; + } + + public InventoryTransferLineItemFragmentProjection pickedForShipmentQuantity() { + getFields().put("pickedForShipmentQuantity", null); + return this; + } + + public InventoryTransferLineItemFragmentProjection processableQuantity() { + getFields().put("processableQuantity", null); + return this; + } + + public InventoryTransferLineItemFragmentProjection shippableQuantity() { + getFields().put("shippableQuantity", null); + return this; + } + + public InventoryTransferLineItemFragmentProjection shippedQuantity() { + getFields().put("shippedQuantity", null); + return this; + } + + public InventoryTransferLineItemFragmentProjection title() { + getFields().put("title", null); + return this; + } + + public InventoryTransferLineItemFragmentProjection totalQuantity() { + getFields().put("totalQuantity", null); + return this; + } + + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + builder.append("... on InventoryTransferLineItem {"); + getFields().forEach((k, v) -> { + builder.append(" ").append(k); + if(v != null) { + builder.append(" ").append(v.toString()); + } + }); + builder.append("}"); + + return builder.toString(); + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferLineItemProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferLineItemProjection.java new file mode 100644 index 00000000..0b25705e --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferLineItemProjection.java @@ -0,0 +1,56 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryTransferLineItemProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryTransferLineItemProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryTransferLineItem")); + } + + public InventoryTransferLineItemProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryItemProjection, ROOT> inventoryItem( + ) { + InventoryItemProjection, ROOT> projection = new InventoryItemProjection<>(this, getRoot()); + getFields().put("inventoryItem", projection); + return projection; + } + + public InventoryTransferLineItemProjection id() { + getFields().put("id", null); + return this; + } + + public InventoryTransferLineItemProjection pickedForShipmentQuantity() { + getFields().put("pickedForShipmentQuantity", null); + return this; + } + + public InventoryTransferLineItemProjection processableQuantity() { + getFields().put("processableQuantity", null); + return this; + } + + public InventoryTransferLineItemProjection shippableQuantity() { + getFields().put("shippableQuantity", null); + return this; + } + + public InventoryTransferLineItemProjection shippedQuantity() { + getFields().put("shippedQuantity", null); + return this; + } + + public InventoryTransferLineItemProjection title() { + getFields().put("title", null); + return this; + } + + public InventoryTransferLineItemProjection totalQuantity() { + getFields().put("totalQuantity", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferLineItemUpdateProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferLineItemUpdateProjection.java new file mode 100644 index 00000000..a8b02983 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferLineItemUpdateProjection.java @@ -0,0 +1,29 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryTransferLineItemUpdateProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryTransferLineItemUpdateProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryTransferLineItemUpdate")); + } + + public InventoryTransferLineItemUpdateProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryTransferLineItemUpdateProjection deltaQuantity() { + getFields().put("deltaQuantity", null); + return this; + } + + public InventoryTransferLineItemUpdateProjection inventoryItemId() { + getFields().put("inventoryItemId", null); + return this; + } + + public InventoryTransferLineItemUpdateProjection newQuantity() { + getFields().put("newQuantity", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderCreateMerchantCheckoutGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferMarkAsReadyToShipGraphQLQuery.java similarity index 62% rename from mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderCreateMerchantCheckoutGraphQLQuery.java rename to mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferMarkAsReadyToShipGraphQLQuery.java index eb2cc437..72f40fd9 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/DraftOrderCreateMerchantCheckoutGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferMarkAsReadyToShipGraphQLQuery.java @@ -7,10 +7,10 @@ import java.util.Set; /** - * Creates a merchant checkout for the given draft order. + * Sets an inventory transfer to ready to ship. */ -public class DraftOrderCreateMerchantCheckoutGraphQLQuery extends GraphQLQuery { - public DraftOrderCreateMerchantCheckoutGraphQLQuery(String id, String queryName, +public class InventoryTransferMarkAsReadyToShipGraphQLQuery extends GraphQLQuery { + public InventoryTransferMarkAsReadyToShipGraphQLQuery(String id, String queryName, Set fieldsSet) { super("mutation", queryName); if (id != null || fieldsSet.contains("id")) { @@ -18,13 +18,13 @@ public DraftOrderCreateMerchantCheckoutGraphQLQuery(String id, String queryName, } } - public DraftOrderCreateMerchantCheckoutGraphQLQuery() { + public InventoryTransferMarkAsReadyToShipGraphQLQuery() { super("mutation"); } @Override public String getOperationName() { - return "draftOrderCreateMerchantCheckout"; + return "inventoryTransferMarkAsReadyToShip"; } public static Builder newRequest() { @@ -38,13 +38,13 @@ public static class Builder { private String queryName; - public DraftOrderCreateMerchantCheckoutGraphQLQuery build() { - return new DraftOrderCreateMerchantCheckoutGraphQLQuery(id, queryName, fieldsSet); + public InventoryTransferMarkAsReadyToShipGraphQLQuery build() { + return new InventoryTransferMarkAsReadyToShipGraphQLQuery(id, queryName, fieldsSet); } /** - * Specifies the Draft order's id that we create the checkout for. + * The ID of the inventory transfer to mark as ready to ship. */ public Builder id(String id) { this.id = id; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferMarkAsReadyToShipProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferMarkAsReadyToShipProjectionRoot.java new file mode 100644 index 00000000..b7bc7808 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferMarkAsReadyToShipProjectionRoot.java @@ -0,0 +1,28 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryTransferMarkAsReadyToShipProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryTransferMarkAsReadyToShipProjectionRoot() { + super(null, null, java.util.Optional.of("InventoryTransferMarkAsReadyToShipPayload")); + } + + public InventoryTransferMarkAsReadyToShipProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryTransferProjection, InventoryTransferMarkAsReadyToShipProjectionRoot> inventoryTransfer( + ) { + InventoryTransferProjection, InventoryTransferMarkAsReadyToShipProjectionRoot> projection = new InventoryTransferProjection<>(this, this); + getFields().put("inventoryTransfer", projection); + return projection; + } + + public InventoryTransferMarkAsReadyToShipUserErrorProjection, InventoryTransferMarkAsReadyToShipProjectionRoot> userErrors( + ) { + InventoryTransferMarkAsReadyToShipUserErrorProjection, InventoryTransferMarkAsReadyToShipProjectionRoot> projection = new InventoryTransferMarkAsReadyToShipUserErrorProjection<>(this, this); + getFields().put("userErrors", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferMarkAsReadyToShipUserErrorCodeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferMarkAsReadyToShipUserErrorCodeProjection.java new file mode 100644 index 00000000..743a6c94 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferMarkAsReadyToShipUserErrorCodeProjection.java @@ -0,0 +1,14 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryTransferMarkAsReadyToShipUserErrorCodeProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryTransferMarkAsReadyToShipUserErrorCodeProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryTransferMarkAsReadyToShipUserErrorCode")); + } + + public InventoryTransferMarkAsReadyToShipUserErrorCodeProjection __typename() { + getFields().put("__typename", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferMarkAsReadyToShipUserErrorProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferMarkAsReadyToShipUserErrorProjection.java new file mode 100644 index 00000000..32cfe5bf --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferMarkAsReadyToShipUserErrorProjection.java @@ -0,0 +1,31 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryTransferMarkAsReadyToShipUserErrorProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryTransferMarkAsReadyToShipUserErrorProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryTransferMarkAsReadyToShipUserError")); + } + + public InventoryTransferMarkAsReadyToShipUserErrorProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryTransferMarkAsReadyToShipUserErrorCodeProjection, ROOT> code( + ) { + InventoryTransferMarkAsReadyToShipUserErrorCodeProjection, ROOT> projection = new InventoryTransferMarkAsReadyToShipUserErrorCodeProjection<>(this, getRoot()); + getFields().put("code", projection); + return projection; + } + + public InventoryTransferMarkAsReadyToShipUserErrorProjection field() { + getFields().put("field", null); + return this; + } + + public InventoryTransferMarkAsReadyToShipUserErrorProjection message() { + getFields().put("message", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferProjection.java new file mode 100644 index 00000000..7d9adad7 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferProjection.java @@ -0,0 +1,268 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; +import com.shopify.admin.types.EventSortKeys; +import com.shopify.admin.types.MetafieldDefinitionPinnedStatus; +import com.shopify.admin.types.MetafieldDefinitionSortKeys; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.String; +import java.util.ArrayList; +import java.util.List; + +public class InventoryTransferProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryTransferProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryTransfer")); + } + + public InventoryTransferProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public LocationSnapshotProjection, ROOT> destination() { + LocationSnapshotProjection, ROOT> projection = new LocationSnapshotProjection<>(this, getRoot()); + getFields().put("destination", projection); + return projection; + } + + public EventConnectionProjection, ROOT> events() { + EventConnectionProjection, ROOT> projection = new EventConnectionProjection<>(this, getRoot()); + getFields().put("events", projection); + return projection; + } + + public EventConnectionProjection, ROOT> events( + Integer first, String after, Integer last, String before, Boolean reverse, + EventSortKeys sortKey, String query) { + EventConnectionProjection, ROOT> projection = new EventConnectionProjection<>(this, getRoot()); + getFields().put("events", projection); + getInputArguments().computeIfAbsent("events", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("events").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("events").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("events").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("events").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("events").add(reverseArg); + InputArgument sortKeyArg = new InputArgument("sortKey", sortKey); + getInputArguments().get("events").add(sortKeyArg); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("events").add(queryArg); + return projection; + } + + public InventoryTransferLineItemConnectionProjection, ROOT> lineItems( + ) { + InventoryTransferLineItemConnectionProjection, ROOT> projection = new InventoryTransferLineItemConnectionProjection<>(this, getRoot()); + getFields().put("lineItems", projection); + return projection; + } + + public InventoryTransferLineItemConnectionProjection, ROOT> lineItems( + Integer first, String after, Integer last, String before, Boolean reverse, String query) { + InventoryTransferLineItemConnectionProjection, ROOT> projection = new InventoryTransferLineItemConnectionProjection<>(this, getRoot()); + getFields().put("lineItems", projection); + getInputArguments().computeIfAbsent("lineItems", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("lineItems").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("lineItems").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("lineItems").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("lineItems").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("lineItems").add(reverseArg); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("lineItems").add(queryArg); + return projection; + } + + public CountProjection, ROOT> lineItemsCount() { + CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); + getFields().put("lineItemsCount", projection); + return projection; + } + + public CountProjection, ROOT> lineItemsCount( + String query, Integer limit) { + CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); + getFields().put("lineItemsCount", projection); + getInputArguments().computeIfAbsent("lineItemsCount", k -> new ArrayList<>()); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("lineItemsCount").add(queryArg); + InputArgument limitArg = new InputArgument("limit", limit); + getInputArguments().get("lineItemsCount").add(limitArg); + return projection; + } + + public MetafieldProjection, ROOT> metafield() { + MetafieldProjection, ROOT> projection = new MetafieldProjection<>(this, getRoot()); + getFields().put("metafield", projection); + return projection; + } + + public MetafieldProjection, ROOT> metafield( + String namespace, String key) { + MetafieldProjection, ROOT> projection = new MetafieldProjection<>(this, getRoot()); + getFields().put("metafield", projection); + getInputArguments().computeIfAbsent("metafield", k -> new ArrayList<>()); + InputArgument namespaceArg = new InputArgument("namespace", namespace); + getInputArguments().get("metafield").add(namespaceArg); + InputArgument keyArg = new InputArgument("key", key); + getInputArguments().get("metafield").add(keyArg); + return projection; + } + + public MetafieldDefinitionConnectionProjection, ROOT> metafieldDefinitions( + ) { + MetafieldDefinitionConnectionProjection, ROOT> projection = new MetafieldDefinitionConnectionProjection<>(this, getRoot()); + getFields().put("metafieldDefinitions", projection); + return projection; + } + + public MetafieldDefinitionConnectionProjection, ROOT> metafieldDefinitions( + String namespace, MetafieldDefinitionPinnedStatus pinnedStatus, Integer first, String after, + Integer last, String before, Boolean reverse, MetafieldDefinitionSortKeys sortKey, + String query) { + MetafieldDefinitionConnectionProjection, ROOT> projection = new MetafieldDefinitionConnectionProjection<>(this, getRoot()); + getFields().put("metafieldDefinitions", projection); + getInputArguments().computeIfAbsent("metafieldDefinitions", k -> new ArrayList<>()); + InputArgument namespaceArg = new InputArgument("namespace", namespace); + getInputArguments().get("metafieldDefinitions").add(namespaceArg); + InputArgument pinnedStatusArg = new InputArgument("pinnedStatus", pinnedStatus); + getInputArguments().get("metafieldDefinitions").add(pinnedStatusArg); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("metafieldDefinitions").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("metafieldDefinitions").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("metafieldDefinitions").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("metafieldDefinitions").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("metafieldDefinitions").add(reverseArg); + InputArgument sortKeyArg = new InputArgument("sortKey", sortKey); + getInputArguments().get("metafieldDefinitions").add(sortKeyArg); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("metafieldDefinitions").add(queryArg); + return projection; + } + + public MetafieldConnectionProjection, ROOT> metafields( + ) { + MetafieldConnectionProjection, ROOT> projection = new MetafieldConnectionProjection<>(this, getRoot()); + getFields().put("metafields", projection); + return projection; + } + + public MetafieldConnectionProjection, ROOT> metafields( + String namespace, List keys, Integer first, String after, Integer last, String before, + Boolean reverse) { + MetafieldConnectionProjection, ROOT> projection = new MetafieldConnectionProjection<>(this, getRoot()); + getFields().put("metafields", projection); + getInputArguments().computeIfAbsent("metafields", k -> new ArrayList<>()); + InputArgument namespaceArg = new InputArgument("namespace", namespace); + getInputArguments().get("metafields").add(namespaceArg); + InputArgument keysArg = new InputArgument("keys", keys); + getInputArguments().get("metafields").add(keysArg); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("metafields").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("metafields").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("metafields").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("metafields").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("metafields").add(reverseArg); + return projection; + } + + public LocationSnapshotProjection, ROOT> origin() { + LocationSnapshotProjection, ROOT> projection = new LocationSnapshotProjection<>(this, getRoot()); + getFields().put("origin", projection); + return projection; + } + + public InventoryShipmentConnectionProjection, ROOT> shipments( + ) { + InventoryShipmentConnectionProjection, ROOT> projection = new InventoryShipmentConnectionProjection<>(this, getRoot()); + getFields().put("shipments", projection); + return projection; + } + + public InventoryShipmentConnectionProjection, ROOT> shipments( + Integer first, String after, Integer last, String before, Boolean reverse) { + InventoryShipmentConnectionProjection, ROOT> projection = new InventoryShipmentConnectionProjection<>(this, getRoot()); + getFields().put("shipments", projection); + getInputArguments().computeIfAbsent("shipments", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("shipments").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("shipments").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("shipments").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("shipments").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("shipments").add(reverseArg); + return projection; + } + + public InventoryTransferStatusProjection, ROOT> status( + ) { + InventoryTransferStatusProjection, ROOT> projection = new InventoryTransferStatusProjection<>(this, getRoot()); + getFields().put("status", projection); + return projection; + } + + public InventoryTransferProjection dateCreated() { + getFields().put("dateCreated", null); + return this; + } + + public InventoryTransferProjection hasTimelineComment() { + getFields().put("hasTimelineComment", null); + return this; + } + + public InventoryTransferProjection id() { + getFields().put("id", null); + return this; + } + + public InventoryTransferProjection name() { + getFields().put("name", null); + return this; + } + + public InventoryTransferProjection note() { + getFields().put("note", null); + return this; + } + + public InventoryTransferProjection receivedQuantity() { + getFields().put("receivedQuantity", null); + return this; + } + + public InventoryTransferProjection referenceName() { + getFields().put("referenceName", null); + return this; + } + + public InventoryTransferProjection tags() { + getFields().put("tags", null); + return this; + } + + public InventoryTransferProjection totalQuantity() { + getFields().put("totalQuantity", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferProjectionRoot.java new file mode 100644 index 00000000..1a1631e0 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferProjectionRoot.java @@ -0,0 +1,273 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; +import com.shopify.admin.types.EventSortKeys; +import com.shopify.admin.types.MetafieldDefinitionPinnedStatus; +import com.shopify.admin.types.MetafieldDefinitionSortKeys; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.String; +import java.util.ArrayList; +import java.util.List; + +public class InventoryTransferProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryTransferProjectionRoot() { + super(null, null, java.util.Optional.of("InventoryTransfer")); + } + + public InventoryTransferProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public LocationSnapshotProjection, InventoryTransferProjectionRoot> destination( + ) { + LocationSnapshotProjection, InventoryTransferProjectionRoot> projection = new LocationSnapshotProjection<>(this, this); + getFields().put("destination", projection); + return projection; + } + + public EventConnectionProjection, InventoryTransferProjectionRoot> events( + ) { + EventConnectionProjection, InventoryTransferProjectionRoot> projection = new EventConnectionProjection<>(this, this); + getFields().put("events", projection); + return projection; + } + + public EventConnectionProjection, InventoryTransferProjectionRoot> events( + Integer first, String after, Integer last, String before, Boolean reverse, + EventSortKeys sortKey, String query) { + EventConnectionProjection, InventoryTransferProjectionRoot> projection = new EventConnectionProjection<>(this, this); + getFields().put("events", projection); + getInputArguments().computeIfAbsent("events", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("events").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("events").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("events").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("events").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("events").add(reverseArg); + InputArgument sortKeyArg = new InputArgument("sortKey", sortKey); + getInputArguments().get("events").add(sortKeyArg); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("events").add(queryArg); + return projection; + } + + public InventoryTransferLineItemConnectionProjection, InventoryTransferProjectionRoot> lineItems( + ) { + InventoryTransferLineItemConnectionProjection, InventoryTransferProjectionRoot> projection = new InventoryTransferLineItemConnectionProjection<>(this, this); + getFields().put("lineItems", projection); + return projection; + } + + public InventoryTransferLineItemConnectionProjection, InventoryTransferProjectionRoot> lineItems( + Integer first, String after, Integer last, String before, Boolean reverse, String query) { + InventoryTransferLineItemConnectionProjection, InventoryTransferProjectionRoot> projection = new InventoryTransferLineItemConnectionProjection<>(this, this); + getFields().put("lineItems", projection); + getInputArguments().computeIfAbsent("lineItems", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("lineItems").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("lineItems").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("lineItems").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("lineItems").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("lineItems").add(reverseArg); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("lineItems").add(queryArg); + return projection; + } + + public CountProjection, InventoryTransferProjectionRoot> lineItemsCount( + ) { + CountProjection, InventoryTransferProjectionRoot> projection = new CountProjection<>(this, this); + getFields().put("lineItemsCount", projection); + return projection; + } + + public CountProjection, InventoryTransferProjectionRoot> lineItemsCount( + String query, Integer limit) { + CountProjection, InventoryTransferProjectionRoot> projection = new CountProjection<>(this, this); + getFields().put("lineItemsCount", projection); + getInputArguments().computeIfAbsent("lineItemsCount", k -> new ArrayList<>()); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("lineItemsCount").add(queryArg); + InputArgument limitArg = new InputArgument("limit", limit); + getInputArguments().get("lineItemsCount").add(limitArg); + return projection; + } + + public MetafieldProjection, InventoryTransferProjectionRoot> metafield( + ) { + MetafieldProjection, InventoryTransferProjectionRoot> projection = new MetafieldProjection<>(this, this); + getFields().put("metafield", projection); + return projection; + } + + public MetafieldProjection, InventoryTransferProjectionRoot> metafield( + String namespace, String key) { + MetafieldProjection, InventoryTransferProjectionRoot> projection = new MetafieldProjection<>(this, this); + getFields().put("metafield", projection); + getInputArguments().computeIfAbsent("metafield", k -> new ArrayList<>()); + InputArgument namespaceArg = new InputArgument("namespace", namespace); + getInputArguments().get("metafield").add(namespaceArg); + InputArgument keyArg = new InputArgument("key", key); + getInputArguments().get("metafield").add(keyArg); + return projection; + } + + public MetafieldDefinitionConnectionProjection, InventoryTransferProjectionRoot> metafieldDefinitions( + ) { + MetafieldDefinitionConnectionProjection, InventoryTransferProjectionRoot> projection = new MetafieldDefinitionConnectionProjection<>(this, this); + getFields().put("metafieldDefinitions", projection); + return projection; + } + + public MetafieldDefinitionConnectionProjection, InventoryTransferProjectionRoot> metafieldDefinitions( + String namespace, MetafieldDefinitionPinnedStatus pinnedStatus, Integer first, String after, + Integer last, String before, Boolean reverse, MetafieldDefinitionSortKeys sortKey, + String query) { + MetafieldDefinitionConnectionProjection, InventoryTransferProjectionRoot> projection = new MetafieldDefinitionConnectionProjection<>(this, this); + getFields().put("metafieldDefinitions", projection); + getInputArguments().computeIfAbsent("metafieldDefinitions", k -> new ArrayList<>()); + InputArgument namespaceArg = new InputArgument("namespace", namespace); + getInputArguments().get("metafieldDefinitions").add(namespaceArg); + InputArgument pinnedStatusArg = new InputArgument("pinnedStatus", pinnedStatus); + getInputArguments().get("metafieldDefinitions").add(pinnedStatusArg); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("metafieldDefinitions").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("metafieldDefinitions").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("metafieldDefinitions").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("metafieldDefinitions").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("metafieldDefinitions").add(reverseArg); + InputArgument sortKeyArg = new InputArgument("sortKey", sortKey); + getInputArguments().get("metafieldDefinitions").add(sortKeyArg); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("metafieldDefinitions").add(queryArg); + return projection; + } + + public MetafieldConnectionProjection, InventoryTransferProjectionRoot> metafields( + ) { + MetafieldConnectionProjection, InventoryTransferProjectionRoot> projection = new MetafieldConnectionProjection<>(this, this); + getFields().put("metafields", projection); + return projection; + } + + public MetafieldConnectionProjection, InventoryTransferProjectionRoot> metafields( + String namespace, List keys, Integer first, String after, Integer last, String before, + Boolean reverse) { + MetafieldConnectionProjection, InventoryTransferProjectionRoot> projection = new MetafieldConnectionProjection<>(this, this); + getFields().put("metafields", projection); + getInputArguments().computeIfAbsent("metafields", k -> new ArrayList<>()); + InputArgument namespaceArg = new InputArgument("namespace", namespace); + getInputArguments().get("metafields").add(namespaceArg); + InputArgument keysArg = new InputArgument("keys", keys); + getInputArguments().get("metafields").add(keysArg); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("metafields").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("metafields").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("metafields").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("metafields").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("metafields").add(reverseArg); + return projection; + } + + public LocationSnapshotProjection, InventoryTransferProjectionRoot> origin( + ) { + LocationSnapshotProjection, InventoryTransferProjectionRoot> projection = new LocationSnapshotProjection<>(this, this); + getFields().put("origin", projection); + return projection; + } + + public InventoryShipmentConnectionProjection, InventoryTransferProjectionRoot> shipments( + ) { + InventoryShipmentConnectionProjection, InventoryTransferProjectionRoot> projection = new InventoryShipmentConnectionProjection<>(this, this); + getFields().put("shipments", projection); + return projection; + } + + public InventoryShipmentConnectionProjection, InventoryTransferProjectionRoot> shipments( + Integer first, String after, Integer last, String before, Boolean reverse) { + InventoryShipmentConnectionProjection, InventoryTransferProjectionRoot> projection = new InventoryShipmentConnectionProjection<>(this, this); + getFields().put("shipments", projection); + getInputArguments().computeIfAbsent("shipments", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("shipments").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("shipments").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("shipments").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("shipments").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("shipments").add(reverseArg); + return projection; + } + + public InventoryTransferStatusProjection, InventoryTransferProjectionRoot> status( + ) { + InventoryTransferStatusProjection, InventoryTransferProjectionRoot> projection = new InventoryTransferStatusProjection<>(this, this); + getFields().put("status", projection); + return projection; + } + + public InventoryTransferProjectionRoot dateCreated() { + getFields().put("dateCreated", null); + return this; + } + + public InventoryTransferProjectionRoot hasTimelineComment() { + getFields().put("hasTimelineComment", null); + return this; + } + + public InventoryTransferProjectionRoot id() { + getFields().put("id", null); + return this; + } + + public InventoryTransferProjectionRoot name() { + getFields().put("name", null); + return this; + } + + public InventoryTransferProjectionRoot note() { + getFields().put("note", null); + return this; + } + + public InventoryTransferProjectionRoot receivedQuantity() { + getFields().put("receivedQuantity", null); + return this; + } + + public InventoryTransferProjectionRoot referenceName() { + getFields().put("referenceName", null); + return this; + } + + public InventoryTransferProjectionRoot tags() { + getFields().put("tags", null); + return this; + } + + public InventoryTransferProjectionRoot totalQuantity() { + getFields().put("totalQuantity", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferRemoveItemsGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferRemoveItemsGraphQLQuery.java new file mode 100644 index 00000000..b098dc34 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferRemoveItemsGraphQLQuery.java @@ -0,0 +1,62 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import com.shopify.admin.types.InventoryTransferRemoveItemsInput; +import java.lang.Override; +import java.lang.String; +import java.util.HashSet; +import java.util.Set; + +/** + * This mutation allows removing the shippable quantities of line items on a Transfer. + * It removes all quantities of the item from the transfer that are not associated with shipments. + */ +public class InventoryTransferRemoveItemsGraphQLQuery extends GraphQLQuery { + public InventoryTransferRemoveItemsGraphQLQuery(InventoryTransferRemoveItemsInput input, + String queryName, Set fieldsSet) { + super("mutation", queryName); + if (input != null || fieldsSet.contains("input")) { + getInput().put("input", input); + } + } + + public InventoryTransferRemoveItemsGraphQLQuery() { + super("mutation"); + } + + @Override + public String getOperationName() { + return "inventoryTransferRemoveItems"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private InventoryTransferRemoveItemsInput input; + + private String queryName; + + public InventoryTransferRemoveItemsGraphQLQuery build() { + return new InventoryTransferRemoveItemsGraphQLQuery(input, queryName, fieldsSet); + + } + + /** + * The input fields for the InventoryTransferRemoveItems mutation. + */ + public Builder input(InventoryTransferRemoveItemsInput input) { + this.input = input; + this.fieldsSet.add("input"); + return this; + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferRemoveItemsProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferRemoveItemsProjectionRoot.java new file mode 100644 index 00000000..622b93b3 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferRemoveItemsProjectionRoot.java @@ -0,0 +1,35 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryTransferRemoveItemsProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryTransferRemoveItemsProjectionRoot() { + super(null, null, java.util.Optional.of("InventoryTransferRemoveItemsPayload")); + } + + public InventoryTransferRemoveItemsProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryTransferProjection, InventoryTransferRemoveItemsProjectionRoot> inventoryTransfer( + ) { + InventoryTransferProjection, InventoryTransferRemoveItemsProjectionRoot> projection = new InventoryTransferProjection<>(this, this); + getFields().put("inventoryTransfer", projection); + return projection; + } + + public InventoryTransferLineItemUpdateProjection, InventoryTransferRemoveItemsProjectionRoot> removedQuantities( + ) { + InventoryTransferLineItemUpdateProjection, InventoryTransferRemoveItemsProjectionRoot> projection = new InventoryTransferLineItemUpdateProjection<>(this, this); + getFields().put("removedQuantities", projection); + return projection; + } + + public InventoryTransferRemoveItemsUserErrorProjection, InventoryTransferRemoveItemsProjectionRoot> userErrors( + ) { + InventoryTransferRemoveItemsUserErrorProjection, InventoryTransferRemoveItemsProjectionRoot> projection = new InventoryTransferRemoveItemsUserErrorProjection<>(this, this); + getFields().put("userErrors", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferRemoveItemsUserErrorCodeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferRemoveItemsUserErrorCodeProjection.java new file mode 100644 index 00000000..daf9c9f0 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferRemoveItemsUserErrorCodeProjection.java @@ -0,0 +1,14 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryTransferRemoveItemsUserErrorCodeProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryTransferRemoveItemsUserErrorCodeProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryTransferRemoveItemsUserErrorCode")); + } + + public InventoryTransferRemoveItemsUserErrorCodeProjection __typename() { + getFields().put("__typename", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferRemoveItemsUserErrorProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferRemoveItemsUserErrorProjection.java new file mode 100644 index 00000000..e3c6b4ab --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferRemoveItemsUserErrorProjection.java @@ -0,0 +1,31 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryTransferRemoveItemsUserErrorProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryTransferRemoveItemsUserErrorProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryTransferRemoveItemsUserError")); + } + + public InventoryTransferRemoveItemsUserErrorProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryTransferRemoveItemsUserErrorCodeProjection, ROOT> code( + ) { + InventoryTransferRemoveItemsUserErrorCodeProjection, ROOT> projection = new InventoryTransferRemoveItemsUserErrorCodeProjection<>(this, getRoot()); + getFields().put("code", projection); + return projection; + } + + public InventoryTransferRemoveItemsUserErrorProjection field() { + getFields().put("field", null); + return this; + } + + public InventoryTransferRemoveItemsUserErrorProjection message() { + getFields().put("message", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferSetItemsGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferSetItemsGraphQLQuery.java new file mode 100644 index 00000000..fac78269 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferSetItemsGraphQLQuery.java @@ -0,0 +1,66 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import com.shopify.admin.types.InventoryTransferSetItemsInput; +import java.lang.Override; +import java.lang.String; +import java.util.HashSet; +import java.util.Set; + +/** + * This mutation allows for the setting of line items on a Transfer. Will replace the items already set, if any. + * + * > Caution: + * > As of 2026-01, this mutation supports an optional idempotency key using the `@idempotent` directive. + * > As of 2026-04, the idempotency key is required and must be provided using the `@idempotent` directive. + * > For more information, see the [idempotency documentation](https://shopify.dev/docs/api/usage/idempotent-requests). + */ +public class InventoryTransferSetItemsGraphQLQuery extends GraphQLQuery { + public InventoryTransferSetItemsGraphQLQuery(InventoryTransferSetItemsInput input, + String queryName, Set fieldsSet) { + super("mutation", queryName); + if (input != null || fieldsSet.contains("input")) { + getInput().put("input", input); + } + } + + public InventoryTransferSetItemsGraphQLQuery() { + super("mutation"); + } + + @Override + public String getOperationName() { + return "inventoryTransferSetItems"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private InventoryTransferSetItemsInput input; + + private String queryName; + + public InventoryTransferSetItemsGraphQLQuery build() { + return new InventoryTransferSetItemsGraphQLQuery(input, queryName, fieldsSet); + + } + + /** + * The input fields for the InventoryTransferSetItems mutation. + */ + public Builder input(InventoryTransferSetItemsInput input) { + this.input = input; + this.fieldsSet.add("input"); + return this; + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferSetItemsProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferSetItemsProjectionRoot.java new file mode 100644 index 00000000..8809e928 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferSetItemsProjectionRoot.java @@ -0,0 +1,35 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryTransferSetItemsProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryTransferSetItemsProjectionRoot() { + super(null, null, java.util.Optional.of("InventoryTransferSetItemsPayload")); + } + + public InventoryTransferSetItemsProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryTransferProjection, InventoryTransferSetItemsProjectionRoot> inventoryTransfer( + ) { + InventoryTransferProjection, InventoryTransferSetItemsProjectionRoot> projection = new InventoryTransferProjection<>(this, this); + getFields().put("inventoryTransfer", projection); + return projection; + } + + public InventoryTransferLineItemUpdateProjection, InventoryTransferSetItemsProjectionRoot> updatedLineItems( + ) { + InventoryTransferLineItemUpdateProjection, InventoryTransferSetItemsProjectionRoot> projection = new InventoryTransferLineItemUpdateProjection<>(this, this); + getFields().put("updatedLineItems", projection); + return projection; + } + + public InventoryTransferSetItemsUserErrorProjection, InventoryTransferSetItemsProjectionRoot> userErrors( + ) { + InventoryTransferSetItemsUserErrorProjection, InventoryTransferSetItemsProjectionRoot> projection = new InventoryTransferSetItemsUserErrorProjection<>(this, this); + getFields().put("userErrors", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferSetItemsUserErrorCodeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferSetItemsUserErrorCodeProjection.java new file mode 100644 index 00000000..0736ff78 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferSetItemsUserErrorCodeProjection.java @@ -0,0 +1,14 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryTransferSetItemsUserErrorCodeProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryTransferSetItemsUserErrorCodeProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryTransferSetItemsUserErrorCode")); + } + + public InventoryTransferSetItemsUserErrorCodeProjection __typename() { + getFields().put("__typename", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferSetItemsUserErrorProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferSetItemsUserErrorProjection.java new file mode 100644 index 00000000..6853a0e7 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferSetItemsUserErrorProjection.java @@ -0,0 +1,31 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryTransferSetItemsUserErrorProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryTransferSetItemsUserErrorProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryTransferSetItemsUserError")); + } + + public InventoryTransferSetItemsUserErrorProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryTransferSetItemsUserErrorCodeProjection, ROOT> code( + ) { + InventoryTransferSetItemsUserErrorCodeProjection, ROOT> projection = new InventoryTransferSetItemsUserErrorCodeProjection<>(this, getRoot()); + getFields().put("code", projection); + return projection; + } + + public InventoryTransferSetItemsUserErrorProjection field() { + getFields().put("field", null); + return this; + } + + public InventoryTransferSetItemsUserErrorProjection message() { + getFields().put("message", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferStatusProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferStatusProjection.java new file mode 100644 index 00000000..527b3d3b --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransferStatusProjection.java @@ -0,0 +1,14 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryTransferStatusProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryTransferStatusProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InventoryTransferStatus")); + } + + public InventoryTransferStatusProjection __typename() { + getFields().put("__typename", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransfersGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransfersGraphQLQuery.java new file mode 100644 index 00000000..4695a57c --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransfersGraphQLQuery.java @@ -0,0 +1,179 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import com.shopify.admin.types.TransferSortKeys; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.Override; +import java.lang.String; +import java.util.HashSet; +import java.util.Set; + +/** + * Returns a paginated list of [`InventoryTransfer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryTransfer) + * objects between locations. Transfers track the movement of [`InventoryItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryItem) + * objects between [`Location`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location) objects. + * + * Supports filtering transfers using query parameters and sorting by various + * criteria. Use the connection's edges to access transfer details including [`InventoryTransferLineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryTransferLineItem) + * objects, quantities, and shipment status. + */ +public class InventoryTransfersGraphQLQuery extends GraphQLQuery { + public InventoryTransfersGraphQLQuery(Integer first, String after, Integer last, String before, + Boolean reverse, TransferSortKeys sortKey, String query, String savedSearchId, + String queryName, Set fieldsSet) { + super("query", queryName); + if (first != null || fieldsSet.contains("first")) { + getInput().put("first", first); + }if (after != null || fieldsSet.contains("after")) { + getInput().put("after", after); + }if (last != null || fieldsSet.contains("last")) { + getInput().put("last", last); + }if (before != null || fieldsSet.contains("before")) { + getInput().put("before", before); + }if (reverse != null || fieldsSet.contains("reverse")) { + getInput().put("reverse", reverse); + }if (sortKey != null || fieldsSet.contains("sortKey")) { + getInput().put("sortKey", sortKey); + }if (query != null || fieldsSet.contains("query")) { + getInput().put("query", query); + }if (savedSearchId != null || fieldsSet.contains("savedSearchId")) { + getInput().put("savedSearchId", savedSearchId); + } + } + + public InventoryTransfersGraphQLQuery() { + super("query"); + } + + @Override + public String getOperationName() { + return "inventoryTransfers"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private Integer first; + + private String after; + + private Integer last; + + private String before; + + private Boolean reverse; + + private TransferSortKeys sortKey; + + private String query; + + private String savedSearchId; + + private String queryName; + + public InventoryTransfersGraphQLQuery build() { + return new InventoryTransfersGraphQLQuery(first, after, last, before, reverse, sortKey, query, savedSearchId, queryName, fieldsSet); + + } + + /** + * The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + */ + public Builder first(Integer first) { + this.first = first; + this.fieldsSet.add("first"); + return this; + } + + /** + * The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + */ + public Builder after(String after) { + this.after = after; + this.fieldsSet.add("after"); + return this; + } + + /** + * The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + */ + public Builder last(Integer last) { + this.last = last; + this.fieldsSet.add("last"); + return this; + } + + /** + * The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + */ + public Builder before(String before) { + this.before = before; + this.fieldsSet.add("before"); + return this; + } + + /** + * Reverse the order of the underlying list. + */ + public Builder reverse(Boolean reverse) { + this.reverse = reverse; + this.fieldsSet.add("reverse"); + return this; + } + + /** + * Sort the underlying list using a key. If your query is slow or returns an + * error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). + */ + public Builder sortKey(TransferSortKeys sortKey) { + this.sortKey = sortKey; + this.fieldsSet.add("sortKey"); + return this; + } + + /** + * A filter made up of terms, connectives, modifiers, and comparators. + * | name | type | description | acceptable_values | default_value | example_use | + * | ---- | ---- | ---- | ---- | ---- | ---- | + * | default | string | Filter by a case-insensitive search of multiple fields + * in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | + * | created_at | time | + * | destination_id | id | + * | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | + * | origin_id | id | + * | product_id | id | + * | product_variant_id | id | + * | source_id | id | + * | status | string | + * | tag | string | Filter objects by the `tag` field. | | | - `tag:my_tag` | + * | tag_not | string | Filter by objects that don’t have the specified tag. | | | - `tag_not:my_tag` | + * You can apply one or more filters to a query. Learn more about [Shopify API + * search syntax](https://shopify.dev/api/usage/search-syntax). + */ + public Builder query(String query) { + this.query = query; + this.fieldsSet.add("query"); + return this; + } + + /** + * The ID of a [saved search](https://shopify.dev/api/admin-graphql/latest/objects/savedsearch#field-id). + * The search’s query string is used as the query argument. + */ + public Builder savedSearchId(String savedSearchId) { + this.savedSearchId = savedSearchId; + this.fieldsSet.add("savedSearchId"); + return this; + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransfersProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransfersProjectionRoot.java new file mode 100644 index 00000000..72782286 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InventoryTransfersProjectionRoot.java @@ -0,0 +1,35 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class InventoryTransfersProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public InventoryTransfersProjectionRoot() { + super(null, null, java.util.Optional.of("InventoryTransferConnection")); + } + + public InventoryTransfersProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public InventoryTransferEdgeProjection, InventoryTransfersProjectionRoot> edges( + ) { + InventoryTransferEdgeProjection, InventoryTransfersProjectionRoot> projection = new InventoryTransferEdgeProjection<>(this, this); + getFields().put("edges", projection); + return projection; + } + + public InventoryTransferProjection, InventoryTransfersProjectionRoot> nodes( + ) { + InventoryTransferProjection, InventoryTransfersProjectionRoot> projection = new InventoryTransferProjection<>(this, this); + getFields().put("nodes", projection); + return projection; + } + + public PageInfoProjection, InventoryTransfersProjectionRoot> pageInfo( + ) { + PageInfoProjection, InventoryTransfersProjectionRoot> projection = new PageInfoProjection<>(this, this); + getFields().put("pageInfo", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InvoiceReturnOutcomeFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InvoiceReturnOutcomeFragmentProjection.java new file mode 100644 index 00000000..89aae100 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/InvoiceReturnOutcomeFragmentProjection.java @@ -0,0 +1,41 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; +import java.lang.Override; +import java.lang.String; + +public class InvoiceReturnOutcomeFragmentProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + { + getFields().put("__typename", null); + } + + public InvoiceReturnOutcomeFragmentProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("InvoiceReturnOutcome")); + } + + public InvoiceReturnOutcomeFragmentProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public MoneyBagProjection, ROOT> amount() { + MoneyBagProjection, ROOT> projection = new MoneyBagProjection<>(this, getRoot()); + getFields().put("amount", projection); + return projection; + } + + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + builder.append("... on InvoiceReturnOutcome {"); + getFields().forEach((k, v) -> { + builder.append(" ").append(k); + if(v != null) { + builder.append(" ").append(v.toString()); + } + }); + builder.append("}"); + + return builder.toString(); + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LineItemFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LineItemFragmentProjection.java index 71eb19dc..46427404 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LineItemFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LineItemFragmentProjection.java @@ -126,6 +126,31 @@ public StaffMemberProjection, ROOT> sta return projection; } + public ReturnReasonDefinitionConnectionProjection, ROOT> suggestedReturnReasonDefinitions( + ) { + ReturnReasonDefinitionConnectionProjection, ROOT> projection = new ReturnReasonDefinitionConnectionProjection<>(this, getRoot()); + getFields().put("suggestedReturnReasonDefinitions", projection); + return projection; + } + + public ReturnReasonDefinitionConnectionProjection, ROOT> suggestedReturnReasonDefinitions( + Integer first, String after, Integer last, String before, Boolean reverse) { + ReturnReasonDefinitionConnectionProjection, ROOT> projection = new ReturnReasonDefinitionConnectionProjection<>(this, getRoot()); + getFields().put("suggestedReturnReasonDefinitions", projection); + getInputArguments().computeIfAbsent("suggestedReturnReasonDefinitions", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("suggestedReturnReasonDefinitions").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("suggestedReturnReasonDefinitions").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("suggestedReturnReasonDefinitions").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("suggestedReturnReasonDefinitions").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("suggestedReturnReasonDefinitions").add(reverseArg); + return projection; + } + public TaxLineProjection, ROOT> taxLines() { TaxLineProjection, ROOT> projection = new TaxLineProjection<>(this, getRoot()); getFields().put("taxLines", projection); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LineItemGroupFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LineItemGroupFragmentProjection.java index 5e93f841..c08e720e 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LineItemGroupFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LineItemGroupFragmentProjection.java @@ -30,6 +30,11 @@ public LineItemGroupFragmentProjection id() { return this; } + public LineItemGroupFragmentProjection productId() { + getFields().put("productId", null); + return this; + } + public LineItemGroupFragmentProjection quantity() { getFields().put("quantity", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LineItemGroupProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LineItemGroupProjection.java index e63cef2f..cd4600e3 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LineItemGroupProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LineItemGroupProjection.java @@ -23,6 +23,11 @@ public LineItemGroupProjection id() { return this; } + public LineItemGroupProjection productId() { + getFields().put("productId", null); + return this; + } + public LineItemGroupProjection quantity() { getFields().put("quantity", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LineItemProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LineItemProjection.java index 22cd4348..36a10201 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LineItemProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LineItemProjection.java @@ -3,6 +3,7 @@ import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; import java.lang.Boolean; import java.lang.Integer; +import java.lang.String; import java.util.ArrayList; public class LineItemProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { @@ -117,6 +118,31 @@ public StaffMemberProjection, ROOT> staffMember return projection; } + public ReturnReasonDefinitionConnectionProjection, ROOT> suggestedReturnReasonDefinitions( + ) { + ReturnReasonDefinitionConnectionProjection, ROOT> projection = new ReturnReasonDefinitionConnectionProjection<>(this, getRoot()); + getFields().put("suggestedReturnReasonDefinitions", projection); + return projection; + } + + public ReturnReasonDefinitionConnectionProjection, ROOT> suggestedReturnReasonDefinitions( + Integer first, String after, Integer last, String before, Boolean reverse) { + ReturnReasonDefinitionConnectionProjection, ROOT> projection = new ReturnReasonDefinitionConnectionProjection<>(this, getRoot()); + getFields().put("suggestedReturnReasonDefinitions", projection); + getInputArguments().computeIfAbsent("suggestedReturnReasonDefinitions", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("suggestedReturnReasonDefinitions").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("suggestedReturnReasonDefinitions").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("suggestedReturnReasonDefinitions").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("suggestedReturnReasonDefinitions").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("suggestedReturnReasonDefinitions").add(reverseArg); + return projection; + } + public TaxLineProjection, ROOT> taxLines() { TaxLineProjection, ROOT> projection = new TaxLineProjection<>(this, getRoot()); getFields().put("taxLines", projection); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LocationActivateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LocationActivateGraphQLQuery.java index ac2c51cd..a2e16457 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LocationActivateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LocationActivateGraphQLQuery.java @@ -11,6 +11,11 @@ * [`isActive`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location#field-isactive) and * [`activatable`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location#field-activatable) * fields on the `Location` object. + * + * > Caution: + * > As of 2026-01, this mutation supports an optional idempotency key using the `@idempotent` directive. + * As of 2026-04, the idempotency key is required and must be provided using the `@idempotent` directive. + * For more information, see the [idempotency documentation](https://shopify.dev/docs/api/usage/idempotent-requests). */ public class LocationActivateGraphQLQuery extends GraphQLQuery { public LocationActivateGraphQLQuery(String locationId, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LocationAddGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LocationAddGraphQLQuery.java index a781be92..03843742 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LocationAddGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LocationAddGraphQLQuery.java @@ -8,7 +8,14 @@ import java.util.Set; /** - * Adds a new location. + * Adds a new [`Location`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location) where you can stock inventory and fulfill orders. Locations represent physical + * places like warehouses, retail stores, or fulfillment centers. + * + * The location requires a name and address with at least a country code. You can + * specify whether the location fulfills online orders, which determines if its + * inventory is available for online sales. You can also attach custom + * [metafields](https://shopify.dev/docs/apps/build/custom-data) to store + * additional information about the location. */ public class LocationAddGraphQLQuery extends GraphQLQuery { public LocationAddGraphQLQuery(LocationAddInput input, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LocationDeactivateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LocationDeactivateGraphQLQuery.java index 44a7c44d..7d928edb 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LocationDeactivateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LocationDeactivateGraphQLQuery.java @@ -7,7 +7,12 @@ import java.util.Set; /** - * Deactivates a location and moves inventory, pending orders, and moving transfers to a destination location. + * Deactivates a location and moves inventory, pending orders, and moving transfers " "to a destination location. + * + * > Caution: + * > As of 2026-01, this mutation supports an optional idempotency key using the `@idempotent` directive. + * As of 2026-04, the idempotency key is required and must be provided using the `@idempotent` directive. + * For more information, see the [idempotency documentation](https://shopify.dev/docs/api/usage/idempotent-requests). */ public class LocationDeactivateGraphQLQuery extends GraphQLQuery { public LocationDeactivateGraphQLQuery(String locationId, String destinationLocationId, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LocationEditGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LocationEditGraphQLQuery.java index 409c5dba..e8586646 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LocationEditGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LocationEditGraphQLQuery.java @@ -8,10 +8,20 @@ import java.util.Set; /** - * Edits an existing location. + * Updates the properties of an existing [`Location`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location). + * You can modify the location's name, address, whether it fulfills online + * orders, and custom + * [`metafields`](https://shopify.dev/docs/apps/build/custom-data). * - * [As of the 2023-10 API version](https://shopify.dev/changelog/apps-can-now-change-the-name-and-address-of-their-fulfillment-service-locations), - * apps can change the name and address of their fulfillment service locations. + * Apps that created a [`FulfillmentService`](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentService) + * can edit the associated location to ensure accurate representation of their + * fulfillment network. + * + * > Note: + * > You can't disable the [`fulfillsOnlineOrders`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/locationEdit#arguments-input.fields.fulfillsOnlineOrders) + * setting for fulfillment service locations. + * + * Learn more about [editing locations for fulfillment services](https://shopify.dev/docs/apps/build/orders-fulfillment/fulfillment-service-apps/build-for-fulfillment-services#step-2-edit-locations). */ public class LocationEditGraphQLQuery extends GraphQLQuery { public LocationEditGraphQLQuery(String id, LocationEditInput input, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LocationGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LocationGraphQLQuery.java index 1ef1cd38..e787939f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LocationGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LocationGraphQLQuery.java @@ -7,7 +7,12 @@ import java.util.Set; /** - * Returns an inventory Location resource by ID. + * Retrieves a [`Location`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location) by its ID. Locations are physical places where merchants store inventory, such + * as warehouses, retail stores, or fulfillment centers. + * + * Each location tracks inventory levels, fulfillment capabilities, and address + * information. Active locations can stock products and fulfill orders based on + * their configuration settings. */ public class LocationGraphQLQuery extends GraphQLQuery { public LocationGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LocationLocalPickupEnableGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LocationLocalPickupEnableGraphQLQuery.java index a537326d..15d0935e 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LocationLocalPickupEnableGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LocationLocalPickupEnableGraphQLQuery.java @@ -8,7 +8,9 @@ import java.util.Set; /** - * Enables local pickup for a location. + * Enables local pickup for a location so customers can collect their orders in + * person. Configures the estimated pickup time that customers see at checkout + * and optional instructions for finding or accessing the pickup location. */ public class LocationLocalPickupEnableGraphQLQuery extends GraphQLQuery { public LocationLocalPickupEnableGraphQLQuery( diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LocationSnapshotProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LocationSnapshotProjection.java new file mode 100644 index 00000000..39509cdf --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LocationSnapshotProjection.java @@ -0,0 +1,36 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class LocationSnapshotProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public LocationSnapshotProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("LocationSnapshot")); + } + + public LocationSnapshotProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public LocationAddressProjection, ROOT> address() { + LocationAddressProjection, ROOT> projection = new LocationAddressProjection<>(this, getRoot()); + getFields().put("address", projection); + return projection; + } + + public LocationProjection, ROOT> location() { + LocationProjection, ROOT> projection = new LocationProjection<>(this, getRoot()); + getFields().put("location", projection); + return projection; + } + + public LocationSnapshotProjection name() { + getFields().put("name", null); + return this; + } + + public LocationSnapshotProjection snapshottedAt() { + getFields().put("snapshottedAt", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LocationsCountGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LocationsCountGraphQLQuery.java index 3c03c01a..1f71e082 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LocationsCountGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LocationsCountGraphQLQuery.java @@ -1,19 +1,23 @@ package com.shopify.admin.client; import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import java.lang.Integer; import java.lang.Override; import java.lang.String; import java.util.HashSet; import java.util.Set; /** - * Returns the count of locations for the given shop. Limited to a maximum of 10000. + * Returns the count of locations for the given shop. Limited to a maximum of 10000 by default. */ public class LocationsCountGraphQLQuery extends GraphQLQuery { - public LocationsCountGraphQLQuery(String query, String queryName, Set fieldsSet) { + public LocationsCountGraphQLQuery(String query, Integer limit, String queryName, + Set fieldsSet) { super("query", queryName); if (query != null || fieldsSet.contains("query")) { getInput().put("query", query); + }if (limit != null || fieldsSet.contains("limit")) { + getInput().put("limit", limit); } } @@ -35,10 +39,12 @@ public static class Builder { private String query; + private Integer limit; + private String queryName; public LocationsCountGraphQLQuery build() { - return new LocationsCountGraphQLQuery(query, queryName, fieldsSet); + return new LocationsCountGraphQLQuery(query, limit, queryName, fieldsSet); } @@ -71,6 +77,15 @@ public Builder query(String query) { return this; } + /** + * The upper bound on count value before returning a result. Use `null` to have no limit. + */ + public Builder limit(Integer limit) { + this.limit = limit; + this.fieldsSet.add("limit"); + return this; + } + public Builder queryName(String queryName) { this.queryName = queryName; return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LocationsGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LocationsGraphQLQuery.java index 6b77278d..5a12d291 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LocationsGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/LocationsGraphQLQuery.java @@ -10,7 +10,18 @@ import java.util.Set; /** - * Returns a list of active inventory locations. + * A paginated list of inventory locations where merchants can stock + * [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) + * items and fulfill + * [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) items. + * + * Returns only active locations by default. Use the [`includeInactive`](https://shopify.dev/docs/api/admin-graphql/latest/queries/locations#arguments-includeInactive) + * argument to retrieve deactivated locations that can no longer stock inventory + * or fulfill orders. Use the [`includeLegacy`](https://shopify.dev/docs/api/admin-graphql/latest/queries/locations#arguments-includeLegacy) + * argument to include locations that [`FulfillmentService`](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentService) + * apps manage. Use the [`query`](https://shopify.dev/docs/api/admin-graphql/latest/queries/locations#arguments-query) + * argument to filter by location attributes like name, address, and whether + * local pickup is enabled. */ public class LocationsGraphQLQuery extends GraphQLQuery { public LocationsGraphQLQuery(Integer first, String after, Integer last, String before, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MandateResourceTypeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MandateResourceTypeProjection.java new file mode 100644 index 00000000..6e11e7eb --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MandateResourceTypeProjection.java @@ -0,0 +1,14 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class MandateResourceTypeProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public MandateResourceTypeProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("MandateResourceType")); + } + + public MandateResourceTypeProjection __typename() { + getFields().put("__typename", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketCatalogFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketCatalogFragmentProjection.java index 78a78863..f756ee23 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketCatalogFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketCatalogFragmentProjection.java @@ -59,7 +59,7 @@ public CountProjection, ROOT> mark } public CountProjection, ROOT> marketsCount( - MarketType type, MarketStatus status, String query) { + MarketType type, MarketStatus status, String query, Integer limit) { CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); getFields().put("marketsCount", projection); getInputArguments().computeIfAbsent("marketsCount", k -> new ArrayList<>()); @@ -69,6 +69,8 @@ public CountProjection, ROOT> mark getInputArguments().get("marketsCount").add(statusArg); InputArgument queryArg = new InputArgument("query", query); getInputArguments().get("marketsCount").add(queryArg); + InputArgument limitArg = new InputArgument("limit", limit); + getInputArguments().get("marketsCount").add(limitArg); return projection; } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketCatalogProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketCatalogProjection.java index 9a4b48f6..1a80692d 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketCatalogProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketCatalogProjection.java @@ -54,7 +54,7 @@ public CountProjection, ROOT> marketsCount } public CountProjection, ROOT> marketsCount(MarketType type, - MarketStatus status, String query) { + MarketStatus status, String query, Integer limit) { CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); getFields().put("marketsCount", projection); getInputArguments().computeIfAbsent("marketsCount", k -> new ArrayList<>()); @@ -64,6 +64,8 @@ public CountProjection, ROOT> marketsCount getInputArguments().get("marketsCount").add(statusArg); InputArgument queryArg = new InputArgument("query", query); getInputArguments().get("marketsCount").add(queryArg); + InputArgument limitArg = new InputArgument("limit", limit); + getInputArguments().get("marketsCount").add(limitArg); return projection; } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketCreateGraphQLQuery.java index 387269d9..4c8415cf 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketCreateGraphQLQuery.java @@ -8,7 +8,18 @@ import java.util.Set; /** - * Creates a new market. + * Creates a [`Market`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Market) + * to deliver customized shopping experiences. Markets define various aspects of + * the buyer experience including pricing, product availability, custom content, + * inventory and fulfillment priorities, and payment methods. + * + * Define conditions to match buyers by region, company location, retail + * location, or other criteria. Configure [`MarketCurrencySettings`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MarketCurrencySettings) + * to control currency behavior. Set [`MarketPriceInclusions`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MarketPriceInclusions) + * to determine tax and duty display. Assign [`Catalog`](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/Catalog) objects and [`MarketWebPresence`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MarketWebPresence) + * configurations to control product availability and SEO strategy. + * + * Learn more about [Shopify Markets](https://shopify.dev/docs/apps/build/markets). */ public class MarketCreateGraphQLQuery extends GraphQLQuery { public MarketCreateGraphQLQuery(MarketCreateInput input, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketCurrencySettingsProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketCurrencySettingsProjection.java index bc13cc4a..92a6e840 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketCurrencySettingsProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketCurrencySettingsProjection.java @@ -23,4 +23,9 @@ public MarketCurrencySettingsProjection localCurrencies() { getFields().put("localCurrencies", null); return this; } + + public MarketCurrencySettingsProjection roundingEnabled() { + getFields().put("roundingEnabled", null); + return this; + } } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketGraphQLQuery.java index 8ec34539..38dcd5e1 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketGraphQLQuery.java @@ -7,7 +7,7 @@ import java.util.Set; /** - * Returns a market resource by ID. + * Returns a `Market` resource by ID. */ public class MarketGraphQLQuery extends GraphQLQuery { public MarketGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketingActivityCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketingActivityCreateGraphQLQuery.java index a6132d5d..5552a28f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketingActivityCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketingActivityCreateGraphQLQuery.java @@ -8,7 +8,7 @@ import java.util.Set; /** - * Create new marketing activity. + * Create new marketing activity. Marketing activity app extensions are deprecated and will be removed in the near future. */ public class MarketingActivityCreateGraphQLQuery extends GraphQLQuery { public MarketingActivityCreateGraphQLQuery(MarketingActivityCreateInput input, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketingActivityGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketingActivityGraphQLQuery.java index 8e2fb6bb..6970ab0a 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketingActivityGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketingActivityGraphQLQuery.java @@ -7,7 +7,7 @@ import java.util.Set; /** - * Returns a MarketingActivity resource by ID. + * Returns a `MarketingActivity` resource by ID. */ public class MarketingActivityGraphQLQuery extends GraphQLQuery { public MarketingActivityGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketingActivityUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketingActivityUpdateGraphQLQuery.java index 341dd0b8..f449205f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketingActivityUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketingActivityUpdateGraphQLQuery.java @@ -8,7 +8,8 @@ import java.util.Set; /** - * Updates a marketing activity with the latest information. + * Updates a marketing activity with the latest information. Marketing activity + * app extensions are deprecated and will be removed in the near future. */ public class MarketingActivityUpdateGraphQLQuery extends GraphQLQuery { public MarketingActivityUpdateGraphQLQuery(MarketingActivityUpdateInput input, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketingEngagementProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketingEngagementProjection.java index 2a5c0170..cc0a5b4c 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketingEngagementProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketingEngagementProjection.java @@ -31,6 +31,11 @@ public MoneyV2Projection, ROOT> sale return projection; } + public MarketingEngagementProjection allConversions() { + getFields().put("allConversions", null); + return this; + } + public MarketingEngagementProjection channelHandle() { getFields().put("channelHandle", null); return this; @@ -86,6 +91,11 @@ public MarketingEngagementProjection orders() { return this; } + public MarketingEngagementProjection primaryConversions() { + getFields().put("primaryConversions", null); + return this; + } + public MarketingEngagementProjection returningCustomers() { getFields().put("returningCustomers", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketingEventGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketingEventGraphQLQuery.java index e248a7ef..44015779 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketingEventGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketingEventGraphQLQuery.java @@ -7,7 +7,7 @@ import java.util.Set; /** - * Returns a MarketingEvent resource by ID. + * Returns a `MarketingEvent` resource by ID. */ public class MarketingEventGraphQLQuery extends GraphQLQuery { public MarketingEventGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketsGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketsGraphQLQuery.java index 5286cb07..f25d29d8 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketsGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketsGraphQLQuery.java @@ -11,7 +11,15 @@ import java.util.Set; /** - * The markets configured for the shop. + * Returns a paginated list of + * [`Market`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Market) + * objects configured for the shop. Markets match buyers based on defined + * conditions to deliver customized shopping experiences. + * + * Filter markets by [`MarketType`](https://shopify.dev/docs/api/admin-graphql/latest/enums/MarketType) and [`MarketStatus`](https://shopify.dev/docs/api/admin-graphql/latest/enums/MarketStatus), + * search by name, and control sort order. Retrieve market configurations including [`MarketCurrencySettings`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MarketCurrencySettings), [`MarketWebPresence`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MarketWebPresence) objects, and [`MarketConditions`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MarketConditions). + * + * Learn more about [Shopify Markets](https://shopify.dev/docs/apps/build/markets). */ public class MarketsGraphQLQuery extends GraphQLQuery { public MarketsGraphQLQuery(MarketType type, Integer first, String after, Integer last, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketsResolvedValuesGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketsResolvedValuesGraphQLQuery.java new file mode 100644 index 00000000..448bb81d --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketsResolvedValuesGraphQLQuery.java @@ -0,0 +1,61 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import com.shopify.admin.types.BuyerSignalInput; +import java.lang.Override; +import java.lang.String; +import java.util.HashSet; +import java.util.Set; + +/** + * The resolved values for a buyer signal. + */ +public class MarketsResolvedValuesGraphQLQuery extends GraphQLQuery { + public MarketsResolvedValuesGraphQLQuery(BuyerSignalInput buyerSignal, String queryName, + Set fieldsSet) { + super("query", queryName); + if (buyerSignal != null || fieldsSet.contains("buyerSignal")) { + getInput().put("buyerSignal", buyerSignal); + } + } + + public MarketsResolvedValuesGraphQLQuery() { + super("query"); + } + + @Override + public String getOperationName() { + return "marketsResolvedValues"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private BuyerSignalInput buyerSignal; + + private String queryName; + + public MarketsResolvedValuesGraphQLQuery build() { + return new MarketsResolvedValuesGraphQLQuery(buyerSignal, queryName, fieldsSet); + + } + + /** + * The buyer signal. + */ + public Builder buyerSignal(BuyerSignalInput buyerSignal) { + this.buyerSignal = buyerSignal; + this.fieldsSet.add("buyerSignal"); + return this; + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketsResolvedValuesProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketsResolvedValuesProjection.java new file mode 100644 index 00000000..f4d2f55b --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketsResolvedValuesProjection.java @@ -0,0 +1,82 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.String; +import java.util.ArrayList; + +public class MarketsResolvedValuesProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public MarketsResolvedValuesProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("MarketsResolvedValues")); + } + + public MarketsResolvedValuesProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public MarketCatalogConnectionProjection, ROOT> catalogs( + ) { + MarketCatalogConnectionProjection, ROOT> projection = new MarketCatalogConnectionProjection<>(this, getRoot()); + getFields().put("catalogs", projection); + return projection; + } + + public MarketCatalogConnectionProjection, ROOT> catalogs( + Integer first, String after, Integer last, String before, Boolean reverse) { + MarketCatalogConnectionProjection, ROOT> projection = new MarketCatalogConnectionProjection<>(this, getRoot()); + getFields().put("catalogs", projection); + getInputArguments().computeIfAbsent("catalogs", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("catalogs").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("catalogs").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("catalogs").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("catalogs").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("catalogs").add(reverseArg); + return projection; + } + + public CurrencyCodeProjection, ROOT> currencyCode( + ) { + CurrencyCodeProjection, ROOT> projection = new CurrencyCodeProjection<>(this, getRoot()); + getFields().put("currencyCode", projection); + return projection; + } + + public ResolvedPriceInclusivityProjection, ROOT> priceInclusivity( + ) { + ResolvedPriceInclusivityProjection, ROOT> projection = new ResolvedPriceInclusivityProjection<>(this, getRoot()); + getFields().put("priceInclusivity", projection); + return projection; + } + + public MarketWebPresenceConnectionProjection, ROOT> webPresences( + ) { + MarketWebPresenceConnectionProjection, ROOT> projection = new MarketWebPresenceConnectionProjection<>(this, getRoot()); + getFields().put("webPresences", projection); + return projection; + } + + public MarketWebPresenceConnectionProjection, ROOT> webPresences( + Integer first, String after, Integer last, String before, Boolean reverse) { + MarketWebPresenceConnectionProjection, ROOT> projection = new MarketWebPresenceConnectionProjection<>(this, getRoot()); + getFields().put("webPresences", projection); + getInputArguments().computeIfAbsent("webPresences", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("webPresences").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("webPresences").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("webPresences").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("webPresences").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("webPresences").add(reverseArg); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketsResolvedValuesProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketsResolvedValuesProjectionRoot.java new file mode 100644 index 00000000..59fc08ee --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MarketsResolvedValuesProjectionRoot.java @@ -0,0 +1,82 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.String; +import java.util.ArrayList; + +public class MarketsResolvedValuesProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public MarketsResolvedValuesProjectionRoot() { + super(null, null, java.util.Optional.of("MarketsResolvedValues")); + } + + public MarketsResolvedValuesProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public MarketCatalogConnectionProjection, MarketsResolvedValuesProjectionRoot> catalogs( + ) { + MarketCatalogConnectionProjection, MarketsResolvedValuesProjectionRoot> projection = new MarketCatalogConnectionProjection<>(this, this); + getFields().put("catalogs", projection); + return projection; + } + + public MarketCatalogConnectionProjection, MarketsResolvedValuesProjectionRoot> catalogs( + Integer first, String after, Integer last, String before, Boolean reverse) { + MarketCatalogConnectionProjection, MarketsResolvedValuesProjectionRoot> projection = new MarketCatalogConnectionProjection<>(this, this); + getFields().put("catalogs", projection); + getInputArguments().computeIfAbsent("catalogs", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("catalogs").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("catalogs").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("catalogs").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("catalogs").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("catalogs").add(reverseArg); + return projection; + } + + public CurrencyCodeProjection, MarketsResolvedValuesProjectionRoot> currencyCode( + ) { + CurrencyCodeProjection, MarketsResolvedValuesProjectionRoot> projection = new CurrencyCodeProjection<>(this, this); + getFields().put("currencyCode", projection); + return projection; + } + + public ResolvedPriceInclusivityProjection, MarketsResolvedValuesProjectionRoot> priceInclusivity( + ) { + ResolvedPriceInclusivityProjection, MarketsResolvedValuesProjectionRoot> projection = new ResolvedPriceInclusivityProjection<>(this, this); + getFields().put("priceInclusivity", projection); + return projection; + } + + public MarketWebPresenceConnectionProjection, MarketsResolvedValuesProjectionRoot> webPresences( + ) { + MarketWebPresenceConnectionProjection, MarketsResolvedValuesProjectionRoot> projection = new MarketWebPresenceConnectionProjection<>(this, this); + getFields().put("webPresences", projection); + return projection; + } + + public MarketWebPresenceConnectionProjection, MarketsResolvedValuesProjectionRoot> webPresences( + Integer first, String after, Integer last, String before, Boolean reverse) { + MarketWebPresenceConnectionProjection, MarketsResolvedValuesProjectionRoot> projection = new MarketWebPresenceConnectionProjection<>(this, this); + getFields().put("webPresences", projection); + getInputArguments().computeIfAbsent("webPresences", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("webPresences").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("webPresences").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("webPresences").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("webPresences").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("webPresences").add(reverseArg); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MediaImageFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MediaImageFragmentProjection.java index 14a895f6..942fe210 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MediaImageFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MediaImageFragmentProjection.java @@ -126,6 +126,24 @@ public MediaStatusProjection, ROOT> s return projection; } + public TranslationProjection, ROOT> translations() { + TranslationProjection, ROOT> projection = new TranslationProjection<>(this, getRoot()); + getFields().put("translations", projection); + return projection; + } + + public TranslationProjection, ROOT> translations( + String locale, String marketId) { + TranslationProjection, ROOT> projection = new TranslationProjection<>(this, getRoot()); + getFields().put("translations", projection); + getInputArguments().computeIfAbsent("translations", k -> new ArrayList<>()); + InputArgument localeArg = new InputArgument("locale", locale); + getInputArguments().get("translations").add(localeArg); + InputArgument marketIdArg = new InputArgument("marketId", marketId); + getInputArguments().get("translations").add(marketIdArg); + return projection; + } + public MediaImageFragmentProjection alt() { getFields().put("alt", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MediaImageProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MediaImageProjection.java index 39608df1..c27c9e97 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MediaImageProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MediaImageProjection.java @@ -119,6 +119,24 @@ public MediaStatusProjection, ROOT> status() return projection; } + public TranslationProjection, ROOT> translations() { + TranslationProjection, ROOT> projection = new TranslationProjection<>(this, getRoot()); + getFields().put("translations", projection); + return projection; + } + + public TranslationProjection, ROOT> translations(String locale, + String marketId) { + TranslationProjection, ROOT> projection = new TranslationProjection<>(this, getRoot()); + getFields().put("translations", projection); + getInputArguments().computeIfAbsent("translations", k -> new ArrayList<>()); + InputArgument localeArg = new InputArgument("locale", locale); + getInputArguments().get("translations").add(localeArg); + InputArgument marketIdArg = new InputArgument("marketId", marketId); + getInputArguments().get("translations").add(marketIdArg); + return projection; + } + public MediaImageProjection alt() { getFields().put("alt", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MenuCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MenuCreateGraphQLQuery.java index a1d24d47..3fa9ed8f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MenuCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MenuCreateGraphQLQuery.java @@ -9,7 +9,15 @@ import java.util.Set; /** - * Creates a menu. + * Creates a navigation + * [`Menu`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Menu) for + * the online store. Menus organize links that help customers navigate to [collections](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection), + * [products](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product), + * [pages](https://shopify.dev/docs/api/admin-graphql/latest/objects/Page), + * [blogs](https://shopify.dev/docs/api/admin-graphql/latest/objects/Blog), and custom URLs. + * + * Each menu requires a unique handle for identification and can contain multiple [`MenuItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MenuItem) + * objects with nested sub-items up to three levels deep. */ public class MenuCreateGraphQLQuery extends GraphQLQuery { public MenuCreateGraphQLQuery(String title, String handle, List items, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MenuGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MenuGraphQLQuery.java index b02cbc53..63c17aea 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MenuGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MenuGraphQLQuery.java @@ -7,7 +7,7 @@ import java.util.Set; /** - * Returns a Menu resource by ID. + * Returns a `Menu` resource by ID. */ public class MenuGraphQLQuery extends GraphQLQuery { public MenuGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MenuUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MenuUpdateGraphQLQuery.java index 409867ce..23c61041 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MenuUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MenuUpdateGraphQLQuery.java @@ -9,7 +9,14 @@ import java.util.Set; /** - * Updates a menu. + * Updates a [`Menu`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Menu) for + * display on the storefront. Modifies the menu's title and navigation structure, + * including nested [`MenuItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MenuItem) + * objects. You can update the handle for non-default menus. + * + * The items argument accepts a list of menu items with their nested structure. + * Each item can include nested items to create multi-level navigation + * hierarchies. Default menus have restricted updates—you can't change their handles. */ public class MenuUpdateGraphQLQuery extends GraphQLQuery { public MenuUpdateGraphQLQuery(String id, String title, String handle, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MenusGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MenusGraphQLQuery.java index 65d7ea36..3baa31eb 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MenusGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MenusGraphQLQuery.java @@ -10,7 +10,14 @@ import java.util.Set; /** - * The shop's menus. + * Retrieves navigation menus. Menus organize content into hierarchical + * navigation structures that merchants can display in the online store (for + * example, in headers, footers, and sidebars) and customer accounts. + * + * Each [`Menu`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Menu) + * contains a handle for identification, a title for display, and a collection of [`MenuItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MenuItem) + * objects that can be nested up to 3 levels deep. Default menus have protected + * handles that can't be modified. */ public class MenusGraphQLQuery extends GraphQLQuery { public MenusGraphQLQuery(Integer first, String after, Integer last, String before, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetafieldAccessGrantProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetafieldAccessGrantProjection.java deleted file mode 100644 index c27d1738..00000000 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetafieldAccessGrantProjection.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.shopify.admin.client; - -import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; - -public class MetafieldAccessGrantProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { - public MetafieldAccessGrantProjection(PARENT parent, ROOT root) { - super(parent, root, java.util.Optional.of("MetafieldAccessGrant")); - } - - public MetafieldAccessGrantProjection __typename() { - getFields().put("__typename", null); - return this; - } - - public MetafieldGrantAccessLevelProjection, ROOT> access( - ) { - MetafieldGrantAccessLevelProjection, ROOT> projection = new MetafieldGrantAccessLevelProjection<>(this, getRoot()); - getFields().put("access", projection); - return projection; - } - - public MetafieldAccessGrantProjection grantee() { - getFields().put("grantee", null); - return this; - } -} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetafieldAccessProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetafieldAccessProjection.java index 67fdc345..f275a659 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetafieldAccessProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetafieldAccessProjection.java @@ -25,12 +25,6 @@ public MetafieldCustomerAccountAccessProjection, ROOT> grants() { - MetafieldAccessGrantProjection, ROOT> projection = new MetafieldAccessGrantProjection<>(this, getRoot()); - getFields().put("grants", projection); - return projection; - } - public MetafieldStorefrontAccessProjection, ROOT> storefront( ) { MetafieldStorefrontAccessProjection, ROOT> projection = new MetafieldStorefrontAccessProjection<>(this, getRoot()); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetafieldDefinitionCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetafieldDefinitionCreateGraphQLQuery.java index 2e1da4c0..5ceabbd1 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetafieldDefinitionCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetafieldDefinitionCreateGraphQLQuery.java @@ -8,9 +8,17 @@ import java.util.Set; /** - * Creates a metafield definition. Any metafields existing under the same owner type, namespace, and key will be - * checked against this definition and will have their type updated accordingly. For metafields that are not - * valid, they will remain unchanged but any attempts to update them must align with this definition. + * Creates a [`MetafieldDefinition`](https://shopify.dev/docs/api/admin-graphql/current/objects/MetafieldDefinition) that establishes structure and validation rules for metafields. The definition + * specifies the data type, validation constraints, and access permissions for + * metafields with a given namespace and key combination. + * + * When you create a new definition, the system validates any existing + * unstructured metafields matching the same owner type, namespace, and key + * against it. The system updates each valid metafield's type to match the + * definition. Invalid metafields remain unchanged but must conform to the + * definition when updated. + * + * Learn more about [creating metafield definitions](https://shopify.dev/docs/apps/build/custom-data/metafields/definitions). */ public class MetafieldDefinitionCreateGraphQLQuery extends GraphQLQuery { public MetafieldDefinitionCreateGraphQLQuery(MetafieldDefinitionInput definition, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetafieldDefinitionDeleteGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetafieldDefinitionDeleteGraphQLQuery.java index c0136d0d..b519b1b4 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetafieldDefinitionDeleteGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetafieldDefinitionDeleteGraphQLQuery.java @@ -9,8 +9,14 @@ import java.util.Set; /** - * Delete a metafield definition. - * Optionally deletes all associated metafields asynchronously when specified. + * Deletes a [`MetafieldDefinition`](https://shopify.dev/docs/api/admin-graphql/current/objects/MetafieldDefinition). You can identify the definition by providing either its owner type, namespace, + * and key, or its global ID. + * + * When you set [`deleteAllAssociatedMetafields`](https://shopify.dev/docs/api/admin-graphql/current/mutations/metafieldDefinitionDelete#arguments-deleteAllAssociatedMetafields) to `true`, the mutation asynchronously deletes all [`Metafield`](https://shopify.dev/docs/api/admin-graphql/current/objects/Metafield) + * objects that use this definition. This option must be `true` when deleting + * definitions under the `$app` namespace. + * + * Learn more about [deleting metafield definitions](https://shopify.dev/docs/apps/build/custom-data/metafields/definitions). */ public class MetafieldDefinitionDeleteGraphQLQuery extends GraphQLQuery { public MetafieldDefinitionDeleteGraphQLQuery(String id, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetafieldDefinitionGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetafieldDefinitionGraphQLQuery.java index 359330e3..cfdb7769 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetafieldDefinitionGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetafieldDefinitionGraphQLQuery.java @@ -8,7 +8,11 @@ import java.util.Set; /** - * Returns a metafield definition by identifier. + * Retrieves a [`MetafieldDefinition`](https://shopify.dev/docs/api/admin-graphql/current/objects/MetafieldDefinition) by its identifier. You can identify a definition using either its owner type, + * namespace, and key, or its global ID. + * + * Use this query to inspect a definition's configuration, including its data + * type, validations, access settings, and the count of [metafields](https://shopify.dev/docs/api/admin-graphql/current/objects/Metafield) using it. */ public class MetafieldDefinitionGraphQLQuery extends GraphQLQuery { public MetafieldDefinitionGraphQLQuery(MetafieldDefinitionIdentifierInput identifier, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetafieldDefinitionTypesGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetafieldDefinitionTypesGraphQLQuery.java index e5f666c1..4c7e2406 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetafieldDefinitionTypesGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetafieldDefinitionTypesGraphQLQuery.java @@ -7,10 +7,12 @@ import java.util.Set; /** - * Each metafield definition has a type, which defines the type of information that it can store. - * This type is enforced across every instance of the resource that owns the metafield definition. + * The available metafield types that you can use when creating [`MetafieldDefinition`](https://shopify.dev/docs/api/admin-graphql/current/objects/MetafieldDefinition) + * objects. Each type specifies what kind of data it stores (such as boolean, + * color, date, or references), its category, and which validations it supports. * - * Refer to the [list of supported metafield types](https://shopify.dev/apps/metafields/types). + * For a list of supported types and their capabilities, refer to the [metafield + * types documentation](https://shopify.dev/docs/apps/metafields/types). */ public class MetafieldDefinitionTypesGraphQLQuery extends GraphQLQuery { public MetafieldDefinitionTypesGraphQLQuery(String queryName) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetafieldDefinitionUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetafieldDefinitionUpdateGraphQLQuery.java index 2b3dca70..b2ca87a1 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetafieldDefinitionUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetafieldDefinitionUpdateGraphQLQuery.java @@ -8,7 +8,20 @@ import java.util.Set; /** - * Updates a metafield definition. + * Updates a [`MetafieldDefinition`](https://shopify.dev/docs/api/admin-graphql/current/objects/MetafieldDefinition)'s configuration and settings. You can modify the definition's name, description, + * validation rules, access settings, capabilities, and constraints. + * + * The mutation updates access settings that control visibility across different + * APIs, such as the [GraphQL Admin + * API](https://shopify.dev/docs/api/admin-graphql), [Storefront + * API](https://shopify.dev/docs/api/storefront), and [Customer Account + * API](https://shopify.dev/docs/api/customer). It also enables capabilities like + * admin filtering or unique value validation, and modifies constraints that + * determine which resource subtypes the definition applies to. + * + * > Note: The type, namespace, key, and owner type identify the definition and so can't be changed. + * + * Learn more about [updating metafield definitions](https://shopify.dev/docs/apps/build/custom-data/metafields/definitions). */ public class MetafieldDefinitionUpdateGraphQLQuery extends GraphQLQuery { public MetafieldDefinitionUpdateGraphQLQuery(MetafieldDefinitionUpdateInput definition, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetafieldGrantAccessLevelProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetafieldGrantAccessLevelProjection.java deleted file mode 100644 index ff01fc80..00000000 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetafieldGrantAccessLevelProjection.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.shopify.admin.client; - -import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; - -public class MetafieldGrantAccessLevelProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { - public MetafieldGrantAccessLevelProjection(PARENT parent, ROOT root) { - super(parent, root, java.util.Optional.of("MetafieldGrantAccessLevel")); - } - - public MetafieldGrantAccessLevelProjection __typename() { - getFields().put("__typename", null); - return this; - } -} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetafieldReferenceProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetafieldReferenceProjection.java index 591393d2..72c36f6c 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetafieldReferenceProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetafieldReferenceProjection.java @@ -12,6 +12,12 @@ public MetafieldReferenceProjection __typename() { return this; } + public ArticleFragmentProjection, ROOT> onArticle() { + ArticleFragmentProjection, ROOT> fragment = new ArticleFragmentProjection<>(this, getRoot()); + getFragments().add(fragment); + return fragment; + } + public CollectionFragmentProjection, ROOT> onCollection( ) { CollectionFragmentProjection, ROOT> fragment = new CollectionFragmentProjection<>(this, getRoot()); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetafieldsDeleteGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetafieldsDeleteGraphQLQuery.java index 27493a55..c65a9c35 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetafieldsDeleteGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetafieldsDeleteGraphQLQuery.java @@ -9,7 +9,11 @@ import java.util.Set; /** - * Deletes multiple metafields in bulk. + * Deletes [`Metafield`](https://shopify.dev/docs/api/admin-graphql/current/objects/Metafield) objects in bulk by specifying combinations of owner ID, namespace, and key. + * + * Returns the identifiers of successfully deleted metafields. If a specified + * metafield doesn't exist, then the mutation still succeeds but returns `null` + * for that identifier in the response. */ public class MetafieldsDeleteGraphQLQuery extends GraphQLQuery { public MetafieldsDeleteGraphQLQuery(List metafields, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetafieldsSetGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetafieldsSetGraphQLQuery.java index 30afe22a..3b666265 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetafieldsSetGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetafieldsSetGraphQLQuery.java @@ -11,7 +11,7 @@ /** * Sets metafield values. Metafield values will be set regardless if they were previously created or not. * - * Allows a maximum of 25 metafields to be set at a time. + * Allows a maximum of 25 metafields to be set at a time, with a maximum total request payload size of 10MB. * * This operation is atomic, meaning no changes are persisted if an error is encountered. * diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectAccessProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectAccessProjection.java index 8c3b20d9..6286441b 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectAccessProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectAccessProjection.java @@ -18,6 +18,13 @@ public MetaobjectAdminAccessProjection, return projection; } + public MetaobjectCustomerAccountAccessProjection, ROOT> customerAccount( + ) { + MetaobjectCustomerAccountAccessProjection, ROOT> projection = new MetaobjectCustomerAccountAccessProjection<>(this, getRoot()); + getFields().put("customerAccount", projection); + return projection; + } + public MetaobjectStorefrontAccessProjection, ROOT> storefront( ) { MetaobjectStorefrontAccessProjection, ROOT> projection = new MetaobjectStorefrontAccessProjection<>(this, getRoot()); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectByHandleGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectByHandleGraphQLQuery.java index d86d1369..b91759db 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectByHandleGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectByHandleGraphQLQuery.java @@ -8,7 +8,7 @@ import java.util.Set; /** - * Retrieves a metaobject by handle. + * Retrieves a [`Metaobject`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Metaobject) by its handle and type. Handles are unique identifiers within a metaobject type. */ public class MetaobjectByHandleGraphQLQuery extends GraphQLQuery { public MetaobjectByHandleGraphQLQuery(MetaobjectHandleInput handle, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectByHandleProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectByHandleProjectionRoot.java index 98eaf16b..f55fdc42 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectByHandleProjectionRoot.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectByHandleProjectionRoot.java @@ -114,6 +114,11 @@ public MetaobjectFieldProjection, return projection; } + public MetaobjectByHandleProjectionRoot createdAt() { + getFields().put("createdAt", null); + return this; + } + public MetaobjectByHandleProjectionRoot displayName() { getFields().put("displayName", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectCreateGraphQLQuery.java index 6d4d0b07..774593b4 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectCreateGraphQLQuery.java @@ -8,7 +8,15 @@ import java.util.Set; /** - * Creates a new metaobject. + * Creates a metaobject entry based on an existing [`MetaobjectDefinition`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetaobjectDefinition). + * The type must match a definition that already exists in the shop. + * + * Specify field values using key-value pairs that correspond to the field + * definitions. The mutation generates a unique handle automatically if you don't + * provide one. You can also configure capabilities like publishable status to + * control the metaobject's visibility across channels. + * + * Learn more about [managing metaobjects](https://shopify.dev/docs/apps/build/custom-data/metaobjects/manage-metaobjects). */ public class MetaobjectCreateGraphQLQuery extends GraphQLQuery { public MetaobjectCreateGraphQLQuery(MetaobjectCreateInput metaobject, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectCustomerAccountAccessProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectCustomerAccountAccessProjection.java new file mode 100644 index 00000000..3724bb88 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectCustomerAccountAccessProjection.java @@ -0,0 +1,14 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class MetaobjectCustomerAccountAccessProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public MetaobjectCustomerAccountAccessProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("MetaobjectCustomerAccountAccess")); + } + + public MetaobjectCustomerAccountAccessProjection __typename() { + getFields().put("__typename", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectDefinitionByTypeGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectDefinitionByTypeGraphQLQuery.java index b2b880c2..fe9be40b 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectDefinitionByTypeGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectDefinitionByTypeGraphQLQuery.java @@ -7,7 +7,8 @@ import java.util.Set; /** - * Finds a metaobject definition by type. + * Retrieves a [`MetaobjectDefinition`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetaobjectDefinition) by its type. The type serves as a unique identifier that distinguishes one + * metaobject definition from another. */ public class MetaobjectDefinitionByTypeGraphQLQuery extends GraphQLQuery { public MetaobjectDefinitionByTypeGraphQLQuery(String type, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectDefinitionCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectDefinitionCreateGraphQLQuery.java index d3e6088f..97aeada5 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectDefinitionCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectDefinitionCreateGraphQLQuery.java @@ -8,7 +8,17 @@ import java.util.Set; /** - * Creates a new metaobject definition. + * Creates a metaobject definition that establishes the structure for custom data + * objects in your store. The definition specifies the fields, data types, and + * access permissions that all [`Metaobject`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Metaobject) + * entries of this type share. + * + * Use the `type` field to create a unique namespace for your metaobjects. Prefix + * the type with `$app:` to reserve the definition for your app's exclusive use. + * The definition can include capabilities like publishable status or translation + * eligibility, to extend how metaobjects integrate with Shopify's features. + * + * Learn more about [managing metaobjects](https://shopify.dev/docs/apps/build/custom-data/metaobjects/manage-metaobjects). */ public class MetaobjectDefinitionCreateGraphQLQuery extends GraphQLQuery { public MetaobjectDefinitionCreateGraphQLQuery(MetaobjectDefinitionCreateInput definition, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectDefinitionGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectDefinitionGraphQLQuery.java index 640559dc..0cce7ae4 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectDefinitionGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectDefinitionGraphQLQuery.java @@ -7,7 +7,11 @@ import java.util.Set; /** - * Retrieves a metaobject definition by ID. + * Retrieves a [`MetaobjectDefinition`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetaobjectDefinition) by its global ID. Metaobject definitions provide the structure and fields for metaobjects. + * + * The definition includes field configurations, access settings, display + * preferences, and capabilities that determine how [metaobjects](https://shopify.dev/docs/api/admin-graphql/latest/objects/Metaobject) + * of this type behave across the Shopify platform. */ public class MetaobjectDefinitionGraphQLQuery extends GraphQLQuery { public MetaobjectDefinitionGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectDefinitionUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectDefinitionUpdateGraphQLQuery.java index 440f9847..4119270d 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectDefinitionUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectDefinitionUpdateGraphQLQuery.java @@ -8,7 +8,14 @@ import java.util.Set; /** - * Updates a metaobject definition with new settings and metafield definitions. + * Updates a [`MetaobjectDefinition`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetaobjectDefinition)'s configuration and field structure. You can modify the definition's name, + * description, display name key, access controls, and capabilities, as well as + * those of all its fields. + * + * The mutation supports reordering fields when `resetFieldOrder` is `true`, + * which arranges submitted fields first followed by alphabetized omitted fields. + * + * Learn more about [managing metaobjects](https://shopify.dev/docs/apps/build/custom-data/metaobjects/manage-metaobjects). */ public class MetaobjectDefinitionUpdateGraphQLQuery extends GraphQLQuery { public MetaobjectDefinitionUpdateGraphQLQuery(String id, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectDefinitionsGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectDefinitionsGraphQLQuery.java index 59dcaaa0..6c618e2b 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectDefinitionsGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectDefinitionsGraphQLQuery.java @@ -9,7 +9,14 @@ import java.util.Set; /** - * All metaobject definitions. + * Returns a paginated list of all [`MetaobjectDefinition`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetaobjectDefinition) + * objects configured for the store. Metaobject definitions provide the schema + * for creating custom data structures composed of individual fields. Each + * definition specifies the field types, access permissions, and capabilities for [`Metaobject`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Metaobject) + * entries of that type. Use this query to discover available metaobject types + * before creating or querying metaobject entries. + * + * Learn more about [managing metaobjects](https://shopify.dev/docs/apps/build/custom-data/metaobjects/manage-metaobjects). */ public class MetaobjectDefinitionsGraphQLQuery extends GraphQLQuery { public MetaobjectDefinitionsGraphQLQuery(Integer first, String after, Integer last, String before, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectFieldCapabilityAdminFilterableProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectFieldCapabilityAdminFilterableProjection.java new file mode 100644 index 00000000..e41010b0 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectFieldCapabilityAdminFilterableProjection.java @@ -0,0 +1,24 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class MetaobjectFieldCapabilityAdminFilterableProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public MetaobjectFieldCapabilityAdminFilterableProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("MetaobjectFieldCapabilityAdminFilterable")); + } + + public MetaobjectFieldCapabilityAdminFilterableProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public MetaobjectFieldCapabilityAdminFilterableProjection eligible() { + getFields().put("eligible", null); + return this; + } + + public MetaobjectFieldCapabilityAdminFilterableProjection enabled() { + getFields().put("enabled", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectFieldDefinitionCapabilitiesProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectFieldDefinitionCapabilitiesProjection.java new file mode 100644 index 00000000..9bc7df80 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectFieldDefinitionCapabilitiesProjection.java @@ -0,0 +1,21 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class MetaobjectFieldDefinitionCapabilitiesProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public MetaobjectFieldDefinitionCapabilitiesProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("MetaobjectFieldDefinitionCapabilities")); + } + + public MetaobjectFieldDefinitionCapabilitiesProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public MetaobjectFieldCapabilityAdminFilterableProjection, ROOT> adminFilterable( + ) { + MetaobjectFieldCapabilityAdminFilterableProjection, ROOT> projection = new MetaobjectFieldCapabilityAdminFilterableProjection<>(this, getRoot()); + getFields().put("adminFilterable", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectFieldDefinitionProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectFieldDefinitionProjection.java index eb095811..2c6c6960 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectFieldDefinitionProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectFieldDefinitionProjection.java @@ -12,6 +12,13 @@ public MetaobjectFieldDefinitionProjection __typename() { return this; } + public MetaobjectFieldDefinitionCapabilitiesProjection, ROOT> capabilities( + ) { + MetaobjectFieldDefinitionCapabilitiesProjection, ROOT> projection = new MetaobjectFieldDefinitionCapabilitiesProjection<>(this, getRoot()); + getFields().put("capabilities", projection); + return projection; + } + public MetafieldDefinitionTypeProjection, ROOT> type( ) { MetafieldDefinitionTypeProjection, ROOT> projection = new MetafieldDefinitionTypeProjection<>(this, getRoot()); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectFragmentProjection.java index d137cbf8..664cbdd4 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectFragmentProjection.java @@ -113,6 +113,11 @@ public MetaobjectFieldProjection, ROO return projection; } + public MetaobjectFragmentProjection createdAt() { + getFields().put("createdAt", null); + return this; + } + public MetaobjectFragmentProjection displayName() { getFields().put("displayName", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectGraphQLQuery.java index a1b9bc47..b4edeebe 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectGraphQLQuery.java @@ -7,7 +7,11 @@ import java.util.Set; /** - * Retrieves a metaobject by ID. + * Retrieves a single [`Metaobject`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Metaobject) + * by its global ID. [Metaobjects](https://shopify.dev/docs/apps/build/custom-data#what-are-metaobjects) + * store custom structured data based on defined schemas. The returned metaobject + * includes its fields with values, display name, handle, and associated metadata + * like update timestamps and capabilities. */ public class MetaobjectGraphQLQuery extends GraphQLQuery { public MetaobjectGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectProjection.java index cd11e85c..966956b9 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectProjection.java @@ -105,6 +105,11 @@ public MetaobjectFieldProjection, ROOT> thumb return projection; } + public MetaobjectProjection createdAt() { + getFields().put("createdAt", null); + return this; + } + public MetaobjectProjection displayName() { getFields().put("displayName", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectProjectionRoot.java index 47d9b0ff..ab7487bc 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectProjectionRoot.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectProjectionRoot.java @@ -114,6 +114,11 @@ public MetaobjectFieldProjection, Metaobj return projection; } + public MetaobjectProjectionRoot createdAt() { + getFields().put("createdAt", null); + return this; + } + public MetaobjectProjectionRoot displayName() { getFields().put("displayName", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectUpdateGraphQLQuery.java index 6c0a2858..dee17147 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectUpdateGraphQLQuery.java @@ -8,7 +8,13 @@ import java.util.Set; /** - * Updates an existing metaobject. + * Updates a [`Metaobject`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Metaobject) with new field values, handle, or capabilities. [Metaobjects](https://shopify.dev/docs/apps/build/custom-data#what-are-metaobjects) + * are custom data structures that extend Shopify's data model. + * + * You can modify field values mapped to the metaobject's [`MetaobjectDefinition`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetaobjectDefinition), + * update the handle for a unique identifier, and adjust capabilities like + * publishing status. When updating the handle, you can optionally create a + * redirect from the old handle to maintain existing references. */ public class MetaobjectUpdateGraphQLQuery extends GraphQLQuery { public MetaobjectUpdateGraphQLQuery(String id, MetaobjectUpdateInput metaobject, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectUpsertGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectUpsertGraphQLQuery.java index 06eee011..07058394 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectUpsertGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectUpsertGraphQLQuery.java @@ -9,8 +9,14 @@ import java.util.Set; /** - * Retrieves a metaobject by handle, then updates it with the provided input values. - * If no matching metaobject is found, a new metaobject is created with the provided input values. + * Creates or updates a [`Metaobject`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Metaobject) + * based on its handle. If a metaobject with the specified handle exists, the + * mutation updates it with the provided field values. If no matching metaobject + * exists, the mutation creates a new one. + * + * The handle serves as a unique identifier within a metaobject type. Field + * values map to the [`MetaobjectDefinition`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetaobjectDefinition)'s + * field keys and overwrite existing values during updates. */ public class MetaobjectUpsertGraphQLQuery extends GraphQLQuery { public MetaobjectUpsertGraphQLQuery(MetaobjectHandleInput handle, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectsGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectsGraphQLQuery.java index ab432aef..5cebf052 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectsGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/MetaobjectsGraphQLQuery.java @@ -9,7 +9,16 @@ import java.util.Set; /** - * All metaobjects for the shop. + * Returns a paginated list of [`Metaobject`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Metaobject) + * entries for a specific type. Metaobjects are custom data structures that + * extend Shopify's data model with merchant or app-specific data types. + * + * Filter results using the query parameter with a search syntax for metaobject + * fields. Use `fields.{key}:{value}` to filter by field values, supporting any + * field previously marked as filterable. The `sortKey` parameter accepts `id`, + * `type`, `updated_at`, or `display_name` to control result ordering. + * + * Learn more about [querying metaobjects by field value](https://shopify.dev/docs/apps/build/custom-data/metafields/query-by-metafield-value). */ public class MetaobjectsGraphQLQuery extends GraphQLQuery { public MetaobjectsGraphQLQuery(String type, String sortKey, Integer first, String after, @@ -142,6 +151,10 @@ public Builder reverse(Boolean reverse) { * | name | type | description | acceptable_values | default_value | example_use | * | ---- | ---- | ---- | ---- | ---- | ---- | * | display_name | string | + * | fields.{key} | mixed | Filters metaobject entries by field value. Format: + * `fields.{key}:{value}`. Only fields marked as filterable in the metaobject + * definition can be used. Learn more about [querying metaobjects by field value](https://shopify.dev/apps/build/custom-data/metafields/query-by-metafield-value). + * | | | - `fields.color:blue`
- `fields.on_sale:true` | * | handle | string | * | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | * | updated_at | time | diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/NodeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/NodeProjection.java index f6644c76..e8757259 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/NodeProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/NodeProjection.java @@ -265,6 +265,13 @@ public ConsentPolicyFragmentProjection, ROOT> onCon return fragment; } + public CurrencyExchangeAdjustmentFragmentProjection, ROOT> onCurrencyExchangeAdjustment( + ) { + CurrencyExchangeAdjustmentFragmentProjection, ROOT> fragment = new CurrencyExchangeAdjustmentFragmentProjection<>(this, getRoot()); + getFragments().add(fragment); + return fragment; + } + public CustomerFragmentProjection, ROOT> onCustomer() { CustomerFragmentProjection, ROOT> fragment = new CustomerFragmentProjection<>(this, getRoot()); getFragments().add(fragment); @@ -610,6 +617,34 @@ public InventoryQuantityFragmentProjection, ROOT> o return fragment; } + public InventoryShipmentFragmentProjection, ROOT> onInventoryShipment( + ) { + InventoryShipmentFragmentProjection, ROOT> fragment = new InventoryShipmentFragmentProjection<>(this, getRoot()); + getFragments().add(fragment); + return fragment; + } + + public InventoryShipmentLineItemFragmentProjection, ROOT> onInventoryShipmentLineItem( + ) { + InventoryShipmentLineItemFragmentProjection, ROOT> fragment = new InventoryShipmentLineItemFragmentProjection<>(this, getRoot()); + getFragments().add(fragment); + return fragment; + } + + public InventoryTransferFragmentProjection, ROOT> onInventoryTransfer( + ) { + InventoryTransferFragmentProjection, ROOT> fragment = new InventoryTransferFragmentProjection<>(this, getRoot()); + getFragments().add(fragment); + return fragment; + } + + public InventoryTransferLineItemFragmentProjection, ROOT> onInventoryTransferLineItem( + ) { + InventoryTransferLineItemFragmentProjection, ROOT> fragment = new InventoryTransferLineItemFragmentProjection<>(this, getRoot()); + getFragments().add(fragment); + return fragment; + } + public LineItemFragmentProjection, ROOT> onLineItem() { LineItemFragmentProjection, ROOT> fragment = new LineItemFragmentProjection<>(this, getRoot()); getFragments().add(fragment); @@ -743,6 +778,13 @@ public OrderDisputeSummaryFragmentProjection, ROOT> return fragment; } + public OrderEditSessionFragmentProjection, ROOT> onOrderEditSession( + ) { + OrderEditSessionFragmentProjection, ROOT> fragment = new OrderEditSessionFragmentProjection<>(this, getRoot()); + getFragments().add(fragment); + return fragment; + } + public OrderTransactionFragmentProjection, ROOT> onOrderTransaction( ) { OrderTransactionFragmentProjection, ROOT> fragment = new OrderTransactionFragmentProjection<>(this, getRoot()); @@ -788,6 +830,13 @@ public PaymentTermsTemplateFragmentProjection, ROOT return fragment; } + public PointOfSaleDeviceFragmentProjection, ROOT> onPointOfSaleDevice( + ) { + PointOfSaleDeviceFragmentProjection, ROOT> fragment = new PointOfSaleDeviceFragmentProjection<>(this, getRoot()); + getFragments().add(fragment); + return fragment; + } + public PriceListFragmentProjection, ROOT> onPriceList() { PriceListFragmentProjection, ROOT> fragment = new PriceListFragmentProjection<>(this, getRoot()); getFragments().add(fragment); @@ -932,6 +981,13 @@ public ReturnLineItemFragmentProjection, ROOT> onRe return fragment; } + public ReturnReasonDefinitionFragmentProjection, ROOT> onReturnReasonDefinition( + ) { + ReturnReasonDefinitionFragmentProjection, ROOT> fragment = new ReturnReasonDefinitionFragmentProjection<>(this, getRoot()); + getFragments().add(fragment); + return fragment; + } + public ReverseDeliveryFragmentProjection, ROOT> onReverseDelivery() { ReverseDeliveryFragmentProjection, ROOT> fragment = new ReverseDeliveryFragmentProjection<>(this, getRoot()); getFragments().add(fragment); @@ -1078,13 +1134,6 @@ public ShopifyPaymentsPayoutFragmentProjection, ROO return fragment; } - public ShopifyPaymentsVerificationFragmentProjection, ROOT> onShopifyPaymentsVerification( - ) { - ShopifyPaymentsVerificationFragmentProjection, ROOT> fragment = new ShopifyPaymentsVerificationFragmentProjection<>(this, getRoot()); - getFragments().add(fragment); - return fragment; - } - public ShopPolicyFragmentProjection, ROOT> onShopPolicy() { ShopPolicyFragmentProjection, ROOT> fragment = new ShopPolicyFragmentProjection<>(this, getRoot()); getFragments().add(fragment); @@ -1251,10 +1300,4 @@ public WebPixelFragmentProjection, ROOT> onWebPixel getFragments().add(fragment); return fragment; } - - public WebPresenceFragmentProjection, ROOT> onWebPresence() { - WebPresenceFragmentProjection, ROOT> fragment = new WebPresenceFragmentProjection<>(this, getRoot()); - getFragments().add(fragment); - return fragment; - } } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/NodeProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/NodeProjectionRoot.java index 3b2649ed..0462de70 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/NodeProjectionRoot.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/NodeProjectionRoot.java @@ -290,6 +290,13 @@ public ConsentPolicyFragmentProjection, NodePro return fragment; } + public CurrencyExchangeAdjustmentFragmentProjection, NodeProjectionRoot> onCurrencyExchangeAdjustment( + ) { + CurrencyExchangeAdjustmentFragmentProjection, NodeProjectionRoot> fragment = new CurrencyExchangeAdjustmentFragmentProjection<>(this, this); + getFragments().add(fragment); + return fragment; + } + public CustomerFragmentProjection, NodeProjectionRoot> onCustomer( ) { CustomerFragmentProjection, NodeProjectionRoot> fragment = new CustomerFragmentProjection<>(this, this); @@ -654,6 +661,34 @@ public InventoryQuantityFragmentProjection, Nod return fragment; } + public InventoryShipmentFragmentProjection, NodeProjectionRoot> onInventoryShipment( + ) { + InventoryShipmentFragmentProjection, NodeProjectionRoot> fragment = new InventoryShipmentFragmentProjection<>(this, this); + getFragments().add(fragment); + return fragment; + } + + public InventoryShipmentLineItemFragmentProjection, NodeProjectionRoot> onInventoryShipmentLineItem( + ) { + InventoryShipmentLineItemFragmentProjection, NodeProjectionRoot> fragment = new InventoryShipmentLineItemFragmentProjection<>(this, this); + getFragments().add(fragment); + return fragment; + } + + public InventoryTransferFragmentProjection, NodeProjectionRoot> onInventoryTransfer( + ) { + InventoryTransferFragmentProjection, NodeProjectionRoot> fragment = new InventoryTransferFragmentProjection<>(this, this); + getFragments().add(fragment); + return fragment; + } + + public InventoryTransferLineItemFragmentProjection, NodeProjectionRoot> onInventoryTransferLineItem( + ) { + InventoryTransferLineItemFragmentProjection, NodeProjectionRoot> fragment = new InventoryTransferLineItemFragmentProjection<>(this, this); + getFragments().add(fragment); + return fragment; + } + public LineItemFragmentProjection, NodeProjectionRoot> onLineItem( ) { LineItemFragmentProjection, NodeProjectionRoot> fragment = new LineItemFragmentProjection<>(this, this); @@ -801,6 +836,13 @@ public OrderDisputeSummaryFragmentProjection, N return fragment; } + public OrderEditSessionFragmentProjection, NodeProjectionRoot> onOrderEditSession( + ) { + OrderEditSessionFragmentProjection, NodeProjectionRoot> fragment = new OrderEditSessionFragmentProjection<>(this, this); + getFragments().add(fragment); + return fragment; + } + public OrderTransactionFragmentProjection, NodeProjectionRoot> onOrderTransaction( ) { OrderTransactionFragmentProjection, NodeProjectionRoot> fragment = new OrderTransactionFragmentProjection<>(this, this); @@ -850,6 +892,13 @@ public PaymentTermsTemplateFragmentProjection, return fragment; } + public PointOfSaleDeviceFragmentProjection, NodeProjectionRoot> onPointOfSaleDevice( + ) { + PointOfSaleDeviceFragmentProjection, NodeProjectionRoot> fragment = new PointOfSaleDeviceFragmentProjection<>(this, this); + getFragments().add(fragment); + return fragment; + } + public PriceListFragmentProjection, NodeProjectionRoot> onPriceList( ) { PriceListFragmentProjection, NodeProjectionRoot> fragment = new PriceListFragmentProjection<>(this, this); @@ -1004,6 +1053,13 @@ public ReturnLineItemFragmentProjection, NodePr return fragment; } + public ReturnReasonDefinitionFragmentProjection, NodeProjectionRoot> onReturnReasonDefinition( + ) { + ReturnReasonDefinitionFragmentProjection, NodeProjectionRoot> fragment = new ReturnReasonDefinitionFragmentProjection<>(this, this); + getFragments().add(fragment); + return fragment; + } + public ReverseDeliveryFragmentProjection, NodeProjectionRoot> onReverseDelivery( ) { ReverseDeliveryFragmentProjection, NodeProjectionRoot> fragment = new ReverseDeliveryFragmentProjection<>(this, this); @@ -1158,13 +1214,6 @@ public ShopifyPaymentsPayoutFragmentProjection, return fragment; } - public ShopifyPaymentsVerificationFragmentProjection, NodeProjectionRoot> onShopifyPaymentsVerification( - ) { - ShopifyPaymentsVerificationFragmentProjection, NodeProjectionRoot> fragment = new ShopifyPaymentsVerificationFragmentProjection<>(this, this); - getFragments().add(fragment); - return fragment; - } - public ShopPolicyFragmentProjection, NodeProjectionRoot> onShopPolicy( ) { ShopPolicyFragmentProjection, NodeProjectionRoot> fragment = new ShopPolicyFragmentProjection<>(this, this); @@ -1339,11 +1388,4 @@ public WebPixelFragmentProjection, NodeProjecti getFragments().add(fragment); return fragment; } - - public WebPresenceFragmentProjection, NodeProjectionRoot> onWebPresence( - ) { - WebPresenceFragmentProjection, NodeProjectionRoot> fragment = new WebPresenceFragmentProjection<>(this, this); - getFragments().add(fragment); - return fragment; - } } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/NodesProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/NodesProjectionRoot.java index f68e1443..90b2a6a2 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/NodesProjectionRoot.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/NodesProjectionRoot.java @@ -290,6 +290,13 @@ public ConsentPolicyFragmentProjection, NodesP return fragment; } + public CurrencyExchangeAdjustmentFragmentProjection, NodesProjectionRoot> onCurrencyExchangeAdjustment( + ) { + CurrencyExchangeAdjustmentFragmentProjection, NodesProjectionRoot> fragment = new CurrencyExchangeAdjustmentFragmentProjection<>(this, this); + getFragments().add(fragment); + return fragment; + } + public CustomerFragmentProjection, NodesProjectionRoot> onCustomer( ) { CustomerFragmentProjection, NodesProjectionRoot> fragment = new CustomerFragmentProjection<>(this, this); @@ -654,6 +661,34 @@ public InventoryQuantityFragmentProjection, No return fragment; } + public InventoryShipmentFragmentProjection, NodesProjectionRoot> onInventoryShipment( + ) { + InventoryShipmentFragmentProjection, NodesProjectionRoot> fragment = new InventoryShipmentFragmentProjection<>(this, this); + getFragments().add(fragment); + return fragment; + } + + public InventoryShipmentLineItemFragmentProjection, NodesProjectionRoot> onInventoryShipmentLineItem( + ) { + InventoryShipmentLineItemFragmentProjection, NodesProjectionRoot> fragment = new InventoryShipmentLineItemFragmentProjection<>(this, this); + getFragments().add(fragment); + return fragment; + } + + public InventoryTransferFragmentProjection, NodesProjectionRoot> onInventoryTransfer( + ) { + InventoryTransferFragmentProjection, NodesProjectionRoot> fragment = new InventoryTransferFragmentProjection<>(this, this); + getFragments().add(fragment); + return fragment; + } + + public InventoryTransferLineItemFragmentProjection, NodesProjectionRoot> onInventoryTransferLineItem( + ) { + InventoryTransferLineItemFragmentProjection, NodesProjectionRoot> fragment = new InventoryTransferLineItemFragmentProjection<>(this, this); + getFragments().add(fragment); + return fragment; + } + public LineItemFragmentProjection, NodesProjectionRoot> onLineItem( ) { LineItemFragmentProjection, NodesProjectionRoot> fragment = new LineItemFragmentProjection<>(this, this); @@ -801,6 +836,13 @@ public OrderDisputeSummaryFragmentProjection, return fragment; } + public OrderEditSessionFragmentProjection, NodesProjectionRoot> onOrderEditSession( + ) { + OrderEditSessionFragmentProjection, NodesProjectionRoot> fragment = new OrderEditSessionFragmentProjection<>(this, this); + getFragments().add(fragment); + return fragment; + } + public OrderTransactionFragmentProjection, NodesProjectionRoot> onOrderTransaction( ) { OrderTransactionFragmentProjection, NodesProjectionRoot> fragment = new OrderTransactionFragmentProjection<>(this, this); @@ -850,6 +892,13 @@ public PaymentTermsTemplateFragmentProjection, return fragment; } + public PointOfSaleDeviceFragmentProjection, NodesProjectionRoot> onPointOfSaleDevice( + ) { + PointOfSaleDeviceFragmentProjection, NodesProjectionRoot> fragment = new PointOfSaleDeviceFragmentProjection<>(this, this); + getFragments().add(fragment); + return fragment; + } + public PriceListFragmentProjection, NodesProjectionRoot> onPriceList( ) { PriceListFragmentProjection, NodesProjectionRoot> fragment = new PriceListFragmentProjection<>(this, this); @@ -1004,6 +1053,13 @@ public ReturnLineItemFragmentProjection, Nodes return fragment; } + public ReturnReasonDefinitionFragmentProjection, NodesProjectionRoot> onReturnReasonDefinition( + ) { + ReturnReasonDefinitionFragmentProjection, NodesProjectionRoot> fragment = new ReturnReasonDefinitionFragmentProjection<>(this, this); + getFragments().add(fragment); + return fragment; + } + public ReverseDeliveryFragmentProjection, NodesProjectionRoot> onReverseDelivery( ) { ReverseDeliveryFragmentProjection, NodesProjectionRoot> fragment = new ReverseDeliveryFragmentProjection<>(this, this); @@ -1158,13 +1214,6 @@ public ShopifyPaymentsPayoutFragmentProjection return fragment; } - public ShopifyPaymentsVerificationFragmentProjection, NodesProjectionRoot> onShopifyPaymentsVerification( - ) { - ShopifyPaymentsVerificationFragmentProjection, NodesProjectionRoot> fragment = new ShopifyPaymentsVerificationFragmentProjection<>(this, this); - getFragments().add(fragment); - return fragment; - } - public ShopPolicyFragmentProjection, NodesProjectionRoot> onShopPolicy( ) { ShopPolicyFragmentProjection, NodesProjectionRoot> fragment = new ShopPolicyFragmentProjection<>(this, this); @@ -1339,11 +1388,4 @@ public WebPixelFragmentProjection, NodesProjec getFragments().add(fragment); return fragment; } - - public WebPresenceFragmentProjection, NodesProjectionRoot> onWebPresence( - ) { - WebPresenceFragmentProjection, NodesProjectionRoot> fragment = new WebPresenceFragmentProjection<>(this, this); - getFragments().add(fragment); - return fragment; - } } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderByIdentifierProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderByIdentifierProjectionRoot.java index f2a2bc5c..e30a9d67 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderByIdentifierProjectionRoot.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderByIdentifierProjectionRoot.java @@ -1,14 +1,17 @@ package com.shopify.admin.client; import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; +import com.shopify.admin.types.Audience; import com.shopify.admin.types.CountryCode; import com.shopify.admin.types.EventSortKeys; import com.shopify.admin.types.LocalizationExtensionPurpose; import com.shopify.admin.types.LocalizedFieldPurpose; import com.shopify.admin.types.MetafieldDefinitionPinnedStatus; import com.shopify.admin.types.MetafieldDefinitionSortKeys; +import com.shopify.admin.types.NotificationUsage; import com.shopify.admin.types.RefundDutyInput; import com.shopify.admin.types.RefundLineItemInput; +import com.shopify.admin.types.RefundMethodAllocation; import java.lang.Boolean; import java.lang.Integer; import java.lang.String; @@ -361,12 +364,14 @@ public FulfillmentProjection, Orde } public FulfillmentProjection, OrderByIdentifierProjectionRoot> fulfillments( - Integer first) { + Integer first, String query) { FulfillmentProjection, OrderByIdentifierProjectionRoot> projection = new FulfillmentProjection<>(this, this); getFields().put("fulfillments", projection); getInputArguments().computeIfAbsent("fulfillments", k -> new ArrayList<>()); InputArgument firstArg = new InputArgument("first", first); getInputArguments().get("fulfillments").add(firstArg); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("fulfillments").add(queryArg); return projection; } @@ -807,6 +812,18 @@ public StaffMemberProjection, Orde return projection; } + public URLProjection, OrderByIdentifierProjectionRoot> statusPageUrl( + Audience audience, NotificationUsage notificationUsage) { + URLProjection, OrderByIdentifierProjectionRoot> projection = new URLProjection<>(this, this); + getFields().put("statusPageUrl", projection); + getInputArguments().computeIfAbsent("statusPageUrl", k -> new ArrayList<>()); + InputArgument audienceArg = new InputArgument("audience", audience); + getInputArguments().get("statusPageUrl").add(audienceArg); + InputArgument notificationUsageArg = new InputArgument("notificationUsage", notificationUsage); + getInputArguments().get("statusPageUrl").add(notificationUsageArg); + return projection; + } + public MoneyBagProjection, OrderByIdentifierProjectionRoot> subtotalPriceSet( ) { MoneyBagProjection, OrderByIdentifierProjectionRoot> projection = new MoneyBagProjection<>(this, this); @@ -823,7 +840,8 @@ public SuggestedRefundProjection, public SuggestedRefundProjection, OrderByIdentifierProjectionRoot> suggestedRefund( String shippingAmount, Boolean refundShipping, List refundLineItems, - List refundDuties, Boolean suggestFullRefund) { + List refundDuties, Boolean suggestFullRefund, + RefundMethodAllocation refundMethodAllocation) { SuggestedRefundProjection, OrderByIdentifierProjectionRoot> projection = new SuggestedRefundProjection<>(this, this); getFields().put("suggestedRefund", projection); getInputArguments().computeIfAbsent("suggestedRefund", k -> new ArrayList<>()); @@ -837,6 +855,8 @@ public SuggestedRefundProjection, getInputArguments().get("suggestedRefund").add(refundDutiesArg); InputArgument suggestFullRefundArg = new InputArgument("suggestFullRefund", suggestFullRefund); getInputArguments().get("suggestedRefund").add(suggestFullRefundArg); + InputArgument refundMethodAllocationArg = new InputArgument("refundMethodAllocation", refundMethodAllocation); + getInputArguments().get("suggestedRefund").add(refundMethodAllocationArg); return projection; } @@ -1129,6 +1149,11 @@ public OrderByIdentifierProjectionRoot note() { return this; } + public OrderByIdentifierProjectionRoot number() { + getFields().put("number", null); + return this; + } + public OrderByIdentifierProjectionRoot paymentGatewayNames() { getFields().put("paymentGatewayNames", null); return this; @@ -1149,6 +1174,11 @@ public OrderByIdentifierProjectionRoot processedAt() { return this; } + public OrderByIdentifierProjectionRoot productNetwork() { + getFields().put("productNetwork", null); + return this; + } + public OrderByIdentifierProjectionRoot referralCode() { getFields().put("referralCode", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCancelGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCancelGraphQLQuery.java index 453d3bb5..d92de91d 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCancelGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCancelGraphQLQuery.java @@ -2,6 +2,7 @@ import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; import com.shopify.admin.types.OrderCancelReason; +import com.shopify.admin.types.OrderCancelRefundMethodInput; import java.lang.Boolean; import java.lang.Override; import java.lang.String; @@ -9,16 +10,67 @@ import java.util.Set; /** - * Cancels an order. + * Cancels an order, with options for refunding, restocking inventory, and customer notification. + * + * > Caution: + * > Order cancellation is irreversible. An order that has been cancelled can't be restored to its original state. + * + * Use the `orderCancel` mutation to programmatically cancel orders in scenarios such as: + * + * - Customer-requested cancellations due to size, color, or other preference changes + * - Payment processing failures or declined transactions + * - Fraud detection and prevention + * - Insufficient inventory availability + * - Staff errors in order processing + * - Wholesale or B2B order management workflows + * + * The `orderCancel` mutation provides flexible refund options including refunding to original payment methods + * or issuing store credit. If a payment was only authorized (temporarily held) but not yet charged, + * that hold will be automatically released when the order is cancelled, even if you choose not to refund other payments. + * + * The mutation supports different cancellation reasons: customer requests, payment declines, fraud, + * inventory issues, staff errors, or other unspecified reasons. Each cancellation can include optional + * staff notes for internal documentation (notes aren't visible to customers). + * + * An order can only be cancelled if it meets the following criteria: + * + * - The order hasn't already been cancelled. + * - The order has no pending payment authorizations. + * - The order has no active returns in progress. + * - The order has no outstanding fulfillments that can't be cancelled. + * + * Orders might be assigned to locations that become + * [deactivated](https://help.shopify.com/manual/fulfillment/setup/locations-management#deactivate-and-reactivate-locations) + * after the order was created. When cancelling such orders, inventory behavior depends on payment status: + * + * - **Paid orders**: Cancellation will fail with an error if restocking is enabled, since inventory + * can't be returned to deactivated locations. + * - **Unpaid orders**: Cancellation succeeds but inventory is not restocked anywhere, even when the + * restock option is enabled. The committed inventory effectively becomes unavailable rather than being + * returned to stock at the deactivated location. + * + * After you cancel an order, you can still make limited updates to certain fields (like + * notes and tags) using the + * [`orderUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderUpdate). + * + * For partial refunds or more complex refund scenarios on active orders, + * such as refunding only specific line items while keeping the rest of the order fulfilled, + * consider using the [`refundCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/refundCreate) + * mutation instead of full order cancellation. + * + * Learn how to build apps that integrate with + * [order management and fulfillment processes](https://shopify.dev/docs/apps/build/orders-fulfillment). */ public class OrderCancelGraphQLQuery extends GraphQLQuery { - public OrderCancelGraphQLQuery(String orderId, boolean refund, boolean restock, - OrderCancelReason reason, Boolean notifyCustomer, String staffNote, String queryName, - Set fieldsSet) { + public OrderCancelGraphQLQuery(String orderId, OrderCancelRefundMethodInput refundMethod, + boolean restock, OrderCancelReason reason, Boolean notifyCustomer, String staffNote, + String queryName, Set fieldsSet) { super("mutation", queryName); if (orderId != null || fieldsSet.contains("orderId")) { getInput().put("orderId", orderId); - }getInput().put("refund", refund); getInput().put("restock", restock); if (reason != null || fieldsSet.contains("reason")) { + }if (refundMethod != null || fieldsSet.contains("refundMethod")) { + getInput().put("refundMethod", refundMethod); + }getInput().put("restock", restock); if (reason != null || fieldsSet.contains("reason")) { getInput().put("reason", reason); }if (notifyCustomer != null || fieldsSet.contains("notifyCustomer")) { getInput().put("notifyCustomer", notifyCustomer); @@ -45,7 +97,7 @@ public static class Builder { private String orderId; - private boolean refund; + private OrderCancelRefundMethodInput refundMethod; private boolean restock; @@ -58,7 +110,7 @@ public static class Builder { private String queryName; public OrderCancelGraphQLQuery build() { - return new OrderCancelGraphQLQuery(orderId, refund, restock, reason, notifyCustomer, staffNote, queryName, fieldsSet); + return new OrderCancelGraphQLQuery(orderId, refundMethod, restock, reason, notifyCustomer, staffNote, queryName, fieldsSet); } @@ -72,12 +124,11 @@ public Builder orderId(String orderId) { } /** - * Indicates whether to refund the amount paid by the customer. Authorized - * payments will be voided regardless of this setting. + * Indicates how to refund the amount paid by the customer. Authorized payments will be voided regardless of this setting. */ - public Builder refund(boolean refund) { - this.refund = refund; - this.fieldsSet.add("refund"); + public Builder refundMethod(OrderCancelRefundMethodInput refundMethod) { + this.refundMethod = refundMethod; + this.fieldsSet.add("refundMethod"); return this; } @@ -111,7 +162,7 @@ public Builder notifyCustomer(Boolean notifyCustomer) { } /** - * A staff-facing note about the order cancellation. This is not visible to the customer. + * A staff-facing note about the order cancellation. This is not visible to the customer. Maximum length of 255 characters. */ public Builder staffNote(String staffNote) { this.staffNote = staffNote; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCaptureGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCaptureGraphQLQuery.java index e0e02edd..f623757d 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCaptureGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCaptureGraphQLQuery.java @@ -8,13 +8,29 @@ import java.util.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 - * multi-capturable. To capture a partial payment, the included `amount` value - * should be less than the total order amount. Multi-capture is available only to - * stores on a Shopify Plus plan. + * Captures payment for an authorized transaction on an order. Use this mutation to claim the money that was previously + * reserved by an authorization transaction. + * + * The `orderCapture` mutation can be used in the following scenarios: + * + * - To capture the full amount of an authorized transaction + * - To capture a partial payment by specifying an amount less than the total order amount + * - To perform multiple captures on the same order, as long as the order transaction is + * [multi-capturable](https://shopify.dev/docs/api/admin-graphql/latest/objects/ordertransaction#field-OrderTransaction.fields.multiCapturable) + * + * > Note: + * > Multi-capture functionality is only available to stores on a + * [Shopify Plus plan](https://help.shopify.com/manual/intro-to-shopify/pricing-plans/plans-features/shopify-plus-plan). + * For multi-currency orders, the [`currency`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderCapture#arguments-input.fields.currency) + * field is required and should match the presentment currency from the order. + * + * After capturing a payment, you can: + * + * - View the transaction details including status, amount, and processing information. + * - Track the captured amount in both shop and presentment currencies. + * - Monitor the transaction's settlement status. + * + * Learn more about [order transactions](https://shopify.dev/docs/api/admin-graphql/latest/objects/OrderTransaction). */ public class OrderCaptureGraphQLQuery extends GraphQLQuery { public OrderCaptureGraphQLQuery(OrderCaptureInput input, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCloseGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCloseGraphQLQuery.java index a363ce37..ac654078 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCloseGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCloseGraphQLQuery.java @@ -8,7 +8,12 @@ import java.util.Set; /** - * Closes an open order. + * Marks an open [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) as + * closed. A closed order is one where merchants fulfill or cancel all [`LineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItem) + * objects and complete all financial transactions. + * + * Once closed, the order indicates that no further work is required. The order's [`closedAt`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-closedAt) + * timestamp is set when this mutation completes successfully. */ public class OrderCloseGraphQLQuery extends GraphQLQuery { public OrderCloseGraphQLQuery(OrderCloseInput input, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCreateMandatePaymentGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCreateMandatePaymentGraphQLQuery.java index b65c8b24..e2be09a2 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCreateMandatePaymentGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCreateMandatePaymentGraphQLQuery.java @@ -9,7 +9,22 @@ import java.util.Set; /** - * Creates a payment for an order by mandate. + * Creates a payment for an + * [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) using a stored [`PaymentMandate`](https://shopify.dev/docs/api/admin-graphql/latest/objects/PaymentMandate). + * A payment mandate represents the customer's authorization to charge their + * payment method for deferred payments, such as pre-orders or try-before-you-buy purchases. + * + * The mutation processes the payment asynchronously and returns a + * [`Job`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Job) for + * tracking the payment status. You can specify the payment amount to collect, and use the [`autoCapture`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderCreateMandatePayment#arguments-autoCapture) + * argument to either immediately capture the payment or only authorize it for + * later capture. Each payment request requires a unique [`idempotencyKey`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderCreateMandatePayment#arguments-idempotencyKey) + * to prevent duplicate charges. Subsequent calls with the same key return the + * original payment result rather than creating a new payment. + * + * Learn more about [deferred payments and payment mandates](https://shopify.dev/docs/apps/build/purchase-options/deferred#charging-the-remaining-balance) + * and [idempotent + * requests](https://shopify.dev/docs/api/usage/idempotent-requests). */ public class OrderCreateMandatePaymentGraphQLQuery extends GraphQLQuery { public OrderCreateMandatePaymentGraphQLQuery(String id, String paymentScheduleId, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCreateManualPaymentGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCreateManualPaymentGraphQLQuery.java index 97858981..d48affcc 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCreateManualPaymentGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCreateManualPaymentGraphQLQuery.java @@ -4,16 +4,24 @@ import com.shopify.admin.types.MoneyInput; import java.lang.Override; import java.lang.String; +import java.time.OffsetDateTime; import java.util.HashSet; import java.util.Set; /** - * Create a manual payment for an order. You can only create a manual payment for an order if it isn't already - * fully paid. + * Records a manual payment for an + * [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) + * that isn't fully paid. Use this mutation to track payments received outside + * the standard checkout process, such as cash, check, bank transfer, or other + * offline payment methods. + * + * You can specify the payment [amount](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderCreateManualPayment#arguments-amount), [method name](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderCreateManualPayment#arguments-paymentMethodName), + * and [when it was processed](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderCreateManualPayment#arguments-processedAt). */ public class OrderCreateManualPaymentGraphQLQuery extends GraphQLQuery { public OrderCreateManualPaymentGraphQLQuery(String id, MoneyInput amount, - String paymentMethodName, String queryName, Set fieldsSet) { + String paymentMethodName, OffsetDateTime processedAt, String queryName, + Set fieldsSet) { super("mutation", queryName); if (id != null || fieldsSet.contains("id")) { getInput().put("id", id); @@ -21,6 +29,8 @@ public OrderCreateManualPaymentGraphQLQuery(String id, MoneyInput amount, getInput().put("amount", amount); }if (paymentMethodName != null || fieldsSet.contains("paymentMethodName")) { getInput().put("paymentMethodName", paymentMethodName); + }if (processedAt != null || fieldsSet.contains("processedAt")) { + getInput().put("processedAt", processedAt); } } @@ -46,10 +56,12 @@ public static class Builder { private String paymentMethodName; + private OffsetDateTime processedAt; + private String queryName; public OrderCreateManualPaymentGraphQLQuery build() { - return new OrderCreateManualPaymentGraphQLQuery(id, amount, paymentMethodName, queryName, fieldsSet); + return new OrderCreateManualPaymentGraphQLQuery(id, amount, paymentMethodName, processedAt, queryName, fieldsSet); } @@ -81,6 +93,18 @@ public Builder paymentMethodName(String paymentMethodName) { return this; } + /** + * The date and time ([ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) + * format) when a manual payment was processed. If you're importing + * transactions from an app or another platform, then you can set processedAt + * to a date and time in the past to match when the original transaction was created. + */ + public Builder processedAt(OffsetDateTime processedAt) { + this.processedAt = processedAt; + this.fieldsSet.add("processedAt"); + return this; + } + public Builder queryName(String queryName) { this.queryName = queryName; return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCustomerRemoveGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCustomerRemoveGraphQLQuery.java new file mode 100644 index 00000000..2e316ddc --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCustomerRemoveGraphQLQuery.java @@ -0,0 +1,59 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import java.lang.Override; +import java.lang.String; +import java.util.HashSet; +import java.util.Set; + +/** + * Removes customer from an order. + */ +public class OrderCustomerRemoveGraphQLQuery extends GraphQLQuery { + public OrderCustomerRemoveGraphQLQuery(String orderId, String queryName, Set fieldsSet) { + super("mutation", queryName); + if (orderId != null || fieldsSet.contains("orderId")) { + getInput().put("orderId", orderId); + } + } + + public OrderCustomerRemoveGraphQLQuery() { + super("mutation"); + } + + @Override + public String getOperationName() { + return "orderCustomerRemove"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private String orderId; + + private String queryName; + + public OrderCustomerRemoveGraphQLQuery build() { + return new OrderCustomerRemoveGraphQLQuery(orderId, queryName, fieldsSet); + + } + + /** + * The ID of the order having its customer removed. + */ + public Builder orderId(String orderId) { + this.orderId = orderId; + this.fieldsSet.add("orderId"); + return this; + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCustomerRemoveProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCustomerRemoveProjectionRoot.java new file mode 100644 index 00000000..eb3d0c59 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCustomerRemoveProjectionRoot.java @@ -0,0 +1,28 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class OrderCustomerRemoveProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public OrderCustomerRemoveProjectionRoot() { + super(null, null, java.util.Optional.of("OrderCustomerRemovePayload")); + } + + public OrderCustomerRemoveProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public OrderProjection, OrderCustomerRemoveProjectionRoot> order( + ) { + OrderProjection, OrderCustomerRemoveProjectionRoot> projection = new OrderProjection<>(this, this); + getFields().put("order", projection); + return projection; + } + + public OrderCustomerRemoveUserErrorProjection, OrderCustomerRemoveProjectionRoot> userErrors( + ) { + OrderCustomerRemoveUserErrorProjection, OrderCustomerRemoveProjectionRoot> projection = new OrderCustomerRemoveUserErrorProjection<>(this, this); + getFields().put("userErrors", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCustomerRemoveUserErrorCodeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCustomerRemoveUserErrorCodeProjection.java new file mode 100644 index 00000000..e70d6fcb --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCustomerRemoveUserErrorCodeProjection.java @@ -0,0 +1,14 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class OrderCustomerRemoveUserErrorCodeProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public OrderCustomerRemoveUserErrorCodeProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("OrderCustomerRemoveUserErrorCode")); + } + + public OrderCustomerRemoveUserErrorCodeProjection __typename() { + getFields().put("__typename", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCustomerRemoveUserErrorProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCustomerRemoveUserErrorProjection.java new file mode 100644 index 00000000..84a97e20 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCustomerRemoveUserErrorProjection.java @@ -0,0 +1,31 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class OrderCustomerRemoveUserErrorProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public OrderCustomerRemoveUserErrorProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("OrderCustomerRemoveUserError")); + } + + public OrderCustomerRemoveUserErrorProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public OrderCustomerRemoveUserErrorCodeProjection, ROOT> code( + ) { + OrderCustomerRemoveUserErrorCodeProjection, ROOT> projection = new OrderCustomerRemoveUserErrorCodeProjection<>(this, getRoot()); + getFields().put("code", projection); + return projection; + } + + public OrderCustomerRemoveUserErrorProjection field() { + getFields().put("field", null); + return this; + } + + public OrderCustomerRemoveUserErrorProjection message() { + getFields().put("message", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCustomerSetGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCustomerSetGraphQLQuery.java new file mode 100644 index 00000000..afa70a93 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCustomerSetGraphQLQuery.java @@ -0,0 +1,73 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import java.lang.Override; +import java.lang.String; +import java.util.HashSet; +import java.util.Set; + +/** + * Sets a customer on an order. + */ +public class OrderCustomerSetGraphQLQuery extends GraphQLQuery { + public OrderCustomerSetGraphQLQuery(String orderId, String customerId, String queryName, + Set fieldsSet) { + super("mutation", queryName); + if (orderId != null || fieldsSet.contains("orderId")) { + getInput().put("orderId", orderId); + }if (customerId != null || fieldsSet.contains("customerId")) { + getInput().put("customerId", customerId); + } + } + + public OrderCustomerSetGraphQLQuery() { + super("mutation"); + } + + @Override + public String getOperationName() { + return "orderCustomerSet"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private String orderId; + + private String customerId; + + private String queryName; + + public OrderCustomerSetGraphQLQuery build() { + return new OrderCustomerSetGraphQLQuery(orderId, customerId, queryName, fieldsSet); + + } + + /** + * The ID of the order having a customer set. + */ + public Builder orderId(String orderId) { + this.orderId = orderId; + this.fieldsSet.add("orderId"); + return this; + } + + /** + * The ID of the customer being set on the order. + */ + public Builder customerId(String customerId) { + this.customerId = customerId; + this.fieldsSet.add("customerId"); + return this; + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCustomerSetProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCustomerSetProjectionRoot.java new file mode 100644 index 00000000..26bbc43f --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCustomerSetProjectionRoot.java @@ -0,0 +1,28 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class OrderCustomerSetProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public OrderCustomerSetProjectionRoot() { + super(null, null, java.util.Optional.of("OrderCustomerSetPayload")); + } + + public OrderCustomerSetProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public OrderProjection, OrderCustomerSetProjectionRoot> order( + ) { + OrderProjection, OrderCustomerSetProjectionRoot> projection = new OrderProjection<>(this, this); + getFields().put("order", projection); + return projection; + } + + public OrderCustomerSetUserErrorProjection, OrderCustomerSetProjectionRoot> userErrors( + ) { + OrderCustomerSetUserErrorProjection, OrderCustomerSetProjectionRoot> projection = new OrderCustomerSetUserErrorProjection<>(this, this); + getFields().put("userErrors", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCustomerSetUserErrorCodeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCustomerSetUserErrorCodeProjection.java new file mode 100644 index 00000000..0d91fe42 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCustomerSetUserErrorCodeProjection.java @@ -0,0 +1,14 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class OrderCustomerSetUserErrorCodeProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public OrderCustomerSetUserErrorCodeProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("OrderCustomerSetUserErrorCode")); + } + + public OrderCustomerSetUserErrorCodeProjection __typename() { + getFields().put("__typename", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCustomerSetUserErrorProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCustomerSetUserErrorProjection.java new file mode 100644 index 00000000..70eab3a2 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderCustomerSetUserErrorProjection.java @@ -0,0 +1,31 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class OrderCustomerSetUserErrorProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public OrderCustomerSetUserErrorProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("OrderCustomerSetUserError")); + } + + public OrderCustomerSetUserErrorProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public OrderCustomerSetUserErrorCodeProjection, ROOT> code( + ) { + OrderCustomerSetUserErrorCodeProjection, ROOT> projection = new OrderCustomerSetUserErrorCodeProjection<>(this, getRoot()); + getFields().put("code", projection); + return projection; + } + + public OrderCustomerSetUserErrorProjection field() { + getFields().put("field", null); + return this; + } + + public OrderCustomerSetUserErrorProjection message() { + getFields().put("message", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderDeleteGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderDeleteGraphQLQuery.java index 00dbf06e..0e8c4cbf 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderDeleteGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderDeleteGraphQLQuery.java @@ -7,7 +7,14 @@ import java.util.Set; /** - * Deletes an order. For more information on which orders can be deleted, refer to [Delete an order](https://help.shopify.com/manual/orders/cancel-delete-order#delete-an-order). + * Permanently deletes an [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) from the store. + * + * You can only delete [specific order types](https://help.shopify.com/manual/orders/cancel-delete-order#delete-an-order). + * Other orders you can cancel using the [`orderCancel`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderCancel) + * mutation instead. + * + * > Caution: + * > This action is irreversible. You can't recover deleted orders. */ public class OrderDeleteGraphQLQuery extends GraphQLQuery { public OrderDeleteGraphQLQuery(String orderId, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditAddCustomItemGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditAddCustomItemGraphQLQuery.java index 4a98be23..68a8ede2 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditAddCustomItemGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditAddCustomItemGraphQLQuery.java @@ -9,9 +9,15 @@ import java.util.Set; /** - * Adds a custom line item to an existing order. For example, you could add a - * gift wrapping service as a [custom line item](https://shopify.dev/apps/fulfillment/order-management-apps/order-editing#add-a-custom-line-item). - * To learn how to edit existing orders, refer to [Edit an existing order with Admin API](https://shopify.dev/apps/fulfillment/order-management-apps/order-editing). + * Adds a custom line item to an existing + * [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order). + * Custom line items represent products or services not in your catalog, such as + * gift wrapping, installation fees, or one-off charges. + * + * Creates a [`CalculatedLineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CalculatedLineItem) with the specified title, price, and quantity. Changes remain in the edit + * session until you commit them with the [`orderEditCommit`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderEditCommit) mutation. + * + * Learn more about [adding custom line items](https://shopify.dev/docs/apps/build/orders-fulfillment/order-management-apps/edit-orders#add-a-custom-line-item). */ public class OrderEditAddCustomItemGraphQLQuery extends GraphQLQuery { public OrderEditAddCustomItemGraphQLQuery(String id, String title, String locationId, @@ -72,7 +78,7 @@ public OrderEditAddCustomItemGraphQLQuery build() { /** * The ID of the [calculated order](https://shopify.dev/api/admin-graphql/latest/objects/calculatedorder) - * to which the custom item is added. + * or the order edit session to edit. This is the edit to which the custom item is added. */ public Builder id(String id) { this.id = id; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditAddCustomItemProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditAddCustomItemProjectionRoot.java index 560f8fa8..af9fbf48 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditAddCustomItemProjectionRoot.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditAddCustomItemProjectionRoot.java @@ -26,6 +26,13 @@ public CalculatedOrderProjection, OrderEditAddCustomItemProjectionRoot> orderEditSession( + ) { + OrderEditSessionProjection, OrderEditAddCustomItemProjectionRoot> projection = new OrderEditSessionProjection<>(this, this); + getFields().put("orderEditSession", projection); + return projection; + } + public UserErrorProjection, OrderEditAddCustomItemProjectionRoot> userErrors( ) { UserErrorProjection, OrderEditAddCustomItemProjectionRoot> projection = new UserErrorProjection<>(this, this); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditAddLineItemDiscountGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditAddLineItemDiscountGraphQLQuery.java index 31fda8ff..2f5dfc01 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditAddLineItemDiscountGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditAddLineItemDiscountGraphQLQuery.java @@ -8,8 +8,15 @@ import java.util.Set; /** - * 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). + * Applies a discount to a [`LineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItem) + * during an order edit session. The discount can be either a fixed amount or + * percentage value. + * + * To modify pricing on specific line items, use this mutation after starting an + * order edit with the [`orderEditBegin`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderEditBegin) + * mutation. The changes remain staged until you commit them with the [`orderEditCommit`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderEditCommit) mutation. + * + * Learn more about [editing existing orders](https://shopify.dev/docs/apps/build/orders-fulfillment/order-management-apps/edit-orders). */ public class OrderEditAddLineItemDiscountGraphQLQuery extends GraphQLQuery { public OrderEditAddLineItemDiscountGraphQLQuery(String id, String lineItemId, @@ -55,7 +62,7 @@ public OrderEditAddLineItemDiscountGraphQLQuery build() { /** * The ID of the [calculated order](https://shopify.dev/api/admin-graphql/latest/objects/calculatedorder) - * to update. + * or the order edit session to edit. */ public Builder id(String id) { this.id = id; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditAddLineItemDiscountProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditAddLineItemDiscountProjectionRoot.java index 409652e5..24a86dd1 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditAddLineItemDiscountProjectionRoot.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditAddLineItemDiscountProjectionRoot.java @@ -33,6 +33,13 @@ public CalculatedOrderProjection, OrderEditAddLineItemDiscountProjectionRoot> orderEditSession( + ) { + OrderEditSessionProjection, OrderEditAddLineItemDiscountProjectionRoot> projection = new OrderEditSessionProjection<>(this, this); + getFields().put("orderEditSession", projection); + return projection; + } + public UserErrorProjection, OrderEditAddLineItemDiscountProjectionRoot> userErrors( ) { UserErrorProjection, OrderEditAddLineItemDiscountProjectionRoot> projection = new UserErrorProjection<>(this, this); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditAddShippingLineGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditAddShippingLineGraphQLQuery.java index 45b6c6fa..c92bc6cd 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditAddShippingLineGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditAddShippingLineGraphQLQuery.java @@ -8,8 +8,13 @@ import java.util.Set; /** - * Adds a shipping line to an existing order. 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). + * Adds a custom shipping line to an + * [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) + * during an edit session. Specify the shipping title and price to create a new [`ShippingLine`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShippingLine). + * + * Returns a [`CalculatedOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CalculatedOrder) showing the order with edits applied but not yet saved. To save your changes, use the [`orderEditCommit`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderEditCommit) mutation. + * + * Learn more about [editing existing orders](https://shopify.dev/docs/apps/build/orders-fulfillment/order-management-apps/edit-orders). */ public class OrderEditAddShippingLineGraphQLQuery extends GraphQLQuery { public OrderEditAddShippingLineGraphQLQuery(String id, OrderEditAddShippingLineInput shippingLine, @@ -51,7 +56,7 @@ public OrderEditAddShippingLineGraphQLQuery build() { /** * The ID of the [calculated order](https://shopify.dev/api/admin-graphql/latest/objects/calculatedorder) - * to edit. + * or the order edit session to edit. This is the edit to which the shipping line is added. */ public Builder id(String id) { this.id = id; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditAddShippingLineProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditAddShippingLineProjectionRoot.java index 6fab7397..8acd11bc 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditAddShippingLineProjectionRoot.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditAddShippingLineProjectionRoot.java @@ -26,6 +26,13 @@ public CalculatedShippingLineProjection, OrderEditAddShippingLineProjectionRoot> orderEditSession( + ) { + OrderEditSessionProjection, OrderEditAddShippingLineProjectionRoot> projection = new OrderEditSessionProjection<>(this, this); + getFields().put("orderEditSession", projection); + return projection; + } + public OrderEditAddShippingLineUserErrorProjection, OrderEditAddShippingLineProjectionRoot> userErrors( ) { OrderEditAddShippingLineUserErrorProjection, OrderEditAddShippingLineProjectionRoot> projection = new OrderEditAddShippingLineUserErrorProjection<>(this, this); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditAddVariantGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditAddVariantGraphQLQuery.java index 66d21856..792d8b1a 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditAddVariantGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditAddVariantGraphQLQuery.java @@ -8,8 +8,15 @@ import java.util.Set; /** - * Adds a line item from an existing product variant. As of API version 2025-04, the [orderEditAddVariant](https://shopify.dev/api/admin-graphql/latest/mutations/ordereditaddvariant) - * API will respect the contextual pricing of the variant. + * Adds a [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) as a line item to an + * [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) + * that's being edited. The mutation respects the variant's contextual pricing. + * + * You can specify a [`Location`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location) + * to check for inventory availability and control whether duplicate variants are allowed. The [`quantity`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderEditAddVariant#arguments-quantity) + * must be a positive value. + * + * Learn more about [editing existing orders](https://shopify.dev/docs/apps/build/orders-fulfillment/order-management-apps/edit-orders#add-a-new-variant). */ public class OrderEditAddVariantGraphQLQuery extends GraphQLQuery { public OrderEditAddVariantGraphQLQuery(String id, String variantId, String locationId, @@ -61,7 +68,7 @@ public OrderEditAddVariantGraphQLQuery build() { /** * The ID of the [calculated order](https://shopify.dev/api/admin-graphql/latest/objects/calculatedorder) - * to edit. + * or the order edit session to edit. */ public Builder id(String id) { this.id = id; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditAddVariantProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditAddVariantProjectionRoot.java index f74f3e16..ee22f766 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditAddVariantProjectionRoot.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditAddVariantProjectionRoot.java @@ -26,6 +26,13 @@ public CalculatedOrderProjection return projection; } + public OrderEditSessionProjection, OrderEditAddVariantProjectionRoot> orderEditSession( + ) { + OrderEditSessionProjection, OrderEditAddVariantProjectionRoot> projection = new OrderEditSessionProjection<>(this, this); + getFields().put("orderEditSession", projection); + return projection; + } + public UserErrorProjection, OrderEditAddVariantProjectionRoot> userErrors( ) { UserErrorProjection, OrderEditAddVariantProjectionRoot> projection = new UserErrorProjection<>(this, this); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditBeginGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditBeginGraphQLQuery.java index 34107129..73da27df 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditBeginGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditBeginGraphQLQuery.java @@ -7,9 +7,17 @@ import java.util.Set; /** - * Starts editing an order. Mutations are operating on `OrderEdit`. - * All order edits start with `orderEditBegin`, have any number of `orderEdit`* - * mutations made, and end with `orderEditCommit`. + * Starts an order editing session that enables you to modify an existing + * [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order). + * This mutation creates an [`OrderEditSession`](https://shopify.dev/docs/api/admin-graphql/latest/objects/OrderEditSession) and returns a [`CalculatedOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CalculatedOrder) + * showing how the order looks with your changes applied. + * + * Order editing follows a three-step workflow: Begin the edit with [`orderEditBegin`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderEditBegin), + * apply changes using mutations like [`orderEditAddVariant`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderEditAddVariant) or [`orderEditSetQuantity`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderEditSetQuantity), + * and then save the changes with the [`orderEditCommit`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderEditCommit) + * mutation. The session tracks all staged changes until you commit or abandon them. + * + * Learn more about [editing existing orders](https://shopify.dev/docs/apps/build/orders-fulfillment/order-management-apps/edit-orders). */ public class OrderEditBeginGraphQLQuery extends GraphQLQuery { public OrderEditBeginGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditBeginProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditBeginProjectionRoot.java index 155b82b6..3f12c5d1 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditBeginProjectionRoot.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditBeginProjectionRoot.java @@ -19,6 +19,13 @@ public CalculatedOrderProjection, Ord return projection; } + public OrderEditSessionProjection, OrderEditBeginProjectionRoot> orderEditSession( + ) { + OrderEditSessionProjection, OrderEditBeginProjectionRoot> projection = new OrderEditSessionProjection<>(this, this); + getFields().put("orderEditSession", projection); + return projection; + } + public UserErrorProjection, OrderEditBeginProjectionRoot> userErrors( ) { UserErrorProjection, OrderEditBeginProjectionRoot> projection = new UserErrorProjection<>(this, this); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditCommitGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditCommitGraphQLQuery.java index 1c9e5bdc..878e6e40 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditCommitGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditCommitGraphQLQuery.java @@ -8,9 +8,20 @@ import java.util.Set; /** - * Applies and saves staged changes to an order. Mutations are operating on `OrderEdit`. - * All order edits start with `orderEditBegin`, have any number of `orderEdit`* - * mutations made, and end with `orderEditCommit`. + * Applies staged changes from an order editing session to the original order. + * This finalizes all modifications made during the edit session, including + * changes to line items, quantities, discounts, and shipping lines. + * + * Order editing follows a three-step workflow: start with [`orderEditBegin`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderEditBegin) + * to create an editing session, apply changes using various orderEdit mutations, + * and then save the changes with the [`orderEditCommit`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderEditCommit) + * mutation. The mutation can optionally notify the customer of changes and add + * staff notes for internal tracking. + * + * You can only edit unfulfilled line items. If an edit changes the total order + * value, then the customer might need to pay a balance or receive a refund. + * + * Learn more about [editing existing orders](https://shopify.dev/docs/apps/build/orders-fulfillment/order-management-apps/edit-orders). */ public class OrderEditCommitGraphQLQuery extends GraphQLQuery { public OrderEditCommitGraphQLQuery(String id, Boolean notifyCustomer, String staffNote, @@ -56,7 +67,7 @@ public OrderEditCommitGraphQLQuery build() { /** * The ID of the [calculated order](https://shopify.dev/api/admin-graphql/latest/objects/calculatedorder) - * that will have its changes applied to the order. + * or the order edit session that will have its changes applied to the order. */ public Builder id(String id) { this.id = id; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditCommitProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditCommitProjectionRoot.java index dc939b31..fab97ffa 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditCommitProjectionRoot.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditCommitProjectionRoot.java @@ -25,4 +25,9 @@ public UserErrorProjection, OrderEdi getFields().put("userErrors", projection); return projection; } + + public OrderEditCommitProjectionRoot successMessages() { + getFields().put("successMessages", null); + return this; + } } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditRemoveDiscountGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditRemoveDiscountGraphQLQuery.java index 70e74e82..ff9fef9d 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditRemoveDiscountGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditRemoveDiscountGraphQLQuery.java @@ -50,7 +50,7 @@ public OrderEditRemoveDiscountGraphQLQuery build() { /** * The ID of the [calculated order](https://shopify.dev/api/admin-graphql/latest/objects/calculatedorder) - * from which to remove the discount. + * or the order edit session to edit. This is the edit from which the discount is removed. */ public Builder id(String id) { this.id = id; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditRemoveDiscountProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditRemoveDiscountProjectionRoot.java index 07e22225..8a38037b 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditRemoveDiscountProjectionRoot.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditRemoveDiscountProjectionRoot.java @@ -19,6 +19,13 @@ public CalculatedOrderProjection, OrderEditRemoveDiscountProjectionRoot> orderEditSession( + ) { + OrderEditSessionProjection, OrderEditRemoveDiscountProjectionRoot> projection = new OrderEditSessionProjection<>(this, this); + getFields().put("orderEditSession", projection); + return projection; + } + public OrderEditRemoveDiscountUserErrorProjection, OrderEditRemoveDiscountProjectionRoot> userErrors( ) { OrderEditRemoveDiscountUserErrorProjection, OrderEditRemoveDiscountProjectionRoot> projection = new OrderEditRemoveDiscountUserErrorProjection<>(this, this); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditRemoveLineItemDiscountGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditRemoveLineItemDiscountGraphQLQuery.java index 3f6a20fd..acbd58d5 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditRemoveLineItemDiscountGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditRemoveLineItemDiscountGraphQLQuery.java @@ -49,7 +49,7 @@ public OrderEditRemoveLineItemDiscountGraphQLQuery build() { /** * The ID of the [calculated order](https://shopify.dev/api/admin-graphql/latest/objects/calculatedorder) - * from which to remove the discount. + * or the order edit session to edit. This is the edit from which the line item discount is removed. */ public Builder id(String id) { this.id = id; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditRemoveLineItemDiscountProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditRemoveLineItemDiscountProjectionRoot.java index e55007f1..88940a36 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditRemoveLineItemDiscountProjectionRoot.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditRemoveLineItemDiscountProjectionRoot.java @@ -26,6 +26,13 @@ public CalculatedOrderProjection, OrderEditRemoveLineItemDiscountProjectionRoot> orderEditSession( + ) { + OrderEditSessionProjection, OrderEditRemoveLineItemDiscountProjectionRoot> projection = new OrderEditSessionProjection<>(this, this); + getFields().put("orderEditSession", projection); + return projection; + } + public UserErrorProjection, OrderEditRemoveLineItemDiscountProjectionRoot> userErrors( ) { UserErrorProjection, OrderEditRemoveLineItemDiscountProjectionRoot> projection = new UserErrorProjection<>(this, this); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditRemoveShippingLineGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditRemoveShippingLineGraphQLQuery.java index 93fa7f43..9bfb8eae 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditRemoveShippingLineGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditRemoveShippingLineGraphQLQuery.java @@ -50,7 +50,7 @@ public OrderEditRemoveShippingLineGraphQLQuery build() { /** * The ID of the [calculated order](https://shopify.dev/api/admin-graphql/latest/objects/calculatedorder) - * to edit. + * or the order edit session to edit. This is the edit from which the shipping line is removed. */ public Builder id(String id) { this.id = id; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditRemoveShippingLineProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditRemoveShippingLineProjectionRoot.java index f4874b23..2a27b0f1 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditRemoveShippingLineProjectionRoot.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditRemoveShippingLineProjectionRoot.java @@ -19,6 +19,13 @@ public CalculatedOrderProjection, OrderEditRemoveShippingLineProjectionRoot> orderEditSession( + ) { + OrderEditSessionProjection, OrderEditRemoveShippingLineProjectionRoot> projection = new OrderEditSessionProjection<>(this, this); + getFields().put("orderEditSession", projection); + return projection; + } + public OrderEditRemoveShippingLineUserErrorProjection, OrderEditRemoveShippingLineProjectionRoot> userErrors( ) { OrderEditRemoveShippingLineUserErrorProjection, OrderEditRemoveShippingLineProjectionRoot> projection = new OrderEditRemoveShippingLineUserErrorProjection<>(this, this); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditSessionFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditSessionFragmentProjection.java new file mode 100644 index 00000000..5f54b6de --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditSessionFragmentProjection.java @@ -0,0 +1,40 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; +import java.lang.Override; +import java.lang.String; + +public class OrderEditSessionFragmentProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + { + getFields().put("__typename", null); + } + + public OrderEditSessionFragmentProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("OrderEditSession")); + } + + public OrderEditSessionFragmentProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public OrderEditSessionFragmentProjection id() { + getFields().put("id", null); + return this; + } + + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + builder.append("... on OrderEditSession {"); + getFields().forEach((k, v) -> { + builder.append(" ").append(k); + if(v != null) { + builder.append(" ").append(v.toString()); + } + }); + builder.append("}"); + + return builder.toString(); + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditSessionGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditSessionGraphQLQuery.java new file mode 100644 index 00000000..4838a416 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditSessionGraphQLQuery.java @@ -0,0 +1,59 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import java.lang.Override; +import java.lang.String; +import java.util.HashSet; +import java.util.Set; + +/** + * Returns a `OrderEditSession` resource by ID. + */ +public class OrderEditSessionGraphQLQuery extends GraphQLQuery { + public OrderEditSessionGraphQLQuery(String id, String queryName, Set fieldsSet) { + super("query", queryName); + if (id != null || fieldsSet.contains("id")) { + getInput().put("id", id); + } + } + + public OrderEditSessionGraphQLQuery() { + super("query"); + } + + @Override + public String getOperationName() { + return "orderEditSession"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private String id; + + private String queryName; + + public OrderEditSessionGraphQLQuery build() { + return new OrderEditSessionGraphQLQuery(id, queryName, fieldsSet); + + } + + /** + * The ID of the `OrderEditSession` to return. + */ + public Builder id(String id) { + this.id = id; + this.fieldsSet.add("id"); + return this; + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditSessionProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditSessionProjection.java new file mode 100644 index 00000000..7c4f0dfe --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditSessionProjection.java @@ -0,0 +1,19 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class OrderEditSessionProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public OrderEditSessionProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("OrderEditSession")); + } + + public OrderEditSessionProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public OrderEditSessionProjection id() { + getFields().put("id", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditSessionProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditSessionProjectionRoot.java new file mode 100644 index 00000000..d5c859b5 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditSessionProjectionRoot.java @@ -0,0 +1,19 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class OrderEditSessionProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public OrderEditSessionProjectionRoot() { + super(null, null, java.util.Optional.of("OrderEditSession")); + } + + public OrderEditSessionProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public OrderEditSessionProjectionRoot id() { + getFields().put("id", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditSetQuantityGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditSetQuantityGraphQLQuery.java index f46c30cc..c798daa3 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditSetQuantityGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditSetQuantityGraphQLQuery.java @@ -8,9 +8,15 @@ import java.util.Set; /** - * 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). + * Sets the quantity of a line item on an order that's being edited. Use this + * mutation to increase, decrease, or remove items by adjusting their quantities. + * + * Setting the quantity to zero effectively removes the line item from the order. + * The item still exists as a data structure with zero quantity. When decreasing + * quantities, you can optionally restock the removed items to inventory by + * setting the `restock` parameter to `true`. + * + * Learn more about [editing workflows for existing orders](https://shopify.dev/docs/apps/build/orders-fulfillment/order-management-apps/edit-orders). */ public class OrderEditSetQuantityGraphQLQuery extends GraphQLQuery { public OrderEditSetQuantityGraphQLQuery(String id, String lineItemId, int quantity, @@ -58,7 +64,7 @@ public OrderEditSetQuantityGraphQLQuery build() { /** * The ID of the [calculated order](https://shopify.dev/api/admin-graphql/latest/objects/calculatedorder) - * to edit. The edit changes the quantity on the line item. + * or the order edit session to edit. The edit changes the quantity on the line item. */ public Builder id(String id) { this.id = id; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditSetQuantityProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditSetQuantityProjectionRoot.java index e3025494..2025d537 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditSetQuantityProjectionRoot.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditSetQuantityProjectionRoot.java @@ -26,6 +26,13 @@ public CalculatedOrderProjection, OrderEditSetQuantityProjectionRoot> orderEditSession( + ) { + OrderEditSessionProjection, OrderEditSetQuantityProjectionRoot> projection = new OrderEditSessionProjection<>(this, this); + getFields().put("orderEditSession", projection); + return projection; + } + public UserErrorProjection, OrderEditSetQuantityProjectionRoot> userErrors( ) { UserErrorProjection, OrderEditSetQuantityProjectionRoot> projection = new UserErrorProjection<>(this, this); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditUpdateDiscountGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditUpdateDiscountGraphQLQuery.java index aa8541fb..d065ed1c 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditUpdateDiscountGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditUpdateDiscountGraphQLQuery.java @@ -56,7 +56,7 @@ public OrderEditUpdateDiscountGraphQLQuery build() { /** * The ID of the [calculated order](https://shopify.dev/api/admin-graphql/latest/objects/calculatedorder) - * from which to update the discount. + * or the order edit session to edit. This is the edit used to update the discount. */ public Builder id(String id) { this.id = id; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditUpdateDiscountProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditUpdateDiscountProjectionRoot.java index 5cec9132..6ee64f82 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditUpdateDiscountProjectionRoot.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditUpdateDiscountProjectionRoot.java @@ -19,6 +19,13 @@ public CalculatedOrderProjection, OrderEditUpdateDiscountProjectionRoot> orderEditSession( + ) { + OrderEditSessionProjection, OrderEditUpdateDiscountProjectionRoot> projection = new OrderEditSessionProjection<>(this, this); + getFields().put("orderEditSession", projection); + return projection; + } + public OrderEditUpdateDiscountUserErrorProjection, OrderEditUpdateDiscountProjectionRoot> userErrors( ) { OrderEditUpdateDiscountUserErrorProjection, OrderEditUpdateDiscountProjectionRoot> projection = new OrderEditUpdateDiscountUserErrorProjection<>(this, this); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditUpdateShippingLineGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditUpdateShippingLineGraphQLQuery.java index 63af5e89..36c158ed 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditUpdateShippingLineGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditUpdateShippingLineGraphQLQuery.java @@ -56,7 +56,7 @@ public OrderEditUpdateShippingLineGraphQLQuery build() { /** * The ID of the [calculated order](https://shopify.dev/api/admin-graphql/latest/objects/calculatedorder) - * from which to update the shipping line. + * or the order edit session to edit. This is the edit used to update the shipping line. */ public Builder id(String id) { this.id = id; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditUpdateShippingLineProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditUpdateShippingLineProjectionRoot.java index 410e01fd..b2565278 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditUpdateShippingLineProjectionRoot.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderEditUpdateShippingLineProjectionRoot.java @@ -19,6 +19,13 @@ public CalculatedOrderProjection, OrderEditUpdateShippingLineProjectionRoot> orderEditSession( + ) { + OrderEditSessionProjection, OrderEditUpdateShippingLineProjectionRoot> projection = new OrderEditSessionProjection<>(this, this); + getFields().put("orderEditSession", projection); + return projection; + } + public OrderEditUpdateShippingLineUserErrorProjection, OrderEditUpdateShippingLineProjectionRoot> userErrors( ) { OrderEditUpdateShippingLineUserErrorProjection, OrderEditUpdateShippingLineProjectionRoot> projection = new OrderEditUpdateShippingLineUserErrorProjection<>(this, this); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderFragmentProjection.java index 1fd917a5..62ba1589 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderFragmentProjection.java @@ -1,14 +1,17 @@ package com.shopify.admin.client; import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; +import com.shopify.admin.types.Audience; import com.shopify.admin.types.CountryCode; import com.shopify.admin.types.EventSortKeys; import com.shopify.admin.types.LocalizationExtensionPurpose; import com.shopify.admin.types.LocalizedFieldPurpose; import com.shopify.admin.types.MetafieldDefinitionPinnedStatus; import com.shopify.admin.types.MetafieldDefinitionSortKeys; +import com.shopify.admin.types.NotificationUsage; import com.shopify.admin.types.RefundDutyInput; import com.shopify.admin.types.RefundLineItemInput; +import com.shopify.admin.types.RefundMethodAllocation; import java.lang.Boolean; import java.lang.Integer; import java.lang.Override; @@ -343,12 +346,14 @@ public FulfillmentProjection, ROOT> fulfil } public FulfillmentProjection, ROOT> fulfillments( - Integer first) { + Integer first, String query) { FulfillmentProjection, ROOT> projection = new FulfillmentProjection<>(this, getRoot()); getFields().put("fulfillments", projection); getInputArguments().computeIfAbsent("fulfillments", k -> new ArrayList<>()); InputArgument firstArg = new InputArgument("first", first); getInputArguments().get("fulfillments").add(firstArg); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("fulfillments").add(queryArg); return projection; } @@ -779,7 +784,8 @@ public SuggestedRefundProjection, ROOT> su public SuggestedRefundProjection, ROOT> suggestedRefund( String shippingAmount, Boolean refundShipping, List refundLineItems, - List refundDuties, Boolean suggestFullRefund) { + List refundDuties, Boolean suggestFullRefund, + RefundMethodAllocation refundMethodAllocation) { SuggestedRefundProjection, ROOT> projection = new SuggestedRefundProjection<>(this, getRoot()); getFields().put("suggestedRefund", projection); getInputArguments().computeIfAbsent("suggestedRefund", k -> new ArrayList<>()); @@ -793,6 +799,8 @@ public SuggestedRefundProjection, ROOT> su getInputArguments().get("suggestedRefund").add(refundDutiesArg); InputArgument suggestFullRefundArg = new InputArgument("suggestFullRefund", suggestFullRefund); getInputArguments().get("suggestedRefund").add(suggestFullRefundArg); + InputArgument refundMethodAllocationArg = new InputArgument("refundMethodAllocation", refundMethodAllocation); + getInputArguments().get("suggestedRefund").add(refundMethodAllocationArg); return projection; } @@ -1072,6 +1080,11 @@ public OrderFragmentProjection note() { return this; } + public OrderFragmentProjection number() { + getFields().put("number", null); + return this; + } + public OrderFragmentProjection paymentGatewayNames() { getFields().put("paymentGatewayNames", null); return this; @@ -1092,6 +1105,11 @@ public OrderFragmentProjection processedAt() { return this; } + public OrderFragmentProjection productNetwork() { + getFields().put("productNetwork", null); + return this; + } + public OrderFragmentProjection referralCode() { getFields().put("referralCode", null); return this; @@ -1142,6 +1160,17 @@ public OrderFragmentProjection statusPageUrl() { return this; } + public OrderFragmentProjection statusPageUrl(Audience audience, + NotificationUsage notificationUsage) { + getFields().put("statusPageUrl", null); + getInputArguments().computeIfAbsent("statusPageUrl", k -> new ArrayList<>()); + InputArgument audienceArg = new InputArgument("audience", audience); + getInputArguments().get("statusPageUrl").add(audienceArg); + InputArgument notificationUsageArg = new InputArgument("notificationUsage", notificationUsage); + getInputArguments().get("statusPageUrl").add(notificationUsageArg); + return this; + } + public OrderFragmentProjection subtotalLineItemsQuantity() { getFields().put("subtotalLineItemsQuantity", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderGraphQLQuery.java index 5e9d4cad..d40781d0 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderGraphQLQuery.java @@ -7,7 +7,29 @@ import java.util.Set; /** - * Returns an Order resource by ID. + * The `order` query retrieves an + * [order](https://shopify.dev/docs/api/admin-graphql/latest/objects/order) by + * its ID. This query provides access to comprehensive order information such as + * customer details, line items, financial data, and fulfillment status. + * + * Use the `order` query to retrieve information associated with the following processes: + * + * - [Order management and fulfillment](https://shopify.dev/docs/apps/build/orders-fulfillment/order-management-apps) + * - [Financial reporting](https://help.shopify.com/manual/finance) + * - [Customer purchase history](https://help.shopify.com/manual/reports-and-analytics/shopify-reports/report-types/default-reports/customers-reports) + * and [transaction analysis](https://shopify.dev/docs/apps/launch/billing/view-charges-earnings#transaction-data-through-the-graphql-admin-api) + * - [Shipping](https://shopify.dev/docs/apps/build/checkout/delivery-shipping) and [inventory management](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps) + * + * You can only retrieve the last 60 days worth of orders from a store by + * default. If you want to access older orders, then you need to [request access to all + * orders](https://shopify.dev/docs/api/usage/access-scopes#orders-permissions). + * + * For large order datasets, consider using [bulk operations](https://shopify.dev/docs/api/usage/bulk-operations/queries). + * Bulk operations handle pagination automatically and allow you to retrieve data + * asynchronously without being constrained by API rate limits. + * Learn more about [creating orders](https://shopify.dev/docs/api/admin-graphql/latest/mutations/ordercreate) + * and [building order management + * apps](https://shopify.dev/docs/apps/build/orders-fulfillment). */ public class OrderGraphQLQuery extends GraphQLQuery { public OrderGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderInvoiceSendGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderInvoiceSendGraphQLQuery.java index a317e779..bf121e2d 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderInvoiceSendGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderInvoiceSendGraphQLQuery.java @@ -8,7 +8,12 @@ import java.util.Set; /** - * Sends an email invoice for an order. + * Sends an email invoice for an [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order). + * + * You can customize the email recipient, sender, and subject line using the [`email`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderInvoiceSend#arguments-email) argument. + * + * > Note: + * > Use store or staff account email addresses for the [`from`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderInvoiceSend#arguments-email.fields.from) and [`bcc`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderInvoiceSend#arguments-email.fields.bcc) input fields. */ public class OrderInvoiceSendGraphQLQuery extends GraphQLQuery { public OrderInvoiceSendGraphQLQuery(String id, EmailInput email, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderMarkAsPaidGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderMarkAsPaidGraphQLQuery.java index 7eaa2f41..9897f69a 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderMarkAsPaidGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderMarkAsPaidGraphQLQuery.java @@ -8,7 +8,28 @@ import java.util.Set; /** - * Marks an order as paid. You can only mark an order as paid if it isn't already fully paid. + * Marks an order as paid by recording a payment transaction for the outstanding amount. + * + * Use the `orderMarkAsPaid` mutation to record payments received outside the standard checkout + * process. The `orderMarkAsPaid` mutation is particularly useful in scenarios where: + * + * - Orders were created with manual payment methods (cash on delivery, bank deposit, money order) + * - Payments were received offline and need to be recorded in the system + * - Previously authorized payments need to be captured manually + * - Orders require manual payment reconciliation due to external payment processing + * + * The mutation validates that the order can be marked as paid before processing. + * An order can be marked as paid only if it has a positive outstanding balance and its + * [financial status](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-Order.fields.displayFinancialStatus) + * isn't already `PAID`. The mutation will either create a new sale transaction for the full + * outstanding amount or capture an existing authorized transaction, depending on the order's current payment state. + * + * After successfully marking an order as paid, the order's financial status is updated to + * reflect the payment, and payment events are logged for tracking and analytics + * purposes. + * + * Learn more about [managing orders](https://shopify.dev/docs/apps/build/orders-fulfillment/order-management-apps) + * in apps. */ public class OrderMarkAsPaidGraphQLQuery extends GraphQLQuery { public OrderMarkAsPaidGraphQLQuery(OrderMarkAsPaidInput input, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderPaymentStatusGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderPaymentStatusGraphQLQuery.java index f24c00cd..70f9dd50 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderPaymentStatusGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderPaymentStatusGraphQLQuery.java @@ -7,7 +7,16 @@ import java.util.Set; /** - * Returns a payment status by payment reference ID. Used to check the status of a deferred payment. + * Retrieves the status of a deferred payment by its payment reference ID. Use + * this query to monitor the processing status of payments that are initiated + * through payment mutations. Deferred payments are called [payment + * terms](https://shopify.dev/docs/apps/build/checkout/payments/payment-terms) in the API. + * + * The query returns an [`OrderPaymentStatus`](https://shopify.dev/docs/api/admin-graphql/latest/objects/OrderPaymentStatus) + * object that includes the current payment status, any error messages, and + * associated transactions. Poll this query to track [asynchronous payment + * processing](https://shopify.dev/docs/apps/build/payments/processing) after + * initiating a deferred payment. */ public class OrderPaymentStatusGraphQLQuery extends GraphQLQuery { public OrderPaymentStatusGraphQLQuery(String paymentReferenceId, String orderId, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderProjection.java index a3d1ca3b..8ad70cf2 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderProjection.java @@ -1,14 +1,17 @@ package com.shopify.admin.client; import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; +import com.shopify.admin.types.Audience; import com.shopify.admin.types.CountryCode; import com.shopify.admin.types.EventSortKeys; import com.shopify.admin.types.LocalizationExtensionPurpose; import com.shopify.admin.types.LocalizedFieldPurpose; import com.shopify.admin.types.MetafieldDefinitionPinnedStatus; import com.shopify.admin.types.MetafieldDefinitionSortKeys; +import com.shopify.admin.types.NotificationUsage; import com.shopify.admin.types.RefundDutyInput; import com.shopify.admin.types.RefundLineItemInput; +import com.shopify.admin.types.RefundMethodAllocation; import java.lang.Boolean; import java.lang.Integer; import java.lang.String; @@ -332,12 +335,15 @@ public FulfillmentProjection, ROOT> fulfillments() return projection; } - public FulfillmentProjection, ROOT> fulfillments(Integer first) { + public FulfillmentProjection, ROOT> fulfillments(Integer first, + String query) { FulfillmentProjection, ROOT> projection = new FulfillmentProjection<>(this, getRoot()); getFields().put("fulfillments", projection); getInputArguments().computeIfAbsent("fulfillments", k -> new ArrayList<>()); InputArgument firstArg = new InputArgument("first", first); getInputArguments().get("fulfillments").add(firstArg); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("fulfillments").add(queryArg); return projection; } @@ -762,7 +768,8 @@ public SuggestedRefundProjection, ROOT> suggestedR public SuggestedRefundProjection, ROOT> suggestedRefund( String shippingAmount, Boolean refundShipping, List refundLineItems, - List refundDuties, Boolean suggestFullRefund) { + List refundDuties, Boolean suggestFullRefund, + RefundMethodAllocation refundMethodAllocation) { SuggestedRefundProjection, ROOT> projection = new SuggestedRefundProjection<>(this, getRoot()); getFields().put("suggestedRefund", projection); getInputArguments().computeIfAbsent("suggestedRefund", k -> new ArrayList<>()); @@ -776,6 +783,8 @@ public SuggestedRefundProjection, ROOT> suggestedR getInputArguments().get("suggestedRefund").add(refundDutiesArg); InputArgument suggestFullRefundArg = new InputArgument("suggestFullRefund", suggestFullRefund); getInputArguments().get("suggestedRefund").add(suggestFullRefundArg); + InputArgument refundMethodAllocationArg = new InputArgument("refundMethodAllocation", refundMethodAllocation); + getInputArguments().get("suggestedRefund").add(refundMethodAllocationArg); return projection; } @@ -1054,6 +1063,11 @@ public OrderProjection note() { return this; } + public OrderProjection number() { + getFields().put("number", null); + return this; + } + public OrderProjection paymentGatewayNames() { getFields().put("paymentGatewayNames", null); return this; @@ -1074,6 +1088,11 @@ public OrderProjection processedAt() { return this; } + public OrderProjection productNetwork() { + getFields().put("productNetwork", null); + return this; + } + public OrderProjection referralCode() { getFields().put("referralCode", null); return this; @@ -1124,6 +1143,16 @@ public OrderProjection statusPageUrl() { return this; } + public OrderProjection statusPageUrl(Audience audience, NotificationUsage notificationUsage) { + getFields().put("statusPageUrl", null); + getInputArguments().computeIfAbsent("statusPageUrl", k -> new ArrayList<>()); + InputArgument audienceArg = new InputArgument("audience", audience); + getInputArguments().get("statusPageUrl").add(audienceArg); + InputArgument notificationUsageArg = new InputArgument("notificationUsage", notificationUsage); + getInputArguments().get("statusPageUrl").add(notificationUsageArg); + return this; + } + public OrderProjection subtotalLineItemsQuantity() { getFields().put("subtotalLineItemsQuantity", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderProjectionRoot.java index 74ae7e7f..fe4ed1a8 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderProjectionRoot.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderProjectionRoot.java @@ -1,14 +1,17 @@ package com.shopify.admin.client; import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; +import com.shopify.admin.types.Audience; import com.shopify.admin.types.CountryCode; import com.shopify.admin.types.EventSortKeys; import com.shopify.admin.types.LocalizationExtensionPurpose; import com.shopify.admin.types.LocalizedFieldPurpose; import com.shopify.admin.types.MetafieldDefinitionPinnedStatus; import com.shopify.admin.types.MetafieldDefinitionSortKeys; +import com.shopify.admin.types.NotificationUsage; import com.shopify.admin.types.RefundDutyInput; import com.shopify.admin.types.RefundLineItemInput; +import com.shopify.admin.types.RefundMethodAllocation; import java.lang.Boolean; import java.lang.Integer; import java.lang.String; @@ -361,12 +364,14 @@ public FulfillmentProjection, OrderProjectionR } public FulfillmentProjection, OrderProjectionRoot> fulfillments( - Integer first) { + Integer first, String query) { FulfillmentProjection, OrderProjectionRoot> projection = new FulfillmentProjection<>(this, this); getFields().put("fulfillments", projection); getInputArguments().computeIfAbsent("fulfillments", k -> new ArrayList<>()); InputArgument firstArg = new InputArgument("first", first); getInputArguments().get("fulfillments").add(firstArg); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("fulfillments").add(queryArg); return projection; } @@ -807,6 +812,18 @@ public StaffMemberProjection, OrderProjectionR return projection; } + public URLProjection, OrderProjectionRoot> statusPageUrl( + Audience audience, NotificationUsage notificationUsage) { + URLProjection, OrderProjectionRoot> projection = new URLProjection<>(this, this); + getFields().put("statusPageUrl", projection); + getInputArguments().computeIfAbsent("statusPageUrl", k -> new ArrayList<>()); + InputArgument audienceArg = new InputArgument("audience", audience); + getInputArguments().get("statusPageUrl").add(audienceArg); + InputArgument notificationUsageArg = new InputArgument("notificationUsage", notificationUsage); + getInputArguments().get("statusPageUrl").add(notificationUsageArg); + return projection; + } + public MoneyBagProjection, OrderProjectionRoot> subtotalPriceSet( ) { MoneyBagProjection, OrderProjectionRoot> projection = new MoneyBagProjection<>(this, this); @@ -823,7 +840,8 @@ public SuggestedRefundProjection, OrderProject public SuggestedRefundProjection, OrderProjectionRoot> suggestedRefund( String shippingAmount, Boolean refundShipping, List refundLineItems, - List refundDuties, Boolean suggestFullRefund) { + List refundDuties, Boolean suggestFullRefund, + RefundMethodAllocation refundMethodAllocation) { SuggestedRefundProjection, OrderProjectionRoot> projection = new SuggestedRefundProjection<>(this, this); getFields().put("suggestedRefund", projection); getInputArguments().computeIfAbsent("suggestedRefund", k -> new ArrayList<>()); @@ -837,6 +855,8 @@ public SuggestedRefundProjection, OrderProject getInputArguments().get("suggestedRefund").add(refundDutiesArg); InputArgument suggestFullRefundArg = new InputArgument("suggestFullRefund", suggestFullRefund); getInputArguments().get("suggestedRefund").add(suggestFullRefundArg); + InputArgument refundMethodAllocationArg = new InputArgument("refundMethodAllocation", refundMethodAllocation); + getInputArguments().get("suggestedRefund").add(refundMethodAllocationArg); return projection; } @@ -1129,6 +1149,11 @@ public OrderProjectionRoot note() { return this; } + public OrderProjectionRoot number() { + getFields().put("number", null); + return this; + } + public OrderProjectionRoot paymentGatewayNames() { getFields().put("paymentGatewayNames", null); return this; @@ -1149,6 +1174,11 @@ public OrderProjectionRoot processedAt() { return this; } + public OrderProjectionRoot productNetwork() { + getFields().put("productNetwork", null); + return this; + } + public OrderProjectionRoot referralCode() { getFields().put("referralCode", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderSavedSearchesGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderSavedSearchesGraphQLQuery.java index 920cd602..4ff06263 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderSavedSearchesGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderSavedSearchesGraphQLQuery.java @@ -9,7 +9,8 @@ import java.util.Set; /** - * List of the shop's order saved searches. + * Returns [saved searches](https://shopify.dev/docs/api/admin-graphql/latest/objects/SavedSearch) for orders in the shop. Saved searches store search queries with their filters + * and search terms. */ public class OrderSavedSearchesGraphQLQuery extends GraphQLQuery { public OrderSavedSearchesGraphQLQuery(Integer first, String after, Integer last, String before, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderStagedChangeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderStagedChangeProjection.java index a5d64edb..a1283f2a 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderStagedChangeProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderStagedChangeProjection.java @@ -54,6 +54,13 @@ public OrderStagedChangeIncrementItemFragmentProjection, ROOT> onOrderStagedChangeRemoveDiscount( + ) { + OrderStagedChangeRemoveDiscountFragmentProjection, ROOT> fragment = new OrderStagedChangeRemoveDiscountFragmentProjection<>(this, getRoot()); + getFragments().add(fragment); + return fragment; + } + public OrderStagedChangeRemoveShippingLineFragmentProjection, ROOT> onOrderStagedChangeRemoveShippingLine( ) { OrderStagedChangeRemoveShippingLineFragmentProjection, ROOT> fragment = new OrderStagedChangeRemoveShippingLineFragmentProjection<>(this, getRoot()); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderStagedChangeRemoveDiscountFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderStagedChangeRemoveDiscountFragmentProjection.java new file mode 100644 index 00000000..d52d00c6 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderStagedChangeRemoveDiscountFragmentProjection.java @@ -0,0 +1,42 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; +import java.lang.Override; +import java.lang.String; + +public class OrderStagedChangeRemoveDiscountFragmentProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + { + getFields().put("__typename", null); + } + + public OrderStagedChangeRemoveDiscountFragmentProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("OrderStagedChangeRemoveDiscount")); + } + + public OrderStagedChangeRemoveDiscountFragmentProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public DiscountApplicationProjection, ROOT> discountApplication( + ) { + DiscountApplicationProjection, ROOT> projection = new DiscountApplicationProjection<>(this, getRoot()); + getFields().put("discountApplication", projection); + return projection; + } + + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + builder.append("... on OrderStagedChangeRemoveDiscount {"); + getFields().forEach((k, v) -> { + builder.append(" ").append(k); + if(v != null) { + builder.append(" ").append(v.toString()); + } + }); + builder.append("}"); + + return builder.toString(); + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderTransactionFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderTransactionFragmentProjection.java index 5029bc6e..9fe06df0 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderTransactionFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderTransactionFragmentProjection.java @@ -37,6 +37,20 @@ public MoneyV2Projection, ROOT> return projection; } + public CurrencyExchangeAdjustmentProjection, ROOT> currencyExchangeAdjustment( + ) { + CurrencyExchangeAdjustmentProjection, ROOT> projection = new CurrencyExchangeAdjustmentProjection<>(this, getRoot()); + getFields().put("currencyExchangeAdjustment", projection); + return projection; + } + + public PointOfSaleDeviceProjection, ROOT> device( + ) { + PointOfSaleDeviceProjection, ROOT> projection = new PointOfSaleDeviceProjection<>(this, getRoot()); + getFields().put("device", projection); + return projection; + } + public OrderTransactionErrorCodeProjection, ROOT> errorCode( ) { OrderTransactionErrorCodeProjection, ROOT> projection = new OrderTransactionErrorCodeProjection<>(this, getRoot()); @@ -57,6 +71,12 @@ public OrderTransactionKindProjection, ROOT> location() { + LocationProjection, ROOT> projection = new LocationProjection<>(this, getRoot()); + getFields().put("location", projection); + return projection; + } + public MoneyV2Projection, ROOT> maximumRefundableV2( ) { MoneyV2Projection, ROOT> projection = new MoneyV2Projection<>(this, getRoot()); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderTransactionProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderTransactionProjection.java index 10ad0e07..3c09d505 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderTransactionProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderTransactionProjection.java @@ -30,6 +30,19 @@ public MoneyV2Projection, ROOT> amountV return projection; } + public CurrencyExchangeAdjustmentProjection, ROOT> currencyExchangeAdjustment( + ) { + CurrencyExchangeAdjustmentProjection, ROOT> projection = new CurrencyExchangeAdjustmentProjection<>(this, getRoot()); + getFields().put("currencyExchangeAdjustment", projection); + return projection; + } + + public PointOfSaleDeviceProjection, ROOT> device() { + PointOfSaleDeviceProjection, ROOT> projection = new PointOfSaleDeviceProjection<>(this, getRoot()); + getFields().put("device", projection); + return projection; + } + public OrderTransactionErrorCodeProjection, ROOT> errorCode( ) { OrderTransactionErrorCodeProjection, ROOT> projection = new OrderTransactionErrorCodeProjection<>(this, getRoot()); @@ -49,6 +62,12 @@ public OrderTransactionKindProjection, return projection; } + public LocationProjection, ROOT> location() { + LocationProjection, ROOT> projection = new LocationProjection<>(this, getRoot()); + getFields().put("location", projection); + return projection; + } + public MoneyV2Projection, ROOT> maximumRefundableV2() { MoneyV2Projection, ROOT> projection = new MoneyV2Projection<>(this, getRoot()); getFields().put("maximumRefundableV2", projection); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderUpdateGraphQLQuery.java index 3d5b6bdc..76449c42 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrderUpdateGraphQLQuery.java @@ -18,6 +18,9 @@ * allowing you to make multiple changes before finalizing them. Learn more about using the `orderEditBegin` * mutation to [edit existing orders](https://shopify.dev/docs/apps/build/orders-fulfillment/order-management-apps/edit-orders). * + * If you need to remove a customer from an order, then use the [`orderCustomerRemove`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderCustomerRemove) + * mutation instead. + * * Learn how to build apps that integrate with * [order management and fulfillment processes](https://shopify.dev/docs/apps/build/orders-fulfillment). */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrdersCountGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrdersCountGraphQLQuery.java index c9bc54a5..00002a1d 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrdersCountGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrdersCountGraphQLQuery.java @@ -8,7 +8,20 @@ import java.util.Set; /** - * Returns the count of orders for the given shop. Limited to a maximum of 10000. + * Returns the number of + * [orders](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) in + * the shop. You can filter orders using [search + * syntax](https://shopify.dev/docs/api/usage/search-syntax) or a [`SavedSearch`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SavedSearch), + * and set a maximum count limit to control query performance. + * + * Use the [`query`](https://shopify.dev/docs/api/admin-graphql/latest/queries/ordersCount#arguments-query) argument to filter the count by criteria like order status, financial state, + * or fulfillment status. The response includes both the count value and its + * precision, indicating whether the count is exact or an estimate. + * + * > Note: + * > The count is limited to 10,000 orders by default. Use the [`limit`](https://shopify.dev/docs/api/admin-graphql/latest/queries/ordersCount#arguments-limit) + * argument to adjust this value, or pass `null` for no limit. Limited to a + * maximum of 10000 by default. */ public class OrdersCountGraphQLQuery extends GraphQLQuery { public OrdersCountGraphQLQuery(String query, String savedSearchId, Integer limit, @@ -62,10 +75,10 @@ public OrdersCountGraphQLQuery build() { * abandoned cart conversions or troubleshoot checkout issues. The token * references the cart that's associated with an order. | | | - * `cart_token:abc123` | - * | channel | string | Filter by the channel information [`handle`](https://shopify.dev/api/admin-graphql/latest/objects/ChannelInformation#field-channeldefinition) + * | channel | string | Filter by the channel information [`handle`](https://shopify.dev/api/admin-graphql/latest/objects/ChannelInformation#field-ChannelInformation.fields.channelDefinition.handle) * (`ChannelInformation.channelDefinition.handle`) field. | | | - * `channel:web`
- `channel:web,pos` | - * | channel_id | id | Filter by the channel [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Channel#field-id) + * | channel_id | id | Filter by the channel [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Channel#field-Channel.fields.id) * field. | | | - `channel_id:123` | * | chargeback_status | string | Filter by the order's chargeback status. A * chargeback occurs when a customer questions the legitimacy of a charge with @@ -87,18 +100,23 @@ public OrdersCountGraphQLQuery build() { * card that was used to pay for the order. This filter matches only the last * four digits of the card for heightened security. | | | - * `credit_card_last4:1234` | - * | customer_id | id | Filter orders by the customer [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Customer#field-id) + * | current_total_price | float | Filter by the current total price of the + * order in the shop currency, including any returns/refunds/removals. This + * filter supports both exact values and ranges. | | | - + * `current_total_price:10`
- `current_total_price:>=5.00 + * current_total_price:<=20.99` | + * | customer_id | id | Filter orders by the customer [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Customer#field-Customer.fields.id) * field. | | | - `customer_id:123` | - * | delivery_method | string | Filter by the delivery [`methodType`](https://shopify.dev/api/admin-graphql/2024-07/objects/DeliveryMethod#field-methodtype) + * | delivery_method | string | Filter by the delivery [`methodType`](https://shopify.dev/api/admin-graphql/2024-07/objects/DeliveryMethod#field-DeliveryMethod.fields.methodType) * field. | - `shipping`
- `pick-up`
- `retail`
- `local`
- * `pickup-point`
- `none` | | - `delivery_method:shipping` | * | discount_code | string | Filter by the case-insensitive discount code that - * was applied to the order at checkout. Maximum characters: 255. | | | - - * `discount_code:ABC123` | + * was applied to the order at checkout. Limited to the first discount code + * used on an order. Maximum characters: 255. | | | - `discount_code:ABC123` | * | email | string | Filter by the email address that's associated with the * order to provide customer support or analyze purchasing patterns. | | | - * `email:example@shopify.com` | - * | financial_status | string | Filter by the order [`displayFinancialStatus`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-displayfinancialstatus) + * | financial_status | string | Filter by the order [`displayFinancialStatus`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-Order.fields.displayFinancialStatus) * field. | - `paid`
- `pending`
- `authorized`
- * `partially_paid`
- `partially_refunded`
- `refunded`
- * `voided`
- `expired` | | - `financial_status:authorized` | @@ -107,23 +125,28 @@ public OrdersCountGraphQLQuery build() { * disputes. | - `fully_protected`
- `partially_protected`
- * `not_protected`
- `pending`
- `not_eligible`
- * `not_available` | | - `fraud_protection_level:fully_protected` | - * | fulfillment_location_id | id | Filter by the fulfillment location [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Fulfillment#field-location) + * | fulfillment_location_id | id | Filter by the fulfillment location [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Fulfillment#field-Fulfillment.fields.location.id) * (`Fulfillment.location.id`) field. | | | - `fulfillment_location_id:123` | - * | fulfillment_status | string | Filter by the [`displayFulfillmentStatus`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-displayfulfillmentstatus) + * | fulfillment_status | string | Filter by the [`displayFulfillmentStatus`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-Order.fields.displayFulfillmentStatus) * field to prioritize shipments or monitor order processing. | - * `unshipped`
- `shipped`
- `fulfilled`
- `partial`
- * `scheduled`
- `on_hold`
- `unfulfilled`
- `request_declined` * | | - `fulfillment_status:fulfilled` | - * | gateway | string | Filter by the [`paymentGatewayNames`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-paymentgatewaynames) + * | gateway | string | Filter by the [`paymentGatewayNames`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-Order.fields.paymentGatewayNames) * field. Use this filter to find orders that were processed through specific * payment providers like Shopify Payments, PayPal, or other custom payment * gateways. | | | - `gateway:shopify_payments` | * | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | - * | location_id | id | Filter by the location [`id`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location#field-id) + * | location_id | id | Filter by the location [`id`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location#field-Location.fields.id) * that's associated with the order to view and manage orders for specific * locations. For POS orders, locations must be defined in the Shopify admin * under **Settings** > **Locations**. If no ID is provided, then the primary * location of the shop is returned. | | | - `location_id:123` | + * | metafields.{namespace}.{key} | mixed | Filters resources by metafield + * value. Format: `metafields.{namespace}.{key}:{value}`. Learn more about + * [querying by metafield value](https://shopify.dev/apps/build/custom-data/metafields/query-by-metafield-value). + * | | | - `metafields.custom.on_sale:true`
- + * `metafields.product.material:"gid://shopify/Metaobject/43458085"` | * | name | string | Filter by the order [`name`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-name) * field. | | | - `name:1001-A` | * | payment_id | string | Filter by the payment ID that's associated with the @@ -132,26 +155,26 @@ public OrdersCountGraphQLQuery build() { * | payment_provider_id | id | Filter by the ID of the payment provider that's * associated with the order to manage payment methods or troubleshoot * transactions. | | | - `payment_provider_id:123` | - * | po_number | string | Filter by the order [`poNumber`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-ponumber) + * | po_number | string | Filter by the order [`poNumber`](https://shopify.dev/api/admin-graphql/latest/objects/order#field-Order.fields.poNumber) * field. | | | - `po_number:P01001` | - * | processed_at | time | Filter by the order [`processedAt`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-processedat) + * | processed_at | time | Filter by the order [`processedAt`](https://shopify.dev/api/admin-graphql/latest/objects/order#field-Order.fields.processedAt) * field. | | | - `processed_at:2021-01-01T00:00:00Z` | * | reference_location_id | id | Filter by the ID of a location that's * associated with the order, such as locations from fulfillments, refunds, or * the shop's primary location. | | | - `reference_location_id:123` | - * | return_status | string | Filter by the return status to monitor returns - * processing and track which orders have active returns. | - - * `return_requested`
- `in_progress`
- `inspection_complete`
- - * `returned`
- `return_failed`
- `no_return` | | - + * | return_status | string | Filter by the order's [`returnStatus`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-Order.fields.returnStatus) + * to monitor returns processing and track which orders have active returns. | + * - `return_requested`
- `in_progress`
- `inspection_complete`
+ * - `returned`
- `return_failed`
- `no_return` | | - * `return_status:in_progress` | - * | risk_level | string | Filter by the order risk assessment [`riskLevel`](https://shopify.dev/api/admin-graphql/latest/objects/OrderRiskAssessment#field-risklevel) + * | risk_level | string | Filter by the order risk assessment [`riskLevel`](https://shopify.dev/api/admin-graphql/latest/objects/OrderRiskAssessment#field-OrderRiskAssessment.fields.riskLevel) * field. | - `high`
- `medium`
- `low`
- `none`
- * `pending` | | - `risk_level:high` | * | sales_channel | string | Filter by the [sales * channel](https://shopify.dev/docs/apps/build/sales-channels) where the order * was made to analyze performance or manage fulfillment processes. | | | - * `sales_channel: some_sales_channel` | - * | sku | string | Filter by the product variant [`sku`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-sku) + * | sku | string | Filter by the product variant [`sku`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-ProductVariant.fields.sku) * field. [Learn more about * SKUs](https://help.shopify.com/manual/products/details/sku). | | | - `sku:ABC123` | * | source_identifier | string | Filter by the ID of the order placed on the @@ -173,9 +196,14 @@ public OrdersCountGraphQLQuery build() { * `subtotal_line_items_quantity:5..20` | * | tag | string | Filter objects by the `tag` field. | | | - `tag:my_tag` | * | tag_not | string | Filter by objects that don’t have the specified tag. | | | - `tag_not:my_tag` | - * | test | boolean | Filter by test orders. Test orders are made using the [Shopify Bogus - * Gateway](https://help.shopify.com/manual/checkout-settings/test-orders) or a - * payment provider with test mode enabled. | | | - `test:true` | + * | test | boolean | Filter by test orders. Test orders are made using the [Shopify Bogus Gateway](https://help.shopify.com/manual/checkout-settings/test-orders/payments-test-mode#bogus-gateway) + * or a payment provider with test mode enabled. | | | - `test:true` | + * | total_weight | string | Filter by the order weight. This filter supports + * both exact values and ranges, and is to be used to filter orders by the + * total weight of all items (excluding packaging). It takes a unit of + * measurement as a suffix. It accepts the following units: g, kg, lb, oz. | | + * | - `total_weight:10.5kg`
- `total_weight:>=5g total_weight:<=20g`
+ * - `total_weight:.5 lb` | * | updated_at | time | Filter by the date and time when the order was last * updated in Shopify's system. | | | - `updated_at:2020-10-21T23:39:20Z`
* - `updated_at:<now`
- `updated_at:<=2024` | @@ -200,7 +228,7 @@ public Builder savedSearchId(String savedSearchId) { } /** - * The upper bound on count value before returning a result. + * The upper bound on count value before returning a result. Use `null` to have no limit. */ public Builder limit(Integer limit) { this.limit = limit; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrdersGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrdersGraphQLQuery.java index fe43b328..2b289763 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrdersGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/OrdersGraphQLQuery.java @@ -16,7 +16,7 @@ * Use the `orders` query to build reports, analyze sales performance, or * automate fulfillment workflows. The `orders` query supports * [pagination](https://shopify.dev/docs/api/usage/pagination-graphql), - * [sorting](https://shopify.dev/docs/api/admin-graphql/latest/queries/orders#argument-sortkey), and [filtering](https://shopify.dev/docs/api/admin-graphql/latest/queries/orders#argument-query). + * [sorting](https://shopify.dev/docs/api/admin-graphql/latest/queries/orders#arguments-sortKey), and [filtering](https://shopify.dev/docs/api/admin-graphql/latest/queries/orders#arguments-query). */ public class OrdersGraphQLQuery extends GraphQLQuery { public OrdersGraphQLQuery(Integer first, String after, Integer last, String before, @@ -146,10 +146,10 @@ public Builder sortKey(OrderSortKeys sortKey) { * abandoned cart conversions or troubleshoot checkout issues. The token * references the cart that's associated with an order. | | | - * `cart_token:abc123` | - * | channel | string | Filter by the channel information [`handle`](https://shopify.dev/api/admin-graphql/latest/objects/ChannelInformation#field-channeldefinition) + * | channel | string | Filter by the channel information [`handle`](https://shopify.dev/api/admin-graphql/latest/objects/ChannelInformation#field-ChannelInformation.fields.channelDefinition.handle) * (`ChannelInformation.channelDefinition.handle`) field. | | | - * `channel:web`
- `channel:web,pos` | - * | channel_id | id | Filter by the channel [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Channel#field-id) + * | channel_id | id | Filter by the channel [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Channel#field-Channel.fields.id) * field. | | | - `channel_id:123` | * | chargeback_status | string | Filter by the order's chargeback status. A * chargeback occurs when a customer questions the legitimacy of a charge with @@ -171,18 +171,23 @@ public Builder sortKey(OrderSortKeys sortKey) { * card that was used to pay for the order. This filter matches only the last * four digits of the card for heightened security. | | | - * `credit_card_last4:1234` | - * | customer_id | id | Filter orders by the customer [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Customer#field-id) + * | current_total_price | float | Filter by the current total price of the + * order in the shop currency, including any returns/refunds/removals. This + * filter supports both exact values and ranges. | | | - + * `current_total_price:10`
- `current_total_price:>=5.00 + * current_total_price:<=20.99` | + * | customer_id | id | Filter orders by the customer [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Customer#field-Customer.fields.id) * field. | | | - `customer_id:123` | - * | delivery_method | string | Filter by the delivery [`methodType`](https://shopify.dev/api/admin-graphql/2024-07/objects/DeliveryMethod#field-methodtype) + * | delivery_method | string | Filter by the delivery [`methodType`](https://shopify.dev/api/admin-graphql/2024-07/objects/DeliveryMethod#field-DeliveryMethod.fields.methodType) * field. | - `shipping`
- `pick-up`
- `retail`
- `local`
- * `pickup-point`
- `none` | | - `delivery_method:shipping` | * | discount_code | string | Filter by the case-insensitive discount code that - * was applied to the order at checkout. Maximum characters: 255. | | | - - * `discount_code:ABC123` | + * was applied to the order at checkout. Limited to the first discount code + * used on an order. Maximum characters: 255. | | | - `discount_code:ABC123` | * | email | string | Filter by the email address that's associated with the * order to provide customer support or analyze purchasing patterns. | | | - * `email:example@shopify.com` | - * | financial_status | string | Filter by the order [`displayFinancialStatus`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-displayfinancialstatus) + * | financial_status | string | Filter by the order [`displayFinancialStatus`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-Order.fields.displayFinancialStatus) * field. | - `paid`
- `pending`
- `authorized`
- * `partially_paid`
- `partially_refunded`
- `refunded`
- * `voided`
- `expired` | | - `financial_status:authorized` | @@ -191,23 +196,28 @@ public Builder sortKey(OrderSortKeys sortKey) { * disputes. | - `fully_protected`
- `partially_protected`
- * `not_protected`
- `pending`
- `not_eligible`
- * `not_available` | | - `fraud_protection_level:fully_protected` | - * | fulfillment_location_id | id | Filter by the fulfillment location [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Fulfillment#field-location) + * | fulfillment_location_id | id | Filter by the fulfillment location [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Fulfillment#field-Fulfillment.fields.location.id) * (`Fulfillment.location.id`) field. | | | - `fulfillment_location_id:123` | - * | fulfillment_status | string | Filter by the [`displayFulfillmentStatus`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-displayfulfillmentstatus) + * | fulfillment_status | string | Filter by the [`displayFulfillmentStatus`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-Order.fields.displayFulfillmentStatus) * field to prioritize shipments or monitor order processing. | - * `unshipped`
- `shipped`
- `fulfilled`
- `partial`
- * `scheduled`
- `on_hold`
- `unfulfilled`
- `request_declined` * | | - `fulfillment_status:fulfilled` | - * | gateway | string | Filter by the [`paymentGatewayNames`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-paymentgatewaynames) + * | gateway | string | Filter by the [`paymentGatewayNames`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-Order.fields.paymentGatewayNames) * field. Use this filter to find orders that were processed through specific * payment providers like Shopify Payments, PayPal, or other custom payment * gateways. | | | - `gateway:shopify_payments` | * | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | - * | location_id | id | Filter by the location [`id`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location#field-id) + * | location_id | id | Filter by the location [`id`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location#field-Location.fields.id) * that's associated with the order to view and manage orders for specific * locations. For POS orders, locations must be defined in the Shopify admin * under **Settings** > **Locations**. If no ID is provided, then the primary * location of the shop is returned. | | | - `location_id:123` | + * | metafields.{namespace}.{key} | mixed | Filters resources by metafield + * value. Format: `metafields.{namespace}.{key}:{value}`. Learn more about + * [querying by metafield value](https://shopify.dev/apps/build/custom-data/metafields/query-by-metafield-value). + * | | | - `metafields.custom.on_sale:true`
- + * `metafields.product.material:"gid://shopify/Metaobject/43458085"` | * | name | string | Filter by the order [`name`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-name) * field. | | | - `name:1001-A` | * | payment_id | string | Filter by the payment ID that's associated with the @@ -216,26 +226,26 @@ public Builder sortKey(OrderSortKeys sortKey) { * | payment_provider_id | id | Filter by the ID of the payment provider that's * associated with the order to manage payment methods or troubleshoot * transactions. | | | - `payment_provider_id:123` | - * | po_number | string | Filter by the order [`poNumber`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-ponumber) + * | po_number | string | Filter by the order [`poNumber`](https://shopify.dev/api/admin-graphql/latest/objects/order#field-Order.fields.poNumber) * field. | | | - `po_number:P01001` | - * | processed_at | time | Filter by the order [`processedAt`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-processedat) + * | processed_at | time | Filter by the order [`processedAt`](https://shopify.dev/api/admin-graphql/latest/objects/order#field-Order.fields.processedAt) * field. | | | - `processed_at:2021-01-01T00:00:00Z` | * | reference_location_id | id | Filter by the ID of a location that's * associated with the order, such as locations from fulfillments, refunds, or * the shop's primary location. | | | - `reference_location_id:123` | - * | return_status | string | Filter by the return status to monitor returns - * processing and track which orders have active returns. | - - * `return_requested`
- `in_progress`
- `inspection_complete`
- - * `returned`
- `return_failed`
- `no_return` | | - + * | return_status | string | Filter by the order's [`returnStatus`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-Order.fields.returnStatus) + * to monitor returns processing and track which orders have active returns. | + * - `return_requested`
- `in_progress`
- `inspection_complete`
+ * - `returned`
- `return_failed`
- `no_return` | | - * `return_status:in_progress` | - * | risk_level | string | Filter by the order risk assessment [`riskLevel`](https://shopify.dev/api/admin-graphql/latest/objects/OrderRiskAssessment#field-risklevel) + * | risk_level | string | Filter by the order risk assessment [`riskLevel`](https://shopify.dev/api/admin-graphql/latest/objects/OrderRiskAssessment#field-OrderRiskAssessment.fields.riskLevel) * field. | - `high`
- `medium`
- `low`
- `none`
- * `pending` | | - `risk_level:high` | * | sales_channel | string | Filter by the [sales * channel](https://shopify.dev/docs/apps/build/sales-channels) where the order * was made to analyze performance or manage fulfillment processes. | | | - * `sales_channel: some_sales_channel` | - * | sku | string | Filter by the product variant [`sku`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-sku) + * | sku | string | Filter by the product variant [`sku`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-ProductVariant.fields.sku) * field. [Learn more about * SKUs](https://help.shopify.com/manual/products/details/sku). | | | - `sku:ABC123` | * | source_identifier | string | Filter by the ID of the order placed on the @@ -257,9 +267,14 @@ public Builder sortKey(OrderSortKeys sortKey) { * `subtotal_line_items_quantity:5..20` | * | tag | string | Filter objects by the `tag` field. | | | - `tag:my_tag` | * | tag_not | string | Filter by objects that don’t have the specified tag. | | | - `tag_not:my_tag` | - * | test | boolean | Filter by test orders. Test orders are made using the [Shopify Bogus - * Gateway](https://help.shopify.com/manual/checkout-settings/test-orders) or a - * payment provider with test mode enabled. | | | - `test:true` | + * | test | boolean | Filter by test orders. Test orders are made using the [Shopify Bogus Gateway](https://help.shopify.com/manual/checkout-settings/test-orders/payments-test-mode#bogus-gateway) + * or a payment provider with test mode enabled. | | | - `test:true` | + * | total_weight | string | Filter by the order weight. This filter supports + * both exact values and ranges, and is to be used to filter orders by the + * total weight of all items (excluding packaging). It takes a unit of + * measurement as a suffix. It accepts the following units: g, kg, lb, oz. | | + * | - `total_weight:10.5kg`
- `total_weight:>=5g total_weight:<=20g`
+ * - `total_weight:.5 lb` | * | updated_at | time | Filter by the date and time when the order was last * updated in Shopify's system. | | | - `updated_at:2020-10-21T23:39:20Z`
* - `updated_at:<now`
- `updated_at:<=2024` | diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PageCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PageCreateGraphQLQuery.java index f19648f6..28b4ff6e 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PageCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PageCreateGraphQLQuery.java @@ -8,7 +8,15 @@ import java.util.Set; /** - * Creates a page. + * Creates a [`Page`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Page) for the online store. + * + * Pages contain custom content like "About Us" or "Contact" information that + * merchants display outside their product catalog. The page requires a [`title`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Page#field-Page.fields.title) + * and can include HTML content, publishing settings, and custom [template suffixes](https://shopify.dev/docs/api/admin-graphql/latest/objects/Page#field-Page.fields.templateSuffix). + * You can control visibility through the [`isPublished`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Page#field-Page.fields.isPublished) + * flag or schedule publication with a specific date. + * + * The mutation returns the complete page object upon successful creation or validation errors if the input is invalid. */ public class PageCreateGraphQLQuery extends GraphQLQuery { public PageCreateGraphQLQuery(PageCreateInput page, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PageDeleteGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PageDeleteGraphQLQuery.java index 7e3cff3c..5046e2cc 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PageDeleteGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PageDeleteGraphQLQuery.java @@ -7,7 +7,17 @@ import java.util.Set; /** - * Deletes a page. + * Permanently deletes a page from the online store. + * + * For example, merchants might delete seasonal landing pages after campaigns + * end, or remove outdated policy pages when terms change. + * + * Use the `pageDelete` mutation to: + * - Remove outdated or unnecessary pages + * - Clean up seasonal landing pages + * - Delete duplicate pages + * + * The deletion is permanent and returns the deleted page's ID for confirmation. */ public class PageDeleteGraphQLQuery extends GraphQLQuery { public PageDeleteGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PageGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PageGraphQLQuery.java index f0362bf6..f8925d33 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PageGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PageGraphQLQuery.java @@ -7,7 +7,7 @@ import java.util.Set; /** - * Returns a Page resource by ID. + * Returns a `Page` resource by ID. */ public class PageGraphQLQuery extends GraphQLQuery { public PageGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PageUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PageUpdateGraphQLQuery.java index adb9b307..c74b8b69 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PageUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PageUpdateGraphQLQuery.java @@ -8,7 +8,18 @@ import java.util.Set; /** - * Updates a page. + * Updates an existing page's content and settings. + * + * For example, merchants can update their "Shipping Policy" page when rates + * change, or refresh their "About Us" page with new team information. + * + * Use the `pageUpdate` mutation to: + * - Update page content and titles + * - Modify publication status + * - Change page handles for URL structure + * - Adjust template settings + * + * The mutation supports partial updates, allowing specific changes while preserving other page properties. */ public class PageUpdateGraphQLQuery extends GraphQLQuery { public PageUpdateGraphQLQuery(String id, PageUpdateInput page, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PagesCountGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PagesCountGraphQLQuery.java index 57e1105f..d2b89675 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PagesCountGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PagesCountGraphQLQuery.java @@ -1,17 +1,21 @@ package com.shopify.admin.client; import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import java.lang.Integer; import java.lang.Override; import java.lang.String; import java.util.HashSet; import java.util.Set; /** - * Count of pages. + * Count of pages. Limited to a maximum of 10000 by default. */ public class PagesCountGraphQLQuery extends GraphQLQuery { - public PagesCountGraphQLQuery(String queryName) { + public PagesCountGraphQLQuery(Integer limit, String queryName, Set fieldsSet) { super("query", queryName); + if (limit != null || fieldsSet.contains("limit")) { + getInput().put("limit", limit); + } } public PagesCountGraphQLQuery() { @@ -30,10 +34,22 @@ public static Builder newRequest() { public static class Builder { private Set fieldsSet = new HashSet<>(); + private Integer limit; + private String queryName; public PagesCountGraphQLQuery build() { - return new PagesCountGraphQLQuery(queryName); + return new PagesCountGraphQLQuery(limit, queryName, fieldsSet); + + } + + /** + * The upper bound on count value before returning a result. Use `null` to have no limit. + */ + public Builder limit(Integer limit) { + this.limit = limit; + this.fieldsSet.add("limit"); + return this; } public Builder queryName(String queryName) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PagesGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PagesGraphQLQuery.java index 6bd90a45..553da1bd 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PagesGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PagesGraphQLQuery.java @@ -10,7 +10,14 @@ import java.util.Set; /** - * List of the shop's pages. + * A paginated list of pages from the online store. + * [`Page`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Page) + * objects are content pages that merchants create to provide information to + * customers, such as "About Us", "Contact", or policy pages. + * + * The query supports filtering with a [search + * query](https://shopify.dev/docs/api/usage/search-syntax) and sorting by + * various criteria. Advanced filtering is available through saved searches using the [`savedSearchId`](https://shopify.dev/docs/api/admin-graphql/latest/queries/pages#arguments-savedSearchId) argument. */ public class PagesGraphQLQuery extends GraphQLQuery { public PagesGraphQLQuery(Integer first, String after, Integer last, String before, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PaymentDetailsProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PaymentDetailsProjection.java index 98c1e06e..e2dc8636 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PaymentDetailsProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PaymentDetailsProjection.java @@ -26,6 +26,13 @@ public LocalPaymentMethodsPaymentDetailsFragmentProjection, ROOT> onPaypalWalletPaymentDetails( + ) { + PaypalWalletPaymentDetailsFragmentProjection, ROOT> fragment = new PaypalWalletPaymentDetailsFragmentProjection<>(this, getRoot()); + getFragments().add(fragment); + return fragment; + } + public ShopPayInstallmentsPaymentDetailsFragmentProjection, ROOT> onShopPayInstallmentsPaymentDetails( ) { ShopPayInstallmentsPaymentDetailsFragmentProjection, ROOT> fragment = new ShopPayInstallmentsPaymentDetailsFragmentProjection<>(this, getRoot()); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PaymentInstrumentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PaymentInstrumentProjection.java index 42b5100b..eb414c2b 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PaymentInstrumentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PaymentInstrumentProjection.java @@ -12,6 +12,13 @@ public PaymentInstrumentProjection __typename() { return this; } + public BankAccountFragmentProjection, ROOT> onBankAccount( + ) { + BankAccountFragmentProjection, ROOT> fragment = new BankAccountFragmentProjection<>(this, getRoot()); + getFragments().add(fragment); + return fragment; + } + public VaultCreditCardFragmentProjection, ROOT> onVaultCreditCard( ) { VaultCreditCardFragmentProjection, ROOT> fragment = new VaultCreditCardFragmentProjection<>(this, getRoot()); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PaymentMandateResourceConnectionProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PaymentMandateResourceConnectionProjection.java new file mode 100644 index 00000000..02d52cfc --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PaymentMandateResourceConnectionProjection.java @@ -0,0 +1,35 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class PaymentMandateResourceConnectionProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public PaymentMandateResourceConnectionProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("PaymentMandateResourceConnection")); + } + + public PaymentMandateResourceConnectionProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public PaymentMandateResourceEdgeProjection, ROOT> edges( + ) { + PaymentMandateResourceEdgeProjection, ROOT> projection = new PaymentMandateResourceEdgeProjection<>(this, getRoot()); + getFields().put("edges", projection); + return projection; + } + + public PaymentMandateResourceProjection, ROOT> nodes( + ) { + PaymentMandateResourceProjection, ROOT> projection = new PaymentMandateResourceProjection<>(this, getRoot()); + getFields().put("nodes", projection); + return projection; + } + + public PageInfoProjection, ROOT> pageInfo( + ) { + PageInfoProjection, ROOT> projection = new PageInfoProjection<>(this, getRoot()); + getFields().put("pageInfo", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PaymentMandateResourceEdgeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PaymentMandateResourceEdgeProjection.java new file mode 100644 index 00000000..008855ba --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PaymentMandateResourceEdgeProjection.java @@ -0,0 +1,26 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class PaymentMandateResourceEdgeProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public PaymentMandateResourceEdgeProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("PaymentMandateResourceEdge")); + } + + public PaymentMandateResourceEdgeProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public PaymentMandateResourceProjection, ROOT> node( + ) { + PaymentMandateResourceProjection, ROOT> projection = new PaymentMandateResourceProjection<>(this, getRoot()); + getFields().put("node", projection); + return projection; + } + + public PaymentMandateResourceEdgeProjection cursor() { + getFields().put("cursor", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PaymentMandateResourceProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PaymentMandateResourceProjection.java new file mode 100644 index 00000000..d8c70832 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PaymentMandateResourceProjection.java @@ -0,0 +1,26 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class PaymentMandateResourceProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public PaymentMandateResourceProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("PaymentMandateResource")); + } + + public PaymentMandateResourceProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public MandateResourceTypeProjection, ROOT> resourceType( + ) { + MandateResourceTypeProjection, ROOT> projection = new MandateResourceTypeProjection<>(this, getRoot()); + getFields().put("resourceType", projection); + return projection; + } + + public PaymentMandateResourceProjection resourceId() { + getFields().put("resourceId", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PaymentScheduleFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PaymentScheduleFragmentProjection.java index ad6ff582..65005442 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PaymentScheduleFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PaymentScheduleFragmentProjection.java @@ -24,6 +24,12 @@ public MoneyV2Projection, ROOT> return projection; } + public MoneyV2Projection, ROOT> balanceDue() { + MoneyV2Projection, ROOT> projection = new MoneyV2Projection<>(this, getRoot()); + getFields().put("balanceDue", projection); + return projection; + } + public PaymentTermsProjection, ROOT> paymentTerms( ) { PaymentTermsProjection, ROOT> projection = new PaymentTermsProjection<>(this, getRoot()); @@ -31,11 +37,22 @@ public PaymentTermsProjection, R return projection; } + public MoneyV2Projection, ROOT> totalBalance() { + MoneyV2Projection, ROOT> projection = new MoneyV2Projection<>(this, getRoot()); + getFields().put("totalBalance", projection); + return projection; + } + public PaymentScheduleFragmentProjection completedAt() { getFields().put("completedAt", null); return this; } + public PaymentScheduleFragmentProjection due() { + getFields().put("due", null); + return this; + } + public PaymentScheduleFragmentProjection dueAt() { getFields().put("dueAt", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PaymentScheduleProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PaymentScheduleProjection.java index 280de91d..a9e67d96 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PaymentScheduleProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PaymentScheduleProjection.java @@ -18,17 +18,34 @@ public MoneyV2Projection, ROOT> amount() return projection; } + public MoneyV2Projection, ROOT> balanceDue() { + MoneyV2Projection, ROOT> projection = new MoneyV2Projection<>(this, getRoot()); + getFields().put("balanceDue", projection); + return projection; + } + public PaymentTermsProjection, ROOT> paymentTerms() { PaymentTermsProjection, ROOT> projection = new PaymentTermsProjection<>(this, getRoot()); getFields().put("paymentTerms", projection); return projection; } + public MoneyV2Projection, ROOT> totalBalance() { + MoneyV2Projection, ROOT> projection = new MoneyV2Projection<>(this, getRoot()); + getFields().put("totalBalance", projection); + return projection; + } + public PaymentScheduleProjection completedAt() { getFields().put("completedAt", null); return this; } + public PaymentScheduleProjection due() { + getFields().put("due", null); + return this; + } + public PaymentScheduleProjection dueAt() { getFields().put("dueAt", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PaymentTermsFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PaymentTermsFragmentProjection.java index a322d44d..cb2ccd63 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PaymentTermsFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PaymentTermsFragmentProjection.java @@ -65,6 +65,11 @@ public PaymentTermsTypeProjection, return projection; } + public PaymentTermsFragmentProjection due() { + getFields().put("due", null); + return this; + } + public PaymentTermsFragmentProjection dueInDays() { getFields().put("dueInDays", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PaymentTermsProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PaymentTermsProjection.java index 6bcc3de8..2b3bfcd0 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PaymentTermsProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PaymentTermsProjection.java @@ -59,6 +59,11 @@ public PaymentTermsTypeProjection, ROOT> pa return projection; } + public PaymentTermsProjection due() { + getFields().put("due", null); + return this; + } + public PaymentTermsProjection dueInDays() { getFields().put("dueInDays", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PaypalWalletPaymentDetailsFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PaypalWalletPaymentDetailsFragmentProjection.java new file mode 100644 index 00000000..f7ec1fc0 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PaypalWalletPaymentDetailsFragmentProjection.java @@ -0,0 +1,40 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; +import java.lang.Override; +import java.lang.String; + +public class PaypalWalletPaymentDetailsFragmentProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + { + getFields().put("__typename", null); + } + + public PaypalWalletPaymentDetailsFragmentProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("PaypalWalletPaymentDetails")); + } + + public PaypalWalletPaymentDetailsFragmentProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public PaypalWalletPaymentDetailsFragmentProjection paymentMethodName() { + getFields().put("paymentMethodName", null); + return this; + } + + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + builder.append("... on PaypalWalletPaymentDetails {"); + getFields().forEach((k, v) -> { + builder.append(" ").append(k); + if(v != null) { + builder.append(" ").append(v.toString()); + } + }); + builder.append("}"); + + return builder.toString(); + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PickupInStoreLocationProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PickupInStoreLocationProjection.java new file mode 100644 index 00000000..4895274f --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PickupInStoreLocationProjection.java @@ -0,0 +1,51 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class PickupInStoreLocationProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public PickupInStoreLocationProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("PickupInStoreLocation")); + } + + public PickupInStoreLocationProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public DistanceProjection, ROOT> distanceFromBuyer( + ) { + DistanceProjection, ROOT> projection = new DistanceProjection<>(this, getRoot()); + getFields().put("distanceFromBuyer", projection); + return projection; + } + + public PickupInStoreLocationProjection code() { + getFields().put("code", null); + return this; + } + + public PickupInStoreLocationProjection handle() { + getFields().put("handle", null); + return this; + } + + public PickupInStoreLocationProjection instructions() { + getFields().put("instructions", null); + return this; + } + + public PickupInStoreLocationProjection locationId() { + getFields().put("locationId", null); + return this; + } + + public PickupInStoreLocationProjection source() { + getFields().put("source", null); + return this; + } + + public PickupInStoreLocationProjection title() { + getFields().put("title", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PointOfSaleDeviceFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PointOfSaleDeviceFragmentProjection.java new file mode 100644 index 00000000..b3a0dd95 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PointOfSaleDeviceFragmentProjection.java @@ -0,0 +1,40 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; +import java.lang.Override; +import java.lang.String; + +public class PointOfSaleDeviceFragmentProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + { + getFields().put("__typename", null); + } + + public PointOfSaleDeviceFragmentProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("PointOfSaleDevice")); + } + + public PointOfSaleDeviceFragmentProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public PointOfSaleDeviceFragmentProjection id() { + getFields().put("id", null); + return this; + } + + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + builder.append("... on PointOfSaleDevice {"); + getFields().forEach((k, v) -> { + builder.append(" ").append(k); + if(v != null) { + builder.append(" ").append(v.toString()); + } + }); + builder.append("}"); + + return builder.toString(); + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PointOfSaleDeviceGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PointOfSaleDeviceGraphQLQuery.java new file mode 100644 index 00000000..fa9f2602 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PointOfSaleDeviceGraphQLQuery.java @@ -0,0 +1,59 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import java.lang.Override; +import java.lang.String; +import java.util.HashSet; +import java.util.Set; + +/** + * Returns a `PointOfSaleDevice` resource by ID. + */ +public class PointOfSaleDeviceGraphQLQuery extends GraphQLQuery { + public PointOfSaleDeviceGraphQLQuery(String id, String queryName, Set fieldsSet) { + super("query", queryName); + if (id != null || fieldsSet.contains("id")) { + getInput().put("id", id); + } + } + + public PointOfSaleDeviceGraphQLQuery() { + super("query"); + } + + @Override + public String getOperationName() { + return "pointOfSaleDevice"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private String id; + + private String queryName; + + public PointOfSaleDeviceGraphQLQuery build() { + return new PointOfSaleDeviceGraphQLQuery(id, queryName, fieldsSet); + + } + + /** + * The ID of the `PointOfSaleDevice` to return. + */ + public Builder id(String id) { + this.id = id; + this.fieldsSet.add("id"); + return this; + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PointOfSaleDeviceProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PointOfSaleDeviceProjection.java new file mode 100644 index 00000000..d9e93621 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PointOfSaleDeviceProjection.java @@ -0,0 +1,19 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class PointOfSaleDeviceProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public PointOfSaleDeviceProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("PointOfSaleDevice")); + } + + public PointOfSaleDeviceProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public PointOfSaleDeviceProjection id() { + getFields().put("id", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PointOfSaleDeviceProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PointOfSaleDeviceProjectionRoot.java new file mode 100644 index 00000000..78ab8fa0 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PointOfSaleDeviceProjectionRoot.java @@ -0,0 +1,19 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class PointOfSaleDeviceProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public PointOfSaleDeviceProjectionRoot() { + super(null, null, java.util.Optional.of("PointOfSaleDevice")); + } + + public PointOfSaleDeviceProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public PointOfSaleDeviceProjectionRoot id() { + getFields().put("id", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PriceListCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PriceListCreateGraphQLQuery.java index 93d18a17..78be6c0f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PriceListCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PriceListCreateGraphQLQuery.java @@ -8,9 +8,15 @@ import java.util.Set; /** - * Creates a price list. You can use the `priceListCreate` mutation to create a - * new price list and associate it with a catalog. This enables you to sell your - * products with contextual pricing. + * Creates a [`PriceList`](https://shopify.dev/docs/api/admin-graphql/latest/objects/PriceList). Price lists enable contextual pricing by defining fixed prices or + * percentage-based adjustments. + * + * The price list requires a unique name, currency for fixed prices, and parent + * adjustment settings that determine how the system calculates prices relative + * to base prices. To apply contextual pricing, link the price list to a [`Catalog`](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/Catalog). + * When that catalog's context is matched, customers receive the price list's prices. + * + * Learn more about [building catalogs with price lists](https://shopify.dev/docs/apps/build/markets/build-catalog#step-2-associate-a-price-list-with-the-catalog). */ public class PriceListCreateGraphQLQuery extends GraphQLQuery { public PriceListCreateGraphQLQuery(PriceListCreateInput input, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PriceListFixedPricesAddGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PriceListFixedPricesAddGraphQLQuery.java index 1edc30ba..16e5e0f5 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PriceListFixedPricesAddGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PriceListFixedPricesAddGraphQLQuery.java @@ -9,10 +9,11 @@ import java.util.Set; /** - * Creates or updates fixed prices on a price list. You can use the - * `priceListFixedPricesAdd` mutation to set a fixed price for specific product - * variants. This lets you change product variant pricing on a per country basis. - * Any existing fixed price list prices for these variants will be overwritten. + * Creates or updates fixed prices on a [`PriceList`](https://shopify.dev/docs/api/admin-graphql/latest/objects/PriceList). + * Use this mutation to set specific prices for [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) + * objects that override the price list's default percentage-based adjustments. + * + * When you add fixed prices, the mutation replaces any existing fixed prices for those variants on the price list. */ public class PriceListFixedPricesAddGraphQLQuery extends GraphQLQuery { public PriceListFixedPricesAddGraphQLQuery(String priceListId, List prices, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PriceListFixedPricesByProductUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PriceListFixedPricesByProductUpdateGraphQLQuery.java index 31394f70..cb74c12f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PriceListFixedPricesByProductUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PriceListFixedPricesByProductUpdateGraphQLQuery.java @@ -9,9 +9,14 @@ import java.util.Set; /** - * Updates the fixed prices for all variants for a product on a price list. You - * can use the `priceListFixedPricesByProductUpdate` mutation to set or remove a - * fixed price for all variants of a product associated with the price list. + * Sets or removes fixed prices for all variants of a + * [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) on a [`PriceList`](https://shopify.dev/docs/api/admin-graphql/latest/objects/PriceList). + * Simplifies pricing management when all variants of a product should have the + * same price on a price list, rather than setting individual variant prices. + * + * When you add a fixed price for a product, all its [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) + * objects receive the same price on the price list. When you remove a product's + * fixed prices, all variant prices revert to the price list's adjustment rules. */ public class PriceListFixedPricesByProductUpdateGraphQLQuery extends GraphQLQuery { public PriceListFixedPricesByProductUpdateGraphQLQuery( diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PriceListFixedPricesUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PriceListFixedPricesUpdateGraphQLQuery.java index ee9b9610..1350bd51 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PriceListFixedPricesUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PriceListFixedPricesUpdateGraphQLQuery.java @@ -9,9 +9,13 @@ import java.util.Set; /** - * Updates fixed prices on a price list. You can use the - * `priceListFixedPricesUpdate` mutation to set a fixed price for specific - * product variants or to delete prices for variants associated with the price list. + * Updates fixed prices on a [`PriceList`](https://shopify.dev/docs/api/admin-graphql/latest/objects/PriceList). + * This mutation lets you add new fixed prices for specific [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) + * objects and remove existing prices in a single operation. + * + * Use this mutation to modify variant pricing on a price list by providing prices to add and variant IDs to delete. + * + * Learn more about [setting fixed prices for product variants](https://shopify.dev/docs/apps/build/markets/build-catalog#step-3-set-fixed-prices-for-specific-product-variants). */ public class PriceListFixedPricesUpdateGraphQLQuery extends GraphQLQuery { public PriceListFixedPricesUpdateGraphQLQuery(String priceListId, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PriceListGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PriceListGraphQLQuery.java index 81884626..dc88daad 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PriceListGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PriceListGraphQLQuery.java @@ -7,7 +7,13 @@ import java.util.Set; /** - * Returns a price list resource by ID. + * Returns a [`PriceList`](https://shopify.dev/docs/api/admin-graphql/latest/objects/PriceList) by ID. You can use price lists to specify either fixed prices or adjusted + * relative prices that override initial + * [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) prices. + * + * Price lists enable contextual pricing for the [`Catalog`](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/Catalog) + * they are associated to. Each price list can define fixed prices for specific [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) + * objects or percentage-based adjustments relative to other prices. */ public class PriceListGraphQLQuery extends GraphQLQuery { public PriceListGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PriceListUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PriceListUpdateGraphQLQuery.java index e53afc3c..e0d12484 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PriceListUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PriceListUpdateGraphQLQuery.java @@ -8,8 +8,11 @@ import java.util.Set; /** - * Updates a price list. - * If you modify the currency, then any fixed prices set on the price list will be deleted. + * Updates a [`PriceList`](https://shopify.dev/docs/api/admin-graphql/latest/objects/PriceList)'s configuration, including its name, currency, [`Catalog`](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/Catalog) + * association, and pricing adjustments. + * + * Changing the currency removes all fixed prices from the price list. The affected [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) + * objects revert to prices calculated from the price list's adjustment settings. */ public class PriceListUpdateGraphQLQuery extends GraphQLQuery { public PriceListUpdateGraphQLQuery(String id, PriceListUpdateInput input, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductBundleCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductBundleCreateGraphQLQuery.java index 57548cc2..fa73c5b4 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductBundleCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductBundleCreateGraphQLQuery.java @@ -8,7 +8,17 @@ import java.util.Set; /** - * Creates a new componentized product. + * Creates a product bundle that groups multiple + * [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) + * objects together as components. The bundle appears as a single product in the + * store, with its price determined by the parent product and inventory + * calculated from the component products. + * + * The mutation runs asynchronously and returns a [`ProductBundleOperation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductBundleOperation) + * object to track the creation status. Poll the operation using the [`productOperation`](https://shopify.dev/docs/api/admin-graphql/latest/queries/productOperation) + * query to determine when the bundle is ready. + * + * Learn more about [creating product fixed bundles](https://shopify.dev/docs/apps/build/product-merchandising/bundles/add-product-fixed-bundle#step-1-create-a-bundle). */ public class ProductBundleCreateGraphQLQuery extends GraphQLQuery { public ProductBundleCreateGraphQLQuery(ProductBundleCreateInput input, String queryName, @@ -45,7 +55,7 @@ public ProductBundleCreateGraphQLQuery build() { } /** - * Input for creating a componentized product. + * Input for creating a product bundle or componentized product. */ public Builder input(ProductBundleCreateInput input) { this.input = input; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductBundleUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductBundleUpdateGraphQLQuery.java index adb00a3c..d2a653a2 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductBundleUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductBundleUpdateGraphQLQuery.java @@ -8,7 +8,7 @@ import java.util.Set; /** - * Updates a componentized product. + * Updates a product bundle or componentized product. */ public class ProductBundleUpdateGraphQLQuery extends GraphQLQuery { public ProductBundleUpdateGraphQLQuery(ProductBundleUpdateInput input, String queryName, @@ -45,7 +45,7 @@ public ProductBundleUpdateGraphQLQuery build() { } /** - * Input for updating a componentized product. + * Input for updating a product bundle or componentized product. */ public Builder input(ProductBundleUpdateInput input) { this.input = input; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductByHandleGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductByHandleGraphQLQuery.java index 4768b904..9d5dbbba 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductByHandleGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductByHandleGraphQLQuery.java @@ -7,7 +7,11 @@ import java.util.Set; /** - * Return a product by its handle. + * Retrieves a [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) + * using its handle. A handle is a unique, URL-friendly string that Shopify + * automatically generates from the product's title. + * + * Returns `null` if no product exists with the specified handle. */ public class ProductByHandleGraphQLQuery extends GraphQLQuery { public ProductByHandleGraphQLQuery(String handle, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductByHandleProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductByHandleProjectionRoot.java index bf90c2b1..ccf0feb9 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductByHandleProjectionRoot.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductByHandleProjectionRoot.java @@ -59,6 +59,13 @@ public ProductBundleComponentConnectionProjection, ProductByHandleProjectionRoot> bundleConsolidatedOptions( + ) { + ComponentizedProductsBundleConsolidatedOptionProjection, ProductByHandleProjectionRoot> projection = new ComponentizedProductsBundleConsolidatedOptionProjection<>(this, this); + getFields().put("bundleConsolidatedOptions", projection); + return projection; + } + public TaxonomyCategoryProjection, ProductByHandleProjectionRoot> category( ) { TaxonomyCategoryProjection, ProductByHandleProjectionRoot> projection = new TaxonomyCategoryProjection<>(this, this); @@ -392,6 +399,65 @@ public ProductCategoryProjection, Pr return projection; } + public ProductComponentTypeConnectionProjection, ProductByHandleProjectionRoot> productComponents( + ) { + ProductComponentTypeConnectionProjection, ProductByHandleProjectionRoot> projection = new ProductComponentTypeConnectionProjection<>(this, this); + getFields().put("productComponents", projection); + return projection; + } + + public ProductComponentTypeConnectionProjection, ProductByHandleProjectionRoot> productComponents( + Integer first, String after, Integer last, String before, Boolean reverse) { + ProductComponentTypeConnectionProjection, ProductByHandleProjectionRoot> projection = new ProductComponentTypeConnectionProjection<>(this, this); + getFields().put("productComponents", projection); + getInputArguments().computeIfAbsent("productComponents", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("productComponents").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("productComponents").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("productComponents").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("productComponents").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("productComponents").add(reverseArg); + return projection; + } + + public CountProjection, ProductByHandleProjectionRoot> productComponentsCount( + ) { + CountProjection, ProductByHandleProjectionRoot> projection = new CountProjection<>(this, this); + getFields().put("productComponentsCount", projection); + return projection; + } + + public ProductConnectionProjection, ProductByHandleProjectionRoot> productParents( + ) { + ProductConnectionProjection, ProductByHandleProjectionRoot> projection = new ProductConnectionProjection<>(this, this); + getFields().put("productParents", projection); + return projection; + } + + public ProductConnectionProjection, ProductByHandleProjectionRoot> productParents( + Integer first, String after, Integer last, String before, Boolean reverse, String query) { + ProductConnectionProjection, ProductByHandleProjectionRoot> projection = new ProductConnectionProjection<>(this, this); + getFields().put("productParents", projection); + getInputArguments().computeIfAbsent("productParents", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("productParents").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("productParents").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("productParents").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("productParents").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("productParents").add(reverseArg); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("productParents").add(queryArg); + return projection; + } + public ProductPublicationConnectionProjection, ProductByHandleProjectionRoot> productPublications( ) { ProductPublicationConnectionProjection, ProductByHandleProjectionRoot> projection = new ProductPublicationConnectionProjection<>(this, this); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductByIdentifierProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductByIdentifierProjectionRoot.java index 338d1e71..d09cabcf 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductByIdentifierProjectionRoot.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductByIdentifierProjectionRoot.java @@ -59,6 +59,13 @@ public ProductBundleComponentConnectionProjection, ProductByIdentifierProjectionRoot> bundleConsolidatedOptions( + ) { + ComponentizedProductsBundleConsolidatedOptionProjection, ProductByIdentifierProjectionRoot> projection = new ComponentizedProductsBundleConsolidatedOptionProjection<>(this, this); + getFields().put("bundleConsolidatedOptions", projection); + return projection; + } + public TaxonomyCategoryProjection, ProductByIdentifierProjectionRoot> category( ) { TaxonomyCategoryProjection, ProductByIdentifierProjectionRoot> projection = new TaxonomyCategoryProjection<>(this, this); @@ -392,6 +399,65 @@ public ProductCategoryProjection return projection; } + public ProductComponentTypeConnectionProjection, ProductByIdentifierProjectionRoot> productComponents( + ) { + ProductComponentTypeConnectionProjection, ProductByIdentifierProjectionRoot> projection = new ProductComponentTypeConnectionProjection<>(this, this); + getFields().put("productComponents", projection); + return projection; + } + + public ProductComponentTypeConnectionProjection, ProductByIdentifierProjectionRoot> productComponents( + Integer first, String after, Integer last, String before, Boolean reverse) { + ProductComponentTypeConnectionProjection, ProductByIdentifierProjectionRoot> projection = new ProductComponentTypeConnectionProjection<>(this, this); + getFields().put("productComponents", projection); + getInputArguments().computeIfAbsent("productComponents", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("productComponents").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("productComponents").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("productComponents").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("productComponents").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("productComponents").add(reverseArg); + return projection; + } + + public CountProjection, ProductByIdentifierProjectionRoot> productComponentsCount( + ) { + CountProjection, ProductByIdentifierProjectionRoot> projection = new CountProjection<>(this, this); + getFields().put("productComponentsCount", projection); + return projection; + } + + public ProductConnectionProjection, ProductByIdentifierProjectionRoot> productParents( + ) { + ProductConnectionProjection, ProductByIdentifierProjectionRoot> projection = new ProductConnectionProjection<>(this, this); + getFields().put("productParents", projection); + return projection; + } + + public ProductConnectionProjection, ProductByIdentifierProjectionRoot> productParents( + Integer first, String after, Integer last, String before, Boolean reverse, String query) { + ProductConnectionProjection, ProductByIdentifierProjectionRoot> projection = new ProductConnectionProjection<>(this, this); + getFields().put("productParents", projection); + getInputArguments().computeIfAbsent("productParents", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("productParents").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("productParents").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("productParents").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("productParents").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("productParents").add(reverseArg); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("productParents").add(queryArg); + return projection; + } + public ProductPublicationConnectionProjection, ProductByIdentifierProjectionRoot> productPublications( ) { ProductPublicationConnectionProjection, ProductByIdentifierProjectionRoot> projection = new ProductPublicationConnectionProjection<>(this, this); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductComponentTypeConnectionProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductComponentTypeConnectionProjection.java new file mode 100644 index 00000000..86a45b87 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductComponentTypeConnectionProjection.java @@ -0,0 +1,35 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class ProductComponentTypeConnectionProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public ProductComponentTypeConnectionProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("ProductComponentTypeConnection")); + } + + public ProductComponentTypeConnectionProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public ProductComponentTypeEdgeProjection, ROOT> edges( + ) { + ProductComponentTypeEdgeProjection, ROOT> projection = new ProductComponentTypeEdgeProjection<>(this, getRoot()); + getFields().put("edges", projection); + return projection; + } + + public ProductComponentTypeProjection, ROOT> nodes( + ) { + ProductComponentTypeProjection, ROOT> projection = new ProductComponentTypeProjection<>(this, getRoot()); + getFields().put("nodes", projection); + return projection; + } + + public PageInfoProjection, ROOT> pageInfo( + ) { + PageInfoProjection, ROOT> projection = new PageInfoProjection<>(this, getRoot()); + getFields().put("pageInfo", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductComponentTypeEdgeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductComponentTypeEdgeProjection.java new file mode 100644 index 00000000..eeaf07f6 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductComponentTypeEdgeProjection.java @@ -0,0 +1,26 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class ProductComponentTypeEdgeProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public ProductComponentTypeEdgeProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("ProductComponentTypeEdge")); + } + + public ProductComponentTypeEdgeProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public ProductComponentTypeProjection, ROOT> node( + ) { + ProductComponentTypeProjection, ROOT> projection = new ProductComponentTypeProjection<>(this, getRoot()); + getFields().put("node", projection); + return projection; + } + + public ProductComponentTypeEdgeProjection cursor() { + getFields().put("cursor", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductComponentTypeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductComponentTypeProjection.java new file mode 100644 index 00000000..5ca5af03 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductComponentTypeProjection.java @@ -0,0 +1,88 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.String; +import java.util.ArrayList; + +public class ProductComponentTypeProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public ProductComponentTypeProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("ProductComponentType")); + } + + public ProductComponentTypeProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public ProductVariantConnectionProjection, ROOT> componentVariants( + ) { + ProductVariantConnectionProjection, ROOT> projection = new ProductVariantConnectionProjection<>(this, getRoot()); + getFields().put("componentVariants", projection); + return projection; + } + + public ProductVariantConnectionProjection, ROOT> componentVariants( + Integer first, String after, Integer last, String before, Boolean reverse) { + ProductVariantConnectionProjection, ROOT> projection = new ProductVariantConnectionProjection<>(this, getRoot()); + getFields().put("componentVariants", projection); + getInputArguments().computeIfAbsent("componentVariants", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("componentVariants").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("componentVariants").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("componentVariants").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("componentVariants").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("componentVariants").add(reverseArg); + return projection; + } + + public CountProjection, ROOT> componentVariantsCount( + ) { + CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); + getFields().put("componentVariantsCount", projection); + return projection; + } + + public ProductVariantConnectionProjection, ROOT> nonComponentVariants( + ) { + ProductVariantConnectionProjection, ROOT> projection = new ProductVariantConnectionProjection<>(this, getRoot()); + getFields().put("nonComponentVariants", projection); + return projection; + } + + public ProductVariantConnectionProjection, ROOT> nonComponentVariants( + Integer first, String after, Integer last, String before, Boolean reverse) { + ProductVariantConnectionProjection, ROOT> projection = new ProductVariantConnectionProjection<>(this, getRoot()); + getFields().put("nonComponentVariants", projection); + getInputArguments().computeIfAbsent("nonComponentVariants", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("nonComponentVariants").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("nonComponentVariants").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("nonComponentVariants").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("nonComponentVariants").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("nonComponentVariants").add(reverseArg); + return projection; + } + + public CountProjection, ROOT> nonComponentVariantsCount( + ) { + CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); + getFields().put("nonComponentVariantsCount", projection); + return projection; + } + + public ProductProjection, ROOT> product() { + ProductProjection, ROOT> projection = new ProductProjection<>(this, getRoot()); + getFields().put("product", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductCreateGraphQLQuery.java index f8892b48..5d051bba 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductCreateGraphQLQuery.java @@ -11,20 +11,38 @@ /** * Creates a [product](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) - * with attributes such as title, description, and vendor. - * You can use the `productCreate` mutation to define + * with attributes such as title, description, vendor, and media. + * + * The `productCreate` mutation helps you create many products at once, avoiding the tedious or time-consuming + * process of adding them one by one in the Shopify admin. Common examples include creating products for a + * new collection, launching a new product line, or adding seasonal products. + * + * You can define product * [options](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductOption) and - * [values](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductOptionValue) - * for products with - * [product variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant), - * such as different sizes or colors. + * [values](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductOptionValue), + * allowing you to create products with different variations like sizes or colors. You can also associate media + * files to your products, including images and videos. * + * The `productCreate` mutation only supports creating a product with its initial + * [product variant](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant). * To create multiple product variants for a single product and manage prices, use the * [`productVariantsBulkCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkCreate) * mutation. * - * To create or update a product in a single request, use the - * [`productSet`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet) mutation. + * > Note: + * > The `productCreate` mutation has a [throttle](https://shopify.dev/docs/api/usage/rate-limits#resource-based-rate-limits) + * > that takes effect when a store has 50,000 product variants. After this threshold is reached, no more than + * > 1,000 new product variants can be created per day. + * + * After you create a product, you can make subsequent edits to the product using one of the following mutations: + * + * - [`publishablePublish`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/publishablePublish): + * Used to publish the product and make it available to customers. The `productCreate` mutation creates products + * in an unpublished state by default, so you must perform a separate operation to publish the product. + * - [`productUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productUpdate): + * Used to update a single product, such as changing the product's title, description, vendor, or associated media. + * - [`productSet`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet): + * Used to perform multiple operations on products, such as creating or modifying product options and variants. * * Learn more about the [product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model) * and [adding product data](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/add-data). diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductCreateMediaGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductCreateMediaGraphQLQuery.java index 98b84e6e..15cf035e 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductCreateMediaGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductCreateMediaGraphQLQuery.java @@ -9,7 +9,15 @@ import java.util.Set; /** - * Creates media for a product. + * Adds media files to a [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product), + * such as images, videos, or 3D models. Media files enhance product listings by + * providing visual representations that help customers understand the product. + * + * The mutation accepts an array of [`CreateMediaInput`](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/CreateMediaInput) + * objects, each specifying the source URL, content type, and optional alt text. + * + * You can add multiple media files in a single request. The mutation adds all + * valid files and returns errors for any invalid ones. */ public class ProductCreateMediaGraphQLQuery extends GraphQLQuery { public ProductCreateMediaGraphQLQuery(String productId, List media, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductDeleteGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductDeleteGraphQLQuery.java index 59557fc9..9fde12ca 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductDeleteGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductDeleteGraphQLQuery.java @@ -9,15 +9,55 @@ import java.util.Set; /** - * Deletes a product, including all associated variants and media. + * Permanently deletes a product and all its associated data, including variants, media, publications, and inventory items. * - * As of API version `2023-01`, if you need to delete a large product, such as one that has many - * [variants](https://shopify.dev/api/admin-graphql/latest/input-objects/ProductVariantInput) + * Use the `productDelete` mutation to programmatically remove products from your store when they need to be + * permanently deleted from your catalog, such as when removing discontinued items, cleaning up test data, or + * synchronizing with external inventory management systems. + * + * The `productDelete` mutation removes the product from all associated collections, + * and removes all associated data for the product, including: + * + * - All product variants and their inventory items + * - Product media (images, videos) that are not referenced by other products + * - [Product options](https://shopify.dev/api/admin-graphql/latest/objects/ProductOption) and [option values](https://shopify.dev/api/admin-graphql/latest/objects/ProductOptionValue) + * - Product publications across all sales channels + * - Product tags and metadata associations + * + * The `productDelete` mutation also has the following effects on existing orders and transactions: + * + * - **Draft orders**: Existing draft orders that reference this product will + * retain the product information as stored data, but the product reference will + * be removed. Draft orders can still be completed with the stored product details. + * - **Completed orders and refunds**: Previously completed orders that included + * this product aren't affected. The product information in completed orders is + * preserved for record-keeping, and existing refunds for this product remain + * valid and processable. + * + * > Caution: + * > Product deletion is irreversible. After a product is deleted, it can't be recovered. Consider archiving + * > or unpublishing products instead if you might need to restore them later. + * + * If you need to delete a large product, such as one that has many + * [variants](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant) * that are active at several - * [locations](https://shopify.dev/api/admin-graphql/latest/input-objects/InventoryLevelInput), - * you may encounter timeout errors. To avoid these timeout errors, you can instead use the asynchronous - * [ProductDeleteAsync](https://shopify.dev/api/admin-graphql/latest/mutations/productDeleteAsync) - * mutation. + * [locations](https://shopify.dev/api/admin-graphql/latest/objects/Location), + * you might encounter timeout errors. To avoid these timeout errors, you can set the + * [`synchronous`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productDelete#arguments-synchronous) + * parameter to `false` to run the deletion asynchronously, which returns a + * [`ProductDeleteOperation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductDeleteOperation) + * that you can monitor for completion status. + * + * If you need more granular control over product cleanup, consider using these alternative mutations: + * + * - [`productUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productUpdate): + * Update the product status to archived or unpublished instead of deleting. + * - [`productVariantsBulkDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkDelete): + * Delete specific variants while keeping the product. + * - [`productOptionsDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsDelete): + * Delete the choices available for a product, such as size, color, or material. + * + * Learn more about the [product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model). */ public class ProductDeleteGraphQLQuery extends GraphQLQuery { public ProductDeleteGraphQLQuery(ProductDeleteInput input, Boolean synchronous, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductDeleteMediaGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductDeleteMediaGraphQLQuery.java index dbae3754..5dbb6893 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductDeleteMediaGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductDeleteMediaGraphQLQuery.java @@ -8,7 +8,15 @@ import java.util.Set; /** - * Deletes media for a product. + * Deletes media from a [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product), + * such as images, videos, and 3D models. + * + * When you delete media images, the mutation also removes any corresponding + * product images. The mutation returns the IDs of both the deleted media and any + * product images that the deletion removed. + * + * > Caution: + * > This action is irreversible. You can't recover deleted media. */ public class ProductDeleteMediaGraphQLQuery extends GraphQLQuery { public ProductDeleteMediaGraphQLQuery(String productId, List mediaIds, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductFragmentProjection.java index 2a209c98..7a4ec546 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductFragmentProjection.java @@ -64,6 +64,13 @@ public ProductBundleComponentConnectionProjection, ROOT> bundleConsolidatedOptions( + ) { + ComponentizedProductsBundleConsolidatedOptionProjection, ROOT> projection = new ComponentizedProductsBundleConsolidatedOptionProjection<>(this, getRoot()); + getFields().put("bundleConsolidatedOptions", projection); + return projection; + } + public TaxonomyCategoryProjection, ROOT> category() { TaxonomyCategoryProjection, ROOT> projection = new TaxonomyCategoryProjection<>(this, getRoot()); getFields().put("category", projection); @@ -365,6 +372,64 @@ public ProductCategoryProjection, ROOT> return projection; } + public ProductComponentTypeConnectionProjection, ROOT> productComponents( + ) { + ProductComponentTypeConnectionProjection, ROOT> projection = new ProductComponentTypeConnectionProjection<>(this, getRoot()); + getFields().put("productComponents", projection); + return projection; + } + + public ProductComponentTypeConnectionProjection, ROOT> productComponents( + Integer first, String after, Integer last, String before, Boolean reverse) { + ProductComponentTypeConnectionProjection, ROOT> projection = new ProductComponentTypeConnectionProjection<>(this, getRoot()); + getFields().put("productComponents", projection); + getInputArguments().computeIfAbsent("productComponents", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("productComponents").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("productComponents").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("productComponents").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("productComponents").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("productComponents").add(reverseArg); + return projection; + } + + public CountProjection, ROOT> productComponentsCount() { + CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); + getFields().put("productComponentsCount", projection); + return projection; + } + + public ProductConnectionProjection, ROOT> productParents( + ) { + ProductConnectionProjection, ROOT> projection = new ProductConnectionProjection<>(this, getRoot()); + getFields().put("productParents", projection); + return projection; + } + + public ProductConnectionProjection, ROOT> productParents( + Integer first, String after, Integer last, String before, Boolean reverse, String query) { + ProductConnectionProjection, ROOT> projection = new ProductConnectionProjection<>(this, getRoot()); + getFields().put("productParents", projection); + getInputArguments().computeIfAbsent("productParents", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("productParents").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("productParents").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("productParents").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("productParents").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("productParents").add(reverseArg); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("productParents").add(queryArg); + return projection; + } + public ProductPublicationConnectionProjection, ROOT> productPublications( ) { ProductPublicationConnectionProjection, ROOT> projection = new ProductPublicationConnectionProjection<>(this, getRoot()); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductGraphQLQuery.java index a6f6b392..0aed1aac 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductGraphQLQuery.java @@ -7,7 +7,17 @@ import java.util.Set; /** - * Returns a Product resource by ID. + * Retrieves a [product](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) by its ID. + * A product is an item that a merchant can sell in their store. + * + * Use the `product` query when you need to: + * + * - Access essential product data (for example, title, description, price, images, SEO metadata, and metafields). + * - Build product detail pages and manage inventory. + * - Handle international sales with localized pricing and content. + * - Manage product variants and product options. + * + * Learn more about working with [Shopify's product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/product-model-components). */ public class ProductGraphQLQuery extends GraphQLQuery { public ProductGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductOptionUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductOptionUpdateGraphQLQuery.java index 4cca0ea2..493b4f86 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductOptionUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductOptionUpdateGraphQLQuery.java @@ -12,7 +12,41 @@ import java.util.Set; /** - * Updates a product option. + * Updates an [option](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductOption) + * on a [product](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product), + * such as size, color, or material. Each option includes a name, position, and a list of values. The combination + * of a product option and value creates a [product variant](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant). + * + * Use the `productOptionUpdate` mutation for the following use cases: + * + * - **Update product choices**: Modify an existing option, like "Size" (Small, Medium, Large) or + * "Color" (Red, Blue, Green), so customers can select their preferred variant. + * - **Enable personalization features**: Update an option (for example, + * "Engraving text") to let customers customize their purchase. + * - **Offer seasonal or limited edition products**: Update a value + * (for example, "Holiday red") on an existing option to support limited-time or seasonal variants. + * - **Integrate with apps that manage product configuration**: Allow third-party apps to update options, like + * "Bundle size", when customers select or customize + * [product bundles](https://shopify.dev/docs/apps/build/product-merchandising/bundles). + * - **Link options to metafields**: Associate a product option with a custom + * [metafield](https://shopify.dev/docs/apps/build/custom-data), like "Fabric code", for + * richer integrations with other systems or apps. + * + * > Note: + * > The `productOptionUpdate` mutation enforces strict data integrity for product options and variants. + * All option positions must be sequential, and every option should be used by at least one variant. + * + * After you update a product option, you can further manage a product's configuration using related mutations: + * + * - [`productOptionsCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsCreate) + * - [`productOptionsDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsDelete) + * - [`productOptionsReorder`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsReorder) + * - [`productVariantsBulkCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkCreate) + * - [`productVariantsBulkUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkUpdate) + * - [`productSet`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet) + * + * Learn more about the [product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model) + * and [adding product data](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/add-data). */ public class ProductOptionUpdateGraphQLQuery extends GraphQLQuery { public ProductOptionUpdateGraphQLQuery(OptionUpdateInput option, String productId, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductOptionsCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductOptionsCreateGraphQLQuery.java index 1bdf494f..0e3d0707 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductOptionsCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductOptionsCreateGraphQLQuery.java @@ -10,7 +10,42 @@ import java.util.Set; /** - * Creates options on a product. + * Creates one or more [options](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductOption) + * on a [product](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product), + * such as size, color, or material. Each option includes a name, position, and a list of values. The combination + * of a product option and value creates a [product variant](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant). + * + * Use the `productOptionsCreate` mutation for the following use cases: + * + * - **Add product choices**: Add a new option, like "Size" (Small, Medium, Large) or + * "Color" (Red, Blue, Green), to an existing product so customers can select their preferred variant. + * - **Enable personalization features**: Add options such as "Engraving text" to let customers customize their purchase. + * - **Offer seasonal or limited edition products**: Add a new value + * (for example, "Holiday red") to an existing option to support limited-time or seasonal variants. + * - **Integrate with apps that manage product configuration**: Allow third-party apps to add options, like + * "Bundle size", when customers select or customize + * [product bundles](https://shopify.dev/docs/apps/build/product-merchandising/bundles). + * - **Link options to metafields**: Associate a product option with a custom + * [metafield](https://shopify.dev/docs/apps/build/custom-data), like "Fabric code", for + * richer integrations with other systems or apps. + * + * > Note: + * > The `productOptionsCreate` mutation enforces strict data integrity for product options and variants. + * All option positions must be sequential, and every option should be used by at least one variant. + * If you use the [`CREATE` variant strategy](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsCreate#arguments-variantStrategy.enums.CREATE), + * consider the maximum allowed number of variants for each product is 2048. + * + * After you create product options, you can further manage a product's configuration using related mutations: + * + * - [`productOptionUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionUpdate) + * - [`productOptionsReorder`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsReorder) + * - [`productOptionsDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsDelete) + * - [`productVariantsBulkCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkCreate) + * - [`productVariantsBulkUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkUpdate) + * - [`productSet`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet) + * + * Learn more about the [product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model) + * and [adding product data](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/add-data). */ public class ProductOptionsCreateGraphQLQuery extends GraphQLQuery { public ProductOptionsCreateGraphQLQuery(String productId, List options, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductOptionsDeleteGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductOptionsDeleteGraphQLQuery.java index ca407c91..2e296d2d 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductOptionsDeleteGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductOptionsDeleteGraphQLQuery.java @@ -9,7 +9,41 @@ import java.util.Set; /** - * Deletes the specified options. + * Deletes one or more [options](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductOption) + * from a [product](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product). Product options + * define the choices available for a product, such as size, color, or material. + * + * > Caution: + * > Removing an option can affect a product's + * > [variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) and their + * > configuration. Deleting an option might also delete associated option values and, depending on the chosen + * > [strategy](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productoptionsdelete#arguments-strategy), + * > might affect variants. + * + * Use the `productOptionsDelete` mutation for the following use cases: + * + * - **Simplify product configuration**: Remove obsolete or unnecessary options + * (for example, discontinue "Material" if all variants are now the same material). + * - **Clean up after seasonal or limited-time offerings**: Delete options that are no longer + * relevant (for example, "Holiday edition"). + * - **Automate catalog management**: Enable apps or integrations to programmatically remove options as product + * data changes. + * + * > Note: + * > The `productOptionsDelete` mutation enforces strict data integrity for product options and variants. + * > All option positions must remain sequential, and every remaining option must be used by at least one variant. + * + * After you delete a product option, you can further manage a product's configuration using related mutations: + * + * - [`productOptionsCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsCreate) + * - [`productOptionUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionUpdate) + * - [`productOptionsReorder`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsReorder) + * - [`productVariantsBulkCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkCreate) + * - [`productVariantsBulkUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkUpdate) + * - [`productSet`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet) + * + * Learn more about the [product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model) + * and [adding product data](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/add-data). */ public class ProductOptionsDeleteGraphQLQuery extends GraphQLQuery { public ProductOptionsDeleteGraphQLQuery(String productId, List options, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductOptionsReorderGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductOptionsReorderGraphQLQuery.java index fd289f39..4eb571a0 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductOptionsReorderGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductOptionsReorderGraphQLQuery.java @@ -9,29 +9,63 @@ import java.util.Set; /** - * Reorders options and option values on a product, causing product variants to alter their position. + * Reorders the [options](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductOption) and + * [option values](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductOptionValue) on a + * [product](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product), + * updating the order in which [product variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) + * are presented to customers. * - * Options order take precedence over option values order. Depending on the existing product variants, - * some input orders might not be achieved. + * The `productOptionsReorder` mutation accepts a list of product options, each identified by `id` or `name`, and an + * optional list of values (also by `id` or `name`) specifying the new order. The order of options in the + * mutation's input determines their new positions (for example, the first option becomes `option1`). + * The order of values within each option determines their new positions. The mutation recalculates the order of + * variants based on the new option and value order. * - * Example: - * Existing product variants: - * ["Red / Small", "Green / Medium", "Blue / Small"]. + * Suppose a product has the following variants: * - * New order: - * [ - * { - * name: "Size", values: [{ name: "Small" }, { name: "Medium" }], - * name: "Color", values: [{ name: "Green" }, { name: "Red" }, { name: "Blue" }] - * } - * ]. + * 1. `"Red / Small"` + * 2. `"Green / Medium"` + * 3. `"Blue / Small"` * - * Description: - * Variants with "Green" value are expected to appear before variants with "Red" and "Blue" values. - * However, "Size" option appears before "Color". + * You reorder options and values: * - * Therefore, output will be: - * ["Small / "Red", "Small / Blue", "Medium / Green"]. + * ``` + * options: [ + * { name: "Size", values: [{ name: "Small" }, { name: "Medium" }] }, + * { name: "Color", values: [{ name: "Green" }, { name: "Red" }, { name: "Blue" }] } + * ] + * ``` + * + * The resulting variant order will be: + * + * 1. `"Small / Green"` + * 2. `"Small / Red"` + * 3. `"Small / Blue"` + * 4. `"Medium / Green"` + * + * Use the `productOptionsReorder` mutation for the following use cases: + * + * - **Change the order of product options**: For example, display "Color" before "Size" in a store. + * - **Reorder option values within an option**: For example, show "Red" before "Blue" in a color picker. + * - **Control the order of product variants**: The order of options and their + * values determines the sequence in which variants are listed and selected. + * - **Highlight best-selling options**: Present the most popular or relevant options and values first. + * - **Promote merchandising strategies**: Highlight seasonal colors, limited editions, or featured sizes. + * + * > Note: + * > The `productOptionsReorder` mutation enforces strict data integrity for product options and variants. + * > All option positions must be sequential, and every option should be used by at least one variant. + * + * After you reorder product options, you can further manage a product's configuration using related mutations: + * + * - [`productOptionsCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsCreate) + * - [`productOptionsDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsDelete) + * - [`productVariantsBulkCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkCreate) + * - [`productVariantsBulkUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkUpdate) + * - [`productSet`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet) + * + * Learn more about the [product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model) + * and [managing product data](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/add-data). */ public class ProductOptionsReorderGraphQLQuery extends GraphQLQuery { public ProductOptionsReorderGraphQLQuery(String productId, List options, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductProjection.java index 6cc4efac..46719403 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductProjection.java @@ -58,6 +58,13 @@ public ProductBundleComponentConnectionProjection, ROOT> bundleConsolidatedOptions( + ) { + ComponentizedProductsBundleConsolidatedOptionProjection, ROOT> projection = new ComponentizedProductsBundleConsolidatedOptionProjection<>(this, getRoot()); + getFields().put("bundleConsolidatedOptions", projection); + return projection; + } + public TaxonomyCategoryProjection, ROOT> category() { TaxonomyCategoryProjection, ROOT> projection = new TaxonomyCategoryProjection<>(this, getRoot()); getFields().put("category", projection); @@ -353,6 +360,63 @@ public ProductCategoryProjection, ROOT> productC return projection; } + public ProductComponentTypeConnectionProjection, ROOT> productComponents( + ) { + ProductComponentTypeConnectionProjection, ROOT> projection = new ProductComponentTypeConnectionProjection<>(this, getRoot()); + getFields().put("productComponents", projection); + return projection; + } + + public ProductComponentTypeConnectionProjection, ROOT> productComponents( + Integer first, String after, Integer last, String before, Boolean reverse) { + ProductComponentTypeConnectionProjection, ROOT> projection = new ProductComponentTypeConnectionProjection<>(this, getRoot()); + getFields().put("productComponents", projection); + getInputArguments().computeIfAbsent("productComponents", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("productComponents").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("productComponents").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("productComponents").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("productComponents").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("productComponents").add(reverseArg); + return projection; + } + + public CountProjection, ROOT> productComponentsCount() { + CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); + getFields().put("productComponentsCount", projection); + return projection; + } + + public ProductConnectionProjection, ROOT> productParents() { + ProductConnectionProjection, ROOT> projection = new ProductConnectionProjection<>(this, getRoot()); + getFields().put("productParents", projection); + return projection; + } + + public ProductConnectionProjection, ROOT> productParents( + Integer first, String after, Integer last, String before, Boolean reverse, String query) { + ProductConnectionProjection, ROOT> projection = new ProductConnectionProjection<>(this, getRoot()); + getFields().put("productParents", projection); + getInputArguments().computeIfAbsent("productParents", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("productParents").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("productParents").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("productParents").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("productParents").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("productParents").add(reverseArg); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("productParents").add(queryArg); + return projection; + } + public ProductPublicationConnectionProjection, ROOT> productPublications( ) { ProductPublicationConnectionProjection, ROOT> projection = new ProductPublicationConnectionProjection<>(this, getRoot()); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductProjectionRoot.java index a1ea8d04..0be6464a 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductProjectionRoot.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductProjectionRoot.java @@ -59,6 +59,13 @@ public ProductBundleComponentConnectionProjection, ProductProjectionRoot> bundleConsolidatedOptions( + ) { + ComponentizedProductsBundleConsolidatedOptionProjection, ProductProjectionRoot> projection = new ComponentizedProductsBundleConsolidatedOptionProjection<>(this, this); + getFields().put("bundleConsolidatedOptions", projection); + return projection; + } + public TaxonomyCategoryProjection, ProductProjectionRoot> category( ) { TaxonomyCategoryProjection, ProductProjectionRoot> projection = new TaxonomyCategoryProjection<>(this, this); @@ -392,6 +399,65 @@ public ProductCategoryProjection, ProductPro return projection; } + public ProductComponentTypeConnectionProjection, ProductProjectionRoot> productComponents( + ) { + ProductComponentTypeConnectionProjection, ProductProjectionRoot> projection = new ProductComponentTypeConnectionProjection<>(this, this); + getFields().put("productComponents", projection); + return projection; + } + + public ProductComponentTypeConnectionProjection, ProductProjectionRoot> productComponents( + Integer first, String after, Integer last, String before, Boolean reverse) { + ProductComponentTypeConnectionProjection, ProductProjectionRoot> projection = new ProductComponentTypeConnectionProjection<>(this, this); + getFields().put("productComponents", projection); + getInputArguments().computeIfAbsent("productComponents", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("productComponents").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("productComponents").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("productComponents").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("productComponents").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("productComponents").add(reverseArg); + return projection; + } + + public CountProjection, ProductProjectionRoot> productComponentsCount( + ) { + CountProjection, ProductProjectionRoot> projection = new CountProjection<>(this, this); + getFields().put("productComponentsCount", projection); + return projection; + } + + public ProductConnectionProjection, ProductProjectionRoot> productParents( + ) { + ProductConnectionProjection, ProductProjectionRoot> projection = new ProductConnectionProjection<>(this, this); + getFields().put("productParents", projection); + return projection; + } + + public ProductConnectionProjection, ProductProjectionRoot> productParents( + Integer first, String after, Integer last, String before, Boolean reverse, String query) { + ProductConnectionProjection, ProductProjectionRoot> projection = new ProductConnectionProjection<>(this, this); + getFields().put("productParents", projection); + getInputArguments().computeIfAbsent("productParents", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("productParents").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("productParents").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("productParents").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("productParents").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("productParents").add(reverseArg); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("productParents").add(queryArg); + return projection; + } + public ProductPublicationConnectionProjection, ProductProjectionRoot> productPublications( ) { ProductPublicationConnectionProjection, ProductProjectionRoot> projection = new ProductPublicationConnectionProjection<>(this, this); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductPublishGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductPublishGraphQLQuery.java index 1e83da81..c8ebd30f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductPublishGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductPublishGraphQLQuery.java @@ -8,8 +8,9 @@ import java.util.Set; /** - * Publishes a product. Products that are sold exclusively on subscription - * (`requiresSellingPlan: true`) can only be published on online stores. + * Publishes a [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) to specified [`Publication`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication) objects. + * + * Products sold exclusively on subscription (`requiresSellingPlan: true`) can only be published to online stores. */ public class ProductPublishGraphQLQuery extends GraphQLQuery { public ProductPublishGraphQLQuery(ProductPublishInput input, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductReorderMediaGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductReorderMediaGraphQLQuery.java index 7d67dbe7..9411a501 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductReorderMediaGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductReorderMediaGraphQLQuery.java @@ -9,7 +9,25 @@ import java.util.Set; /** - * Asynchronously reorders the media attached to a product. + * Reorders [media](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/Media) + * attached to a product, changing their sequence in product displays. The + * operation processes asynchronously to handle + * [products](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) + * with large media collections. + * + * Specify the [product ID](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productReorderMedia#arguments-id) + * and an array of [moves](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productReorderMedia#arguments-moves), + * where each move contains a media ID and its new zero-based position. + * + * > Note: + * > Only include media items that need repositioning. Unchanged items maintain their relative order automatically. + * + * The mutation returns a + * [`Job`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Job) to + * track the reordering progress. Poll the job status to determine when the + * operation completes and media positions update across all sales channels. + * + * Learn more about [reordering product media](https://shopify.dev/docs/apps/build/online-store/product-media#step-6-reorder-media-objects). */ public class ProductReorderMediaGraphQLQuery extends GraphQLQuery { public ProductReorderMediaGraphQLQuery(String id, List moves, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductResourceFeedbackGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductResourceFeedbackGraphQLQuery.java index 23d0ea1b..7bdda243 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductResourceFeedbackGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductResourceFeedbackGraphQLQuery.java @@ -7,7 +7,41 @@ import java.util.Set; /** - * Returns the product resource feedback for the currently authenticated app. + * Retrieves product resource feedback for the currently authenticated app, + * providing insights into product data quality, completeness, and optimization + * opportunities. This feedback helps apps guide merchants toward better product + * listings and improved store performance. + * + * For example, an SEO app might receive feedback indicating that certain + * products lack meta descriptions or have suboptimal titles, enabling the app to + * provide specific recommendations for improving search visibility and + * conversion rates. + * + * Use `ProductResourceFeedback` to: + * - Display product optimization recommendations to merchants + * - Identify data quality issues across product catalogs + * - Build product improvement workflows and guided experiences + * - Track progress on product listing completeness and quality + * - Implement automated product auditing and scoring systems + * - Generate reports on catalog health and optimization opportunities + * - Provide contextual suggestions within product editing interfaces + * + * The feedback system evaluates products against various criteria including SEO + * best practices, required fields, media quality, and sales channel + * requirements. Each feedback item includes specific details about the issue, + * suggested improvements, and priority levels. + * + * Feedback is app-specific and reflects the particular focus of your application + * - marketing apps receive different insights than inventory management apps. + * The system continuously updates as merchants make changes, providing real-time + * guidance for product optimization. + * + * This resource is particularly valuable for apps that help merchants improve + * their product listings, optimize for search engines, or enhance their overall + * catalog quality. The feedback enables proactive suggestions rather than + * reactive problem-solving. + * + * Learn more about [product optimization](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product). */ public class ProductResourceFeedbackGraphQLQuery extends GraphQLQuery { public ProductResourceFeedbackGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductSetGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductSetGraphQLQuery.java index 1d025455..b097026b 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductSetGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductSetGraphQLQuery.java @@ -10,46 +10,46 @@ import java.util.Set; /** - * Creates or updates a product in a single request. + * Performs multiple operations to create or update products in a single request. * - * Use this mutation when syncing information from an external data source into Shopify. + * Use the `productSet` mutation to sync information from an external data source into Shopify, manage large + * product catalogs, and perform batch updates. The mutation is helpful for bulk product management, including price + * adjustments, inventory updates, and product lifecycle management. * - * When using this mutation to update a product, specify that product's `id` in the input. + * The behavior of `productSet` depends on the type of field it's modifying: * - * Any list field (e.g. - * [collections](https://shopify.dev/api/admin-graphql/current/input-objects/ProductSetInput#field-productsetinput-collections), - * [metafields](https://shopify.dev/api/admin-graphql/current/input-objects/ProductSetInput#field-productsetinput-metafields), - * [variants](https://shopify.dev/api/admin-graphql/current/input-objects/ProductSetInput#field-productsetinput-variants)) - * will be updated so that all included entries are either created or updated, and all existing entries not - * included will be deleted. + * - **For list fields**: Creates new entries, updates existing entries, and deletes existing entries + * that aren't included in the mutation's input. Common examples of list fields include + * [`collections`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet#arguments-input.fields.collections), + * [`metafields`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet#arguments-input.fields.metafields), + * and [`variants`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet#arguments-input.fields.variants). * - * All other fields will be updated to the value passed. Omitted fields will not be updated. + * - **For all other field types**: Updates only the included fields. Any omitted fields will remain unchanged. * - * When run in synchronous mode, you will get the product back in the response. - * For versions `2024-04` and earlier, the synchronous mode has an input limit of 100 variants. - * This limit has been removed for versions `2024-07` and later. + * > Note: + * > By default, stores have a limit of 2048 product variants for each product. * - * In asynchronous mode, you will instead get a - * [ProductSetOperation](https://shopify.dev/api/admin-graphql/current/objects/ProductSetOperation) - * object back. You can then use the - * [productOperation](https://shopify.dev/api/admin-graphql/current/queries/productOperation) query to - * retrieve the updated product data. This query uses the `ProductSetOperation` object to - * check the status of the operation and to retrieve the details of the updated product and its variants. + * You can run `productSet` in one of the following modes: * - * If you need to update a subset of variants, use one of the bulk variant mutations: - * - [productVariantsBulkCreate](https://shopify.dev/api/admin-graphql/current/mutations/productVariantsBulkCreate) - * - [productVariantsBulkUpdate](https://shopify.dev/api/admin-graphql/current/mutations/productVariantsBulkUpdate) - * - [productVariantsBulkDelete](https://shopify.dev/api/admin-graphql/current/mutations/productVariantsBulkDelete) + * - **Synchronously**: Returns the updated product in the response. + * - **Asynchronously**: Returns a [`ProductSetOperation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductSetOperation) object. + * Use the [`productOperation`](https://shopify.dev/api/admin-graphql/latest/queries/productOperation) query to check the status of the operation and + * retrieve details of the updated product and its product variants. * - * If you need to update options, use one of the product option mutations: - * - [productOptionsCreate](https://shopify.dev/api/admin-graphql/current/mutations/productOptionsCreate) - * - [productOptionUpdate](https://shopify.dev/api/admin-graphql/current/mutations/productOptionUpdate) - * - [productOptionsDelete](https://shopify.dev/api/admin-graphql/current/mutations/productOptionsDelete) - * - [productOptionsReorder](https://shopify.dev/api/admin-graphql/current/mutations/productOptionsReorder) + * If you need to only manage product variants, then use one of the following mutations: * - * See our guide to - * [sync product data from an external source](https://shopify.dev/api/admin/migrate/new-product-model/sync-data) - * for more. + * - [`productVariantsBulkCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkCreate) + * - [`productVariantsBulkUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkUpdate) + * - [`productVariantsBulkDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkDelete) + * + * If you need to only manage product options, then use one of the following mutations: + * + * - [`productOptionsCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsCreate) + * - [`productOptionUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionUpdate) + * - [`productOptionsReorder`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsReorder) + * - [`productOptionsDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsDelete) + * + * Learn more about [syncing product data from an external source](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/sync-data). */ public class ProductSetGraphQLQuery extends GraphQLQuery { public ProductSetGraphQLQuery(ProductSetInput input, Boolean synchronous, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductTagsGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductTagsGraphQLQuery.java index fc8deab8..a8b5a1c6 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductTagsGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductTagsGraphQLQuery.java @@ -9,7 +9,12 @@ import java.util.Set; /** - * A list of tags that have been added to products. + * Returns tags added to + * [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) + * objects in the shop. Provides a paginated list of tag strings. + * + * The maximum page size is 5000 tags per request. Tags are returned as simple + * strings through a [`StringConnection`](https://shopify.dev/docs/api/admin-graphql/latest/objects/StringConnection). * The maximum page size is 5000. */ public class ProductTagsGraphQLQuery extends GraphQLQuery { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductTypesGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductTypesGraphQLQuery.java index afd145ef..7ca109b5 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductTypesGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductTypesGraphQLQuery.java @@ -9,7 +9,9 @@ import java.util.Set; /** - * The list of types added to products. + * Returns a paginated list of product types assigned to + * [products](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) + * in the store. The maximum page size is 1000. * The maximum page size is 1000. */ public class ProductTypesGraphQLQuery extends GraphQLQuery { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductUpdateGraphQLQuery.java index f63dec5d..9a66e3e1 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductUpdateGraphQLQuery.java @@ -10,18 +10,33 @@ import java.util.Set; /** - * Updates a product. + * Updates a [product](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) + * with attributes such as title, description, vendor, and media. * - * For versions `2024-01` and older: - * If you update a product and only include some variants in the update, - * then any variants not included will be deleted. + * The `productUpdate` mutation helps you modify many products at once, avoiding the tedious or time-consuming + * process of updating them one by one in the Shopify admin. Common examples including updating + * product details like status or tags. * - * To safely manage variants without the risk of - * deleting excluded variants, use - * [productVariantsBulkUpdate](https://shopify.dev/api/admin-graphql/latest/mutations/productvariantsbulkupdate). + * The `productUpdate` mutation doesn't support updating + * [product variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant). + * To update multiple product variants for a single product and manage prices, use the + * [`productVariantsBulkUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkUpdate) + * mutation. * - * If you want to update a single variant, then use - * [productVariantUpdate](https://shopify.dev/api/admin-graphql/latest/mutations/productvariantupdate). + * > Note: + * > The `productUpdate` mutation has a [throttle](https://shopify.dev/docs/api/usage/rate-limits#resource-based-rate-limits) + * > that takes effect when a store has 50,000 product variants. After this threshold is reached, no more than + * > 1,000 new product variants can be updated per day. + * + * After updating a product, you can make additional changes using one of the following mutations: + * + * - [`productSet`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet): + * Used to perform multiple operations on products, such as creating or modifying product options and variants. + * - [`publishablePublish`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/publishablePublish): + * Used to publish the product and make it available to customers, if the product is currently unpublished. + * + * Learn more about the [product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model) + * and [adding product data](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/add-data). */ public class ProductUpdateGraphQLQuery extends GraphQLQuery { public ProductUpdateGraphQLQuery(ProductUpdateInput product, List media, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductUpdateMediaGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductUpdateMediaGraphQLQuery.java index 1312ba4c..d41d9517 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductUpdateMediaGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductUpdateMediaGraphQLQuery.java @@ -9,7 +9,14 @@ import java.util.Set; /** - * Updates media for a product. + * Updates properties of media attached to a [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product). + * You can modify alt text for accessibility or change preview images for + * existing media items. + * + * Provide the product ID and an array of [`UpdateMediaInput`](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/UpdateMediaInput) + * objects. Each update specifies the media's ID and the properties to change. + * Updates apply only to media already attached to the product and don't affect + * their position in the product gallery. */ public class ProductUpdateMediaGraphQLQuery extends GraphQLQuery { public ProductUpdateMediaGraphQLQuery(String productId, List media, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantAppendMediaGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantAppendMediaGraphQLQuery.java index 1d2a2895..1785ce0b 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantAppendMediaGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantAppendMediaGraphQLQuery.java @@ -9,7 +9,23 @@ import java.util.Set; /** - * Appends media from a product to variants of the product. + * Appends existing media from a product to specific variants of that product, + * creating associations between media files and particular product options. This + * allows different variants to showcase relevant images or videos. + * + * For example, a t-shirt product might have color variants where each color + * variant displays only the images showing that specific color, helping + * customers see exactly what they're purchasing. + * + * Use `ProductVariantAppendMedia` to: + * - Associate specific images with product variants for accurate display + * - Build variant-specific media management in product interfaces + * - Implement automated media assignment based on variant attributes + * + * The operation links existing product media to variants without duplicating + * files, maintaining efficient media storage while enabling variant-specific displays. + * + * Learn more about [product variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant). */ public class ProductVariantAppendMediaGraphQLQuery extends GraphQLQuery { public ProductVariantAppendMediaGraphQLQuery(String productId, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantByIdentifierProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantByIdentifierProjectionRoot.java index a9d510a0..0a25832e 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantByIdentifierProjectionRoot.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantByIdentifierProjectionRoot.java @@ -241,6 +241,33 @@ public ProductProjection, return projection; } + public ProductConnectionProjection, ProductVariantByIdentifierProjectionRoot> productParents( + ) { + ProductConnectionProjection, ProductVariantByIdentifierProjectionRoot> projection = new ProductConnectionProjection<>(this, this); + getFields().put("productParents", projection); + return projection; + } + + public ProductConnectionProjection, ProductVariantByIdentifierProjectionRoot> productParents( + Integer first, String after, Integer last, String before, Boolean reverse, String query) { + ProductConnectionProjection, ProductVariantByIdentifierProjectionRoot> projection = new ProductConnectionProjection<>(this, this); + getFields().put("productParents", projection); + getInputArguments().computeIfAbsent("productParents", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("productParents").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("productParents").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("productParents").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("productParents").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("productParents").add(reverseArg); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("productParents").add(queryArg); + return projection; + } + public ProductVariantComponentConnectionProjection, ProductVariantByIdentifierProjectionRoot> productVariantComponents( ) { ProductVariantComponentConnectionProjection, ProductVariantByIdentifierProjectionRoot> projection = new ProductVariantComponentConnectionProjection<>(this, this); @@ -324,6 +351,13 @@ public TranslationProjection, ProductVariantByIdentifierProjectionRoot> unitPrice( + ) { + MoneyV2Projection, ProductVariantByIdentifierProjectionRoot> projection = new MoneyV2Projection<>(this, this); + getFields().put("unitPrice", projection); + return projection; + } + public UnitPriceMeasurementProjection, ProductVariantByIdentifierProjectionRoot> unitPriceMeasurement( ) { UnitPriceMeasurementProjection, ProductVariantByIdentifierProjectionRoot> projection = new UnitPriceMeasurementProjection<>(this, this); @@ -401,6 +435,11 @@ public ProductVariantByIdentifierProjectionRoot sellingPlanGroupCo return this; } + public ProductVariantByIdentifierProjectionRoot showUnitPrice() { + getFields().put("showUnitPrice", null); + return this; + } + public ProductVariantByIdentifierProjectionRoot sku() { getFields().put("sku", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantContextualPricingProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantContextualPricingProjection.java index 8bd05ffd..592a028e 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantContextualPricingProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantContextualPricingProjection.java @@ -64,4 +64,11 @@ public QuantityRuleProjection, ROOT> unitPrice( + ) { + MoneyV2Projection, ROOT> projection = new MoneyV2Projection<>(this, getRoot()); + getFields().put("unitPrice", projection); + return projection; + } } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantFragmentProjection.java index a5fe2cf9..b60f91a8 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantFragmentProjection.java @@ -241,6 +241,33 @@ public ProductProjection, ROOT> p return projection; } + public ProductConnectionProjection, ROOT> productParents( + ) { + ProductConnectionProjection, ROOT> projection = new ProductConnectionProjection<>(this, getRoot()); + getFields().put("productParents", projection); + return projection; + } + + public ProductConnectionProjection, ROOT> productParents( + Integer first, String after, Integer last, String before, Boolean reverse, String query) { + ProductConnectionProjection, ROOT> projection = new ProductConnectionProjection<>(this, getRoot()); + getFields().put("productParents", projection); + getInputArguments().computeIfAbsent("productParents", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("productParents").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("productParents").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("productParents").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("productParents").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("productParents").add(reverseArg); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("productParents").add(queryArg); + return projection; + } + public ProductVariantComponentConnectionProjection, ROOT> productVariantComponents( ) { ProductVariantComponentConnectionProjection, ROOT> projection = new ProductVariantComponentConnectionProjection<>(this, getRoot()); @@ -324,6 +351,12 @@ public TranslationProjection, ROO return projection; } + public MoneyV2Projection, ROOT> unitPrice() { + MoneyV2Projection, ROOT> projection = new MoneyV2Projection<>(this, getRoot()); + getFields().put("unitPrice", projection); + return projection; + } + public UnitPriceMeasurementProjection, ROOT> unitPriceMeasurement( ) { UnitPriceMeasurementProjection, ROOT> projection = new UnitPriceMeasurementProjection<>(this, getRoot()); @@ -401,6 +434,11 @@ public ProductVariantFragmentProjection sellingPlanGroupCount() { return this; } + public ProductVariantFragmentProjection showUnitPrice() { + getFields().put("showUnitPrice", null); + return this; + } + public ProductVariantFragmentProjection sku() { getFields().put("sku", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantGraphQLQuery.java index 46f593b3..e703e338 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantGraphQLQuery.java @@ -7,7 +7,22 @@ import java.util.Set; /** - * Returns a ProductVariant resource by ID. + * Retrieves a [product variant](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) by its ID. + * + * A product variant is a specific version of a + * [product](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) that comes in more than + * one [option](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductOption), + * such as size or color. For example, if a merchant sells t-shirts with options for size and color, + * then a small, blue t-shirt would be one product variant and a large, blue t-shirt would be another. + * + * Use the `productVariant` query when you need to: + * + * - Access essential product variant data (for example, title, price, image, and metafields). + * - Build product detail pages and manage inventory. + * - Handle international sales with localized pricing and content. + * - Manage product variants that are part of a bundle or selling plan. + * + * Learn more about working with [Shopify's product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/product-model-components). */ public class ProductVariantGraphQLQuery extends GraphQLQuery { public ProductVariantGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantProjection.java index d33ca4f3..3d17e3bf 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantProjection.java @@ -233,6 +233,33 @@ public ProductProjection, ROOT> product() return projection; } + public ProductConnectionProjection, ROOT> productParents( + ) { + ProductConnectionProjection, ROOT> projection = new ProductConnectionProjection<>(this, getRoot()); + getFields().put("productParents", projection); + return projection; + } + + public ProductConnectionProjection, ROOT> productParents( + Integer first, String after, Integer last, String before, Boolean reverse, String query) { + ProductConnectionProjection, ROOT> projection = new ProductConnectionProjection<>(this, getRoot()); + getFields().put("productParents", projection); + getInputArguments().computeIfAbsent("productParents", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("productParents").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("productParents").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("productParents").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("productParents").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("productParents").add(reverseArg); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("productParents").add(queryArg); + return projection; + } + public ProductVariantComponentConnectionProjection, ROOT> productVariantComponents( ) { ProductVariantComponentConnectionProjection, ROOT> projection = new ProductVariantComponentConnectionProjection<>(this, getRoot()); @@ -313,6 +340,12 @@ public TranslationProjection, ROOT> trans return projection; } + public MoneyV2Projection, ROOT> unitPrice() { + MoneyV2Projection, ROOT> projection = new MoneyV2Projection<>(this, getRoot()); + getFields().put("unitPrice", projection); + return projection; + } + public UnitPriceMeasurementProjection, ROOT> unitPriceMeasurement( ) { UnitPriceMeasurementProjection, ROOT> projection = new UnitPriceMeasurementProjection<>(this, getRoot()); @@ -390,6 +423,11 @@ public ProductVariantProjection sellingPlanGroupCount() { return this; } + public ProductVariantProjection showUnitPrice() { + getFields().put("showUnitPrice", null); + return this; + } + public ProductVariantProjection sku() { getFields().put("sku", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantProjectionRoot.java index 5f57e5ab..126b4937 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantProjectionRoot.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantProjectionRoot.java @@ -241,6 +241,33 @@ public ProductProjection, ProductVari return projection; } + public ProductConnectionProjection, ProductVariantProjectionRoot> productParents( + ) { + ProductConnectionProjection, ProductVariantProjectionRoot> projection = new ProductConnectionProjection<>(this, this); + getFields().put("productParents", projection); + return projection; + } + + public ProductConnectionProjection, ProductVariantProjectionRoot> productParents( + Integer first, String after, Integer last, String before, Boolean reverse, String query) { + ProductConnectionProjection, ProductVariantProjectionRoot> projection = new ProductConnectionProjection<>(this, this); + getFields().put("productParents", projection); + getInputArguments().computeIfAbsent("productParents", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("productParents").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("productParents").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("productParents").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("productParents").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("productParents").add(reverseArg); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("productParents").add(queryArg); + return projection; + } + public ProductVariantComponentConnectionProjection, ProductVariantProjectionRoot> productVariantComponents( ) { ProductVariantComponentConnectionProjection, ProductVariantProjectionRoot> projection = new ProductVariantComponentConnectionProjection<>(this, this); @@ -324,6 +351,13 @@ public TranslationProjection, Product return projection; } + public MoneyV2Projection, ProductVariantProjectionRoot> unitPrice( + ) { + MoneyV2Projection, ProductVariantProjectionRoot> projection = new MoneyV2Projection<>(this, this); + getFields().put("unitPrice", projection); + return projection; + } + public UnitPriceMeasurementProjection, ProductVariantProjectionRoot> unitPriceMeasurement( ) { UnitPriceMeasurementProjection, ProductVariantProjectionRoot> projection = new UnitPriceMeasurementProjection<>(this, this); @@ -401,6 +435,11 @@ public ProductVariantProjectionRoot sellingPlanGroupCount() { return this; } + public ProductVariantProjectionRoot showUnitPrice() { + getFields().put("showUnitPrice", null); + return this; + } + public ProductVariantProjectionRoot sku() { getFields().put("sku", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantRelationshipBulkUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantRelationshipBulkUpdateGraphQLQuery.java index 458a0a7f..46e4e623 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantRelationshipBulkUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantRelationshipBulkUpdateGraphQLQuery.java @@ -9,7 +9,18 @@ import java.util.Set; /** - * Creates new bundles, updates existing bundles, and removes bundle components for one or multiple bundles. + * Creates new bundles, updates component quantities in existing bundles, and + * removes bundle components for one or multiple [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) objects. + * + * Each bundle variant can contain up to 30 component variants with specified + * quantities. After an app assigns components to a bundle, only that app can + * manage those components. + * + * > Note: + * > For most use cases, use [`productBundleCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productBundleCreate) + * instead, which creates product fixed bundles. + * `productVariantRelationshipBulkUpdate` is for [variant fixed bundles](https://shopify.dev/docs/apps/build/product-merchandising/bundles/add-variant-fixed-bundle), + * where each variant has its own component configuration. */ public class ProductVariantRelationshipBulkUpdateGraphQLQuery extends GraphQLQuery { public ProductVariantRelationshipBulkUpdateGraphQLQuery( diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantsBulkCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantsBulkCreateGraphQLQuery.java index e2afce79..cf1c5a4f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantsBulkCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantsBulkCreateGraphQLQuery.java @@ -11,7 +11,41 @@ import java.util.Set; /** - * Creates multiple variants in a single product. This mutation can be called directly or via the bulkOperation. + * Creates multiple [product variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) + * for a single [product](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) in one operation. + * You can run this mutation directly or as part of a [bulk + * operation](https://shopify.dev/docs/api/usage/bulk-operations/imports) + * for large-scale catalog updates. + * + * Use the `productVariantsBulkCreate` mutation to efficiently add new product variants—such as different sizes, + * colors, or materials—to an existing product. The mutation is helpful if you need to add product variants in bulk, + * such as importing from an external system. + * + * The mutation supports: + * + * - Creating variants with custom option values + * - Associating media (for example, images, videos, and 3D models) with the product or its variants + * - Handling complex product configurations + * + * > Note: + * > By default, stores have a limit of 2048 product variants for each product. + * + * After creating variants, you can make additional changes using one of the following mutations: + * + * - [`productVariantsBulkUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkUpdate): + * Updates multiple product variants for a single product in one operation. + * - [`productSet`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet): + * Used to perform multiple operations on products, such as creating or modifying product options and variants. + * + * You can also specifically manage product options through related mutations: + * + * - [`productOptionsCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsCreate) + * - [`productOptionUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionUpdate) + * - [`productOptionsReorder`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsReorder) + * - [`productOptionsDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsDelete) + * + * Learn more about the [product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model) + * and [adding product data](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/add-data). */ public class ProductVariantsBulkCreateGraphQLQuery extends GraphQLQuery { public ProductVariantsBulkCreateGraphQLQuery(List variants, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantsBulkDeleteGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantsBulkDeleteGraphQLQuery.java index 25cf5ee4..d7324207 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantsBulkDeleteGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantsBulkDeleteGraphQLQuery.java @@ -8,7 +8,10 @@ import java.util.Set; /** - * Deletes multiple variants in a single product. This mutation can be called directly or via the bulkOperation. + * Deletes multiple variants in a single [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product). + * Specify the product ID and an array of variant IDs to remove variants in bulk. + * You can call this mutation directly or through the [`bulkOperationRunMutation`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/bulkOperationRunMutation) + * mutation. Returns the updated product and any [`UserError`](https://shopify.dev/docs/api/admin-graphql/latest/objects/UserError) objects. */ public class ProductVariantsBulkDeleteGraphQLQuery extends GraphQLQuery { public ProductVariantsBulkDeleteGraphQLQuery(List variantsIds, String productId, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantsBulkUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantsBulkUpdateGraphQLQuery.java index 6a8e3ea6..94695a9a 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantsBulkUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantsBulkUpdateGraphQLQuery.java @@ -11,7 +11,38 @@ import java.util.Set; /** - * Updates multiple variants in a single product. This mutation can be called directly or via the bulkOperation. + * Updates multiple [product variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) + * for a single [product](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) in one operation. + * You can run this mutation directly or as part of a [bulk + * operation](https://shopify.dev/docs/api/usage/bulk-operations/imports) + * for large-scale catalog updates. + * + * Use the `productVariantsBulkUpdate` mutation to efficiently modify product variants—such as different sizes, + * colors, or materials—associated with an existing product. The mutation is helpful if you need to update a + * product's variants in bulk, such as importing from an external system. + * + * The mutation supports: + * + * - Updating variants with custom option values + * - Associating media (for example, images, videos, and 3D models) with the product or its variants + * - Handling complex product configurations + * + * > Note: + * > By default, stores have a limit of 2048 product variants for each product. + * + * After creating variants, you can make additional changes using the + * [`productSet`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet) mutation, + * which is used to perform multiple operations on products, such as creating or modifying product options and variants. + * + * You can also specifically manage product options through related mutations: + * + * - [`productOptionsCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsCreate) + * - [`productOptionUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionUpdate) + * - [`productOptionsReorder`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsReorder) + * - [`productOptionsDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsDelete) + * + * Learn more about the [product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model) + * and [adding product data](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/add-data). */ public class ProductVariantsBulkUpdateGraphQLQuery extends GraphQLQuery { public ProductVariantsBulkUpdateGraphQLQuery(List variants, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantsCountGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantsCountGraphQLQuery.java index 9dfb9f84..c1d495fe 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantsCountGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantsCountGraphQLQuery.java @@ -1,19 +1,23 @@ package com.shopify.admin.client; import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import java.lang.Integer; import java.lang.Override; import java.lang.String; import java.util.HashSet; import java.util.Set; /** - * Count of product variants. + * Count of product variants. Limited to a maximum of 10000 by default. */ public class ProductVariantsCountGraphQLQuery extends GraphQLQuery { - public ProductVariantsCountGraphQLQuery(String query, String queryName, Set fieldsSet) { + public ProductVariantsCountGraphQLQuery(String query, Integer limit, String queryName, + Set fieldsSet) { super("query", queryName); if (query != null || fieldsSet.contains("query")) { getInput().put("query", query); + }if (limit != null || fieldsSet.contains("limit")) { + getInput().put("limit", limit); } } @@ -35,10 +39,12 @@ public static class Builder { private String query; + private Integer limit; + private String queryName; public ProductVariantsCountGraphQLQuery build() { - return new ProductVariantsCountGraphQLQuery(query, queryName, fieldsSet); + return new ProductVariantsCountGraphQLQuery(query, limit, queryName, fieldsSet); } @@ -51,6 +57,15 @@ public Builder query(String query) { return this; } + /** + * The upper bound on count value before returning a result. Use `null` to have no limit. + */ + public Builder limit(Integer limit) { + this.limit = limit; + this.fieldsSet.add("limit"); + return this; + } + public Builder queryName(String queryName) { this.queryName = queryName; return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantsGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantsGraphQLQuery.java index 9cd0e815..c6db98ac 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantsGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductVariantsGraphQLQuery.java @@ -10,7 +10,32 @@ import java.util.Set; /** - * Returns a list of product variants. + * Retrieves a list of [product variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) + * associated with a [product](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product). + * + * A product variant is a specific version of a product that comes in more than + * one [option](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductOption), + * such as size or color. For example, if a merchant sells t-shirts with options for size and color, + * then a small, blue t-shirt would be one product variant and a large, blue t-shirt would be another. + * + * Use the `productVariants` query when you need to: + * + * - Search for product variants by attributes such as SKU, barcode, or inventory quantity. + * - Filter product variants by attributes, such as whether they're gift cards or have custom metafields. + * - Fetch product variants for bulk operations, such as updating prices or inventory. + * - Preload data for product variants, such as inventory items, selected options, or associated products. + * + * The `productVariants` query supports [pagination](https://shopify.dev/docs/api/usage/pagination-graphql) + * to handle large product catalogs and [saved searches](https://shopify.dev/docs/api/admin-graphql/latest/queries/productVariants#arguments-savedSearchId) + * for frequently used product variant queries. + * + * The `productVariants` query returns product variants with their associated metadata, including: + * + * - Basic product variant information (for example, title, SKU, barcode, price, and inventory) + * - Media attachments (for example, images and videos) + * - Associated products, selling plans, bundles, and metafields + * + * Learn more about working with [Shopify's product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/product-model-components). */ public class ProductVariantsGraphQLQuery extends GraphQLQuery { public ProductVariantsGraphQLQuery(Integer first, String after, Integer last, String before, @@ -171,32 +196,59 @@ public Builder sortKey(ProductVariantSortKeys sortKey) { * field. | | | - `product_id:8474977763649` | * | product_ids | string | Filter by a comma-separated list of product [IDs](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-id). * | | | - `product_ids:8474977763649,8474977796417` | - * | product_publication_status | string | Filter by the publishable status of - * the resource on a channel, such as the online store. The value is a - * composite of the [channel `app` - * ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) - * (`Channel.app.id`) and one of the valid values. | - `approved`
- - * `rejected`
- `needs_action`
- `awaiting_review`
- - * `published`
- `demoted`
- `scheduled`
- - * `provisionally_published` | | - `publishable_status:189769876-approved` | + * | product_publication_status | string | Filter by channel approval process + * status of the resource on a channel, such as the online store. The value is + * a composite of the [channel `app` ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#field-Channel.fields.app) + * (`Channel.app.id`) and one of the valid values. For simple visibility checks, use [published_status](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-publishable_status) + * instead. | - `* {channel_app_id}-approved`
- `* + * {channel_app_id}-rejected`
- `* {channel_app_id}-needs_action`
- + * `* {channel_app_id}-awaiting_review`
- `* + * {channel_app_id}-published`
- `* {channel_app_id}-demoted`
- `* + * {channel_app_id}-scheduled`
- `* + * {channel_app_id}-provisionally_published` | | - + * `product_publication_status:189769876-approved` | * | product_status | string | Filter by a comma-separated list of product [statuses](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-status). * | | | - `product_status:ACTIVE,DRAFT` | * | product_type | string | Filter by the product type that's associated with * the product variants. | | | - `product_type:snowboard` | - * | publishable_status | string | Filter by the publishable status of the - * resource on a channel, such as the online store. The value is a composite of - * either the [channel `app` + * | publishable_status | string | **Deprecated:** This parameter is deprecated + * as of 2025-12 and will be removed in a future API version. Use [published_status](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-publishable_status) + * for visibility checks. Filter by the publishable status of the resource on a + * channel. The value is a composite of the [channel `app` + * ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) + * (`Channel.app.id`) and one of the valid status values. | - `* + * {channel_app_id}-unset`
- `* {channel_app_id}-pending`
- `* + * {channel_app_id}-approved`
- `* {channel_app_id}-not_approved` | | - + * `publishable_status:580111-unset`
- `publishable_status:580111-pending` | + * | published_status | string | Filter resources by their visibility and + * publication state on a channel. Online store channel filtering: - + * `online_store_channel`: Returns all resources in the online store channel, + * regardless of publication status. - `published`/`visible`: Returns resources + * that are published to the online store. - `unpublished`: Returns resources + * that are not published to the online store. Channel-specific filtering using + * a channel ID, channel handle, [channel `app` * ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) - * (`Channel.app.id`) or [channel `name`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Channel#field-name) - * and one of the valid values. | - `online_store_channel`
- - * `published`
- `unpublished`
- `visible`
- `unavailable`
- * - `hidden`
- `intended`
- `visible` | | - - * `publishable_status:published`
- - * `publishable_status:189769876:visible`
- - * `publishable_status:pos:hidden` | - * | published_status | string | Filter by the published status of the resource - * on a channel, such as the online store. | - `unset`
- `pending`
- - * `approved`
- `not approved` | | - `published_status:approved` | + * (`Channel.app.id`), or app handle with suffixes: - + * `{id_or_handle}-published`: Returns resources published to the specified + * channel. - `{id_or_handle}-visible`: Same as `{id_or_handle}-published` + * (kept for backwards compatibility). - `{id_or_handle}-intended`: Returns + * resources added to the channel but not yet published. - + * `{id_or_handle}-hidden`: Returns resources not added to the channel or not + * published. Other: - `unavailable`: Returns resources not published to any + * channel. | - `online_store_channel`
- `published`
- `visible`
+ * - `unpublished`
- `* {channel_id_or_handle}-published`
- `* + * {channel_id_or_handle}-visible`
- `* + * {channel_id_or_handle}-intended`
- `* + * {channel_id_or_handle}-hidden`
- `* + * {channel_app_id_or_handle}-published`
- `* + * {channel_app_id_or_handle}-visible`
- `* + * {channel_app_id_or_handle}-intended`
- `* + * {channel_app_id_or_handle}-hidden`
- `unavailable` | | - + * `published_status:online_store_channel`
- + * `published_status:published`
- `published_status:580111-published`
+ * - `published_status:580111-hidden`
- + * `published_status:my-channel-handle-published`
- + * `published_status:unavailable` | * | requires_components | boolean | Filter by whether the product variant can * only be purchased with components. [Learn more](https://shopify.dev/apps/build/product-merchandising/bundles#store-eligibility). * | | | - `requires_components:true` | diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductsCountGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductsCountGraphQLQuery.java index 843e2af3..b173b3da 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductsCountGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductsCountGraphQLQuery.java @@ -8,7 +8,7 @@ import java.util.Set; /** - * Count of products. + * Count of products. Limited to a maximum of 10000 by default. */ public class ProductsCountGraphQLQuery extends GraphQLQuery { public ProductsCountGraphQLQuery(String query, String savedSearchId, Integer limit, @@ -98,6 +98,11 @@ public ProductsCountGraphQLQuery build() { * | is_price_reduced | boolean | Filter by products that have a reduced price. * For more information, refer to the [`CollectionRule`](https://shopify.dev/api/admin-graphql/latest/objects/CollectionRule) * object. | | | - `is_price_reduced:true` | + * | metafields.{namespace}.{key} | mixed | Filters resources by metafield + * value. Format: `metafields.{namespace}.{key}:{value}`. Learn more about + * [querying by metafield value](https://shopify.dev/apps/build/custom-data/metafields/query-by-metafield-value). + * | | | - `metafields.custom.on_sale:true`
- + * `metafields.product.material:"gid://shopify/Metaobject/43458085"` | * | out_of_stock_somewhere | boolean | Filter by products that are out of * stock in at least one location. | | | - `out_of_stock_somewhere:true` | * | price | bigdecimal | Filter by the product variant [`price`](https://shopify.dev/api/admin-graphql/latest/objects/Productvariant#field-price) @@ -105,38 +110,65 @@ public ProductsCountGraphQLQuery build() { * | product_configuration_owner | string | Filter by the app * [`id`](https://shopify.dev/api/admin-graphql/latest/objects/App#field-id) * field. | | | - `product_configuration_owner:10001` | - * | product_publication_status | string | Filter by the publishable status of - * the resource on a channel, such as the online store. The value is a - * composite of the [channel `app` - * ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) - * (`Channel.app.id`) and one of the valid values. | - `approved`
- - * `rejected`
- `needs_action`
- `awaiting_review`
- - * `published`
- `demoted`
- `scheduled`
- - * `provisionally_published` | | - `publishable_status:189769876-approved` | + * | product_publication_status | string | Filter by channel approval process + * status of the resource on a channel, such as the online store. The value is + * a composite of the [channel `app` ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#field-Channel.fields.app) + * (`Channel.app.id`) and one of the valid values. For simple visibility checks, use [published_status](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-publishable_status) + * instead. | - `* {channel_app_id}-approved`
- `* + * {channel_app_id}-rejected`
- `* {channel_app_id}-needs_action`
- + * `* {channel_app_id}-awaiting_review`
- `* + * {channel_app_id}-published`
- `* {channel_app_id}-demoted`
- `* + * {channel_app_id}-scheduled`
- `* + * {channel_app_id}-provisionally_published` | | - + * `product_publication_status:189769876-approved` | * | product_type | string | Filter by a comma-separated list of [product * types](https://help.shopify.com/manual/products/details/product-type). | | | * - `product_type:snowboard` | * | publication_ids | string | Filter by a comma-separated list of publication * IDs that are associated with the product. | | | - * `publication_ids:184111530305,184111694145` | - * | publishable_status | string | Filter by the publishable status of the - * resource on a channel, such as the online store. The value is a composite of - * either the [channel `app` + * | publishable_status | string | **Deprecated:** This parameter is deprecated + * as of 2025-12 and will be removed in a future API version. Use [published_status](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-publishable_status) + * for visibility checks. Filter by the publishable status of the resource on a + * channel. The value is a composite of the [channel `app` * ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) - * (`Channel.app.id`) or [channel `name`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Channel#field-name) - * and one of the valid values. | - `online_store_channel`
- - * `published`
- `unpublished`
- `visible`
- `unavailable`
- * - `hidden`
- `intended`
- `visible` | | - - * `publishable_status:published`
- - * `publishable_status:189769876:visible`
- - * `publishable_status:pos:hidden` | + * (`Channel.app.id`) and one of the valid status values. | - `* + * {channel_app_id}-unset`
- `* {channel_app_id}-pending`
- `* + * {channel_app_id}-approved`
- `* {channel_app_id}-not_approved` | | - + * `publishable_status:580111-unset`
- `publishable_status:580111-pending` | * | published_at | time | Filter by the date and time when the product was * published to the online store and other sales channels. | | | - * `published_at:>2020-10-21T23:39:20Z`
- `published_at:<now`
- * `published_at:<=2024` | - * | published_status | string | Filter by the published status of the resource - * on a channel, such as the online store. | - `unset`
- `pending`
- - * `approved`
- `not approved` | | - `published_status:approved` | + * | published_status | string | Filter resources by their visibility and + * publication state on a channel. Online store channel filtering: - + * `online_store_channel`: Returns all resources in the online store channel, + * regardless of publication status. - `published`/`visible`: Returns resources + * that are published to the online store. - `unpublished`: Returns resources + * that are not published to the online store. Channel-specific filtering using + * a channel ID, channel handle, [channel `app` + * ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) + * (`Channel.app.id`), or app handle with suffixes: - + * `{id_or_handle}-published`: Returns resources published to the specified + * channel. - `{id_or_handle}-visible`: Same as `{id_or_handle}-published` + * (kept for backwards compatibility). - `{id_or_handle}-intended`: Returns + * resources added to the channel but not yet published. - + * `{id_or_handle}-hidden`: Returns resources not added to the channel or not + * published. Other: - `unavailable`: Returns resources not published to any + * channel. | - `online_store_channel`
- `published`
- `visible`
+ * - `unpublished`
- `* {channel_id_or_handle}-published`
- `* + * {channel_id_or_handle}-visible`
- `* + * {channel_id_or_handle}-intended`
- `* + * {channel_id_or_handle}-hidden`
- `* + * {channel_app_id_or_handle}-published`
- `* + * {channel_app_id_or_handle}-visible`
- `* + * {channel_app_id_or_handle}-intended`
- `* + * {channel_app_id_or_handle}-hidden`
- `unavailable` | | - + * `published_status:online_store_channel`
- + * `published_status:published`
- `published_status:580111-published`
+ * - `published_status:580111-hidden`
- + * `published_status:my-channel-handle-published`
- + * `published_status:unavailable` | * | sku | string | Filter by the product variant [`sku`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-sku) * field. [Learn more about * SKUs](https://help.shopify.com/manual/products/details/sku). | | | - @@ -144,8 +176,8 @@ public ProductsCountGraphQLQuery build() { * | status | string | Filter by a comma-separated list of statuses. You can * use statuses to manage inventory. Shopify only displays products with an * `ACTIVE` status in online stores, sales channels, and apps. | - - * `ACTIVE`
- `ARCHIVED`
- `DRAFT` | `ACTIVE` | - - * `status:ACTIVE,DRAFT` | + * `active`
- `archived`
- `draft` | `active` | - + * `status:active,draft` | * | tag | string | Filter objects by the `tag` field. | | | - `tag:my_tag` | * | tag_not | string | Filter by objects that don’t have the specified tag. | | | - `tag_not:my_tag` | * | title | string | Filter by the product [`title`](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-title) @@ -182,7 +214,7 @@ public Builder savedSearchId(String savedSearchId) { } /** - * The upper bound on count value before returning a result. + * The upper bound on count value before returning a result. Use `null` to have no limit. */ public Builder limit(Integer limit) { this.limit = limit; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductsGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductsGraphQLQuery.java index d411590c..42ddbef2 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductsGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ProductsGraphQLQuery.java @@ -10,7 +10,31 @@ import java.util.Set; /** - * Returns a list of products. + * Retrieves a list of [products](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) + * in a store. Products are the items that merchants can sell in their store. + * + * Use the `products` query when you need to: + * + * - Build a browsing interface for a product catalog. + * - Create product + * [searching](https://shopify.dev/docs/api/usage/search-syntax), [sorting](https://shopify.dev/docs/api/admin-graphql/latest/queries/products#arguments-sortKey), and [filtering](https://shopify.dev/docs/api/admin-graphql/latest/queries/products#arguments-query) experiences. + * - Implement product recommendations. + * - Sync product data with external systems. + * + * The `products` query supports [pagination](https://shopify.dev/docs/api/usage/pagination-graphql) + * to handle large product catalogs and [saved searches](https://shopify.dev/docs/api/admin-graphql/latest/queries/products#arguments-savedSearchId) + * for frequently used product queries. + * + * The `products` query returns products with their associated metadata, including: + * + * - Basic product information (for example, title, description, vendor, and type) + * - Product options and product variants, with their prices and inventory + * - Media attachments (for example, images and videos) + * - SEO metadata + * - Product categories and tags + * - Product availability and publishing statuses + * + * Learn more about working with [Shopify's product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/product-model-components). */ public class ProductsGraphQLQuery extends GraphQLQuery { public ProductsGraphQLQuery(Integer first, String after, Integer last, String before, @@ -176,6 +200,11 @@ public Builder sortKey(ProductSortKeys sortKey) { * | is_price_reduced | boolean | Filter by products that have a reduced price. * For more information, refer to the [`CollectionRule`](https://shopify.dev/api/admin-graphql/latest/objects/CollectionRule) * object. | | | - `is_price_reduced:true` | + * | metafields.{namespace}.{key} | mixed | Filters resources by metafield + * value. Format: `metafields.{namespace}.{key}:{value}`. Learn more about + * [querying by metafield value](https://shopify.dev/apps/build/custom-data/metafields/query-by-metafield-value). + * | | | - `metafields.custom.on_sale:true`
- + * `metafields.product.material:"gid://shopify/Metaobject/43458085"` | * | out_of_stock_somewhere | boolean | Filter by products that are out of * stock in at least one location. | | | - `out_of_stock_somewhere:true` | * | price | bigdecimal | Filter by the product variant [`price`](https://shopify.dev/api/admin-graphql/latest/objects/Productvariant#field-price) @@ -183,38 +212,65 @@ public Builder sortKey(ProductSortKeys sortKey) { * | product_configuration_owner | string | Filter by the app * [`id`](https://shopify.dev/api/admin-graphql/latest/objects/App#field-id) * field. | | | - `product_configuration_owner:10001` | - * | product_publication_status | string | Filter by the publishable status of - * the resource on a channel, such as the online store. The value is a - * composite of the [channel `app` - * ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) - * (`Channel.app.id`) and one of the valid values. | - `approved`
- - * `rejected`
- `needs_action`
- `awaiting_review`
- - * `published`
- `demoted`
- `scheduled`
- - * `provisionally_published` | | - `publishable_status:189769876-approved` | + * | product_publication_status | string | Filter by channel approval process + * status of the resource on a channel, such as the online store. The value is + * a composite of the [channel `app` ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#field-Channel.fields.app) + * (`Channel.app.id`) and one of the valid values. For simple visibility checks, use [published_status](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-publishable_status) + * instead. | - `* {channel_app_id}-approved`
- `* + * {channel_app_id}-rejected`
- `* {channel_app_id}-needs_action`
- + * `* {channel_app_id}-awaiting_review`
- `* + * {channel_app_id}-published`
- `* {channel_app_id}-demoted`
- `* + * {channel_app_id}-scheduled`
- `* + * {channel_app_id}-provisionally_published` | | - + * `product_publication_status:189769876-approved` | * | product_type | string | Filter by a comma-separated list of [product * types](https://help.shopify.com/manual/products/details/product-type). | | | * - `product_type:snowboard` | * | publication_ids | string | Filter by a comma-separated list of publication * IDs that are associated with the product. | | | - * `publication_ids:184111530305,184111694145` | - * | publishable_status | string | Filter by the publishable status of the - * resource on a channel, such as the online store. The value is a composite of - * either the [channel `app` + * | publishable_status | string | **Deprecated:** This parameter is deprecated + * as of 2025-12 and will be removed in a future API version. Use [published_status](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-publishable_status) + * for visibility checks. Filter by the publishable status of the resource on a + * channel. The value is a composite of the [channel `app` * ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) - * (`Channel.app.id`) or [channel `name`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Channel#field-name) - * and one of the valid values. | - `online_store_channel`
- - * `published`
- `unpublished`
- `visible`
- `unavailable`
- * - `hidden`
- `intended`
- `visible` | | - - * `publishable_status:published`
- - * `publishable_status:189769876:visible`
- - * `publishable_status:pos:hidden` | + * (`Channel.app.id`) and one of the valid status values. | - `* + * {channel_app_id}-unset`
- `* {channel_app_id}-pending`
- `* + * {channel_app_id}-approved`
- `* {channel_app_id}-not_approved` | | - + * `publishable_status:580111-unset`
- `publishable_status:580111-pending` | * | published_at | time | Filter by the date and time when the product was * published to the online store and other sales channels. | | | - * `published_at:>2020-10-21T23:39:20Z`
- `published_at:<now`
- * `published_at:<=2024` | - * | published_status | string | Filter by the published status of the resource - * on a channel, such as the online store. | - `unset`
- `pending`
- - * `approved`
- `not approved` | | - `published_status:approved` | + * | published_status | string | Filter resources by their visibility and + * publication state on a channel. Online store channel filtering: - + * `online_store_channel`: Returns all resources in the online store channel, + * regardless of publication status. - `published`/`visible`: Returns resources + * that are published to the online store. - `unpublished`: Returns resources + * that are not published to the online store. Channel-specific filtering using + * a channel ID, channel handle, [channel `app` + * ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) + * (`Channel.app.id`), or app handle with suffixes: - + * `{id_or_handle}-published`: Returns resources published to the specified + * channel. - `{id_or_handle}-visible`: Same as `{id_or_handle}-published` + * (kept for backwards compatibility). - `{id_or_handle}-intended`: Returns + * resources added to the channel but not yet published. - + * `{id_or_handle}-hidden`: Returns resources not added to the channel or not + * published. Other: - `unavailable`: Returns resources not published to any + * channel. | - `online_store_channel`
- `published`
- `visible`
+ * - `unpublished`
- `* {channel_id_or_handle}-published`
- `* + * {channel_id_or_handle}-visible`
- `* + * {channel_id_or_handle}-intended`
- `* + * {channel_id_or_handle}-hidden`
- `* + * {channel_app_id_or_handle}-published`
- `* + * {channel_app_id_or_handle}-visible`
- `* + * {channel_app_id_or_handle}-intended`
- `* + * {channel_app_id_or_handle}-hidden`
- `unavailable` | | - + * `published_status:online_store_channel`
- + * `published_status:published`
- `published_status:580111-published`
+ * - `published_status:580111-hidden`
- + * `published_status:my-channel-handle-published`
- + * `published_status:unavailable` | * | sku | string | Filter by the product variant [`sku`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-sku) * field. [Learn more about * SKUs](https://help.shopify.com/manual/products/details/sku). | | | - @@ -222,8 +278,8 @@ public Builder sortKey(ProductSortKeys sortKey) { * | status | string | Filter by a comma-separated list of statuses. You can * use statuses to manage inventory. Shopify only displays products with an * `ACTIVE` status in online stores, sales channels, and apps. | - - * `ACTIVE`
- `ARCHIVED`
- `DRAFT` | `ACTIVE` | - - * `status:ACTIVE,DRAFT` | + * `active`
- `archived`
- `draft` | `active` | - + * `status:active,draft` | * | tag | string | Filter objects by the `tag` field. | | | - `tag:my_tag` | * | tag_not | string | Filter by objects that don’t have the specified tag. | | | - `tag_not:my_tag` | * | title | string | Filter by the product [`title`](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-title) diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PubSubWebhookSubscriptionCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PubSubWebhookSubscriptionCreateGraphQLQuery.java index 2a937dc8..34b8b38d 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PubSubWebhookSubscriptionCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PubSubWebhookSubscriptionCreateGraphQLQuery.java @@ -9,7 +9,21 @@ import java.util.Set; /** - * Creates a new Google Cloud Pub/Sub webhook subscription. + * Creates a webhook subscription that notifies your + * [`App`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App) when + * specific events occur in a shop. Webhooks push event data to your endpoint + * immediately when changes happen, eliminating the need for polling. + * + * This mutation configures webhook delivery to a Google Cloud Pub/Sub topic. You + * can filter events using [Shopify API search + * syntax](https://shopify.dev/docs/api/usage/search-syntax) to receive only + * relevant webhooks, control which data fields are included in webhook payloads, + * and specify metafield namespaces to include. + * + * > Note: + * > The Webhooks API version [configured in your app](https://shopify.dev/docs/apps/build/webhooks/subscribe/use-newer-api-version) + * determines the API version for webhook events. You can't specify it per subscription. + * * * Building an app? If you only use app-specific webhooks, you won't need this. * App-specific webhook subscriptions specified in your `shopify.app.toml` may be diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublicationCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublicationCreateGraphQLQuery.java index ff2569ea..0ba066c4 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublicationCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublicationCreateGraphQLQuery.java @@ -8,7 +8,30 @@ import java.util.Set; /** - * Creates a publication. + * Creates a [`Publication`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication) that controls which + * [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) and [`Collection`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection) + * customers can access through a [`Catalog`](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/Catalog). + * + * ### When to create a publication + * + * Publications are **optional** for catalogs. Only create a publication if you + * need to control which products are visible in a specific catalog context. When + * a publication isn't associated with a catalog, product availability is + * determined by the sales channel. + * + * **Create a publication if you need to:** + * - Restrict product visibility to a subset of your inventory for a specific market or company location + * - Publish different product selections to different contexts + * + * **Do NOT create a publication if:** + * - You want product availability determined by the sales channel + * - You only need custom pricing (use a price list on the catalog instead) + * + * ### Configuration options + * + * You can create an empty publication and add products later, or prepopulate it + * with all existing products. The [`autoPublish`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/publicationCreate#arguments-input.fields.autoPublish) + * field determines whether the publication automatically adds newly created products. */ public class PublicationCreateGraphQLQuery extends GraphQLQuery { public PublicationCreateGraphQLQuery(PublicationCreateInput input, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublicationFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublicationFragmentProjection.java index 2033dea2..594b39d7 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublicationFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublicationFragmentProjection.java @@ -1,6 +1,7 @@ package com.shopify.admin.client; import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; +import com.shopify.admin.types.ProductSortKeys; import java.lang.Boolean; import java.lang.Integer; import java.lang.Override; @@ -91,7 +92,8 @@ public ProductConnectionProjection, } public ProductConnectionProjection, ROOT> includedProducts( - Integer first, String after, Integer last, String before, Boolean reverse) { + Integer first, String after, Integer last, String before, Boolean reverse, + ProductSortKeys sortKey, String query, String savedSearchId) { ProductConnectionProjection, ROOT> projection = new ProductConnectionProjection<>(this, getRoot()); getFields().put("includedProducts", projection); getInputArguments().computeIfAbsent("includedProducts", k -> new ArrayList<>()); @@ -105,6 +107,33 @@ public ProductConnectionProjection, getInputArguments().get("includedProducts").add(beforeArg); InputArgument reverseArg = new InputArgument("reverse", reverse); getInputArguments().get("includedProducts").add(reverseArg); + InputArgument sortKeyArg = new InputArgument("sortKey", sortKey); + getInputArguments().get("includedProducts").add(sortKeyArg); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("includedProducts").add(queryArg); + InputArgument savedSearchIdArg = new InputArgument("savedSearchId", savedSearchId); + getInputArguments().get("includedProducts").add(savedSearchIdArg); + return projection; + } + + public CountProjection, ROOT> includedProductsCount( + ) { + CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); + getFields().put("includedProductsCount", projection); + return projection; + } + + public CountProjection, ROOT> includedProductsCount( + String query, String savedSearchId, Integer limit) { + CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); + getFields().put("includedProductsCount", projection); + getInputArguments().computeIfAbsent("includedProductsCount", k -> new ArrayList<>()); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("includedProductsCount").add(queryArg); + InputArgument savedSearchIdArg = new InputArgument("savedSearchId", savedSearchId); + getInputArguments().get("includedProductsCount").add(savedSearchIdArg); + InputArgument limitArg = new InputArgument("limit", limit); + getInputArguments().get("includedProductsCount").add(limitArg); return projection; } @@ -147,7 +176,8 @@ public ProductConnectionProjection, } public ProductConnectionProjection, ROOT> products( - Integer first, String after, Integer last, String before, Boolean reverse) { + Integer first, String after, Integer last, String before, Boolean reverse, + ProductSortKeys sortKey, String query, String savedSearchId) { ProductConnectionProjection, ROOT> projection = new ProductConnectionProjection<>(this, getRoot()); getFields().put("products", projection); getInputArguments().computeIfAbsent("products", k -> new ArrayList<>()); @@ -161,6 +191,12 @@ public ProductConnectionProjection, getInputArguments().get("products").add(beforeArg); InputArgument reverseArg = new InputArgument("reverse", reverse); getInputArguments().get("products").add(reverseArg); + InputArgument sortKeyArg = new InputArgument("sortKey", sortKey); + getInputArguments().get("products").add(sortKeyArg); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("products").add(queryArg); + InputArgument savedSearchIdArg = new InputArgument("savedSearchId", savedSearchId); + getInputArguments().get("products").add(savedSearchIdArg); return projection; } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublicationGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublicationGraphQLQuery.java index 1dddd4ed..253affaf 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublicationGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublicationGraphQLQuery.java @@ -7,7 +7,9 @@ import java.util.Set; /** - * Lookup a publication by ID. + * Retrieves a [`Publication`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication) by [`ID`](https://shopify.dev/docs/api/usage/gids). + * + * Returns `null` if the publication doesn't exist. */ public class PublicationGraphQLQuery extends GraphQLQuery { public PublicationGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublicationProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublicationProjection.java index 921ecfc3..4eca857d 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublicationProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublicationProjection.java @@ -1,6 +1,7 @@ package com.shopify.admin.client; import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; +import com.shopify.admin.types.ProductSortKeys; import java.lang.Boolean; import java.lang.Integer; import java.lang.String; @@ -84,7 +85,8 @@ public ProductConnectionProjection, ROOT> in } public ProductConnectionProjection, ROOT> includedProducts( - Integer first, String after, Integer last, String before, Boolean reverse) { + Integer first, String after, Integer last, String before, Boolean reverse, + ProductSortKeys sortKey, String query, String savedSearchId) { ProductConnectionProjection, ROOT> projection = new ProductConnectionProjection<>(this, getRoot()); getFields().put("includedProducts", projection); getInputArguments().computeIfAbsent("includedProducts", k -> new ArrayList<>()); @@ -98,6 +100,32 @@ public ProductConnectionProjection, ROOT> in getInputArguments().get("includedProducts").add(beforeArg); InputArgument reverseArg = new InputArgument("reverse", reverse); getInputArguments().get("includedProducts").add(reverseArg); + InputArgument sortKeyArg = new InputArgument("sortKey", sortKey); + getInputArguments().get("includedProducts").add(sortKeyArg); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("includedProducts").add(queryArg); + InputArgument savedSearchIdArg = new InputArgument("savedSearchId", savedSearchId); + getInputArguments().get("includedProducts").add(savedSearchIdArg); + return projection; + } + + public CountProjection, ROOT> includedProductsCount() { + CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); + getFields().put("includedProductsCount", projection); + return projection; + } + + public CountProjection, ROOT> includedProductsCount( + String query, String savedSearchId, Integer limit) { + CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); + getFields().put("includedProductsCount", projection); + getInputArguments().computeIfAbsent("includedProductsCount", k -> new ArrayList<>()); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("includedProductsCount").add(queryArg); + InputArgument savedSearchIdArg = new InputArgument("savedSearchId", savedSearchId); + getInputArguments().get("includedProductsCount").add(savedSearchIdArg); + InputArgument limitArg = new InputArgument("limit", limit); + getInputArguments().get("includedProductsCount").add(limitArg); return projection; } @@ -139,7 +167,8 @@ public ProductConnectionProjection, ROOT> pr } public ProductConnectionProjection, ROOT> products( - Integer first, String after, Integer last, String before, Boolean reverse) { + Integer first, String after, Integer last, String before, Boolean reverse, + ProductSortKeys sortKey, String query, String savedSearchId) { ProductConnectionProjection, ROOT> projection = new ProductConnectionProjection<>(this, getRoot()); getFields().put("products", projection); getInputArguments().computeIfAbsent("products", k -> new ArrayList<>()); @@ -153,6 +182,12 @@ public ProductConnectionProjection, ROOT> pr getInputArguments().get("products").add(beforeArg); InputArgument reverseArg = new InputArgument("reverse", reverse); getInputArguments().get("products").add(reverseArg); + InputArgument sortKeyArg = new InputArgument("sortKey", sortKey); + getInputArguments().get("products").add(sortKeyArg); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("products").add(queryArg); + InputArgument savedSearchIdArg = new InputArgument("savedSearchId", savedSearchId); + getInputArguments().get("products").add(savedSearchIdArg); return projection; } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublicationProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublicationProjectionRoot.java index 7098da75..534b8a66 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublicationProjectionRoot.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublicationProjectionRoot.java @@ -1,6 +1,7 @@ package com.shopify.admin.client; import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; +import com.shopify.admin.types.ProductSortKeys; import java.lang.Boolean; import java.lang.Integer; import java.lang.String; @@ -98,7 +99,8 @@ public ProductConnectionProjection, Publ } public ProductConnectionProjection, PublicationProjectionRoot> includedProducts( - Integer first, String after, Integer last, String before, Boolean reverse) { + Integer first, String after, Integer last, String before, Boolean reverse, + ProductSortKeys sortKey, String query, String savedSearchId) { ProductConnectionProjection, PublicationProjectionRoot> projection = new ProductConnectionProjection<>(this, this); getFields().put("includedProducts", projection); getInputArguments().computeIfAbsent("includedProducts", k -> new ArrayList<>()); @@ -112,6 +114,33 @@ public ProductConnectionProjection, Publ getInputArguments().get("includedProducts").add(beforeArg); InputArgument reverseArg = new InputArgument("reverse", reverse); getInputArguments().get("includedProducts").add(reverseArg); + InputArgument sortKeyArg = new InputArgument("sortKey", sortKey); + getInputArguments().get("includedProducts").add(sortKeyArg); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("includedProducts").add(queryArg); + InputArgument savedSearchIdArg = new InputArgument("savedSearchId", savedSearchId); + getInputArguments().get("includedProducts").add(savedSearchIdArg); + return projection; + } + + public CountProjection, PublicationProjectionRoot> includedProductsCount( + ) { + CountProjection, PublicationProjectionRoot> projection = new CountProjection<>(this, this); + getFields().put("includedProductsCount", projection); + return projection; + } + + public CountProjection, PublicationProjectionRoot> includedProductsCount( + String query, String savedSearchId, Integer limit) { + CountProjection, PublicationProjectionRoot> projection = new CountProjection<>(this, this); + getFields().put("includedProductsCount", projection); + getInputArguments().computeIfAbsent("includedProductsCount", k -> new ArrayList<>()); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("includedProductsCount").add(queryArg); + InputArgument savedSearchIdArg = new InputArgument("savedSearchId", savedSearchId); + getInputArguments().get("includedProductsCount").add(savedSearchIdArg); + InputArgument limitArg = new InputArgument("limit", limit); + getInputArguments().get("includedProductsCount").add(limitArg); return projection; } @@ -155,7 +184,8 @@ public ProductConnectionProjection, Publ } public ProductConnectionProjection, PublicationProjectionRoot> products( - Integer first, String after, Integer last, String before, Boolean reverse) { + Integer first, String after, Integer last, String before, Boolean reverse, + ProductSortKeys sortKey, String query, String savedSearchId) { ProductConnectionProjection, PublicationProjectionRoot> projection = new ProductConnectionProjection<>(this, this); getFields().put("products", projection); getInputArguments().computeIfAbsent("products", k -> new ArrayList<>()); @@ -169,6 +199,12 @@ public ProductConnectionProjection, Publ getInputArguments().get("products").add(beforeArg); InputArgument reverseArg = new InputArgument("reverse", reverse); getInputArguments().get("products").add(reverseArg); + InputArgument sortKeyArg = new InputArgument("sortKey", sortKey); + getInputArguments().get("products").add(sortKeyArg); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("products").add(queryArg); + InputArgument savedSearchIdArg = new InputArgument("savedSearchId", savedSearchId); + getInputArguments().get("products").add(savedSearchIdArg); return projection; } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublicationUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublicationUpdateGraphQLQuery.java index 32c06d1f..56b7ece9 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublicationUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublicationUpdateGraphQLQuery.java @@ -8,7 +8,12 @@ import java.util.Set; /** - * Updates a publication. + * Updates a [`Publication`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication). + * + * You can add or remove + * [products](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) + * from the publication, with a maximum of 50 items per operation. The [`autoPublish`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/publicationUpdate#arguments-input.fields.autoPublish) + * field determines whether new products automatically display in this publication. */ public class PublicationUpdateGraphQLQuery extends GraphQLQuery { public PublicationUpdateGraphQLQuery(String id, PublicationUpdateInput input, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublicationsCountGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublicationsCountGraphQLQuery.java index a0c4741f..9976ad90 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublicationsCountGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublicationsCountGraphQLQuery.java @@ -2,20 +2,23 @@ import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; import com.shopify.admin.types.CatalogType; +import java.lang.Integer; import java.lang.Override; import java.lang.String; import java.util.HashSet; import java.util.Set; /** - * Count of publications. + * Count of publications. Limited to a maximum of 10000 by default. */ public class PublicationsCountGraphQLQuery extends GraphQLQuery { - public PublicationsCountGraphQLQuery(CatalogType catalogType, String queryName, + public PublicationsCountGraphQLQuery(CatalogType catalogType, Integer limit, String queryName, Set fieldsSet) { super("query", queryName); if (catalogType != null || fieldsSet.contains("catalogType")) { getInput().put("catalogType", catalogType); + }if (limit != null || fieldsSet.contains("limit")) { + getInput().put("limit", limit); } } @@ -37,10 +40,12 @@ public static class Builder { private CatalogType catalogType; + private Integer limit; + private String queryName; public PublicationsCountGraphQLQuery build() { - return new PublicationsCountGraphQLQuery(catalogType, queryName, fieldsSet); + return new PublicationsCountGraphQLQuery(catalogType, limit, queryName, fieldsSet); } @@ -53,6 +58,15 @@ public Builder catalogType(CatalogType catalogType) { return this; } + /** + * The upper bound on count value before returning a result. Use `null` to have no limit. + */ + public Builder limit(Integer limit) { + this.limit = limit; + this.fieldsSet.add("limit"); + return this; + } + public Builder queryName(String queryName) { this.queryName = queryName; return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublicationsGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublicationsGraphQLQuery.java index dde04b76..6421ebfd 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublicationsGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublicationsGraphQLQuery.java @@ -10,7 +10,9 @@ import java.util.Set; /** - * List of publications. + * Returns a paginated list of [`Publication`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication). + * + * Filter publications by [`CatalogType`](https://shopify.dev/docs/api/admin-graphql/latest/enums/CatalogType). */ public class PublicationsGraphQLQuery extends GraphQLQuery { public PublicationsGraphQLQuery(CatalogType catalogType, Integer first, String after, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublishablePublishGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublishablePublishGraphQLQuery.java index be8b7c9a..2e7bcaa4 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublishablePublishGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublishablePublishGraphQLQuery.java @@ -9,10 +9,15 @@ import java.util.Set; /** - * Publishes a resource to a channel. If the resource is a product, then it's - * visible in the channel only if the product status is `active`. Products that - * are sold exclusively on subscription (`requiresSellingPlan: true`) can be - * published only on online stores. + * Publishes a resource, such as a + * [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) or [`Collection`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection), to one or more [publications](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication). + * + * For products to be visible in a channel, they must have an active [`ProductStatus`](https://shopify.dev/docs/api/admin-graphql/latest/enums/ProductStatus). + * Products sold exclusively on subscription (`requiresSellingPlan: true`) can + * only be published to online stores. + * + * You can schedule future publication by providing a publish date. Only online + * store channels support [scheduled publishing](https://shopify.dev/docs/apps/build/sales-channels/scheduled-product-publishing). */ public class PublishablePublishGraphQLQuery extends GraphQLQuery { public PublishablePublishGraphQLQuery(String id, List input, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublishablePublishToCurrentChannelGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublishablePublishToCurrentChannelGraphQLQuery.java index 39926a4b..5ab3c947 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublishablePublishToCurrentChannelGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublishablePublishToCurrentChannelGraphQLQuery.java @@ -7,10 +7,16 @@ import java.util.Set; /** - * Publishes a resource to current channel. If the resource is a product, then - * it's visible in the channel only if the product status is `active`. Products - * that are sold exclusively on subscription (`requiresSellingPlan: true`) can be - * published only on online stores. + * Publishes a resource to the current + * [`Channel`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Channel) + * associated with the requesting app. The system determines the current channel + * by the app's API client ID. Resources include + * [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) and [`Collection`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection) + * objects that implement the [`Publishable`](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/Publishable) interface. + * + * For products to be visible in the channel, they must have an active [`ProductStatus`](https://shopify.dev/docs/api/admin-graphql/latest/enums/ProductStatus). + * Products sold exclusively on subscription ([`requiresSellingPlan`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product#field-Product.fields.requiresSellingPlan): + * `true`) can only be published to online stores. */ public class PublishablePublishToCurrentChannelGraphQLQuery extends GraphQLQuery { public PublishablePublishToCurrentChannelGraphQLQuery(String id, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublishableUnpublishGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublishableUnpublishGraphQLQuery.java index eba5bbc6..c7f23c9b 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublishableUnpublishGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublishableUnpublishGraphQLQuery.java @@ -9,8 +9,12 @@ import java.util.Set; /** - * Unpublishes a resource from a channel. If the resource is a product, then it's - * visible in the channel only if the product status is `active`. + * Unpublishes a resource, such as a + * [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) or [`Collection`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection), + * from one or more [publications](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication). + * The resource remains in your store but becomes unavailable to customers. + * + * For products to be visible in a channel, they must have an active [`ProductStatus`](https://shopify.dev/docs/api/admin-graphql/latest/enums/ProductStatus). */ public class PublishableUnpublishGraphQLQuery extends GraphQLQuery { public PublishableUnpublishGraphQLQuery(String id, List input, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublishedProductsCountGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublishedProductsCountGraphQLQuery.java index 1906533c..e6ff4ccd 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublishedProductsCountGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/PublishedProductsCountGraphQLQuery.java @@ -1,20 +1,23 @@ package com.shopify.admin.client; import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import java.lang.Integer; import java.lang.Override; import java.lang.String; import java.util.HashSet; import java.util.Set; /** - * Returns a count of published products by publication ID. + * Returns a count of published products by publication ID. Limited to a maximum of 10000 by default. */ public class PublishedProductsCountGraphQLQuery extends GraphQLQuery { - public PublishedProductsCountGraphQLQuery(String publicationId, String queryName, + public PublishedProductsCountGraphQLQuery(String publicationId, Integer limit, String queryName, Set fieldsSet) { super("query", queryName); if (publicationId != null || fieldsSet.contains("publicationId")) { getInput().put("publicationId", publicationId); + }if (limit != null || fieldsSet.contains("limit")) { + getInput().put("limit", limit); } } @@ -36,10 +39,12 @@ public static class Builder { private String publicationId; + private Integer limit; + private String queryName; public PublishedProductsCountGraphQLQuery build() { - return new PublishedProductsCountGraphQLQuery(publicationId, queryName, fieldsSet); + return new PublishedProductsCountGraphQLQuery(publicationId, limit, queryName, fieldsSet); } @@ -52,6 +57,15 @@ public Builder publicationId(String publicationId) { return this; } + /** + * The maximum number of products to count. + */ + public Builder limit(Integer limit) { + this.limit = limit; + this.fieldsSet.add("limit"); + return this; + } + public Builder queryName(String queryName) { this.queryName = queryName; return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/QuantityPricingByVariantUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/QuantityPricingByVariantUpdateGraphQLQuery.java index 2ce6e355..f017e898 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/QuantityPricingByVariantUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/QuantityPricingByVariantUpdateGraphQLQuery.java @@ -8,11 +8,16 @@ import java.util.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. + * Updates quantity pricing on a [`PriceList`](https://shopify.dev/docs/api/admin-graphql/latest/objects/PriceList) for specific [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) + * objects. You can set fixed prices (see [`PriceListPrice`](https://shopify.dev/docs/api/admin-graphql/latest/objects/PriceListPrice)), + * quantity rules, and quantity price breaks in a single operation. + * + * [`QuantityRule`](https://shopify.dev/docs/api/admin-graphql/latest/objects/QuantityRule) objects define minimum, maximum, and increment constraints for ordering. [`QuantityPriceBreak`](https://shopify.dev/docs/api/admin-graphql/latest/objects/QuantityPriceBreak) + * objects offer tiered pricing based on purchase volume. + * + * The mutation executes delete operations before create operations and doesn't allow partial updates. + * + * > Note: If any requested change fails, then the mutation doesn't apply any of the changes. */ public class QuantityPricingByVariantUpdateGraphQLQuery extends GraphQLQuery { public QuantityPricingByVariantUpdateGraphQLQuery(String priceListId, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/QueryProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/QueryProjection.java index bc2a3398..4bf6b261 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/QueryProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/QueryProjection.java @@ -10,6 +10,8 @@ import com.shopify.admin.types.AutomaticDiscountSortKeys; import com.shopify.admin.types.BlogSortKeys; import com.shopify.admin.types.BulkOperationType; +import com.shopify.admin.types.BulkOperationsSortKeys; +import com.shopify.admin.types.BuyerSignalInput; import com.shopify.admin.types.CalculateReturnInput; import com.shopify.admin.types.CarrierServiceSortKeys; import com.shopify.admin.types.CashTrackingSessionsSortKeys; @@ -31,6 +33,7 @@ import com.shopify.admin.types.DeletionEventSubjectType; import com.shopify.admin.types.DiscountCodeSortKeys; import com.shopify.admin.types.DiscountSortKeys; +import com.shopify.admin.types.DraftOrderAvailableDeliveryOptionsInput; import com.shopify.admin.types.DraftOrderSortKeys; import com.shopify.admin.types.EventSortKeys; import com.shopify.admin.types.FileSortKeys; @@ -62,8 +65,10 @@ import com.shopify.admin.types.ProductSortKeys; import com.shopify.admin.types.ProductVariantIdentifierInput; import com.shopify.admin.types.ProductVariantSortKeys; +import com.shopify.admin.types.ReturnReasonDefinitionSortKeys; import com.shopify.admin.types.SegmentSortKeys; import com.shopify.admin.types.SellingPlanGroupSortKeys; +import com.shopify.admin.types.ShopPayPaymentRequestReceiptsSortKeys; import com.shopify.admin.types.StaffMembersSortKeys; import com.shopify.admin.types.SubscriptionBillingAttemptsSortKeys; import com.shopify.admin.types.SubscriptionBillingCycleInput; @@ -72,6 +77,7 @@ import com.shopify.admin.types.SubscriptionBillingCyclesSortKeys; import com.shopify.admin.types.SubscriptionContractsSortKeys; import com.shopify.admin.types.ThemeRole; +import com.shopify.admin.types.TransferSortKeys; import com.shopify.admin.types.TranslatableResourceType; import com.shopify.admin.types.UTMInput; import com.shopify.admin.types.UrlRedirectSortKeys; @@ -617,12 +623,59 @@ public CountProjection, ROOT> blogsCount() { return projection; } - public CountProjection, ROOT> blogsCount(String query) { + public CountProjection, ROOT> blogsCount(String query, + Integer limit) { CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); getFields().put("blogsCount", projection); getInputArguments().computeIfAbsent("blogsCount", k -> new ArrayList<>()); InputArgument queryArg = new InputArgument("query", query); getInputArguments().get("blogsCount").add(queryArg); + InputArgument limitArg = new InputArgument("limit", limit); + getInputArguments().get("blogsCount").add(limitArg); + return projection; + } + + public BulkOperationProjection, ROOT> bulkOperation() { + BulkOperationProjection, ROOT> projection = new BulkOperationProjection<>(this, getRoot()); + getFields().put("bulkOperation", projection); + return projection; + } + + public BulkOperationProjection, ROOT> bulkOperation(String id) { + BulkOperationProjection, ROOT> projection = new BulkOperationProjection<>(this, getRoot()); + getFields().put("bulkOperation", projection); + getInputArguments().computeIfAbsent("bulkOperation", k -> new ArrayList<>()); + InputArgument idArg = new InputArgument("id", id); + getInputArguments().get("bulkOperation").add(idArg); + return projection; + } + + public BulkOperationConnectionProjection, ROOT> bulkOperations() { + BulkOperationConnectionProjection, ROOT> projection = new BulkOperationConnectionProjection<>(this, getRoot()); + getFields().put("bulkOperations", projection); + return projection; + } + + public BulkOperationConnectionProjection, ROOT> bulkOperations( + Integer first, String after, Integer last, String before, Boolean reverse, + BulkOperationsSortKeys sortKey, String query) { + BulkOperationConnectionProjection, ROOT> projection = new BulkOperationConnectionProjection<>(this, getRoot()); + getFields().put("bulkOperations", projection); + getInputArguments().computeIfAbsent("bulkOperations", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("bulkOperations").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("bulkOperations").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("bulkOperations").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("bulkOperations").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("bulkOperations").add(reverseArg); + InputArgument sortKeyArg = new InputArgument("sortKey", sortKey); + getInputArguments().get("bulkOperations").add(sortKeyArg); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("bulkOperations").add(queryArg); return projection; } @@ -822,7 +875,7 @@ public CountProjection, ROOT> catalogsCount() { } public CountProjection, ROOT> catalogsCount(CatalogType type, - String query) { + String query, Integer limit) { CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); getFields().put("catalogsCount", projection); getInputArguments().computeIfAbsent("catalogsCount", k -> new ArrayList<>()); @@ -830,6 +883,8 @@ public CountProjection, ROOT> catalogsCount(Catalo getInputArguments().get("catalogsCount").add(typeArg); InputArgument queryArg = new InputArgument("query", query); getInputArguments().get("catalogsCount").add(queryArg); + InputArgument limitArg = new InputArgument("limit", limit); + getInputArguments().get("catalogsCount").add(limitArg); return projection; } @@ -1139,7 +1194,7 @@ public CountProjection, ROOT> collectionsCount() { } public CountProjection, ROOT> collectionsCount(String query, - String savedSearchId) { + String savedSearchId, Integer limit) { CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); getFields().put("collectionsCount", projection); getInputArguments().computeIfAbsent("collectionsCount", k -> new ArrayList<>()); @@ -1147,6 +1202,8 @@ public CountProjection, ROOT> collectionsCount(Str getInputArguments().get("collectionsCount").add(queryArg); InputArgument savedSearchIdArg = new InputArgument("savedSearchId", savedSearchId); getInputArguments().get("collectionsCount").add(savedSearchIdArg); + InputArgument limitArg = new InputArgument("limit", limit); + getInputArguments().get("collectionsCount").add(limitArg); return projection; } @@ -1229,6 +1286,15 @@ public CountProjection, ROOT> companiesCount() { return projection; } + public CountProjection, ROOT> companiesCount(Integer limit) { + CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); + getFields().put("companiesCount", projection); + getInputArguments().computeIfAbsent("companiesCount", k -> new ArrayList<>()); + InputArgument limitArg = new InputArgument("limit", limit); + getInputArguments().get("companiesCount").add(limitArg); + return projection; + } + public CompanyProjection, ROOT> company() { CompanyProjection, ROOT> projection = new CompanyProjection<>(this, getRoot()); getFields().put("company", projection); @@ -1645,12 +1711,15 @@ public CountProjection, ROOT> customersCount() { return projection; } - public CountProjection, ROOT> customersCount(String query) { + public CountProjection, ROOT> customersCount(String query, + Integer limit) { CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); getFields().put("customersCount", projection); getInputArguments().computeIfAbsent("customersCount", k -> new ArrayList<>()); InputArgument queryArg = new InputArgument("query", query); getInputArguments().get("customersCount").add(queryArg); + InputArgument limitArg = new InputArgument("limit", limit); + getInputArguments().get("customersCount").add(limitArg); return projection; } @@ -1838,12 +1907,15 @@ public CountProjection, ROOT> discountCodesCount() return projection; } - public CountProjection, ROOT> discountCodesCount(String query) { + public CountProjection, ROOT> discountCodesCount(String query, + Integer limit) { CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); getFields().put("discountCodesCount", projection); getInputArguments().computeIfAbsent("discountCodesCount", k -> new ArrayList<>()); InputArgument queryArg = new InputArgument("query", query); getInputArguments().get("discountCodesCount").add(queryArg); + InputArgument limitArg = new InputArgument("limit", limit); + getInputArguments().get("discountCodesCount").add(limitArg); return projection; } @@ -1900,7 +1972,7 @@ public CountProjection, ROOT> discountNodesCount() } public CountProjection, ROOT> discountNodesCount(String query, - String savedSearchId) { + String savedSearchId, Integer limit) { CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); getFields().put("discountNodesCount", projection); getInputArguments().computeIfAbsent("discountNodesCount", k -> new ArrayList<>()); @@ -1908,6 +1980,8 @@ public CountProjection, ROOT> discountNodesCount(S getInputArguments().get("discountNodesCount").add(queryArg); InputArgument savedSearchIdArg = new InputArgument("savedSearchId", savedSearchId); getInputArguments().get("discountNodesCount").add(savedSearchIdArg); + InputArgument limitArg = new InputArgument("limit", limit); + getInputArguments().get("discountNodesCount").add(limitArg); return projection; } @@ -2047,6 +2121,32 @@ public DraftOrderProjection, ROOT> draftOrder(Stri return projection; } + public DraftOrderAvailableDeliveryOptionsProjection, ROOT> draftOrderAvailableDeliveryOptions( + ) { + DraftOrderAvailableDeliveryOptionsProjection, ROOT> projection = new DraftOrderAvailableDeliveryOptionsProjection<>(this, getRoot()); + getFields().put("draftOrderAvailableDeliveryOptions", projection); + return projection; + } + + public DraftOrderAvailableDeliveryOptionsProjection, ROOT> draftOrderAvailableDeliveryOptions( + DraftOrderAvailableDeliveryOptionsInput input, String search, Integer localPickupFrom, + Integer localPickupCount, String sessionToken) { + DraftOrderAvailableDeliveryOptionsProjection, ROOT> projection = new DraftOrderAvailableDeliveryOptionsProjection<>(this, getRoot()); + getFields().put("draftOrderAvailableDeliveryOptions", projection); + getInputArguments().computeIfAbsent("draftOrderAvailableDeliveryOptions", k -> new ArrayList<>()); + InputArgument inputArg = new InputArgument("input", input); + getInputArguments().get("draftOrderAvailableDeliveryOptions").add(inputArg); + InputArgument searchArg = new InputArgument("search", search); + getInputArguments().get("draftOrderAvailableDeliveryOptions").add(searchArg); + InputArgument localPickupFromArg = new InputArgument("localPickupFrom", localPickupFrom); + getInputArguments().get("draftOrderAvailableDeliveryOptions").add(localPickupFromArg); + InputArgument localPickupCountArg = new InputArgument("localPickupCount", localPickupCount); + getInputArguments().get("draftOrderAvailableDeliveryOptions").add(localPickupCountArg); + InputArgument sessionTokenArg = new InputArgument("sessionToken", sessionToken); + getInputArguments().get("draftOrderAvailableDeliveryOptions").add(sessionTokenArg); + return projection; + } + public SavedSearchConnectionProjection, ROOT> draftOrderSavedSearches( ) { SavedSearchConnectionProjection, ROOT> projection = new SavedSearchConnectionProjection<>(this, getRoot()); @@ -2118,6 +2218,26 @@ public DraftOrderConnectionProjection, ROOT> draft return projection; } + public CountProjection, ROOT> draftOrdersCount() { + CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); + getFields().put("draftOrdersCount", projection); + return projection; + } + + public CountProjection, ROOT> draftOrdersCount(String query, + String savedSearchId, Integer limit) { + CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); + getFields().put("draftOrdersCount", projection); + getInputArguments().computeIfAbsent("draftOrdersCount", k -> new ArrayList<>()); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("draftOrdersCount").add(queryArg); + InputArgument savedSearchIdArg = new InputArgument("savedSearchId", savedSearchId); + getInputArguments().get("draftOrdersCount").add(savedSearchIdArg); + InputArgument limitArg = new InputArgument("limit", limit); + getInputArguments().get("draftOrdersCount").add(limitArg); + return projection; + } + public EventProjection, ROOT> event() { EventProjection, ROOT> projection = new EventProjection<>(this, getRoot()); getFields().put("event", projection); @@ -2392,7 +2512,7 @@ public CountProjection, ROOT> giftCardsCount() { } public CountProjection, ROOT> giftCardsCount(String query, - String savedSearchId) { + String savedSearchId, Integer limit) { CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); getFields().put("giftCardsCount", projection); getInputArguments().computeIfAbsent("giftCardsCount", k -> new ArrayList<>()); @@ -2400,6 +2520,8 @@ public CountProjection, ROOT> giftCardsCount(Strin getInputArguments().get("giftCardsCount").add(queryArg); InputArgument savedSearchIdArg = new InputArgument("savedSearchId", savedSearchId); getInputArguments().get("giftCardsCount").add(savedSearchIdArg); + InputArgument limitArg = new InputArgument("limit", limit); + getInputArguments().get("giftCardsCount").add(limitArg); return projection; } @@ -2465,6 +2587,70 @@ public InventoryPropertiesProjection, ROOT> invent return projection; } + public InventoryShipmentProjection, ROOT> inventoryShipment() { + InventoryShipmentProjection, ROOT> projection = new InventoryShipmentProjection<>(this, getRoot()); + getFields().put("inventoryShipment", projection); + return projection; + } + + public InventoryShipmentProjection, ROOT> inventoryShipment( + String id) { + InventoryShipmentProjection, ROOT> projection = new InventoryShipmentProjection<>(this, getRoot()); + getFields().put("inventoryShipment", projection); + getInputArguments().computeIfAbsent("inventoryShipment", k -> new ArrayList<>()); + InputArgument idArg = new InputArgument("id", id); + getInputArguments().get("inventoryShipment").add(idArg); + return projection; + } + + public InventoryTransferProjection, ROOT> inventoryTransfer() { + InventoryTransferProjection, ROOT> projection = new InventoryTransferProjection<>(this, getRoot()); + getFields().put("inventoryTransfer", projection); + return projection; + } + + public InventoryTransferProjection, ROOT> inventoryTransfer( + String id) { + InventoryTransferProjection, ROOT> projection = new InventoryTransferProjection<>(this, getRoot()); + getFields().put("inventoryTransfer", projection); + getInputArguments().computeIfAbsent("inventoryTransfer", k -> new ArrayList<>()); + InputArgument idArg = new InputArgument("id", id); + getInputArguments().get("inventoryTransfer").add(idArg); + return projection; + } + + public InventoryTransferConnectionProjection, ROOT> inventoryTransfers( + ) { + InventoryTransferConnectionProjection, ROOT> projection = new InventoryTransferConnectionProjection<>(this, getRoot()); + getFields().put("inventoryTransfers", projection); + return projection; + } + + public InventoryTransferConnectionProjection, ROOT> inventoryTransfers( + Integer first, String after, Integer last, String before, Boolean reverse, + TransferSortKeys sortKey, String query, String savedSearchId) { + InventoryTransferConnectionProjection, ROOT> projection = new InventoryTransferConnectionProjection<>(this, getRoot()); + getFields().put("inventoryTransfers", projection); + getInputArguments().computeIfAbsent("inventoryTransfers", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("inventoryTransfers").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("inventoryTransfers").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("inventoryTransfers").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("inventoryTransfers").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("inventoryTransfers").add(reverseArg); + InputArgument sortKeyArg = new InputArgument("sortKey", sortKey); + getInputArguments().get("inventoryTransfers").add(sortKeyArg); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("inventoryTransfers").add(queryArg); + InputArgument savedSearchIdArg = new InputArgument("savedSearchId", savedSearchId); + getInputArguments().get("inventoryTransfers").add(savedSearchIdArg); + return projection; + } + public JobProjection, ROOT> job() { JobProjection, ROOT> projection = new JobProjection<>(this, getRoot()); getFields().put("job", projection); @@ -2582,12 +2768,15 @@ public CountProjection, ROOT> locationsCount() { return projection; } - public CountProjection, ROOT> locationsCount(String query) { + public CountProjection, ROOT> locationsCount(String query, + Integer limit) { CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); getFields().put("locationsCount", projection); getInputArguments().computeIfAbsent("locationsCount", k -> new ArrayList<>()); InputArgument queryArg = new InputArgument("query", query); getInputArguments().get("locationsCount").add(queryArg); + InputArgument limitArg = new InputArgument("limit", limit); + getInputArguments().get("locationsCount").add(limitArg); return projection; } @@ -2852,6 +3041,23 @@ public MarketConnectionProjection, ROOT> markets(M return projection; } + public MarketsResolvedValuesProjection, ROOT> marketsResolvedValues( + ) { + MarketsResolvedValuesProjection, ROOT> projection = new MarketsResolvedValuesProjection<>(this, getRoot()); + getFields().put("marketsResolvedValues", projection); + return projection; + } + + public MarketsResolvedValuesProjection, ROOT> marketsResolvedValues( + BuyerSignalInput buyerSignal) { + MarketsResolvedValuesProjection, ROOT> projection = new MarketsResolvedValuesProjection<>(this, getRoot()); + getFields().put("marketsResolvedValues", projection); + getInputArguments().computeIfAbsent("marketsResolvedValues", k -> new ArrayList<>()); + InputArgument buyerSignalArg = new InputArgument("buyerSignal", buyerSignal); + getInputArguments().get("marketsResolvedValues").add(buyerSignalArg); + return projection; + } + public MenuProjection, ROOT> menu() { MenuProjection, ROOT> projection = new MenuProjection<>(this, getRoot()); getFields().put("menu", projection); @@ -3195,6 +3401,22 @@ public OrderProjection, ROOT> orderByIdentifier( return projection; } + public OrderEditSessionProjection, ROOT> orderEditSession() { + OrderEditSessionProjection, ROOT> projection = new OrderEditSessionProjection<>(this, getRoot()); + getFields().put("orderEditSession", projection); + return projection; + } + + public OrderEditSessionProjection, ROOT> orderEditSession( + String id) { + OrderEditSessionProjection, ROOT> projection = new OrderEditSessionProjection<>(this, getRoot()); + getFields().put("orderEditSession", projection); + getInputArguments().computeIfAbsent("orderEditSession", k -> new ArrayList<>()); + InputArgument idArg = new InputArgument("id", id); + getInputArguments().get("orderEditSession").add(idArg); + return projection; + } + public OrderPaymentStatusProjection, ROOT> orderPaymentStatus() { OrderPaymentStatusProjection, ROOT> projection = new OrderPaymentStatusProjection<>(this, getRoot()); getFields().put("orderPaymentStatus", projection); @@ -3340,6 +3562,15 @@ public CountProjection, ROOT> pagesCount() { return projection; } + public CountProjection, ROOT> pagesCount(Integer limit) { + CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); + getFields().put("pagesCount", projection); + getInputArguments().computeIfAbsent("pagesCount", k -> new ArrayList<>()); + InputArgument limitArg = new InputArgument("limit", limit); + getInputArguments().get("pagesCount").add(limitArg); + return projection; + } + public PaymentCustomizationProjection, ROOT> paymentCustomization( ) { PaymentCustomizationProjection, ROOT> projection = new PaymentCustomizationProjection<>(this, getRoot()); @@ -3407,6 +3638,22 @@ public CountProjection, ROOT> pendingOrdersCount() return projection; } + public PointOfSaleDeviceProjection, ROOT> pointOfSaleDevice() { + PointOfSaleDeviceProjection, ROOT> projection = new PointOfSaleDeviceProjection<>(this, getRoot()); + getFields().put("pointOfSaleDevice", projection); + return projection; + } + + public PointOfSaleDeviceProjection, ROOT> pointOfSaleDevice( + String id) { + PointOfSaleDeviceProjection, ROOT> projection = new PointOfSaleDeviceProjection<>(this, getRoot()); + getFields().put("pointOfSaleDevice", projection); + getInputArguments().computeIfAbsent("pointOfSaleDevice", k -> new ArrayList<>()); + InputArgument idArg = new InputArgument("id", id); + getInputArguments().get("pointOfSaleDevice").add(idArg); + return projection; + } + public PriceListProjection, ROOT> priceList() { PriceListProjection, ROOT> projection = new PriceListProjection<>(this, getRoot()); getFields().put("priceList", projection); @@ -3737,12 +3984,15 @@ public CountProjection, ROOT> productVariantsCount return projection; } - public CountProjection, ROOT> productVariantsCount(String query) { + public CountProjection, ROOT> productVariantsCount(String query, + Integer limit) { CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); getFields().put("productVariantsCount", projection); getInputArguments().computeIfAbsent("productVariantsCount", k -> new ArrayList<>()); InputArgument queryArg = new InputArgument("query", query); getInputArguments().get("productVariantsCount").add(queryArg); + InputArgument limitArg = new InputArgument("limit", limit); + getInputArguments().get("productVariantsCount").add(limitArg); return projection; } @@ -3876,12 +4126,14 @@ public CountProjection, ROOT> publicationsCount() } public CountProjection, ROOT> publicationsCount( - CatalogType catalogType) { + CatalogType catalogType, Integer limit) { CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); getFields().put("publicationsCount", projection); getInputArguments().computeIfAbsent("publicationsCount", k -> new ArrayList<>()); InputArgument catalogTypeArg = new InputArgument("catalogType", catalogType); getInputArguments().get("publicationsCount").add(catalogTypeArg); + InputArgument limitArg = new InputArgument("limit", limit); + getInputArguments().get("publicationsCount").add(limitArg); return projection; } @@ -3892,12 +4144,14 @@ public CountProjection, ROOT> publishedProductsCou } public CountProjection, ROOT> publishedProductsCount( - String publicationId) { + String publicationId, Integer limit) { CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); getFields().put("publishedProductsCount", projection); getInputArguments().computeIfAbsent("publishedProductsCount", k -> new ArrayList<>()); InputArgument publicationIdArg = new InputArgument("publicationId", publicationId); getInputArguments().get("publishedProductsCount").add(publicationIdArg); + InputArgument limitArg = new InputArgument("limit", limit); + getInputArguments().get("publishedProductsCount").add(limitArg); return projection; } @@ -3947,6 +4201,40 @@ public CalculatedReturnProjection, ROOT> returnCal return projection; } + public ReturnReasonDefinitionConnectionProjection, ROOT> returnReasonDefinitions( + ) { + ReturnReasonDefinitionConnectionProjection, ROOT> projection = new ReturnReasonDefinitionConnectionProjection<>(this, getRoot()); + getFields().put("returnReasonDefinitions", projection); + return projection; + } + + public ReturnReasonDefinitionConnectionProjection, ROOT> returnReasonDefinitions( + List ids, List handles, Integer first, String after, Integer last, + String before, Boolean reverse, ReturnReasonDefinitionSortKeys sortKey, String query) { + ReturnReasonDefinitionConnectionProjection, ROOT> projection = new ReturnReasonDefinitionConnectionProjection<>(this, getRoot()); + getFields().put("returnReasonDefinitions", projection); + getInputArguments().computeIfAbsent("returnReasonDefinitions", k -> new ArrayList<>()); + InputArgument idsArg = new InputArgument("ids", ids); + getInputArguments().get("returnReasonDefinitions").add(idsArg); + InputArgument handlesArg = new InputArgument("handles", handles); + getInputArguments().get("returnReasonDefinitions").add(handlesArg); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("returnReasonDefinitions").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("returnReasonDefinitions").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("returnReasonDefinitions").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("returnReasonDefinitions").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("returnReasonDefinitions").add(reverseArg); + InputArgument sortKeyArg = new InputArgument("sortKey", sortKey); + getInputArguments().get("returnReasonDefinitions").add(sortKeyArg); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("returnReasonDefinitions").add(queryArg); + return projection; + } + public ReturnableFulfillmentProjection, ROOT> returnableFulfillment( ) { ReturnableFulfillmentProjection, ROOT> projection = new ReturnableFulfillmentProjection<>(this, getRoot()); @@ -4215,6 +4503,15 @@ public CountProjection, ROOT> segmentsCount() { return projection; } + public CountProjection, ROOT> segmentsCount(Integer limit) { + CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); + getFields().put("segmentsCount", projection); + getInputArguments().computeIfAbsent("segmentsCount", k -> new ArrayList<>()); + InputArgument limitArg = new InputArgument("limit", limit); + getInputArguments().get("segmentsCount").add(limitArg); + return projection; + } + public SellingPlanGroupProjection, ROOT> sellingPlanGroup() { SellingPlanGroupProjection, ROOT> projection = new SellingPlanGroupProjection<>(this, getRoot()); getFields().put("sellingPlanGroup", projection); @@ -4295,6 +4592,53 @@ public ShopLocaleProjection, ROOT> shopLocales(Boo return projection; } + public ShopPayPaymentRequestReceiptProjection, ROOT> shopPayPaymentRequestReceipt( + ) { + ShopPayPaymentRequestReceiptProjection, ROOT> projection = new ShopPayPaymentRequestReceiptProjection<>(this, getRoot()); + getFields().put("shopPayPaymentRequestReceipt", projection); + return projection; + } + + public ShopPayPaymentRequestReceiptProjection, ROOT> shopPayPaymentRequestReceipt( + String token) { + ShopPayPaymentRequestReceiptProjection, ROOT> projection = new ShopPayPaymentRequestReceiptProjection<>(this, getRoot()); + getFields().put("shopPayPaymentRequestReceipt", projection); + getInputArguments().computeIfAbsent("shopPayPaymentRequestReceipt", k -> new ArrayList<>()); + InputArgument tokenArg = new InputArgument("token", token); + getInputArguments().get("shopPayPaymentRequestReceipt").add(tokenArg); + return projection; + } + + public ShopPayPaymentRequestReceiptConnectionProjection, ROOT> shopPayPaymentRequestReceipts( + ) { + ShopPayPaymentRequestReceiptConnectionProjection, ROOT> projection = new ShopPayPaymentRequestReceiptConnectionProjection<>(this, getRoot()); + getFields().put("shopPayPaymentRequestReceipts", projection); + return projection; + } + + public ShopPayPaymentRequestReceiptConnectionProjection, ROOT> shopPayPaymentRequestReceipts( + Integer first, String after, Integer last, String before, Boolean reverse, + ShopPayPaymentRequestReceiptsSortKeys sortKey, String query) { + ShopPayPaymentRequestReceiptConnectionProjection, ROOT> projection = new ShopPayPaymentRequestReceiptConnectionProjection<>(this, getRoot()); + getFields().put("shopPayPaymentRequestReceipts", projection); + getInputArguments().computeIfAbsent("shopPayPaymentRequestReceipts", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("shopPayPaymentRequestReceipts").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("shopPayPaymentRequestReceipts").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("shopPayPaymentRequestReceipts").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("shopPayPaymentRequestReceipts").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("shopPayPaymentRequestReceipts").add(reverseArg); + InputArgument sortKeyArg = new InputArgument("sortKey", sortKey); + getInputArguments().get("shopPayPaymentRequestReceipts").add(sortKeyArg); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("shopPayPaymentRequestReceipts").add(queryArg); + return projection; + } + public ShopifyFunctionProjection, ROOT> shopifyFunction() { ShopifyFunctionProjection, ROOT> projection = new ShopifyFunctionProjection<>(this, getRoot()); getFields().put("shopifyFunction", projection); @@ -4347,6 +4691,22 @@ public ShopifyPaymentsAccountProjection, ROOT> sho return projection; } + public ShopifyqlQueryResponseProjection, ROOT> shopifyqlQuery() { + ShopifyqlQueryResponseProjection, ROOT> projection = new ShopifyqlQueryResponseProjection<>(this, getRoot()); + getFields().put("shopifyqlQuery", projection); + return projection; + } + + public ShopifyqlQueryResponseProjection, ROOT> shopifyqlQuery( + String query) { + ShopifyqlQueryResponseProjection, ROOT> projection = new ShopifyqlQueryResponseProjection<>(this, getRoot()); + getFields().put("shopifyqlQuery", projection); + getInputArguments().computeIfAbsent("shopifyqlQuery", k -> new ArrayList<>()); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("shopifyqlQuery").add(queryArg); + return projection; + } + public StaffMemberProjection, ROOT> staffMember() { StaffMemberProjection, ROOT> projection = new StaffMemberProjection<>(this, getRoot()); getFields().put("staffMember", projection); @@ -4874,7 +5234,7 @@ public CountProjection, ROOT> urlRedirectsCount() } public CountProjection, ROOT> urlRedirectsCount(String query, - String savedSearchId) { + String savedSearchId, Integer limit) { CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); getFields().put("urlRedirectsCount", projection); getInputArguments().computeIfAbsent("urlRedirectsCount", k -> new ArrayList<>()); @@ -4882,6 +5242,8 @@ public CountProjection, ROOT> urlRedirectsCount(St getInputArguments().get("urlRedirectsCount").add(queryArg); InputArgument savedSearchIdArg = new InputArgument("savedSearchId", savedSearchId); getInputArguments().get("urlRedirectsCount").add(savedSearchIdArg); + InputArgument limitArg = new InputArgument("limit", limit); + getInputArguments().get("urlRedirectsCount").add(limitArg); return projection; } @@ -4991,7 +5353,7 @@ public WebhookSubscriptionConnectionProjection, RO public WebhookSubscriptionConnectionProjection, ROOT> webhookSubscriptions( Integer first, String after, Integer last, String before, Boolean reverse, - WebhookSubscriptionSortKeys sortKey, String query, String callbackUrl, + WebhookSubscriptionSortKeys sortKey, String query, String uri, WebhookSubscriptionFormat format, List topics) { WebhookSubscriptionConnectionProjection, ROOT> projection = new WebhookSubscriptionConnectionProjection<>(this, getRoot()); getFields().put("webhookSubscriptions", projection); @@ -5010,8 +5372,8 @@ public WebhookSubscriptionConnectionProjection, RO getInputArguments().get("webhookSubscriptions").add(sortKeyArg); InputArgument queryArg = new InputArgument("query", query); getInputArguments().get("webhookSubscriptions").add(queryArg); - InputArgument callbackUrlArg = new InputArgument("callbackUrl", callbackUrl); - getInputArguments().get("webhookSubscriptions").add(callbackUrlArg); + InputArgument uriArg = new InputArgument("uri", uri); + getInputArguments().get("webhookSubscriptions").add(uriArg); InputArgument formatArg = new InputArgument("format", format); getInputArguments().get("webhookSubscriptions").add(formatArg); InputArgument topicsArg = new InputArgument("topics", topics); @@ -5026,12 +5388,14 @@ public CountProjection, ROOT> webhookSubscriptions } public CountProjection, ROOT> webhookSubscriptionsCount( - String query) { + String query, Integer limit) { CountProjection, ROOT> projection = new CountProjection<>(this, getRoot()); getFields().put("webhookSubscriptionsCount", projection); getInputArguments().computeIfAbsent("webhookSubscriptionsCount", k -> new ArrayList<>()); InputArgument queryArg = new InputArgument("query", query); getInputArguments().get("webhookSubscriptionsCount").add(queryArg); + InputArgument limitArg = new InputArgument("limit", limit); + getInputArguments().get("webhookSubscriptionsCount").add(limitArg); return projection; } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/RefundCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/RefundCreateGraphQLQuery.java index a6edfd14..2444df98 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/RefundCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/RefundCreateGraphQLQuery.java @@ -8,7 +8,43 @@ import java.util.Set; /** - * Creates a refund. + * Creates a refund for an order, allowing you to process returns and issue payments back to customers. + * + * Use the `refundCreate` mutation to programmatically process refunds in scenarios where you need to + * return money to customers, such as when handling returns, processing chargebacks, or correcting + * order errors. + * + * The `refundCreate` mutation supports various refund scenarios: + * + * - Refunding line items with optional restocking + * - Refunding shipping costs + * - Refunding duties and import taxes + * - Refunding additional fees + * - Processing refunds through different payment methods + * - Issuing store credit refunds (when enabled) + * + * You can create both full and partial refunds, and optionally allow over-refunding in specific + * cases. + * + * After creating a refund, you can track its status and details through the order's + * [`refunds`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-Order.fields.refunds) + * field. The refund is associated with the order and can be used for reporting and reconciliation purposes. + * + * Learn more about + * [managing returns](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/build-return-management) + * and [refunding duties](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/view-and-refund-duties). + * + * > Note: + * > The refunding behavior of the `refundCreate` mutation is similar to the + * [`refundReturn`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/returnRefund) + * mutation. The key difference is that the `refundCreate` mutation lets you to specify restocking behavior + * for line items, whereas the `returnRefund` mutation focuses solely on handling the financial refund without + * any restocking input. + * + * > Caution: + * > As of 2026-01, this mutation supports an optional idempotency key using the `@idempotent` directive. + * > As of 2026-04, the idempotency key is required and must be provided using the `@idempotent` directive. + * > For more information, see the [idempotency documentation](https://shopify.dev/docs/api/usage/idempotent-requests). */ public class RefundCreateGraphQLQuery extends GraphQLQuery { public RefundCreateGraphQLQuery(RefundInput input, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/RefundFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/RefundFragmentProjection.java index 198f3b09..93842194 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/RefundFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/RefundFragmentProjection.java @@ -177,6 +177,11 @@ public RefundFragmentProjection note() { return this; } + public RefundFragmentProjection processedAt() { + getFields().put("processedAt", null); + return this; + } + public RefundFragmentProjection updatedAt() { getFields().put("updatedAt", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/RefundGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/RefundGraphQLQuery.java index b0a4ec3d..0e140423 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/RefundGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/RefundGraphQLQuery.java @@ -7,7 +7,25 @@ import java.util.Set; /** - * Returns a Refund resource by ID. + * Retrieves a [refund](https://shopify.dev/docs/api/admin-graphql/latest/objects/Refund) by its ID. + * A refund represents a financial record of money returned to a customer from an order. + * It provides a comprehensive view of all refunded amounts, transactions, and restocking + * instructions associated with returning products or correcting order issues. + * + * Use the `refund` query to retrieve information associated with the following workflows: + * + * - Displaying refund details in order management interfaces + * - Building customer service tools for reviewing refund history + * - Creating reports on refunded amounts and reasons + * - Auditing refund transactions and payment gateway records + * - Tracking inventory impacts from refunded items + * + * A refund is associated with an + * [order](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) + * and includes [refund line items](https://shopify.dev/docs/api/admin-graphql/latest/objects/RefundLineItem) + * that specify which items were refunded. Each refund processes through + * [order transactions](https://shopify.dev/docs/api/admin-graphql/latest/objects/OrderTransaction) + * that handle the actual money transfer back to the customer. */ public class RefundGraphQLQuery extends GraphQLQuery { public RefundGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/RefundProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/RefundProjection.java index 78e8d391..955091e9 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/RefundProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/RefundProjection.java @@ -171,6 +171,11 @@ public RefundProjection note() { return this; } + public RefundProjection processedAt() { + getFields().put("processedAt", null); + return this; + } + public RefundProjection updatedAt() { getFields().put("updatedAt", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/RefundProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/RefundProjectionRoot.java index 9215eaba..69673502 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/RefundProjectionRoot.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/RefundProjectionRoot.java @@ -178,6 +178,11 @@ public RefundProjectionRoot note() { return this; } + public RefundProjectionRoot processedAt() { + getFields().put("processedAt", null); + return this; + } + public RefundProjectionRoot updatedAt() { getFields().put("updatedAt", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/RefundReturnOutcomeFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/RefundReturnOutcomeFragmentProjection.java new file mode 100644 index 00000000..ac02572a --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/RefundReturnOutcomeFragmentProjection.java @@ -0,0 +1,55 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; +import java.lang.Override; +import java.lang.String; + +public class RefundReturnOutcomeFragmentProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + { + getFields().put("__typename", null); + } + + public RefundReturnOutcomeFragmentProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("RefundReturnOutcome")); + } + + public RefundReturnOutcomeFragmentProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public MoneyBagProjection, ROOT> amount() { + MoneyBagProjection, ROOT> projection = new MoneyBagProjection<>(this, getRoot()); + getFields().put("amount", projection); + return projection; + } + + public SuggestedRefundMethodProjection, ROOT> suggestedRefundMethods( + ) { + SuggestedRefundMethodProjection, ROOT> projection = new SuggestedRefundMethodProjection<>(this, getRoot()); + getFields().put("suggestedRefundMethods", projection); + return projection; + } + + public SuggestedOrderTransactionProjection, ROOT> suggestedTransactions( + ) { + SuggestedOrderTransactionProjection, ROOT> projection = new SuggestedOrderTransactionProjection<>(this, getRoot()); + getFields().put("suggestedTransactions", projection); + return projection; + } + + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + builder.append("... on RefundReturnOutcome {"); + getFields().forEach((k, v) -> { + builder.append(" ").append(k); + if(v != null) { + builder.append(" ").append(v.toString()); + } + }); + builder.append("}"); + + return builder.toString(); + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/RemoveFromReturnGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/RemoveFromReturnGraphQLQuery.java new file mode 100644 index 00000000..2d9888d8 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/RemoveFromReturnGraphQLQuery.java @@ -0,0 +1,92 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import com.shopify.admin.types.ExchangeLineItemRemoveFromReturnInput; +import com.shopify.admin.types.ReturnLineItemRemoveFromReturnInput; +import java.lang.Override; +import java.lang.String; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +/** + * Removes return and/or exchange lines from a return. + */ +public class RemoveFromReturnGraphQLQuery extends GraphQLQuery { + public RemoveFromReturnGraphQLQuery(String returnId, + List returnLineItems, + List exchangeLineItems, String queryName, + Set fieldsSet) { + super("mutation", queryName); + if (returnId != null || fieldsSet.contains("returnId")) { + getInput().put("returnId", returnId); + }if (returnLineItems != null || fieldsSet.contains("returnLineItems")) { + getInput().put("returnLineItems", returnLineItems); + }if (exchangeLineItems != null || fieldsSet.contains("exchangeLineItems")) { + getInput().put("exchangeLineItems", exchangeLineItems); + } + } + + public RemoveFromReturnGraphQLQuery() { + super("mutation"); + } + + @Override + public String getOperationName() { + return "removeFromReturn"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private String returnId; + + private List returnLineItems; + + private List exchangeLineItems; + + private String queryName; + + public RemoveFromReturnGraphQLQuery build() { + return new RemoveFromReturnGraphQLQuery(returnId, returnLineItems, exchangeLineItems, queryName, fieldsSet); + + } + + /** + * The ID of the return for line item removal. + */ + public Builder returnId(String returnId) { + this.returnId = returnId; + this.fieldsSet.add("returnId"); + return this; + } + + /** + * The return line items to remove from the return. + */ + public Builder returnLineItems(List returnLineItems) { + this.returnLineItems = returnLineItems; + this.fieldsSet.add("returnLineItems"); + return this; + } + + /** + * The exchange line items to remove from the return. + */ + public Builder exchangeLineItems( + List exchangeLineItems) { + this.exchangeLineItems = exchangeLineItems; + this.fieldsSet.add("exchangeLineItems"); + return this; + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/RemoveFromReturnProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/RemoveFromReturnProjectionRoot.java new file mode 100644 index 00000000..311da52d --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/RemoveFromReturnProjectionRoot.java @@ -0,0 +1,28 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class RemoveFromReturnProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public RemoveFromReturnProjectionRoot() { + super(null, null, java.util.Optional.of("RemoveFromReturnPayload")); + } + + public RemoveFromReturnProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public ReturnProjection, RemoveFromReturnProjectionRoot> _return( + ) { + ReturnProjection, RemoveFromReturnProjectionRoot> projection = new ReturnProjection<>(this, this); + getFields().put("return", projection); + return projection; + } + + public ReturnUserErrorProjection, RemoveFromReturnProjectionRoot> userErrors( + ) { + ReturnUserErrorProjection, RemoveFromReturnProjectionRoot> projection = new ReturnUserErrorProjection<>(this, this); + getFields().put("userErrors", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ResolvedPriceInclusivityProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ResolvedPriceInclusivityProjection.java new file mode 100644 index 00000000..d44af79f --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ResolvedPriceInclusivityProjection.java @@ -0,0 +1,24 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class ResolvedPriceInclusivityProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public ResolvedPriceInclusivityProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("ResolvedPriceInclusivity")); + } + + public ResolvedPriceInclusivityProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public ResolvedPriceInclusivityProjection dutiesIncluded() { + getFields().put("dutiesIncluded", null); + return this; + } + + public ResolvedPriceInclusivityProjection taxesIncluded() { + getFields().put("taxesIncluded", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnCalculateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnCalculateGraphQLQuery.java index ef52b87c..f8d5f3d8 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnCalculateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnCalculateGraphQLQuery.java @@ -8,7 +8,16 @@ import java.util.Set; /** - * The calculated monetary value to be exchanged due to the return. + * Calculates the financial outcome of a + * [`Return`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Return) + * without creating it. Use this query to preview return costs before initiating + * the actual return process. + * + * The calculation provides detailed breakdowns of refund amounts, taxes, [`RestockingFee`](https://shopify.dev/docs/api/admin-graphql/latest/objects/RestockingFee) + * charges, return shipping fees, and order-level discount adjustments based on the [`FulfillmentLineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentLineItem) + * objects that customers select for return. + * + * Learn more about building for [return management](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/build-return-management). */ public class ReturnCalculateGraphQLQuery extends GraphQLQuery { public ReturnCalculateGraphQLQuery(CalculateReturnInput input, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnCreateGraphQLQuery.java index 8dc298f5..9cc10863 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnCreateGraphQLQuery.java @@ -8,7 +8,32 @@ import java.util.Set; /** - * Creates a return. + * Creates a return from an existing order that has at least one fulfilled + * [line item](https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItem) + * that hasn't yet been refunded. If you create a return on an archived order, then the order is automatically + * unarchived. + * + * Use the `returnCreate` mutation when your workflow involves + * [approving](https://shopify.dev/docs/api/admin-graphql/latest/mutations/returnApproveRequest) or + * [declining](https://shopify.dev/docs/api/admin-graphql/latest/mutations/returnDeclineRequest) requested returns + * outside of the Shopify platform. + * + * The `returnCreate` mutation performs the following actions: + * + * - Creates a return in the `OPEN` state, and assumes that the return request from the customer has already been + * approved + * - Creates a [reverse fulfillment order](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/manage-reverse-fulfillment-orders), + * and enables you to create a [reverse delivery](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/manage-reverse-deliveries) + * for the reverse fulfillment order + * - Creates a sales agreement with a `RETURN` reason, which links to all sales created for the return or exchange + * - Generates sales records that reverse the sales records for the items being returned + * - Generates sales records for any exchange line items + * + * After you've created a return, use the + * [`return`](https://shopify.dev/docs/api/admin-graphql/latest/queries/return) query to retrieve the + * return by its ID. Learn more about providing a + * [return management workflow](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/build-return-management) + * for merchants. */ public class ReturnCreateGraphQLQuery extends GraphQLQuery { public ReturnCreateGraphQLQuery(ReturnInput returnInput, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnFragmentProjection.java index c667d102..e0fdf59c 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnFragmentProjection.java @@ -2,8 +2,12 @@ import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; import com.shopify.admin.types.RefundDutyInput; +import com.shopify.admin.types.RefundMethodAllocation; import com.shopify.admin.types.RefundShippingInput; +import com.shopify.admin.types.ReturnProcessingStatusFilterInput; import com.shopify.admin.types.ReturnRefundLineItemInput; +import com.shopify.admin.types.SuggestedOutcomeExchangeLineItemInput; +import com.shopify.admin.types.SuggestedOutcomeReturnLineItemInput; import java.lang.Boolean; import java.lang.Integer; import java.lang.Override; @@ -39,13 +43,15 @@ public ExchangeLineItemConnectionProjection, ROOT> exchangeLineItems( - Boolean includeRemovedItems, Integer first, String after, Integer last, String before, - Boolean reverse) { + Boolean includeRemovedItems, ReturnProcessingStatusFilterInput processingStatus, + Integer first, String after, Integer last, String before, Boolean reverse) { ExchangeLineItemConnectionProjection, ROOT> projection = new ExchangeLineItemConnectionProjection<>(this, getRoot()); getFields().put("exchangeLineItems", projection); getInputArguments().computeIfAbsent("exchangeLineItems", k -> new ArrayList<>()); InputArgument includeRemovedItemsArg = new InputArgument("includeRemovedItems", includeRemovedItems); getInputArguments().get("exchangeLineItems").add(includeRemovedItemsArg); + InputArgument processingStatusArg = new InputArgument("processingStatus", processingStatus); + getInputArguments().get("exchangeLineItems").add(processingStatusArg); InputArgument firstArg = new InputArgument("first", first); getInputArguments().get("exchangeLineItems").add(firstArg); InputArgument afterArg = new InputArgument("after", after); @@ -97,10 +103,13 @@ public ReturnLineItemTypeConnectionProjection, ROOT> returnLineItems( - Integer first, String after, Integer last, String before, Boolean reverse) { + ReturnProcessingStatusFilterInput processingStatus, Integer first, String after, Integer last, + String before, Boolean reverse) { ReturnLineItemTypeConnectionProjection, ROOT> projection = new ReturnLineItemTypeConnectionProjection<>(this, getRoot()); getFields().put("returnLineItems", projection); getInputArguments().computeIfAbsent("returnLineItems", k -> new ArrayList<>()); + InputArgument processingStatusArg = new InputArgument("processingStatus", processingStatus); + getInputArguments().get("returnLineItems").add(processingStatusArg); InputArgument firstArg = new InputArgument("first", first); getInputArguments().get("returnLineItems").add(firstArg); InputArgument afterArg = new InputArgument("after", after); @@ -146,12 +155,48 @@ public ReverseFulfillmentOrderConnectionProjection, ROOT> staffMember() { + StaffMemberProjection, ROOT> projection = new StaffMemberProjection<>(this, getRoot()); + getFields().put("staffMember", projection); + return projection; + } + public ReturnStatusProjection, ROOT> status() { ReturnStatusProjection, ROOT> projection = new ReturnStatusProjection<>(this, getRoot()); getFields().put("status", projection); return projection; } + public SuggestedReturnFinancialOutcomeProjection, ROOT> suggestedFinancialOutcome( + ) { + SuggestedReturnFinancialOutcomeProjection, ROOT> projection = new SuggestedReturnFinancialOutcomeProjection<>(this, getRoot()); + getFields().put("suggestedFinancialOutcome", projection); + return projection; + } + + public SuggestedReturnFinancialOutcomeProjection, ROOT> suggestedFinancialOutcome( + List returnLineItems, + List exchangeLineItems, + RefundShippingInput refundShipping, String tipLineId, List refundDuties, + RefundMethodAllocation refundMethodAllocation) { + SuggestedReturnFinancialOutcomeProjection, ROOT> projection = new SuggestedReturnFinancialOutcomeProjection<>(this, getRoot()); + getFields().put("suggestedFinancialOutcome", projection); + getInputArguments().computeIfAbsent("suggestedFinancialOutcome", k -> new ArrayList<>()); + InputArgument returnLineItemsArg = new InputArgument("returnLineItems", returnLineItems); + getInputArguments().get("suggestedFinancialOutcome").add(returnLineItemsArg); + InputArgument exchangeLineItemsArg = new InputArgument("exchangeLineItems", exchangeLineItems); + getInputArguments().get("suggestedFinancialOutcome").add(exchangeLineItemsArg); + InputArgument refundShippingArg = new InputArgument("refundShipping", refundShipping); + getInputArguments().get("suggestedFinancialOutcome").add(refundShippingArg); + InputArgument tipLineIdArg = new InputArgument("tipLineId", tipLineId); + getInputArguments().get("suggestedFinancialOutcome").add(tipLineIdArg); + InputArgument refundDutiesArg = new InputArgument("refundDuties", refundDuties); + getInputArguments().get("suggestedFinancialOutcome").add(refundDutiesArg); + InputArgument refundMethodAllocationArg = new InputArgument("refundMethodAllocation", refundMethodAllocation); + getInputArguments().get("suggestedFinancialOutcome").add(refundMethodAllocationArg); + return projection; + } + public SuggestedReturnRefundProjection, ROOT> suggestedRefund( ) { SuggestedReturnRefundProjection, ROOT> projection = new SuggestedReturnRefundProjection<>(this, getRoot()); @@ -174,6 +219,41 @@ public SuggestedReturnRefundProjection, R return projection; } + public OrderTransactionConnectionProjection, ROOT> transactions( + ) { + OrderTransactionConnectionProjection, ROOT> projection = new OrderTransactionConnectionProjection<>(this, getRoot()); + getFields().put("transactions", projection); + return projection; + } + + public OrderTransactionConnectionProjection, ROOT> transactions( + Integer first, String after, Integer last, String before, Boolean reverse) { + OrderTransactionConnectionProjection, ROOT> projection = new OrderTransactionConnectionProjection<>(this, getRoot()); + getFields().put("transactions", projection); + getInputArguments().computeIfAbsent("transactions", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("transactions").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("transactions").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("transactions").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("transactions").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("transactions").add(reverseArg); + return projection; + } + + public ReturnFragmentProjection closedAt() { + getFields().put("closedAt", null); + return this; + } + + public ReturnFragmentProjection createdAt() { + getFields().put("createdAt", null); + return this; + } + public ReturnFragmentProjection id() { getFields().put("id", null); return this; @@ -184,6 +264,11 @@ public ReturnFragmentProjection name() { return this; } + public ReturnFragmentProjection requestApprovedAt() { + getFields().put("requestApprovedAt", null); + return this; + } + public ReturnFragmentProjection totalQuantity() { getFields().put("totalQuantity", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnGraphQLQuery.java index 92a4287b..d6983648 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnGraphQLQuery.java @@ -7,7 +7,20 @@ import java.util.Set; /** - * Returns a Return resource by ID. + * Retrieves a return by its ID. A return represents the intent of a buyer to ship one or more items from an + * order back to a merchant or a third-party fulfillment location. + * + * Use the `return` query to retrieve information associated with the following workflows: + * + * - [Managing returns](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/build-return-management) + * - [Processing exchanges](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/manage-exchanges) + * - [Tracking reverse fulfillment orders](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/manage-reverse-fulfillment-orders) + * + * A return is associated with an + * [order](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) + * and can include multiple return [line items](https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItem). + * Each return has a [status](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps#return-statuses), + * which indicates the state of the return. */ public class ReturnGraphQLQuery extends GraphQLQuery { public ReturnGraphQLQuery(String id, String queryName, Set fieldsSet) { @@ -43,7 +56,8 @@ public ReturnGraphQLQuery build() { } /** - * The ID of the Return to return. + * The [globally-unique ID](https://shopify.dev/docs/api/usage/gids) + * of the return to retrieve. */ public Builder id(String id) { this.id = id; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnLineItemFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnLineItemFragmentProjection.java index 6282cddb..b119ff2a 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnLineItemFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnLineItemFragmentProjection.java @@ -39,6 +39,13 @@ public ReturnReasonProjection, RO return projection; } + public ReturnReasonDefinitionProjection, ROOT> returnReasonDefinition( + ) { + ReturnReasonDefinitionProjection, ROOT> projection = new ReturnReasonDefinitionProjection<>(this, getRoot()); + getFields().put("returnReasonDefinition", projection); + return projection; + } + public WeightProjection, ROOT> totalWeight() { WeightProjection, ROOT> projection = new WeightProjection<>(this, getRoot()); getFields().put("totalWeight", projection); @@ -62,6 +69,16 @@ public ReturnLineItemFragmentProjection id() { return this; } + public ReturnLineItemFragmentProjection processableQuantity() { + getFields().put("processableQuantity", null); + return this; + } + + public ReturnLineItemFragmentProjection processedQuantity() { + getFields().put("processedQuantity", null); + return this; + } + public ReturnLineItemFragmentProjection quantity() { getFields().put("quantity", null); return this; @@ -82,6 +99,11 @@ public ReturnLineItemFragmentProjection returnReasonNote() { return this; } + public ReturnLineItemFragmentProjection unprocessedQuantity() { + getFields().put("unprocessedQuantity", null); + return this; + } + @Override public String toString() { StringBuilder builder = new StringBuilder(); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnLineItemTypeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnLineItemTypeProjection.java index 0f71d716..8e9b6e98 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnLineItemTypeProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnLineItemTypeProjection.java @@ -18,6 +18,13 @@ public ReturnReasonProjection, ROOT> return projection; } + public ReturnReasonDefinitionProjection, ROOT> returnReasonDefinition( + ) { + ReturnReasonDefinitionProjection, ROOT> projection = new ReturnReasonDefinitionProjection<>(this, getRoot()); + getFields().put("returnReasonDefinition", projection); + return projection; + } + public ReturnLineItemTypeProjection customerNote() { getFields().put("customerNote", null); return this; @@ -28,6 +35,16 @@ public ReturnLineItemTypeProjection id() { return this; } + public ReturnLineItemTypeProjection processableQuantity() { + getFields().put("processableQuantity", null); + return this; + } + + public ReturnLineItemTypeProjection processedQuantity() { + getFields().put("processedQuantity", null); + return this; + } + public ReturnLineItemTypeProjection quantity() { getFields().put("quantity", null); return this; @@ -48,6 +65,11 @@ public ReturnLineItemTypeProjection returnReasonNote() { return this; } + public ReturnLineItemTypeProjection unprocessedQuantity() { + getFields().put("unprocessedQuantity", null); + return this; + } + public ReturnLineItemFragmentProjection, ROOT> onReturnLineItem( ) { ReturnLineItemFragmentProjection, ROOT> fragment = new ReturnLineItemFragmentProjection<>(this, getRoot()); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnOutcomeFinancialTransferProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnOutcomeFinancialTransferProjection.java new file mode 100644 index 00000000..6f48b504 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnOutcomeFinancialTransferProjection.java @@ -0,0 +1,28 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class ReturnOutcomeFinancialTransferProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public ReturnOutcomeFinancialTransferProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("ReturnOutcomeFinancialTransfer")); + } + + public ReturnOutcomeFinancialTransferProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public InvoiceReturnOutcomeFragmentProjection, ROOT> onInvoiceReturnOutcome( + ) { + InvoiceReturnOutcomeFragmentProjection, ROOT> fragment = new InvoiceReturnOutcomeFragmentProjection<>(this, getRoot()); + getFragments().add(fragment); + return fragment; + } + + public RefundReturnOutcomeFragmentProjection, ROOT> onRefundReturnOutcome( + ) { + RefundReturnOutcomeFragmentProjection, ROOT> fragment = new RefundReturnOutcomeFragmentProjection<>(this, getRoot()); + getFragments().add(fragment); + return fragment; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnProcessGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnProcessGraphQLQuery.java new file mode 100644 index 00000000..af7c0ab2 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnProcessGraphQLQuery.java @@ -0,0 +1,73 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import com.shopify.admin.types.ReturnProcessInput; +import java.lang.Override; +import java.lang.String; +import java.util.HashSet; +import java.util.Set; + +/** + * Processes a return by confirming which items customers return and exchange, + * handling their disposition, and optionally issuing refunds. This mutation + * confirms the quantities for [`ReturnLineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ReturnLineItem) and [`ExchangeLineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ExchangeLineItem) + * objects previously created on the + * [`Return`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Return). + * + * For returned items, you specify how to handle them through dispositions such + * as restocking or disposal. The mutation creates [`FulfillmentOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder) + * objects for exchange items and records all transactions in the merchant's + * financial reports. You can optionally issue refunds through financial + * transfers, apply refund duties, and refund shipping costs. + * + * Learn more about [processing returns](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/build-return-management). + */ +public class ReturnProcessGraphQLQuery extends GraphQLQuery { + public ReturnProcessGraphQLQuery(ReturnProcessInput input, String queryName, + Set fieldsSet) { + super("mutation", queryName); + if (input != null || fieldsSet.contains("input")) { + getInput().put("input", input); + } + } + + public ReturnProcessGraphQLQuery() { + super("mutation"); + } + + @Override + public String getOperationName() { + return "returnProcess"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private ReturnProcessInput input; + + private String queryName; + + public ReturnProcessGraphQLQuery build() { + return new ReturnProcessGraphQLQuery(input, queryName, fieldsSet); + + } + + /** + * Specifies the input fields for processing a return. + */ + public Builder input(ReturnProcessInput input) { + this.input = input; + this.fieldsSet.add("input"); + return this; + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnProcessProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnProcessProjectionRoot.java new file mode 100644 index 00000000..f5e80096 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnProcessProjectionRoot.java @@ -0,0 +1,28 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class ReturnProcessProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public ReturnProcessProjectionRoot() { + super(null, null, java.util.Optional.of("ReturnProcessPayload")); + } + + public ReturnProcessProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public ReturnProjection, ReturnProcessProjectionRoot> _return( + ) { + ReturnProjection, ReturnProcessProjectionRoot> projection = new ReturnProjection<>(this, this); + getFields().put("return", projection); + return projection; + } + + public ReturnUserErrorProjection, ReturnProcessProjectionRoot> userErrors( + ) { + ReturnUserErrorProjection, ReturnProcessProjectionRoot> projection = new ReturnUserErrorProjection<>(this, this); + getFields().put("userErrors", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnProjection.java index 2eb57828..426cf5bc 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnProjection.java @@ -2,8 +2,12 @@ import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; import com.shopify.admin.types.RefundDutyInput; +import com.shopify.admin.types.RefundMethodAllocation; import com.shopify.admin.types.RefundShippingInput; +import com.shopify.admin.types.ReturnProcessingStatusFilterInput; import com.shopify.admin.types.ReturnRefundLineItemInput; +import com.shopify.admin.types.SuggestedOutcomeExchangeLineItemInput; +import com.shopify.admin.types.SuggestedOutcomeReturnLineItemInput; import java.lang.Boolean; import java.lang.Integer; import java.lang.String; @@ -34,13 +38,15 @@ public ExchangeLineItemConnectionProjection, ROOT } public ExchangeLineItemConnectionProjection, ROOT> exchangeLineItems( - Boolean includeRemovedItems, Integer first, String after, Integer last, String before, - Boolean reverse) { + Boolean includeRemovedItems, ReturnProcessingStatusFilterInput processingStatus, + Integer first, String after, Integer last, String before, Boolean reverse) { ExchangeLineItemConnectionProjection, ROOT> projection = new ExchangeLineItemConnectionProjection<>(this, getRoot()); getFields().put("exchangeLineItems", projection); getInputArguments().computeIfAbsent("exchangeLineItems", k -> new ArrayList<>()); InputArgument includeRemovedItemsArg = new InputArgument("includeRemovedItems", includeRemovedItems); getInputArguments().get("exchangeLineItems").add(includeRemovedItemsArg); + InputArgument processingStatusArg = new InputArgument("processingStatus", processingStatus); + getInputArguments().get("exchangeLineItems").add(processingStatusArg); InputArgument firstArg = new InputArgument("first", first); getInputArguments().get("exchangeLineItems").add(firstArg); InputArgument afterArg = new InputArgument("after", after); @@ -92,10 +98,13 @@ public ReturnLineItemTypeConnectionProjection, RO } public ReturnLineItemTypeConnectionProjection, ROOT> returnLineItems( - Integer first, String after, Integer last, String before, Boolean reverse) { + ReturnProcessingStatusFilterInput processingStatus, Integer first, String after, Integer last, + String before, Boolean reverse) { ReturnLineItemTypeConnectionProjection, ROOT> projection = new ReturnLineItemTypeConnectionProjection<>(this, getRoot()); getFields().put("returnLineItems", projection); getInputArguments().computeIfAbsent("returnLineItems", k -> new ArrayList<>()); + InputArgument processingStatusArg = new InputArgument("processingStatus", processingStatus); + getInputArguments().get("returnLineItems").add(processingStatusArg); InputArgument firstArg = new InputArgument("first", first); getInputArguments().get("returnLineItems").add(firstArg); InputArgument afterArg = new InputArgument("after", after); @@ -140,12 +149,48 @@ public ReverseFulfillmentOrderConnectionProjection, ROOT> staffMember() { + StaffMemberProjection, ROOT> projection = new StaffMemberProjection<>(this, getRoot()); + getFields().put("staffMember", projection); + return projection; + } + public ReturnStatusProjection, ROOT> status() { ReturnStatusProjection, ROOT> projection = new ReturnStatusProjection<>(this, getRoot()); getFields().put("status", projection); return projection; } + public SuggestedReturnFinancialOutcomeProjection, ROOT> suggestedFinancialOutcome( + ) { + SuggestedReturnFinancialOutcomeProjection, ROOT> projection = new SuggestedReturnFinancialOutcomeProjection<>(this, getRoot()); + getFields().put("suggestedFinancialOutcome", projection); + return projection; + } + + public SuggestedReturnFinancialOutcomeProjection, ROOT> suggestedFinancialOutcome( + List returnLineItems, + List exchangeLineItems, + RefundShippingInput refundShipping, String tipLineId, List refundDuties, + RefundMethodAllocation refundMethodAllocation) { + SuggestedReturnFinancialOutcomeProjection, ROOT> projection = new SuggestedReturnFinancialOutcomeProjection<>(this, getRoot()); + getFields().put("suggestedFinancialOutcome", projection); + getInputArguments().computeIfAbsent("suggestedFinancialOutcome", k -> new ArrayList<>()); + InputArgument returnLineItemsArg = new InputArgument("returnLineItems", returnLineItems); + getInputArguments().get("suggestedFinancialOutcome").add(returnLineItemsArg); + InputArgument exchangeLineItemsArg = new InputArgument("exchangeLineItems", exchangeLineItems); + getInputArguments().get("suggestedFinancialOutcome").add(exchangeLineItemsArg); + InputArgument refundShippingArg = new InputArgument("refundShipping", refundShipping); + getInputArguments().get("suggestedFinancialOutcome").add(refundShippingArg); + InputArgument tipLineIdArg = new InputArgument("tipLineId", tipLineId); + getInputArguments().get("suggestedFinancialOutcome").add(tipLineIdArg); + InputArgument refundDutiesArg = new InputArgument("refundDuties", refundDuties); + getInputArguments().get("suggestedFinancialOutcome").add(refundDutiesArg); + InputArgument refundMethodAllocationArg = new InputArgument("refundMethodAllocation", refundMethodAllocation); + getInputArguments().get("suggestedFinancialOutcome").add(refundMethodAllocationArg); + return projection; + } + public SuggestedReturnRefundProjection, ROOT> suggestedRefund() { SuggestedReturnRefundProjection, ROOT> projection = new SuggestedReturnRefundProjection<>(this, getRoot()); getFields().put("suggestedRefund", projection); @@ -167,6 +212,40 @@ public SuggestedReturnRefundProjection, ROOT> sug return projection; } + public OrderTransactionConnectionProjection, ROOT> transactions() { + OrderTransactionConnectionProjection, ROOT> projection = new OrderTransactionConnectionProjection<>(this, getRoot()); + getFields().put("transactions", projection); + return projection; + } + + public OrderTransactionConnectionProjection, ROOT> transactions( + Integer first, String after, Integer last, String before, Boolean reverse) { + OrderTransactionConnectionProjection, ROOT> projection = new OrderTransactionConnectionProjection<>(this, getRoot()); + getFields().put("transactions", projection); + getInputArguments().computeIfAbsent("transactions", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("transactions").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("transactions").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("transactions").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("transactions").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("transactions").add(reverseArg); + return projection; + } + + public ReturnProjection closedAt() { + getFields().put("closedAt", null); + return this; + } + + public ReturnProjection createdAt() { + getFields().put("createdAt", null); + return this; + } + public ReturnProjection id() { getFields().put("id", null); return this; @@ -177,6 +256,11 @@ public ReturnProjection name() { return this; } + public ReturnProjection requestApprovedAt() { + getFields().put("requestApprovedAt", null); + return this; + } + public ReturnProjection totalQuantity() { getFields().put("totalQuantity", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnProjectionRoot.java index 67a15341..bcdd52dd 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnProjectionRoot.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnProjectionRoot.java @@ -2,8 +2,12 @@ import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; import com.shopify.admin.types.RefundDutyInput; +import com.shopify.admin.types.RefundMethodAllocation; import com.shopify.admin.types.RefundShippingInput; +import com.shopify.admin.types.ReturnProcessingStatusFilterInput; import com.shopify.admin.types.ReturnRefundLineItemInput; +import com.shopify.admin.types.SuggestedOutcomeExchangeLineItemInput; +import com.shopify.admin.types.SuggestedOutcomeReturnLineItemInput; import java.lang.Boolean; import java.lang.Integer; import java.lang.String; @@ -35,13 +39,15 @@ public ExchangeLineItemConnectionProjection, } public ExchangeLineItemConnectionProjection, ReturnProjectionRoot> exchangeLineItems( - Boolean includeRemovedItems, Integer first, String after, Integer last, String before, - Boolean reverse) { + Boolean includeRemovedItems, ReturnProcessingStatusFilterInput processingStatus, + Integer first, String after, Integer last, String before, Boolean reverse) { ExchangeLineItemConnectionProjection, ReturnProjectionRoot> projection = new ExchangeLineItemConnectionProjection<>(this, this); getFields().put("exchangeLineItems", projection); getInputArguments().computeIfAbsent("exchangeLineItems", k -> new ArrayList<>()); InputArgument includeRemovedItemsArg = new InputArgument("includeRemovedItems", includeRemovedItems); getInputArguments().get("exchangeLineItems").add(includeRemovedItemsArg); + InputArgument processingStatusArg = new InputArgument("processingStatus", processingStatus); + getInputArguments().get("exchangeLineItems").add(processingStatusArg); InputArgument firstArg = new InputArgument("first", first); getInputArguments().get("exchangeLineItems").add(firstArg); InputArgument afterArg = new InputArgument("after", after); @@ -95,10 +101,13 @@ public ReturnLineItemTypeConnectionProjection } public ReturnLineItemTypeConnectionProjection, ReturnProjectionRoot> returnLineItems( - Integer first, String after, Integer last, String before, Boolean reverse) { + ReturnProcessingStatusFilterInput processingStatus, Integer first, String after, Integer last, + String before, Boolean reverse) { ReturnLineItemTypeConnectionProjection, ReturnProjectionRoot> projection = new ReturnLineItemTypeConnectionProjection<>(this, this); getFields().put("returnLineItems", projection); getInputArguments().computeIfAbsent("returnLineItems", k -> new ArrayList<>()); + InputArgument processingStatusArg = new InputArgument("processingStatus", processingStatus); + getInputArguments().get("returnLineItems").add(processingStatusArg); InputArgument firstArg = new InputArgument("first", first); getInputArguments().get("returnLineItems").add(firstArg); InputArgument afterArg = new InputArgument("after", after); @@ -144,6 +153,13 @@ public ReverseFulfillmentOrderConnectionProjection, ReturnProjectionRoot> staffMember( + ) { + StaffMemberProjection, ReturnProjectionRoot> projection = new StaffMemberProjection<>(this, this); + getFields().put("staffMember", projection); + return projection; + } + public ReturnStatusProjection, ReturnProjectionRoot> status( ) { ReturnStatusProjection, ReturnProjectionRoot> projection = new ReturnStatusProjection<>(this, this); @@ -151,6 +167,36 @@ public ReturnStatusProjection, ReturnProjecti return projection; } + public SuggestedReturnFinancialOutcomeProjection, ReturnProjectionRoot> suggestedFinancialOutcome( + ) { + SuggestedReturnFinancialOutcomeProjection, ReturnProjectionRoot> projection = new SuggestedReturnFinancialOutcomeProjection<>(this, this); + getFields().put("suggestedFinancialOutcome", projection); + return projection; + } + + public SuggestedReturnFinancialOutcomeProjection, ReturnProjectionRoot> suggestedFinancialOutcome( + List returnLineItems, + List exchangeLineItems, + RefundShippingInput refundShipping, String tipLineId, List refundDuties, + RefundMethodAllocation refundMethodAllocation) { + SuggestedReturnFinancialOutcomeProjection, ReturnProjectionRoot> projection = new SuggestedReturnFinancialOutcomeProjection<>(this, this); + getFields().put("suggestedFinancialOutcome", projection); + getInputArguments().computeIfAbsent("suggestedFinancialOutcome", k -> new ArrayList<>()); + InputArgument returnLineItemsArg = new InputArgument("returnLineItems", returnLineItems); + getInputArguments().get("suggestedFinancialOutcome").add(returnLineItemsArg); + InputArgument exchangeLineItemsArg = new InputArgument("exchangeLineItems", exchangeLineItems); + getInputArguments().get("suggestedFinancialOutcome").add(exchangeLineItemsArg); + InputArgument refundShippingArg = new InputArgument("refundShipping", refundShipping); + getInputArguments().get("suggestedFinancialOutcome").add(refundShippingArg); + InputArgument tipLineIdArg = new InputArgument("tipLineId", tipLineId); + getInputArguments().get("suggestedFinancialOutcome").add(tipLineIdArg); + InputArgument refundDutiesArg = new InputArgument("refundDuties", refundDuties); + getInputArguments().get("suggestedFinancialOutcome").add(refundDutiesArg); + InputArgument refundMethodAllocationArg = new InputArgument("refundMethodAllocation", refundMethodAllocation); + getInputArguments().get("suggestedFinancialOutcome").add(refundMethodAllocationArg); + return projection; + } + public SuggestedReturnRefundProjection, ReturnProjectionRoot> suggestedRefund( ) { SuggestedReturnRefundProjection, ReturnProjectionRoot> projection = new SuggestedReturnRefundProjection<>(this, this); @@ -173,6 +219,41 @@ public SuggestedReturnRefundProjection, Retur return projection; } + public OrderTransactionConnectionProjection, ReturnProjectionRoot> transactions( + ) { + OrderTransactionConnectionProjection, ReturnProjectionRoot> projection = new OrderTransactionConnectionProjection<>(this, this); + getFields().put("transactions", projection); + return projection; + } + + public OrderTransactionConnectionProjection, ReturnProjectionRoot> transactions( + Integer first, String after, Integer last, String before, Boolean reverse) { + OrderTransactionConnectionProjection, ReturnProjectionRoot> projection = new OrderTransactionConnectionProjection<>(this, this); + getFields().put("transactions", projection); + getInputArguments().computeIfAbsent("transactions", k -> new ArrayList<>()); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("transactions").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("transactions").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("transactions").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("transactions").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("transactions").add(reverseArg); + return projection; + } + + public ReturnProjectionRoot closedAt() { + getFields().put("closedAt", null); + return this; + } + + public ReturnProjectionRoot createdAt() { + getFields().put("createdAt", null); + return this; + } + public ReturnProjectionRoot id() { getFields().put("id", null); return this; @@ -183,6 +264,11 @@ public ReturnProjectionRoot name() { return this; } + public ReturnProjectionRoot requestApprovedAt() { + getFields().put("requestApprovedAt", null); + return this; + } + public ReturnProjectionRoot totalQuantity() { getFields().put("totalQuantity", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnReasonDefinitionConnectionProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnReasonDefinitionConnectionProjection.java new file mode 100644 index 00000000..00927cec --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnReasonDefinitionConnectionProjection.java @@ -0,0 +1,35 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class ReturnReasonDefinitionConnectionProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public ReturnReasonDefinitionConnectionProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("ReturnReasonDefinitionConnection")); + } + + public ReturnReasonDefinitionConnectionProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public ReturnReasonDefinitionEdgeProjection, ROOT> edges( + ) { + ReturnReasonDefinitionEdgeProjection, ROOT> projection = new ReturnReasonDefinitionEdgeProjection<>(this, getRoot()); + getFields().put("edges", projection); + return projection; + } + + public ReturnReasonDefinitionProjection, ROOT> nodes( + ) { + ReturnReasonDefinitionProjection, ROOT> projection = new ReturnReasonDefinitionProjection<>(this, getRoot()); + getFields().put("nodes", projection); + return projection; + } + + public PageInfoProjection, ROOT> pageInfo( + ) { + PageInfoProjection, ROOT> projection = new PageInfoProjection<>(this, getRoot()); + getFields().put("pageInfo", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnReasonDefinitionEdgeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnReasonDefinitionEdgeProjection.java new file mode 100644 index 00000000..1803b20c --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnReasonDefinitionEdgeProjection.java @@ -0,0 +1,26 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class ReturnReasonDefinitionEdgeProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public ReturnReasonDefinitionEdgeProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("ReturnReasonDefinitionEdge")); + } + + public ReturnReasonDefinitionEdgeProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public ReturnReasonDefinitionProjection, ROOT> node( + ) { + ReturnReasonDefinitionProjection, ROOT> projection = new ReturnReasonDefinitionProjection<>(this, getRoot()); + getFields().put("node", projection); + return projection; + } + + public ReturnReasonDefinitionEdgeProjection cursor() { + getFields().put("cursor", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnReasonDefinitionFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnReasonDefinitionFragmentProjection.java new file mode 100644 index 00000000..fc255407 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnReasonDefinitionFragmentProjection.java @@ -0,0 +1,55 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; +import java.lang.Override; +import java.lang.String; + +public class ReturnReasonDefinitionFragmentProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + { + getFields().put("__typename", null); + } + + public ReturnReasonDefinitionFragmentProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("ReturnReasonDefinition")); + } + + public ReturnReasonDefinitionFragmentProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public ReturnReasonDefinitionFragmentProjection deleted() { + getFields().put("deleted", null); + return this; + } + + public ReturnReasonDefinitionFragmentProjection handle() { + getFields().put("handle", null); + return this; + } + + public ReturnReasonDefinitionFragmentProjection id() { + getFields().put("id", null); + return this; + } + + public ReturnReasonDefinitionFragmentProjection name() { + getFields().put("name", null); + return this; + } + + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + builder.append("... on ReturnReasonDefinition {"); + getFields().forEach((k, v) -> { + builder.append(" ").append(k); + if(v != null) { + builder.append(" ").append(v.toString()); + } + }); + builder.append("}"); + + return builder.toString(); + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnReasonDefinitionProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnReasonDefinitionProjection.java new file mode 100644 index 00000000..e38afda3 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnReasonDefinitionProjection.java @@ -0,0 +1,34 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class ReturnReasonDefinitionProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public ReturnReasonDefinitionProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("ReturnReasonDefinition")); + } + + public ReturnReasonDefinitionProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public ReturnReasonDefinitionProjection deleted() { + getFields().put("deleted", null); + return this; + } + + public ReturnReasonDefinitionProjection handle() { + getFields().put("handle", null); + return this; + } + + public ReturnReasonDefinitionProjection id() { + getFields().put("id", null); + return this; + } + + public ReturnReasonDefinitionProjection name() { + getFields().put("name", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnReasonDefinitionsGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnReasonDefinitionsGraphQLQuery.java new file mode 100644 index 00000000..ef15ab50 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnReasonDefinitionsGraphQLQuery.java @@ -0,0 +1,187 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import com.shopify.admin.types.ReturnReasonDefinitionSortKeys; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.Override; +import java.lang.String; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +/** + * Returns the full library of available return reason definitions. + * + * Use this query to retrieve the standardized return reasons available for creating returns. + * Filter by IDs or handles to get specific definitions. + * + * Only non-deleted reasons should be shown to customers when creating new returns. + * Deleted reasons have been replaced with better alternatives and are no longer recommended. + * However, they remain valid options and may still appear on existing returns. + */ +public class ReturnReasonDefinitionsGraphQLQuery extends GraphQLQuery { + public ReturnReasonDefinitionsGraphQLQuery(List ids, List handles, Integer first, + String after, Integer last, String before, Boolean reverse, + ReturnReasonDefinitionSortKeys sortKey, String query, String queryName, + Set fieldsSet) { + super("query", queryName); + if (ids != null || fieldsSet.contains("ids")) { + getInput().put("ids", ids); + }if (handles != null || fieldsSet.contains("handles")) { + getInput().put("handles", handles); + }if (first != null || fieldsSet.contains("first")) { + getInput().put("first", first); + }if (after != null || fieldsSet.contains("after")) { + getInput().put("after", after); + }if (last != null || fieldsSet.contains("last")) { + getInput().put("last", last); + }if (before != null || fieldsSet.contains("before")) { + getInput().put("before", before); + }if (reverse != null || fieldsSet.contains("reverse")) { + getInput().put("reverse", reverse); + }if (sortKey != null || fieldsSet.contains("sortKey")) { + getInput().put("sortKey", sortKey); + }if (query != null || fieldsSet.contains("query")) { + getInput().put("query", query); + } + } + + public ReturnReasonDefinitionsGraphQLQuery() { + super("query"); + } + + @Override + public String getOperationName() { + return "returnReasonDefinitions"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private List ids; + + private List handles; + + private Integer first; + + private String after; + + private Integer last; + + private String before; + + private Boolean reverse; + + private ReturnReasonDefinitionSortKeys sortKey; + + private String query; + + private String queryName; + + public ReturnReasonDefinitionsGraphQLQuery build() { + return new ReturnReasonDefinitionsGraphQLQuery(ids, handles, first, after, last, before, reverse, sortKey, query, queryName, fieldsSet); + + } + + /** + * A list of return reason definition IDs to filter by. + */ + public Builder ids(List ids) { + this.ids = ids; + this.fieldsSet.add("ids"); + return this; + } + + /** + * A list of return reason definition handles to filter by. + */ + public Builder handles(List handles) { + this.handles = handles; + this.fieldsSet.add("handles"); + return this; + } + + /** + * The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + */ + public Builder first(Integer first) { + this.first = first; + this.fieldsSet.add("first"); + return this; + } + + /** + * The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + */ + public Builder after(String after) { + this.after = after; + this.fieldsSet.add("after"); + return this; + } + + /** + * The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + */ + public Builder last(Integer last) { + this.last = last; + this.fieldsSet.add("last"); + return this; + } + + /** + * The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + */ + public Builder before(String before) { + this.before = before; + this.fieldsSet.add("before"); + return this; + } + + /** + * Reverse the order of the underlying list. + */ + public Builder reverse(Boolean reverse) { + this.reverse = reverse; + this.fieldsSet.add("reverse"); + return this; + } + + /** + * Sort the underlying list using a key. If your query is slow or returns an + * error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). + */ + public Builder sortKey(ReturnReasonDefinitionSortKeys sortKey) { + this.sortKey = sortKey; + this.fieldsSet.add("sortKey"); + return this; + } + + /** + * A filter made up of terms, connectives, modifiers, and comparators. + * | name | type | description | acceptable_values | default_value | example_use | + * | ---- | ---- | ---- | ---- | ---- | ---- | + * | default | string | Filter by a case-insensitive search of multiple fields + * in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | + * | deleted | boolean | Filter by whether the return reason has been removed from taxonomy. | + * | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | + * | name | string | Filter by name. | + * You can apply one or more filters to a query. Learn more about [Shopify API + * search syntax](https://shopify.dev/api/usage/search-syntax). + */ + public Builder query(String query) { + this.query = query; + this.fieldsSet.add("query"); + return this; + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnReasonDefinitionsProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnReasonDefinitionsProjectionRoot.java new file mode 100644 index 00000000..81d03e21 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnReasonDefinitionsProjectionRoot.java @@ -0,0 +1,35 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class ReturnReasonDefinitionsProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public ReturnReasonDefinitionsProjectionRoot() { + super(null, null, java.util.Optional.of("ReturnReasonDefinitionConnection")); + } + + public ReturnReasonDefinitionsProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public ReturnReasonDefinitionEdgeProjection, ReturnReasonDefinitionsProjectionRoot> edges( + ) { + ReturnReasonDefinitionEdgeProjection, ReturnReasonDefinitionsProjectionRoot> projection = new ReturnReasonDefinitionEdgeProjection<>(this, this); + getFields().put("edges", projection); + return projection; + } + + public ReturnReasonDefinitionProjection, ReturnReasonDefinitionsProjectionRoot> nodes( + ) { + ReturnReasonDefinitionProjection, ReturnReasonDefinitionsProjectionRoot> projection = new ReturnReasonDefinitionProjection<>(this, this); + getFields().put("nodes", projection); + return projection; + } + + public PageInfoProjection, ReturnReasonDefinitionsProjectionRoot> pageInfo( + ) { + PageInfoProjection, ReturnReasonDefinitionsProjectionRoot> projection = new PageInfoProjection<>(this, this); + getFields().put("pageInfo", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnRefundGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnRefundGraphQLQuery.java index b3a1a07e..ef2d775f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnRefundGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnRefundGraphQLQuery.java @@ -8,7 +8,9 @@ import java.util.Set; /** - * Refunds a return when its status is `OPEN` or `CLOSED` and associates it with the related return request. + * Creates a refund for items being returned when the return status is `OPEN` or + * `CLOSED`. This mutation processes the financial aspects of a return by + * refunding line items, shipping costs, and duties back to the customer. */ public class ReturnRefundGraphQLQuery extends GraphQLQuery { public ReturnRefundGraphQLQuery(ReturnRefundInput returnRefundInput, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnRequestGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnRequestGraphQLQuery.java index a8e5cc04..68a2aaa4 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnRequestGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnRequestGraphQLQuery.java @@ -8,9 +8,17 @@ import java.util.Set; /** - * A customer's return request that hasn't been approved or declined. - * This mutation sets the value of the `Return.status` field to `REQUESTED`. - * To create a return that has the `Return.status` field set to `OPEN`, use the `returnCreate` mutation. + * Creates a return request that requires merchant approval before processing. + * The return has its status set to `REQUESTED` and the merchant must approve or decline it. + * + * Use this mutation when customers initiate returns that need review. After + * creating a requested return, use [`returnApproveRequest`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/returnApproveRequest) + * to approve it or [`returnDeclineRequest`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/returnDeclineRequest) to decline it. + * + * For returns that should be immediately open for processing, use the [`returnCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/returnCreate) + * mutation instead. + * + * Learn more about [building return management workflows](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/build-return-management). */ public class ReturnRequestGraphQLQuery extends GraphQLQuery { public ReturnRequestGraphQLQuery(ReturnRequestInput input, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnableFulfillmentGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnableFulfillmentGraphQLQuery.java index cecd1b5e..07d18f6a 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnableFulfillmentGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReturnableFulfillmentGraphQLQuery.java @@ -7,7 +7,7 @@ import java.util.Set; /** - * Lookup a returnable fulfillment by ID. + * Returns a `ReturnableFulfillment` resource by ID. */ public class ReturnableFulfillmentGraphQLQuery extends GraphQLQuery { public ReturnableFulfillmentGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReverseFulfillmentOrderDispositionFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReverseFulfillmentOrderDispositionFragmentProjection.java index 27e5151e..4b5916ce 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReverseFulfillmentOrderDispositionFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReverseFulfillmentOrderDispositionFragmentProjection.java @@ -32,6 +32,11 @@ public ReverseFulfillmentOrderDispositionTypeProjection createdAt() { + getFields().put("createdAt", null); + return this; + } + public ReverseFulfillmentOrderDispositionFragmentProjection id() { getFields().put("id", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReverseFulfillmentOrderDispositionProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReverseFulfillmentOrderDispositionProjection.java index 523fed29..b72d3e7d 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReverseFulfillmentOrderDispositionProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ReverseFulfillmentOrderDispositionProjection.java @@ -26,6 +26,11 @@ public ReverseFulfillmentOrderDispositionTypeProjection createdAt() { + getFields().put("createdAt", null); + return this; + } + public ReverseFulfillmentOrderDispositionProjection id() { getFields().put("id", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ScriptTagCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ScriptTagCreateGraphQLQuery.java index fc1f2eee..5cc5a008 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ScriptTagCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ScriptTagCreateGraphQLQuery.java @@ -9,11 +9,10 @@ /** *
<h4>Theme app extensions</h4> - *

Your app might not pass App Store review if it uses script tags instead of - * theme app extensions. All new apps, and apps that integrate with Online Store - * 2.0 themes, should use theme app extensions, such as app blocks or app embed - * blocks. Script tags are an alternative you can use with only vintage themes. - * If your app integrates with a Shopify theme and you plan to submit it to + * the Shopify App Store, you must use theme app extensions instead of Script + * tags. Script tags can only be used with vintage themes. Learn more.

* *
<h4>Script tag deprecation</h4> diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ScriptTagDeleteGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ScriptTagDeleteGraphQLQuery.java index 0e2d5612..4db552b7 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ScriptTagDeleteGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ScriptTagDeleteGraphQLQuery.java @@ -8,11 +8,10 @@ /** *
<h4>Theme app extensions</h4> - *

Your app might not pass App Store review if it uses script tags instead of - * theme app extensions. All new apps, and apps that integrate with Online Store - * 2.0 themes, should use theme app extensions, such as app blocks or app embed - * blocks. Script tags are an alternative you can use with only vintage themes. - * If your app integrates with a Shopify theme and you plan to submit it to + * the Shopify App Store, you must use theme app extensions instead of Script + * tags. Script tags can only be used with vintage themes. Learn more.

* *
<h4>Script tag deprecation</h4> diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ScriptTagGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ScriptTagGraphQLQuery.java index cffd28cf..27f23778 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ScriptTagGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ScriptTagGraphQLQuery.java @@ -8,11 +8,10 @@ /** *
<h4>Theme app extensions</h4> - *

Your app might not pass App Store review if it uses script tags instead of - * theme app extensions. All new apps, and apps that integrate with Online Store - * 2.0 themes, should use theme app extensions, such as app blocks or app embed - * blocks. Script tags are an alternative you can use with only vintage themes. - * If your app integrates with a Shopify theme and you plan to submit it to + * the Shopify App Store, you must use theme app extensions instead of Script + * tags. Script tags can only be used with vintage themes. Learn more.

* *
<h4>Script tag deprecation</h4> @@ -22,7 +21,7 @@ * work alongside Checkout Extensibility until August 28, 2025.

* * - * Lookup a script tag resource by ID. + * Returns a `ScriptTag` resource by ID. */ public class ScriptTagGraphQLQuery extends GraphQLQuery { public ScriptTagGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ScriptTagUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ScriptTagUpdateGraphQLQuery.java index d23bd5bb..761cafb1 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ScriptTagUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ScriptTagUpdateGraphQLQuery.java @@ -9,11 +9,10 @@ /** *
<h4>Theme app extensions</h4> - *

Your app might not pass App Store review if it uses script tags instead of - * theme app extensions. All new apps, and apps that integrate with Online Store - * 2.0 themes, should use theme app extensions, such as app blocks or app embed - * blocks. Script tags are an alternative you can use with only vintage themes. - * If your app integrates with a Shopify theme and you plan to submit it to + * the Shopify App Store, you must use theme app extensions instead of Script + * tags. Script tags can only be used with vintage themes. Learn more.

* *
<h4>Script tag deprecation</h4> diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ScriptTagsGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ScriptTagsGraphQLQuery.java index d42400d1..5984e2f8 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ScriptTagsGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ScriptTagsGraphQLQuery.java @@ -10,11 +10,10 @@ /** *
<h4>Theme app extensions</h4> - *

Your app might not pass App Store review if it uses script tags instead of - * theme app extensions. All new apps, and apps that integrate with Online Store - * 2.0 themes, should use theme app extensions, such as app blocks or app embed - * blocks. Script tags are an alternative you can use with only vintage themes. - * If your app integrates with a Shopify theme and you plan to submit it to + * the Shopify App Store, you must use theme app extensions instead of Script + * tags. Script tags can only be used with vintage themes. Learn more.

* *
<h4>Script tag deprecation</h4> diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SegmentEventFilterParameterProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SegmentEventFilterParameterProjection.java index 0a010546..2c54a591 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SegmentEventFilterParameterProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SegmentEventFilterParameterProjection.java @@ -27,6 +27,16 @@ public SegmentEventFilterParameterProjection localizedName() { return this; } + public SegmentEventFilterParameterProjection maxRange() { + getFields().put("maxRange", null); + return this; + } + + public SegmentEventFilterParameterProjection minRange() { + getFields().put("minRange", null); + return this; + } + public SegmentEventFilterParameterProjection optional() { getFields().put("optional", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SegmentFloatFilterFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SegmentFloatFilterFragmentProjection.java index 688865f4..68d198e8 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SegmentFloatFilterFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SegmentFloatFilterFragmentProjection.java @@ -23,6 +23,16 @@ public SegmentFloatFilterFragmentProjection localizedName() { return this; } + public SegmentFloatFilterFragmentProjection maxRange() { + getFields().put("maxRange", null); + return this; + } + + public SegmentFloatFilterFragmentProjection minRange() { + getFields().put("minRange", null); + return this; + } + public SegmentFloatFilterFragmentProjection multiValue() { getFields().put("multiValue", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SegmentGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SegmentGraphQLQuery.java index 2ddf229c..fbce5189 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SegmentGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SegmentGraphQLQuery.java @@ -7,7 +7,15 @@ import java.util.Set; /** - * The Customer Segment. + * Retrieves a customer + * [`Segment`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Segment) + * by ID. Segments are dynamic groups of customers that meet specific criteria + * defined through [ShopifyQL queries](https://shopify.dev/docs/api/shopifyql/segment-query-language-reference). + * + * Use segments for targeted marketing campaigns, analyzing customer behavior, or + * creating personalized experiences. Each segment includes its name, creation + * date, and the query that defines which [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer) + * objects belong to it. */ public class SegmentGraphQLQuery extends GraphQLQuery { public SegmentGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SegmentIntegerFilterFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SegmentIntegerFilterFragmentProjection.java index 61ed93de..34d9be35 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SegmentIntegerFilterFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SegmentIntegerFilterFragmentProjection.java @@ -23,6 +23,16 @@ public SegmentIntegerFilterFragmentProjection localizedName() { return this; } + public SegmentIntegerFilterFragmentProjection maxRange() { + getFields().put("maxRange", null); + return this; + } + + public SegmentIntegerFilterFragmentProjection minRange() { + getFields().put("minRange", null); + return this; + } + public SegmentIntegerFilterFragmentProjection multiValue() { getFields().put("multiValue", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SegmentsCountGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SegmentsCountGraphQLQuery.java index b6793da9..94b4632f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SegmentsCountGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SegmentsCountGraphQLQuery.java @@ -1,17 +1,21 @@ package com.shopify.admin.client; import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import java.lang.Integer; import java.lang.Override; import java.lang.String; import java.util.HashSet; import java.util.Set; /** - * The number of segments for a shop. + * The number of segments for a shop. Limited to a maximum of 10000 by default. */ public class SegmentsCountGraphQLQuery extends GraphQLQuery { - public SegmentsCountGraphQLQuery(String queryName) { + public SegmentsCountGraphQLQuery(Integer limit, String queryName, Set fieldsSet) { super("query", queryName); + if (limit != null || fieldsSet.contains("limit")) { + getInput().put("limit", limit); + } } public SegmentsCountGraphQLQuery() { @@ -30,10 +34,22 @@ public static Builder newRequest() { public static class Builder { private Set fieldsSet = new HashSet<>(); + private Integer limit; + private String queryName; public SegmentsCountGraphQLQuery build() { - return new SegmentsCountGraphQLQuery(queryName); + return new SegmentsCountGraphQLQuery(limit, queryName, fieldsSet); + + } + + /** + * The upper bound on count value before returning a result. Use `null` to have no limit. + */ + public Builder limit(Integer limit) { + this.limit = limit; + this.fieldsSet.add("limit"); + return this; } public Builder queryName(String queryName) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SegmentsGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SegmentsGraphQLQuery.java index a654b972..723d1d08 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SegmentsGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SegmentsGraphQLQuery.java @@ -10,7 +10,17 @@ import java.util.Set; /** - * A list of a shop's segments. + * Returns a paginated list of + * [`Segment`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Segment) + * objects for the shop. Segments are dynamic groups of customers that meet + * specific criteria defined through [ShopifyQL queries](https://shopify.dev/docs/api/shopifyql/segment-query-language-reference). + * You can filter segments by search query and sort them by creation date or + * other criteria. + * + * The query supports standard + * [pagination](https://shopify.dev/docs/api/usage/pagination-graphql) arguments and returns a [`SegmentConnection`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SegmentConnection) + * containing segment details including names, creation dates, and the query + * definitions that determine segment membership. */ public class SegmentsGraphQLQuery extends GraphQLQuery { public SegmentsGraphQLQuery(Integer first, String after, Integer last, String before, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SellingPlanGroupCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SellingPlanGroupCreateGraphQLQuery.java index ce3eee4c..d7b90f3f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SellingPlanGroupCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SellingPlanGroupCreateGraphQLQuery.java @@ -9,7 +9,16 @@ import java.util.Set; /** - * Creates a Selling Plan Group. + * Creates a selling plan group that defines how products can be sold and + * purchased. A selling plan group represents a selling method such as "Subscribe + * and save", "Pre-order", or "Try before you buy" and contains one or more + * selling plans with specific billing, delivery, and pricing policies. + * + * Use the [`resources`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/sellingPlanGroupCreate#arguments-resources) argument to associate products or product variants with the group during + * creation. You can also add products later using [`sellingPlanGroupAddProducts`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/sellingPlanGroupAddProducts) or [`sellingPlanGroupAddProductVariants`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/sellingPlanGroupAddProductVariants). + * + * Learn more about [building selling plan groups](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/selling-plans/build-a-selling-plan#step-1-create-a-selling-plan-group) + * or explore [examples of creating TBYB and other selling plan groups](https://shopify.dev/docs/api/admin-graphql/latest/mutations/sellingPlanGroupCreate?example=create-a-tbyb-selling-plan-group). */ public class SellingPlanGroupCreateGraphQLQuery extends GraphQLQuery { public SellingPlanGroupCreateGraphQLQuery(SellingPlanGroupInput input, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SellingPlanGroupGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SellingPlanGroupGraphQLQuery.java index 2686da04..ab076a79 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SellingPlanGroupGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SellingPlanGroupGraphQLQuery.java @@ -7,7 +7,7 @@ import java.util.Set; /** - * Returns a Selling Plan Group resource by ID. + * Returns a `SellingPlanGroup` resource by ID. */ public class SellingPlanGroupGraphQLQuery extends GraphQLQuery { public SellingPlanGroupGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SellingPlanGroupsGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SellingPlanGroupsGraphQLQuery.java index 93aafbe6..75ec5f92 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SellingPlanGroupsGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SellingPlanGroupsGraphQLQuery.java @@ -10,7 +10,17 @@ import java.util.Set; /** - * List Selling Plan Groups. + * Retrieves a paginated list of [`SellingPlanGroup`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SellingPlanGroup) + * objects that belong to the app making the API call. Selling plan groups are + * selling methods like subscriptions, preorders, or other purchase options that + * merchants offer to customers. + * + * Each group has one or more [`SellingPlan`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SellingPlan) + * objects that define specific billing and delivery schedules, pricing + * adjustments, and policies. Use the [`query`](https://shopify.dev/docs/api/admin-graphql/latest/queries/sellingPlanGroups#arguments-query) + * argument to search by name or filter results by other criteria. + * + * Learn more about [building selling plans](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/selling-plans). */ public class SellingPlanGroupsGraphQLQuery extends GraphQLQuery { public SellingPlanGroupsGraphQLQuery(Integer first, String after, Integer last, String before, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopBillingPreferencesGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopBillingPreferencesGraphQLQuery.java index b0c2af5d..38e931e1 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopBillingPreferencesGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopBillingPreferencesGraphQLQuery.java @@ -7,7 +7,10 @@ import java.util.Set; /** - * The shop's billing preferences. + * The shop's billing preferences, including the currency for paying for apps and + * services. Use this to create [app charges in the merchant's local billing + * currency](https://shopify.dev/docs/apps/launch/billing#supported-currencies), + * helping them budget their app spend without exposure to exchange rate fluctuations. */ public class ShopBillingPreferencesGraphQLQuery extends GraphQLQuery { public ShopBillingPreferencesGraphQLQuery(String queryName) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopFragmentProjection.java index 8fd8e8f0..55e3c6bc 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopFragmentProjection.java @@ -3,10 +3,11 @@ import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; import com.shopify.admin.types.CollectionSortKeys; import com.shopify.admin.types.CustomerSortKeys; -import com.shopify.admin.types.DraftOrderSortKeys; import com.shopify.admin.types.FulfillmentOrderAssignmentStatus; import com.shopify.admin.types.FulfillmentOrderSortKeys; import com.shopify.admin.types.LocationSortKeys; +import com.shopify.admin.types.MetafieldDefinitionPinnedStatus; +import com.shopify.admin.types.MetafieldDefinitionSortKeys; import com.shopify.admin.types.OrderSortKeys; import com.shopify.admin.types.ProductImageSortKeys; import com.shopify.admin.types.ProductSortKeys; @@ -311,35 +312,6 @@ public StringConnectionProjection, ROOT> dr return projection; } - public DraftOrderConnectionProjection, ROOT> draftOrders() { - DraftOrderConnectionProjection, ROOT> projection = new DraftOrderConnectionProjection<>(this, getRoot()); - getFields().put("draftOrders", projection); - return projection; - } - - public DraftOrderConnectionProjection, ROOT> draftOrders( - Integer first, String after, Integer last, String before, Boolean reverse, - DraftOrderSortKeys sortKey, String query) { - DraftOrderConnectionProjection, ROOT> projection = new DraftOrderConnectionProjection<>(this, getRoot()); - getFields().put("draftOrders", projection); - getInputArguments().computeIfAbsent("draftOrders", k -> new ArrayList<>()); - InputArgument firstArg = new InputArgument("first", first); - getInputArguments().get("draftOrders").add(firstArg); - InputArgument afterArg = new InputArgument("after", after); - getInputArguments().get("draftOrders").add(afterArg); - InputArgument lastArg = new InputArgument("last", last); - getInputArguments().get("draftOrders").add(lastArg); - InputArgument beforeArg = new InputArgument("before", before); - getInputArguments().get("draftOrders").add(beforeArg); - InputArgument reverseArg = new InputArgument("reverse", reverse); - getInputArguments().get("draftOrders").add(reverseArg); - InputArgument sortKeyArg = new InputArgument("sortKey", sortKey); - getInputArguments().get("draftOrders").add(sortKeyArg); - InputArgument queryArg = new InputArgument("query", query); - getInputArguments().get("draftOrders").add(queryArg); - return projection; - } - public CurrencyCodeProjection, ROOT> enabledPresentmentCurrencies( ) { CurrencyCodeProjection, ROOT> projection = new CurrencyCodeProjection<>(this, getRoot()); @@ -490,6 +462,41 @@ public MetafieldProjection, ROOT> metafield return projection; } + public MetafieldDefinitionConnectionProjection, ROOT> metafieldDefinitions( + ) { + MetafieldDefinitionConnectionProjection, ROOT> projection = new MetafieldDefinitionConnectionProjection<>(this, getRoot()); + getFields().put("metafieldDefinitions", projection); + return projection; + } + + public MetafieldDefinitionConnectionProjection, ROOT> metafieldDefinitions( + String namespace, MetafieldDefinitionPinnedStatus pinnedStatus, Integer first, String after, + Integer last, String before, Boolean reverse, MetafieldDefinitionSortKeys sortKey, + String query) { + MetafieldDefinitionConnectionProjection, ROOT> projection = new MetafieldDefinitionConnectionProjection<>(this, getRoot()); + getFields().put("metafieldDefinitions", projection); + getInputArguments().computeIfAbsent("metafieldDefinitions", k -> new ArrayList<>()); + InputArgument namespaceArg = new InputArgument("namespace", namespace); + getInputArguments().get("metafieldDefinitions").add(namespaceArg); + InputArgument pinnedStatusArg = new InputArgument("pinnedStatus", pinnedStatus); + getInputArguments().get("metafieldDefinitions").add(pinnedStatusArg); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("metafieldDefinitions").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("metafieldDefinitions").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("metafieldDefinitions").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("metafieldDefinitions").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("metafieldDefinitions").add(reverseArg); + InputArgument sortKeyArg = new InputArgument("sortKey", sortKey); + getInputArguments().get("metafieldDefinitions").add(sortKeyArg); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("metafieldDefinitions").add(queryArg); + return projection; + } + public MetafieldConnectionProjection, ROOT> metafields() { MetafieldConnectionProjection, ROOT> projection = new MetafieldConnectionProjection<>(this, getRoot()); getFields().put("metafields", projection); @@ -766,6 +773,12 @@ public CountryCodeProjection, ROOT> shipsTo return projection; } + public ShopAddressProjection, ROOT> shopAddress() { + ShopAddressProjection, ROOT> projection = new ShopAddressProjection<>(this, getRoot()); + getFields().put("shopAddress", projection); + return projection; + } + public ShopPolicyProjection, ROOT> shopPolicies() { ShopPolicyProjection, ROOT> projection = new ShopPolicyProjection<>(this, getRoot()); getFields().put("shopPolicies", projection); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopLocalesGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopLocalesGraphQLQuery.java index 4e364218..ec6024db 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopLocalesGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopLocalesGraphQLQuery.java @@ -8,7 +8,13 @@ import java.util.Set; /** - * A list of locales available on a shop. + * Returns the locales enabled on a shop. Each locale represents a language for + * translations and determines how content displays to customers in different markets. + * + * Use the optional `published` argument to filter for only the locales that are + * visible to customers. The response includes the ISO locale code, whether it's + * the shop's primary locale, and which [`MarketWebPresence`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MarketWebPresence) + * objects use each locale. */ public class ShopLocalesGraphQLQuery extends GraphQLQuery { public ShopLocalesGraphQLQuery(Boolean published, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestContactFieldProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestContactFieldProjection.java new file mode 100644 index 00000000..8f13a107 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestContactFieldProjection.java @@ -0,0 +1,69 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class ShopPayPaymentRequestContactFieldProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public ShopPayPaymentRequestContactFieldProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("ShopPayPaymentRequestContactField")); + } + + public ShopPayPaymentRequestContactFieldProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public ShopPayPaymentRequestContactFieldProjection address1() { + getFields().put("address1", null); + return this; + } + + public ShopPayPaymentRequestContactFieldProjection address2() { + getFields().put("address2", null); + return this; + } + + public ShopPayPaymentRequestContactFieldProjection city() { + getFields().put("city", null); + return this; + } + + public ShopPayPaymentRequestContactFieldProjection companyName() { + getFields().put("companyName", null); + return this; + } + + public ShopPayPaymentRequestContactFieldProjection countryCode() { + getFields().put("countryCode", null); + return this; + } + + public ShopPayPaymentRequestContactFieldProjection email() { + getFields().put("email", null); + return this; + } + + public ShopPayPaymentRequestContactFieldProjection firstName() { + getFields().put("firstName", null); + return this; + } + + public ShopPayPaymentRequestContactFieldProjection lastName() { + getFields().put("lastName", null); + return this; + } + + public ShopPayPaymentRequestContactFieldProjection phone() { + getFields().put("phone", null); + return this; + } + + public ShopPayPaymentRequestContactFieldProjection postalCode() { + getFields().put("postalCode", null); + return this; + } + + public ShopPayPaymentRequestContactFieldProjection provinceCode() { + getFields().put("provinceCode", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestDeliveryMethodTypeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestDeliveryMethodTypeProjection.java new file mode 100644 index 00000000..8cb41a38 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestDeliveryMethodTypeProjection.java @@ -0,0 +1,14 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class ShopPayPaymentRequestDeliveryMethodTypeProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public ShopPayPaymentRequestDeliveryMethodTypeProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("ShopPayPaymentRequestDeliveryMethodType")); + } + + public ShopPayPaymentRequestDeliveryMethodTypeProjection __typename() { + getFields().put("__typename", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestDiscountProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestDiscountProjection.java new file mode 100644 index 00000000..5ce7c579 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestDiscountProjection.java @@ -0,0 +1,25 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class ShopPayPaymentRequestDiscountProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public ShopPayPaymentRequestDiscountProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("ShopPayPaymentRequestDiscount")); + } + + public ShopPayPaymentRequestDiscountProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public MoneyV2Projection, ROOT> amount() { + MoneyV2Projection, ROOT> projection = new MoneyV2Projection<>(this, getRoot()); + getFields().put("amount", projection); + return projection; + } + + public ShopPayPaymentRequestDiscountProjection label() { + getFields().put("label", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestImageProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestImageProjection.java new file mode 100644 index 00000000..dddf9dcb --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestImageProjection.java @@ -0,0 +1,24 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class ShopPayPaymentRequestImageProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public ShopPayPaymentRequestImageProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("ShopPayPaymentRequestImage")); + } + + public ShopPayPaymentRequestImageProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public ShopPayPaymentRequestImageProjection alt() { + getFields().put("alt", null); + return this; + } + + public ShopPayPaymentRequestImageProjection url() { + getFields().put("url", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestLineItemProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestLineItemProjection.java new file mode 100644 index 00000000..4d66306e --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestLineItemProjection.java @@ -0,0 +1,83 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class ShopPayPaymentRequestLineItemProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public ShopPayPaymentRequestLineItemProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("ShopPayPaymentRequestLineItem")); + } + + public ShopPayPaymentRequestLineItemProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public MoneyV2Projection, ROOT> finalItemPrice( + ) { + MoneyV2Projection, ROOT> projection = new MoneyV2Projection<>(this, getRoot()); + getFields().put("finalItemPrice", projection); + return projection; + } + + public MoneyV2Projection, ROOT> finalLinePrice( + ) { + MoneyV2Projection, ROOT> projection = new MoneyV2Projection<>(this, getRoot()); + getFields().put("finalLinePrice", projection); + return projection; + } + + public ShopPayPaymentRequestImageProjection, ROOT> image( + ) { + ShopPayPaymentRequestImageProjection, ROOT> projection = new ShopPayPaymentRequestImageProjection<>(this, getRoot()); + getFields().put("image", projection); + return projection; + } + + public ShopPayPaymentRequestDiscountProjection, ROOT> itemDiscounts( + ) { + ShopPayPaymentRequestDiscountProjection, ROOT> projection = new ShopPayPaymentRequestDiscountProjection<>(this, getRoot()); + getFields().put("itemDiscounts", projection); + return projection; + } + + public ShopPayPaymentRequestDiscountProjection, ROOT> lineDiscounts( + ) { + ShopPayPaymentRequestDiscountProjection, ROOT> projection = new ShopPayPaymentRequestDiscountProjection<>(this, getRoot()); + getFields().put("lineDiscounts", projection); + return projection; + } + + public MoneyV2Projection, ROOT> originalItemPrice( + ) { + MoneyV2Projection, ROOT> projection = new MoneyV2Projection<>(this, getRoot()); + getFields().put("originalItemPrice", projection); + return projection; + } + + public MoneyV2Projection, ROOT> originalLinePrice( + ) { + MoneyV2Projection, ROOT> projection = new MoneyV2Projection<>(this, getRoot()); + getFields().put("originalLinePrice", projection); + return projection; + } + + public ShopPayPaymentRequestLineItemProjection label() { + getFields().put("label", null); + return this; + } + + public ShopPayPaymentRequestLineItemProjection quantity() { + getFields().put("quantity", null); + return this; + } + + public ShopPayPaymentRequestLineItemProjection requiresShipping() { + getFields().put("requiresShipping", null); + return this; + } + + public ShopPayPaymentRequestLineItemProjection sku() { + getFields().put("sku", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestProjection.java new file mode 100644 index 00000000..6d106db0 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestProjection.java @@ -0,0 +1,81 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class ShopPayPaymentRequestProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public ShopPayPaymentRequestProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("ShopPayPaymentRequest")); + } + + public ShopPayPaymentRequestProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public ShopPayPaymentRequestDiscountProjection, ROOT> discounts( + ) { + ShopPayPaymentRequestDiscountProjection, ROOT> projection = new ShopPayPaymentRequestDiscountProjection<>(this, getRoot()); + getFields().put("discounts", projection); + return projection; + } + + public ShopPayPaymentRequestLineItemProjection, ROOT> lineItems( + ) { + ShopPayPaymentRequestLineItemProjection, ROOT> projection = new ShopPayPaymentRequestLineItemProjection<>(this, getRoot()); + getFields().put("lineItems", projection); + return projection; + } + + public CurrencyCodeProjection, ROOT> presentmentCurrency( + ) { + CurrencyCodeProjection, ROOT> projection = new CurrencyCodeProjection<>(this, getRoot()); + getFields().put("presentmentCurrency", projection); + return projection; + } + + public ShopPayPaymentRequestDeliveryMethodTypeProjection, ROOT> selectedDeliveryMethodType( + ) { + ShopPayPaymentRequestDeliveryMethodTypeProjection, ROOT> projection = new ShopPayPaymentRequestDeliveryMethodTypeProjection<>(this, getRoot()); + getFields().put("selectedDeliveryMethodType", projection); + return projection; + } + + public ShopPayPaymentRequestContactFieldProjection, ROOT> shippingAddress( + ) { + ShopPayPaymentRequestContactFieldProjection, ROOT> projection = new ShopPayPaymentRequestContactFieldProjection<>(this, getRoot()); + getFields().put("shippingAddress", projection); + return projection; + } + + public ShopPayPaymentRequestShippingLineProjection, ROOT> shippingLines( + ) { + ShopPayPaymentRequestShippingLineProjection, ROOT> projection = new ShopPayPaymentRequestShippingLineProjection<>(this, getRoot()); + getFields().put("shippingLines", projection); + return projection; + } + + public MoneyV2Projection, ROOT> subtotal() { + MoneyV2Projection, ROOT> projection = new MoneyV2Projection<>(this, getRoot()); + getFields().put("subtotal", projection); + return projection; + } + + public MoneyV2Projection, ROOT> total() { + MoneyV2Projection, ROOT> projection = new MoneyV2Projection<>(this, getRoot()); + getFields().put("total", projection); + return projection; + } + + public ShopPayPaymentRequestTotalShippingPriceProjection, ROOT> totalShippingPrice( + ) { + ShopPayPaymentRequestTotalShippingPriceProjection, ROOT> projection = new ShopPayPaymentRequestTotalShippingPriceProjection<>(this, getRoot()); + getFields().put("totalShippingPrice", projection); + return projection; + } + + public MoneyV2Projection, ROOT> totalTax() { + MoneyV2Projection, ROOT> projection = new MoneyV2Projection<>(this, getRoot()); + getFields().put("totalTax", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestReceiptConnectionProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestReceiptConnectionProjection.java new file mode 100644 index 00000000..dfc98f44 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestReceiptConnectionProjection.java @@ -0,0 +1,35 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class ShopPayPaymentRequestReceiptConnectionProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public ShopPayPaymentRequestReceiptConnectionProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("ShopPayPaymentRequestReceiptConnection")); + } + + public ShopPayPaymentRequestReceiptConnectionProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public ShopPayPaymentRequestReceiptEdgeProjection, ROOT> edges( + ) { + ShopPayPaymentRequestReceiptEdgeProjection, ROOT> projection = new ShopPayPaymentRequestReceiptEdgeProjection<>(this, getRoot()); + getFields().put("edges", projection); + return projection; + } + + public ShopPayPaymentRequestReceiptProjection, ROOT> nodes( + ) { + ShopPayPaymentRequestReceiptProjection, ROOT> projection = new ShopPayPaymentRequestReceiptProjection<>(this, getRoot()); + getFields().put("nodes", projection); + return projection; + } + + public PageInfoProjection, ROOT> pageInfo( + ) { + PageInfoProjection, ROOT> projection = new PageInfoProjection<>(this, getRoot()); + getFields().put("pageInfo", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestReceiptEdgeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestReceiptEdgeProjection.java new file mode 100644 index 00000000..6965fd68 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestReceiptEdgeProjection.java @@ -0,0 +1,26 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class ShopPayPaymentRequestReceiptEdgeProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public ShopPayPaymentRequestReceiptEdgeProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("ShopPayPaymentRequestReceiptEdge")); + } + + public ShopPayPaymentRequestReceiptEdgeProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public ShopPayPaymentRequestReceiptProjection, ROOT> node( + ) { + ShopPayPaymentRequestReceiptProjection, ROOT> projection = new ShopPayPaymentRequestReceiptProjection<>(this, getRoot()); + getFields().put("node", projection); + return projection; + } + + public ShopPayPaymentRequestReceiptEdgeProjection cursor() { + getFields().put("cursor", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestReceiptGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestReceiptGraphQLQuery.java new file mode 100644 index 00000000..07e6752c --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestReceiptGraphQLQuery.java @@ -0,0 +1,60 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import java.lang.Override; +import java.lang.String; +import java.util.HashSet; +import java.util.Set; + +/** + * Returns a Shop Pay payment request receipt. + */ +public class ShopPayPaymentRequestReceiptGraphQLQuery extends GraphQLQuery { + public ShopPayPaymentRequestReceiptGraphQLQuery(String token, String queryName, + Set fieldsSet) { + super("query", queryName); + if (token != null || fieldsSet.contains("token")) { + getInput().put("token", token); + } + } + + public ShopPayPaymentRequestReceiptGraphQLQuery() { + super("query"); + } + + @Override + public String getOperationName() { + return "shopPayPaymentRequestReceipt"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private String token; + + private String queryName; + + public ShopPayPaymentRequestReceiptGraphQLQuery build() { + return new ShopPayPaymentRequestReceiptGraphQLQuery(token, queryName, fieldsSet); + + } + + /** + * Unique identifier of the payment request receipt. + */ + public Builder token(String token) { + this.token = token; + this.fieldsSet.add("token"); + return this; + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestReceiptProcessingStatusErrorCodeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestReceiptProcessingStatusErrorCodeProjection.java new file mode 100644 index 00000000..687855f9 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestReceiptProcessingStatusErrorCodeProjection.java @@ -0,0 +1,15 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class ShopPayPaymentRequestReceiptProcessingStatusErrorCodeProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public ShopPayPaymentRequestReceiptProcessingStatusErrorCodeProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("ShopPayPaymentRequestReceiptProcessingStatusErrorCode")); + } + + public ShopPayPaymentRequestReceiptProcessingStatusErrorCodeProjection __typename( + ) { + getFields().put("__typename", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestReceiptProcessingStatusProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestReceiptProcessingStatusProjection.java new file mode 100644 index 00000000..6f408433 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestReceiptProcessingStatusProjection.java @@ -0,0 +1,33 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class ShopPayPaymentRequestReceiptProcessingStatusProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public ShopPayPaymentRequestReceiptProcessingStatusProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("ShopPayPaymentRequestReceiptProcessingStatus")); + } + + public ShopPayPaymentRequestReceiptProcessingStatusProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public ShopPayPaymentRequestReceiptProcessingStatusErrorCodeProjection, ROOT> errorCode( + ) { + ShopPayPaymentRequestReceiptProcessingStatusErrorCodeProjection, ROOT> projection = new ShopPayPaymentRequestReceiptProcessingStatusErrorCodeProjection<>(this, getRoot()); + getFields().put("errorCode", projection); + return projection; + } + + public ShopPayPaymentRequestReceiptProcessingStatusStateProjection, ROOT> state( + ) { + ShopPayPaymentRequestReceiptProcessingStatusStateProjection, ROOT> projection = new ShopPayPaymentRequestReceiptProcessingStatusStateProjection<>(this, getRoot()); + getFields().put("state", projection); + return projection; + } + + public ShopPayPaymentRequestReceiptProcessingStatusProjection message() { + getFields().put("message", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestReceiptProcessingStatusStateProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestReceiptProcessingStatusStateProjection.java new file mode 100644 index 00000000..1551ea39 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestReceiptProcessingStatusStateProjection.java @@ -0,0 +1,14 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class ShopPayPaymentRequestReceiptProcessingStatusStateProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public ShopPayPaymentRequestReceiptProcessingStatusStateProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("ShopPayPaymentRequestReceiptProcessingStatusState")); + } + + public ShopPayPaymentRequestReceiptProcessingStatusStateProjection __typename() { + getFields().put("__typename", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestReceiptProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestReceiptProjection.java new file mode 100644 index 00000000..86f90110 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestReceiptProjection.java @@ -0,0 +1,49 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class ShopPayPaymentRequestReceiptProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public ShopPayPaymentRequestReceiptProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("ShopPayPaymentRequestReceipt")); + } + + public ShopPayPaymentRequestReceiptProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public OrderProjection, ROOT> order() { + OrderProjection, ROOT> projection = new OrderProjection<>(this, getRoot()); + getFields().put("order", projection); + return projection; + } + + public ShopPayPaymentRequestProjection, ROOT> paymentRequest( + ) { + ShopPayPaymentRequestProjection, ROOT> projection = new ShopPayPaymentRequestProjection<>(this, getRoot()); + getFields().put("paymentRequest", projection); + return projection; + } + + public ShopPayPaymentRequestReceiptProcessingStatusProjection, ROOT> processingStatus( + ) { + ShopPayPaymentRequestReceiptProcessingStatusProjection, ROOT> projection = new ShopPayPaymentRequestReceiptProcessingStatusProjection<>(this, getRoot()); + getFields().put("processingStatus", projection); + return projection; + } + + public ShopPayPaymentRequestReceiptProjection createdAt() { + getFields().put("createdAt", null); + return this; + } + + public ShopPayPaymentRequestReceiptProjection sourceIdentifier() { + getFields().put("sourceIdentifier", null); + return this; + } + + public ShopPayPaymentRequestReceiptProjection token() { + getFields().put("token", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestReceiptProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestReceiptProjectionRoot.java new file mode 100644 index 00000000..77c6683e --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestReceiptProjectionRoot.java @@ -0,0 +1,50 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class ShopPayPaymentRequestReceiptProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public ShopPayPaymentRequestReceiptProjectionRoot() { + super(null, null, java.util.Optional.of("ShopPayPaymentRequestReceipt")); + } + + public ShopPayPaymentRequestReceiptProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public OrderProjection, ShopPayPaymentRequestReceiptProjectionRoot> order( + ) { + OrderProjection, ShopPayPaymentRequestReceiptProjectionRoot> projection = new OrderProjection<>(this, this); + getFields().put("order", projection); + return projection; + } + + public ShopPayPaymentRequestProjection, ShopPayPaymentRequestReceiptProjectionRoot> paymentRequest( + ) { + ShopPayPaymentRequestProjection, ShopPayPaymentRequestReceiptProjectionRoot> projection = new ShopPayPaymentRequestProjection<>(this, this); + getFields().put("paymentRequest", projection); + return projection; + } + + public ShopPayPaymentRequestReceiptProcessingStatusProjection, ShopPayPaymentRequestReceiptProjectionRoot> processingStatus( + ) { + ShopPayPaymentRequestReceiptProcessingStatusProjection, ShopPayPaymentRequestReceiptProjectionRoot> projection = new ShopPayPaymentRequestReceiptProcessingStatusProjection<>(this, this); + getFields().put("processingStatus", projection); + return projection; + } + + public ShopPayPaymentRequestReceiptProjectionRoot createdAt() { + getFields().put("createdAt", null); + return this; + } + + public ShopPayPaymentRequestReceiptProjectionRoot sourceIdentifier() { + getFields().put("sourceIdentifier", null); + return this; + } + + public ShopPayPaymentRequestReceiptProjectionRoot token() { + getFields().put("token", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestReceiptsGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestReceiptsGraphQLQuery.java new file mode 100644 index 00000000..81d48607 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestReceiptsGraphQLQuery.java @@ -0,0 +1,157 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import com.shopify.admin.types.ShopPayPaymentRequestReceiptsSortKeys; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.Override; +import java.lang.String; +import java.util.HashSet; +import java.util.Set; + +/** + * Returns a list of Shop Pay payment request receipts. + */ +public class ShopPayPaymentRequestReceiptsGraphQLQuery extends GraphQLQuery { + public ShopPayPaymentRequestReceiptsGraphQLQuery(Integer first, String after, Integer last, + String before, Boolean reverse, ShopPayPaymentRequestReceiptsSortKeys sortKey, String query, + String queryName, Set fieldsSet) { + super("query", queryName); + if (first != null || fieldsSet.contains("first")) { + getInput().put("first", first); + }if (after != null || fieldsSet.contains("after")) { + getInput().put("after", after); + }if (last != null || fieldsSet.contains("last")) { + getInput().put("last", last); + }if (before != null || fieldsSet.contains("before")) { + getInput().put("before", before); + }if (reverse != null || fieldsSet.contains("reverse")) { + getInput().put("reverse", reverse); + }if (sortKey != null || fieldsSet.contains("sortKey")) { + getInput().put("sortKey", sortKey); + }if (query != null || fieldsSet.contains("query")) { + getInput().put("query", query); + } + } + + public ShopPayPaymentRequestReceiptsGraphQLQuery() { + super("query"); + } + + @Override + public String getOperationName() { + return "shopPayPaymentRequestReceipts"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private Integer first; + + private String after; + + private Integer last; + + private String before; + + private Boolean reverse; + + private ShopPayPaymentRequestReceiptsSortKeys sortKey; + + private String query; + + private String queryName; + + public ShopPayPaymentRequestReceiptsGraphQLQuery build() { + return new ShopPayPaymentRequestReceiptsGraphQLQuery(first, after, last, before, reverse, sortKey, query, queryName, fieldsSet); + + } + + /** + * The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + */ + public Builder first(Integer first) { + this.first = first; + this.fieldsSet.add("first"); + return this; + } + + /** + * The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + */ + public Builder after(String after) { + this.after = after; + this.fieldsSet.add("after"); + return this; + } + + /** + * The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + */ + public Builder last(Integer last) { + this.last = last; + this.fieldsSet.add("last"); + return this; + } + + /** + * The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + */ + public Builder before(String before) { + this.before = before; + this.fieldsSet.add("before"); + return this; + } + + /** + * Reverse the order of the underlying list. + */ + public Builder reverse(Boolean reverse) { + this.reverse = reverse; + this.fieldsSet.add("reverse"); + return this; + } + + /** + * Sort the underlying list using a key. If your query is slow or returns an + * error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). + */ + public Builder sortKey(ShopPayPaymentRequestReceiptsSortKeys sortKey) { + this.sortKey = sortKey; + this.fieldsSet.add("sortKey"); + return this; + } + + /** + * A filter made up of terms, connectives, modifiers, and comparators. + * | name | type | description | acceptable_values | default_value | example_use | + * | ---- | ---- | ---- | ---- | ---- | ---- | + * | created_at | time | Filter by the creation date of the payment request + * receipt. | | | - `created_at:2021-01-01`
- + * `created_at:2021-01-01..2021-01-02`
- `created_at:<now`
- + * `created_at:<2024-01-01` | + * | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | + * | source_identifier | string | Filter by the source identifier of the + * payment request receipt. | | | - `source_identifier:1282823` | + * | state | string | Filter by the state of the payment request receipt. + * Options include: - COMPLETED - FAILED - PENDING - PROCESSING | | | - + * `state:COMPLETED` | + * You can apply one or more filters to a query. Learn more about [Shopify API + * search syntax](https://shopify.dev/api/usage/search-syntax). + */ + public Builder query(String query) { + this.query = query; + this.fieldsSet.add("query"); + return this; + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestReceiptsProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestReceiptsProjectionRoot.java new file mode 100644 index 00000000..a114fa7e --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestReceiptsProjectionRoot.java @@ -0,0 +1,35 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class ShopPayPaymentRequestReceiptsProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public ShopPayPaymentRequestReceiptsProjectionRoot() { + super(null, null, java.util.Optional.of("ShopPayPaymentRequestReceiptConnection")); + } + + public ShopPayPaymentRequestReceiptsProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public ShopPayPaymentRequestReceiptEdgeProjection, ShopPayPaymentRequestReceiptsProjectionRoot> edges( + ) { + ShopPayPaymentRequestReceiptEdgeProjection, ShopPayPaymentRequestReceiptsProjectionRoot> projection = new ShopPayPaymentRequestReceiptEdgeProjection<>(this, this); + getFields().put("edges", projection); + return projection; + } + + public ShopPayPaymentRequestReceiptProjection, ShopPayPaymentRequestReceiptsProjectionRoot> nodes( + ) { + ShopPayPaymentRequestReceiptProjection, ShopPayPaymentRequestReceiptsProjectionRoot> projection = new ShopPayPaymentRequestReceiptProjection<>(this, this); + getFields().put("nodes", projection); + return projection; + } + + public PageInfoProjection, ShopPayPaymentRequestReceiptsProjectionRoot> pageInfo( + ) { + PageInfoProjection, ShopPayPaymentRequestReceiptsProjectionRoot> projection = new PageInfoProjection<>(this, this); + getFields().put("pageInfo", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestShippingLineProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestShippingLineProjection.java new file mode 100644 index 00000000..1ad154d4 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestShippingLineProjection.java @@ -0,0 +1,31 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class ShopPayPaymentRequestShippingLineProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public ShopPayPaymentRequestShippingLineProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("ShopPayPaymentRequestShippingLine")); + } + + public ShopPayPaymentRequestShippingLineProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public MoneyV2Projection, ROOT> amount( + ) { + MoneyV2Projection, ROOT> projection = new MoneyV2Projection<>(this, getRoot()); + getFields().put("amount", projection); + return projection; + } + + public ShopPayPaymentRequestShippingLineProjection code() { + getFields().put("code", null); + return this; + } + + public ShopPayPaymentRequestShippingLineProjection label() { + getFields().put("label", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestTotalShippingPriceProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestTotalShippingPriceProjection.java new file mode 100644 index 00000000..8e14c8a4 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPayPaymentRequestTotalShippingPriceProjection.java @@ -0,0 +1,35 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class ShopPayPaymentRequestTotalShippingPriceProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public ShopPayPaymentRequestTotalShippingPriceProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("ShopPayPaymentRequestTotalShippingPrice")); + } + + public ShopPayPaymentRequestTotalShippingPriceProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public ShopPayPaymentRequestDiscountProjection, ROOT> discounts( + ) { + ShopPayPaymentRequestDiscountProjection, ROOT> projection = new ShopPayPaymentRequestDiscountProjection<>(this, getRoot()); + getFields().put("discounts", projection); + return projection; + } + + public MoneyV2Projection, ROOT> finalTotal( + ) { + MoneyV2Projection, ROOT> projection = new MoneyV2Projection<>(this, getRoot()); + getFields().put("finalTotal", projection); + return projection; + } + + public MoneyV2Projection, ROOT> originalTotal( + ) { + MoneyV2Projection, ROOT> projection = new MoneyV2Projection<>(this, getRoot()); + getFields().put("originalTotal", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPlanProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPlanProjection.java index 8d7f1eb2..cbcf1713 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPlanProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopPlanProjection.java @@ -22,6 +22,11 @@ public ShopPlanProjection partnerDevelopment() { return this; } + public ShopPlanProjection publicDisplayName() { + getFields().put("publicDisplayName", null); + return this; + } + public ShopPlanProjection shopifyPlus() { getFields().put("shopifyPlus", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopProjection.java index cc703365..8ff8f9b5 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopProjection.java @@ -3,10 +3,11 @@ import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; import com.shopify.admin.types.CollectionSortKeys; import com.shopify.admin.types.CustomerSortKeys; -import com.shopify.admin.types.DraftOrderSortKeys; import com.shopify.admin.types.FulfillmentOrderAssignmentStatus; import com.shopify.admin.types.FulfillmentOrderSortKeys; import com.shopify.admin.types.LocationSortKeys; +import com.shopify.admin.types.MetafieldDefinitionPinnedStatus; +import com.shopify.admin.types.MetafieldDefinitionSortKeys; import com.shopify.admin.types.OrderSortKeys; import com.shopify.admin.types.ProductImageSortKeys; import com.shopify.admin.types.ProductSortKeys; @@ -300,35 +301,6 @@ public StringConnectionProjection, ROOT> draftOrder return projection; } - public DraftOrderConnectionProjection, ROOT> draftOrders() { - DraftOrderConnectionProjection, ROOT> projection = new DraftOrderConnectionProjection<>(this, getRoot()); - getFields().put("draftOrders", projection); - return projection; - } - - public DraftOrderConnectionProjection, ROOT> draftOrders( - Integer first, String after, Integer last, String before, Boolean reverse, - DraftOrderSortKeys sortKey, String query) { - DraftOrderConnectionProjection, ROOT> projection = new DraftOrderConnectionProjection<>(this, getRoot()); - getFields().put("draftOrders", projection); - getInputArguments().computeIfAbsent("draftOrders", k -> new ArrayList<>()); - InputArgument firstArg = new InputArgument("first", first); - getInputArguments().get("draftOrders").add(firstArg); - InputArgument afterArg = new InputArgument("after", after); - getInputArguments().get("draftOrders").add(afterArg); - InputArgument lastArg = new InputArgument("last", last); - getInputArguments().get("draftOrders").add(lastArg); - InputArgument beforeArg = new InputArgument("before", before); - getInputArguments().get("draftOrders").add(beforeArg); - InputArgument reverseArg = new InputArgument("reverse", reverse); - getInputArguments().get("draftOrders").add(reverseArg); - InputArgument sortKeyArg = new InputArgument("sortKey", sortKey); - getInputArguments().get("draftOrders").add(sortKeyArg); - InputArgument queryArg = new InputArgument("query", query); - getInputArguments().get("draftOrders").add(queryArg); - return projection; - } - public CurrencyCodeProjection, ROOT> enabledPresentmentCurrencies() { CurrencyCodeProjection, ROOT> projection = new CurrencyCodeProjection<>(this, getRoot()); getFields().put("enabledPresentmentCurrencies", projection); @@ -476,6 +448,41 @@ public MetafieldProjection, ROOT> metafield(String return projection; } + public MetafieldDefinitionConnectionProjection, ROOT> metafieldDefinitions( + ) { + MetafieldDefinitionConnectionProjection, ROOT> projection = new MetafieldDefinitionConnectionProjection<>(this, getRoot()); + getFields().put("metafieldDefinitions", projection); + return projection; + } + + public MetafieldDefinitionConnectionProjection, ROOT> metafieldDefinitions( + String namespace, MetafieldDefinitionPinnedStatus pinnedStatus, Integer first, String after, + Integer last, String before, Boolean reverse, MetafieldDefinitionSortKeys sortKey, + String query) { + MetafieldDefinitionConnectionProjection, ROOT> projection = new MetafieldDefinitionConnectionProjection<>(this, getRoot()); + getFields().put("metafieldDefinitions", projection); + getInputArguments().computeIfAbsent("metafieldDefinitions", k -> new ArrayList<>()); + InputArgument namespaceArg = new InputArgument("namespace", namespace); + getInputArguments().get("metafieldDefinitions").add(namespaceArg); + InputArgument pinnedStatusArg = new InputArgument("pinnedStatus", pinnedStatus); + getInputArguments().get("metafieldDefinitions").add(pinnedStatusArg); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("metafieldDefinitions").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("metafieldDefinitions").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("metafieldDefinitions").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("metafieldDefinitions").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("metafieldDefinitions").add(reverseArg); + InputArgument sortKeyArg = new InputArgument("sortKey", sortKey); + getInputArguments().get("metafieldDefinitions").add(sortKeyArg); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("metafieldDefinitions").add(queryArg); + return projection; + } + public MetafieldConnectionProjection, ROOT> metafields() { MetafieldConnectionProjection, ROOT> projection = new MetafieldConnectionProjection<>(this, getRoot()); getFields().put("metafields", projection); @@ -747,6 +754,12 @@ public CountryCodeProjection, ROOT> shipsToCountrie return projection; } + public ShopAddressProjection, ROOT> shopAddress() { + ShopAddressProjection, ROOT> projection = new ShopAddressProjection<>(this, getRoot()); + getFields().put("shopAddress", projection); + return projection; + } + public ShopPolicyProjection, ROOT> shopPolicies() { ShopPolicyProjection, ROOT> projection = new ShopPolicyProjection<>(this, getRoot()); getFields().put("shopPolicies", projection); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopProjectionRoot.java index ccd541e2..694d9297 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopProjectionRoot.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopProjectionRoot.java @@ -3,10 +3,11 @@ import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; import com.shopify.admin.types.CollectionSortKeys; import com.shopify.admin.types.CustomerSortKeys; -import com.shopify.admin.types.DraftOrderSortKeys; import com.shopify.admin.types.FulfillmentOrderAssignmentStatus; import com.shopify.admin.types.FulfillmentOrderSortKeys; import com.shopify.admin.types.LocationSortKeys; +import com.shopify.admin.types.MetafieldDefinitionPinnedStatus; +import com.shopify.admin.types.MetafieldDefinitionSortKeys; import com.shopify.admin.types.OrderSortKeys; import com.shopify.admin.types.ProductImageSortKeys; import com.shopify.admin.types.ProductSortKeys; @@ -317,36 +318,6 @@ public StringConnectionProjection, ShopProjecti return projection; } - public DraftOrderConnectionProjection, ShopProjectionRoot> draftOrders( - ) { - DraftOrderConnectionProjection, ShopProjectionRoot> projection = new DraftOrderConnectionProjection<>(this, this); - getFields().put("draftOrders", projection); - return projection; - } - - public DraftOrderConnectionProjection, ShopProjectionRoot> draftOrders( - Integer first, String after, Integer last, String before, Boolean reverse, - DraftOrderSortKeys sortKey, String query) { - DraftOrderConnectionProjection, ShopProjectionRoot> projection = new DraftOrderConnectionProjection<>(this, this); - getFields().put("draftOrders", projection); - getInputArguments().computeIfAbsent("draftOrders", k -> new ArrayList<>()); - InputArgument firstArg = new InputArgument("first", first); - getInputArguments().get("draftOrders").add(firstArg); - InputArgument afterArg = new InputArgument("after", after); - getInputArguments().get("draftOrders").add(afterArg); - InputArgument lastArg = new InputArgument("last", last); - getInputArguments().get("draftOrders").add(lastArg); - InputArgument beforeArg = new InputArgument("before", before); - getInputArguments().get("draftOrders").add(beforeArg); - InputArgument reverseArg = new InputArgument("reverse", reverse); - getInputArguments().get("draftOrders").add(reverseArg); - InputArgument sortKeyArg = new InputArgument("sortKey", sortKey); - getInputArguments().get("draftOrders").add(sortKeyArg); - InputArgument queryArg = new InputArgument("query", query); - getInputArguments().get("draftOrders").add(queryArg); - return projection; - } - public CurrencyCodeProjection, ShopProjectionRoot> enabledPresentmentCurrencies( ) { CurrencyCodeProjection, ShopProjectionRoot> projection = new CurrencyCodeProjection<>(this, this); @@ -501,6 +472,41 @@ public MetafieldProjection, ShopProjectionRoot< return projection; } + public MetafieldDefinitionConnectionProjection, ShopProjectionRoot> metafieldDefinitions( + ) { + MetafieldDefinitionConnectionProjection, ShopProjectionRoot> projection = new MetafieldDefinitionConnectionProjection<>(this, this); + getFields().put("metafieldDefinitions", projection); + return projection; + } + + public MetafieldDefinitionConnectionProjection, ShopProjectionRoot> metafieldDefinitions( + String namespace, MetafieldDefinitionPinnedStatus pinnedStatus, Integer first, String after, + Integer last, String before, Boolean reverse, MetafieldDefinitionSortKeys sortKey, + String query) { + MetafieldDefinitionConnectionProjection, ShopProjectionRoot> projection = new MetafieldDefinitionConnectionProjection<>(this, this); + getFields().put("metafieldDefinitions", projection); + getInputArguments().computeIfAbsent("metafieldDefinitions", k -> new ArrayList<>()); + InputArgument namespaceArg = new InputArgument("namespace", namespace); + getInputArguments().get("metafieldDefinitions").add(namespaceArg); + InputArgument pinnedStatusArg = new InputArgument("pinnedStatus", pinnedStatus); + getInputArguments().get("metafieldDefinitions").add(pinnedStatusArg); + InputArgument firstArg = new InputArgument("first", first); + getInputArguments().get("metafieldDefinitions").add(firstArg); + InputArgument afterArg = new InputArgument("after", after); + getInputArguments().get("metafieldDefinitions").add(afterArg); + InputArgument lastArg = new InputArgument("last", last); + getInputArguments().get("metafieldDefinitions").add(lastArg); + InputArgument beforeArg = new InputArgument("before", before); + getInputArguments().get("metafieldDefinitions").add(beforeArg); + InputArgument reverseArg = new InputArgument("reverse", reverse); + getInputArguments().get("metafieldDefinitions").add(reverseArg); + InputArgument sortKeyArg = new InputArgument("sortKey", sortKey); + getInputArguments().get("metafieldDefinitions").add(sortKeyArg); + InputArgument queryArg = new InputArgument("query", query); + getInputArguments().get("metafieldDefinitions").add(queryArg); + return projection; + } + public MetafieldConnectionProjection, ShopProjectionRoot> metafields( ) { MetafieldConnectionProjection, ShopProjectionRoot> projection = new MetafieldConnectionProjection<>(this, this); @@ -793,6 +799,13 @@ public CountryCodeProjection, ShopProjectionRoo return projection; } + public ShopAddressProjection, ShopProjectionRoot> shopAddress( + ) { + ShopAddressProjection, ShopProjectionRoot> projection = new ShopAddressProjection<>(this, this); + getFields().put("shopAddress", projection); + return projection; + } + public ShopPolicyProjection, ShopProjectionRoot> shopPolicies( ) { ShopPolicyProjection, ShopProjectionRoot> projection = new ShopPolicyProjection<>(this, this); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyFunctionProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyFunctionProjection.java index 3160ce6f..3602b263 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyFunctionProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyFunctionProjection.java @@ -44,6 +44,11 @@ public ShopifyFunctionProjection description() { return this; } + public ShopifyFunctionProjection handle() { + getFields().put("handle", null); + return this; + } + public ShopifyFunctionProjection id() { getFields().put("id", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyFunctionProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyFunctionProjectionRoot.java index 2a658034..340aac9f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyFunctionProjectionRoot.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyFunctionProjectionRoot.java @@ -46,6 +46,11 @@ public ShopifyFunctionProjectionRoot description() { return this; } + public ShopifyFunctionProjectionRoot handle() { + getFields().put("handle", null); + return this; + } + public ShopifyFunctionProjectionRoot id() { getFields().put("id", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyFunctionsGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyFunctionsGraphQLQuery.java index 9f17ee6d..340bd456 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyFunctionsGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyFunctionsGraphQLQuery.java @@ -9,7 +9,18 @@ import java.util.Set; /** - * Returns the Shopify Functions owned by the querying API client installed on the shop. + * Returns Shopify Functions owned by the querying API client installed on the + * shop. [Functions](https://shopify.dev/docs/apps/build/functions) enable you to customize + * Shopify's backend logic at specific points in the commerce loop, such as discounts, + * checkout validation, and fulfillment. + * + * You can filter the results by API type to find specific function implementations, + * or by whether they provide a merchant configuration interface in the Shopify Admin. + * + * The response includes details about each function's configuration, including its + * title, description, API version, and the input query used to provide data to the function logic. + * + * Learn more about [building functions](https://shopify.dev/docs/api/functions). */ public class ShopifyFunctionsGraphQLQuery extends GraphQLQuery { public ShopifyFunctionsGraphQLQuery(String apiType, Boolean useCreationUi, Integer first, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyPaymentsAccountGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyPaymentsAccountGraphQLQuery.java index 7748a67a..3497f155 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyPaymentsAccountGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyPaymentsAccountGraphQLQuery.java @@ -7,7 +7,14 @@ import java.util.Set; /** - * Shopify Payments account information, including balances and payouts. + * Returns the Shopify Payments account information for the shop. Includes + * current balances across all currencies, payout schedules, and bank account + * configurations. + * + * The account includes [`ShopifyPaymentsBalanceTransaction`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsBalanceTransaction) + * records showing charges, refunds, and adjustments that affect your balance. Also includes [`ShopifyPaymentsDispute`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsDispute) records and [`ShopifyPaymentsPayout`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsPayout) + * history between the account and connected [`ShopifyPaymentsBankAccount`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsBankAccount) + * configurations. */ public class ShopifyPaymentsAccountGraphQLQuery extends GraphQLQuery { public ShopifyPaymentsAccountGraphQLQuery(String queryName) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyPaymentsDisputeFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyPaymentsDisputeFragmentProjection.java index 670b5155..b842c772 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyPaymentsDisputeFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyPaymentsDisputeFragmentProjection.java @@ -24,6 +24,13 @@ public MoneyV2Projection, return projection; } + public ShopifyPaymentsDisputeEvidenceProjection, ROOT> disputeEvidence( + ) { + ShopifyPaymentsDisputeEvidenceProjection, ROOT> projection = new ShopifyPaymentsDisputeEvidenceProjection<>(this, getRoot()); + getFields().put("disputeEvidence", projection); + return projection; + } + public OrderProjection, ROOT> order() { OrderProjection, ROOT> projection = new OrderProjection<>(this, getRoot()); getFields().put("order", projection); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyPaymentsDisputeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyPaymentsDisputeProjection.java index 823e23e6..9461c7a5 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyPaymentsDisputeProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyPaymentsDisputeProjection.java @@ -18,6 +18,13 @@ public MoneyV2Projection, ROOT> a return projection; } + public ShopifyPaymentsDisputeEvidenceProjection, ROOT> disputeEvidence( + ) { + ShopifyPaymentsDisputeEvidenceProjection, ROOT> projection = new ShopifyPaymentsDisputeEvidenceProjection<>(this, getRoot()); + getFields().put("disputeEvidence", projection); + return projection; + } + public OrderProjection, ROOT> order() { OrderProjection, ROOT> projection = new OrderProjection<>(this, getRoot()); getFields().put("order", projection); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyPaymentsPayoutFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyPaymentsPayoutFragmentProjection.java index 3bf6c31a..ad5ecff5 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyPaymentsPayoutFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyPaymentsPayoutFragmentProjection.java @@ -65,6 +65,11 @@ public ShopifyPaymentsPayoutTransactionTypeProjection externalTraceId() { + getFields().put("externalTraceId", null); + return this; + } + public ShopifyPaymentsPayoutFragmentProjection id() { getFields().put("id", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyPaymentsPayoutProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyPaymentsPayoutProjection.java index 027754ca..f31b4bc0 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyPaymentsPayoutProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyPaymentsPayoutProjection.java @@ -59,6 +59,11 @@ public ShopifyPaymentsPayoutTransactionTypeProjection externalTraceId() { + getFields().put("externalTraceId", null); + return this; + } + public ShopifyPaymentsPayoutProjection id() { getFields().put("id", null); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyPaymentsPayoutSummaryProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyPaymentsPayoutSummaryProjection.java index 8c20f8be..bce50587 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyPaymentsPayoutSummaryProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyPaymentsPayoutSummaryProjection.java @@ -95,4 +95,11 @@ public MoneyV2Projection, R getFields().put("retriedPayoutsGross", projection); return projection; } + + public MoneyV2Projection, ROOT> usdcRebateCreditAmount( + ) { + MoneyV2Projection, ROOT> projection = new MoneyV2Projection<>(this, getRoot()); + getFields().put("usdcRebateCreditAmount", projection); + return projection; + } } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyPaymentsVerificationFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyPaymentsVerificationFragmentProjection.java deleted file mode 100644 index ab68552c..00000000 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyPaymentsVerificationFragmentProjection.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.shopify.admin.client; - -import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; -import java.lang.Override; -import java.lang.String; - -public class ShopifyPaymentsVerificationFragmentProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { - { - getFields().put("__typename", null); - } - - public ShopifyPaymentsVerificationFragmentProjection(PARENT parent, ROOT root) { - super(parent, root, java.util.Optional.of("ShopifyPaymentsVerification")); - } - - public ShopifyPaymentsVerificationFragmentProjection __typename() { - getFields().put("__typename", null); - return this; - } - - public ShopifyPaymentsVerificationStatusProjection, ROOT> status( - ) { - ShopifyPaymentsVerificationStatusProjection, ROOT> projection = new ShopifyPaymentsVerificationStatusProjection<>(this, getRoot()); - getFields().put("status", projection); - return projection; - } - - public ShopifyPaymentsVerificationSubjectProjection, ROOT> subject( - ) { - ShopifyPaymentsVerificationSubjectProjection, ROOT> projection = new ShopifyPaymentsVerificationSubjectProjection<>(this, getRoot()); - getFields().put("subject", projection); - return projection; - } - - public ShopifyPaymentsVerificationFragmentProjection id() { - getFields().put("id", null); - return this; - } - - @Override - public String toString() { - StringBuilder builder = new StringBuilder(); - builder.append("... on ShopifyPaymentsVerification {"); - getFields().forEach((k, v) -> { - builder.append(" ").append(k); - if(v != null) { - builder.append(" ").append(v.toString()); - } - }); - builder.append("}"); - - return builder.toString(); - } -} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyPaymentsVerificationSubjectProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyPaymentsVerificationSubjectProjection.java deleted file mode 100644 index 4ca56b6c..00000000 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyPaymentsVerificationSubjectProjection.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.shopify.admin.client; - -import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; - -public class ShopifyPaymentsVerificationSubjectProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { - public ShopifyPaymentsVerificationSubjectProjection(PARENT parent, ROOT root) { - super(parent, root, java.util.Optional.of("ShopifyPaymentsVerificationSubject")); - } - - public ShopifyPaymentsVerificationSubjectProjection __typename() { - getFields().put("__typename", null); - return this; - } - - public ShopifyPaymentsVerificationSubjectProjection familyName() { - getFields().put("familyName", null); - return this; - } - - public ShopifyPaymentsVerificationSubjectProjection givenName() { - getFields().put("givenName", null); - return this; - } -} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyqlQueryGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyqlQueryGraphQLQuery.java new file mode 100644 index 00000000..f354113b --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyqlQueryGraphQLQuery.java @@ -0,0 +1,72 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import java.lang.Override; +import java.lang.String; +import java.util.HashSet; +import java.util.Set; + +/** + * Executes a [ShopifyQL query](https://shopify.dev/docs/apps/build/shopifyql) to + * analyze store data and returns results in a tabular format. + * + * The response includes column metadata with names, data types, and display + * names, along with the actual data rows. If the query contains syntax errors, + * then the response provides parse error messages instead of table data. + * + * Read the [ShopifyQL reference + * documentation](https://shopify.dev/docs/api/shopifyql) for more information on + * how to write ShopifyQL queries. + */ +public class ShopifyqlQueryGraphQLQuery extends GraphQLQuery { + public ShopifyqlQueryGraphQLQuery(String query, String queryName, Set fieldsSet) { + super("query", queryName); + if (query != null || fieldsSet.contains("query")) { + getInput().put("query", query); + } + } + + public ShopifyqlQueryGraphQLQuery() { + super("query"); + } + + @Override + public String getOperationName() { + return "shopifyqlQuery"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private String query; + + private String queryName; + + public ShopifyqlQueryGraphQLQuery build() { + return new ShopifyqlQueryGraphQLQuery(query, queryName, fieldsSet); + + } + + /** + * A ShopifyQL query string following the [ShopifyQL + * syntax](https://shopify.dev/docs/api/shopifyql). Queries must include `FROM` + * to specify the data source (such as `sales`, `orders`, or `customers`) and + * `SHOW` to select metrics and dimensions. Example: `FROM sales SHOW + * total_sales TIMESERIES month SINCE -12m`. + */ + public Builder query(String query) { + this.query = query; + this.fieldsSet.add("query"); + return this; + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyqlQueryProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyqlQueryProjectionRoot.java new file mode 100644 index 00000000..8150ebf6 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyqlQueryProjectionRoot.java @@ -0,0 +1,26 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class ShopifyqlQueryProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public ShopifyqlQueryProjectionRoot() { + super(null, null, java.util.Optional.of("ShopifyqlQueryResponse")); + } + + public ShopifyqlQueryProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public ShopifyqlTableDataProjection, ShopifyqlQueryProjectionRoot> tableData( + ) { + ShopifyqlTableDataProjection, ShopifyqlQueryProjectionRoot> projection = new ShopifyqlTableDataProjection<>(this, this); + getFields().put("tableData", projection); + return projection; + } + + public ShopifyqlQueryProjectionRoot parseErrors() { + getFields().put("parseErrors", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyqlQueryResponseProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyqlQueryResponseProjection.java new file mode 100644 index 00000000..47912327 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyqlQueryResponseProjection.java @@ -0,0 +1,26 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class ShopifyqlQueryResponseProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public ShopifyqlQueryResponseProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("ShopifyqlQueryResponse")); + } + + public ShopifyqlQueryResponseProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public ShopifyqlTableDataProjection, ROOT> tableData( + ) { + ShopifyqlTableDataProjection, ROOT> projection = new ShopifyqlTableDataProjection<>(this, getRoot()); + getFields().put("tableData", projection); + return projection; + } + + public ShopifyqlQueryResponseProjection parseErrors() { + getFields().put("parseErrors", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyqlTableDataColumnProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyqlTableDataColumnProjection.java new file mode 100644 index 00000000..2e4a1d25 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyqlTableDataColumnProjection.java @@ -0,0 +1,38 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class ShopifyqlTableDataColumnProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public ShopifyqlTableDataColumnProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("ShopifyqlTableDataColumn")); + } + + public ShopifyqlTableDataColumnProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public ColumnDataTypeProjection, ROOT> dataType( + ) { + ColumnDataTypeProjection, ROOT> projection = new ColumnDataTypeProjection<>(this, getRoot()); + getFields().put("dataType", projection); + return projection; + } + + public ColumnDataTypeProjection, ROOT> subType( + ) { + ColumnDataTypeProjection, ROOT> projection = new ColumnDataTypeProjection<>(this, getRoot()); + getFields().put("subType", projection); + return projection; + } + + public ShopifyqlTableDataColumnProjection displayName() { + getFields().put("displayName", null); + return this; + } + + public ShopifyqlTableDataColumnProjection name() { + getFields().put("name", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyqlTableDataProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyqlTableDataProjection.java new file mode 100644 index 00000000..91fef749 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ShopifyqlTableDataProjection.java @@ -0,0 +1,26 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class ShopifyqlTableDataProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public ShopifyqlTableDataProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("ShopifyqlTableData")); + } + + public ShopifyqlTableDataProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public ShopifyqlTableDataColumnProjection, ROOT> columns( + ) { + ShopifyqlTableDataColumnProjection, ROOT> projection = new ShopifyqlTableDataColumnProjection<>(this, getRoot()); + getFields().put("columns", projection); + return projection; + } + + public ShopifyqlTableDataProjection rows() { + getFields().put("rows", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/StaffMemberGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/StaffMemberGraphQLQuery.java index 77e2f8d9..dba4903d 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/StaffMemberGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/StaffMemberGraphQLQuery.java @@ -7,7 +7,15 @@ import java.util.Set; /** - * The StaffMember resource, by ID. + * Retrieves a [staff + * member](https://shopify.dev/docs/api/admin-graphql/latest/objects/StaffMember) + * by ID. If no ID is provided, the query returns the staff member that's making + * the request. A staff member is a user who can access the Shopify admin to + * manage store operations. + * + * Provides staff member details such as email, name, and shop owner status. When + * querying the current user (with or without an ID), additional [private data](https://shopify.dev/docs/api/admin-graphql/latest/queries/staffMember#returns-StaffMember.fields.privateData) + * becomes available. */ public class StaffMemberGraphQLQuery extends GraphQLQuery { public StaffMemberGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/StaffMembersGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/StaffMembersGraphQLQuery.java index e0f613fc..d0332d4b 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/StaffMembersGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/StaffMembersGraphQLQuery.java @@ -10,7 +10,14 @@ import java.util.Set; /** - * The shop staff members. + * Returns a paginated list of [`StaffMember`](https://shopify.dev/docs/api/admin-graphql/latest/objects/StaffMember) + * objects for the shop. Staff members are users who can access the Shopify admin + * to manage store operations. + * + * Supports filtering by account type, email, and name, with an option to sort + * results. The query returns a [`StaffMemberConnection`](https://shopify.dev/docs/api/admin-graphql/latest/connections/StaffMemberConnection) + * for [cursor-based + * pagination](https://shopify.dev/docs/api/usage/pagination-graphql). */ public class StaffMembersGraphQLQuery extends GraphQLQuery { public StaffMembersGraphQLQuery(Integer first, String after, Integer last, String before, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/StagedUploadsCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/StagedUploadsCreateGraphQLQuery.java index 81682cb4..0b8c9053 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/StagedUploadsCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/StagedUploadsCreateGraphQLQuery.java @@ -9,12 +9,48 @@ import java.util.Set; /** - * Creates staged upload targets for each input. This is the first step in the upload process. - * The returned staged upload targets' URL and parameter fields can be used to send a request - * to upload the file described in the corresponding input. + * Creates staged upload targets for file uploads such as images, videos, and 3D models. * - * For more information on the upload process, refer to - * [Upload media to Shopify](https://shopify.dev/apps/online-store/media/products#step-1-upload-media-to-shopify). + * Use the `stagedUploadsCreate` mutation instead of direct file creation mutations when: + * + * - **Uploading large files**: Files over a few MB benefit from staged uploads for better reliability + * - **Uploading media files**: Videos, 3D models, and high-resolution images + * - **Bulk importing**: CSV files, product catalogs, or other bulk data + * - **Using external file sources**: When files are stored remotely and need to be transferred to Shopify + * + * The `stagedUploadsCreate` mutation is the first step in Shopify's secure two-step upload process: + * + * **Step 1: Create staged upload targets** (this mutation) + * - Generate secure, temporary upload URLs for your files. + * - Receive authentication parameters for the upload. + * + * **Step 2: Upload files and create assets** + * - Upload your files directly to the provided URLs using the authentication parameters. + * - Use the returned `resourceUrl` as the `originalSource` in subsequent mutations like `fileCreate`. + * + * This approach provides better performance for large files, handles network interruptions gracefully, + * and ensures secure file transfers to Shopify's storage infrastructure. + * + * > Note: + * > File size is required when uploading + * > [`VIDEO`](https://shopify.dev/docs/api/admin-graphql/latest/enums/StagedUploadTargetGenerateUploadResource#enums-VIDEO) or + * > [`MODEL_3D`](https://shopify.dev/docs/api/admin-graphql/latest/enums/StagedUploadTargetGenerateUploadResource#enums-MODEL_3D) + * > resources. + * + * After creating staged upload targets, complete the process by: + * + * 1. **Uploading files**: Send your files to the returned [`url`](https://shopify.dev/docs/api/admin-graphql/latest/objects/StagedMediaUploadTarget#field-StagedMediaUploadTarget.fields.url) + * using the provided + * [`parameters`](https://shopify.dev/docs/api/admin-graphql/latest/objects/StagedMediaUploadTarget#field-StagedMediaUploadTarget.fields.parameters) + * for authentication + * 2. **Creating file assets**: Use the [`resourceUrl`](https://shopify.dev/docs/api/admin-graphql/latest/objects/StagedMediaUploadTarget#field-StagedMediaUploadTarget.fields.resourceUrl) + * as the `originalSource` in mutations such as: + * - [`fileCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fileCreate): + * Creates file assets from staged uploads + * - [`productUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productUpdate): + * Updates products with new media from staged uploads + * + * Learn more about [uploading media to Shopify](https://shopify.dev/apps/online-store/media/products). */ public class StagedUploadsCreateGraphQLQuery extends GraphQLQuery { public StagedUploadsCreateGraphQLQuery(List input, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/StandardMetafieldDefinitionEnableGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/StandardMetafieldDefinitionEnableGraphQLQuery.java index b21792ef..ea8b689e 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/StandardMetafieldDefinitionEnableGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/StandardMetafieldDefinitionEnableGraphQLQuery.java @@ -4,6 +4,7 @@ import com.shopify.admin.types.MetafieldCapabilityCreateInput; import com.shopify.admin.types.MetafieldOwnerType; import com.shopify.admin.types.StandardMetafieldDefinitionAccessInput; +import java.lang.Boolean; import java.lang.Override; import java.lang.String; import java.util.HashSet; @@ -16,7 +17,7 @@ */ public class StandardMetafieldDefinitionEnableGraphQLQuery extends GraphQLQuery { public StandardMetafieldDefinitionEnableGraphQLQuery(MetafieldOwnerType ownerType, String id, - String namespace, String key, boolean pin, MetafieldCapabilityCreateInput capabilities, + String namespace, String key, Boolean pin, MetafieldCapabilityCreateInput capabilities, StandardMetafieldDefinitionAccessInput access, String queryName, Set fieldsSet) { super("mutation", queryName); if (ownerType != null || fieldsSet.contains("ownerType")) { @@ -27,7 +28,9 @@ public StandardMetafieldDefinitionEnableGraphQLQuery(MetafieldOwnerType ownerTyp getInput().put("namespace", namespace); }if (key != null || fieldsSet.contains("key")) { getInput().put("key", key); - }getInput().put("pin", pin); if (capabilities != null || fieldsSet.contains("capabilities")) { + }if (pin != null || fieldsSet.contains("pin")) { + getInput().put("pin", pin); + }if (capabilities != null || fieldsSet.contains("capabilities")) { getInput().put("capabilities", capabilities); }if (access != null || fieldsSet.contains("access")) { getInput().put("access", access); @@ -58,7 +61,7 @@ public static class Builder { private String key; - private boolean pin; + private Boolean pin; private MetafieldCapabilityCreateInput capabilities; @@ -110,7 +113,7 @@ public Builder key(String key) { /** * Whether to pin the metafield definition. */ - public Builder pin(boolean pin) { + public Builder pin(Boolean pin) { this.pin = pin; this.fieldsSet.add("pin"); return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/StandardMetafieldDefinitionTemplatesGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/StandardMetafieldDefinitionTemplatesGraphQLQuery.java index 7a202274..808bb4c8 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/StandardMetafieldDefinitionTemplatesGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/StandardMetafieldDefinitionTemplatesGraphQLQuery.java @@ -11,10 +11,14 @@ import java.util.Set; /** - * Standard metafield definitions are intended for specific, common use cases. - * Their namespace and keys reflect these use cases and are reserved. + * Retrieves preset metafield definition templates for common use cases. Each + * template provides a reserved namespace and key combination for specific + * purposes like product subtitles, care guides, or ISBN numbers. Use these + * templates to create standardized metafields across your store. Filter + * templates by constraint status or exclude those you've already activated. * - * Refer to all available [`Standard Metafield Definition Templates`](https://shopify.dev/api/admin-graphql/latest/objects/StandardMetafieldDefinitionTemplate). + * See the [list of standard metafield definitions](https://shopify.dev/docs/apps/build/custom-data/metafields/list-of-standard-definitions) + * for available templates. */ public class StandardMetafieldDefinitionTemplatesGraphQLQuery extends GraphQLQuery { public StandardMetafieldDefinitionTemplatesGraphQLQuery( diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/StoreCreditAccountCreditGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/StoreCreditAccountCreditGraphQLQuery.java index a6eecda5..eb4e71f2 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/StoreCreditAccountCreditGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/StoreCreditAccountCreditGraphQLQuery.java @@ -8,10 +8,16 @@ import java.util.Set; /** - * Creates a credit transaction that increases the store credit account balance by the given amount. - * This operation will create an account if one does not already exist. - * A store credit account owner can hold multiple accounts each with a different currency. - * Use the most appropriate currency for the given store credit account owner. + * Adds funds to a [`StoreCreditAccount`](https://shopify.dev/docs/api/admin-graphql/latest/objects/StoreCreditAccount) by creating a [`StoreCreditAccountCreditTransaction`](https://shopify.dev/docs/api/admin-graphql/latest/objects/StoreCreditAccountCreditTransaction). + * The mutation accepts either a store credit account ID, a [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer) ID, or a [`CompanyLocation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CompanyLocation) + * ID. When you provide a customer or company location ID, it automatically + * creates an account if one doesn't exist for the specified currency. + * + * Store credit accounts are currency-specific. A single owner can have multiple + * accounts, each holding a different currency. Use the most appropriate currency + * for the given store credit account owner. + * + * Credits can optionally include an expiration date. */ public class StoreCreditAccountCreditGraphQLQuery extends GraphQLQuery { public StoreCreditAccountCreditGraphQLQuery(String id, StoreCreditAccountCreditInput creditInput, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/StoreCreditAccountGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/StoreCreditAccountGraphQLQuery.java index e46f55db..695806da 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/StoreCreditAccountGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/StoreCreditAccountGraphQLQuery.java @@ -7,7 +7,8 @@ import java.util.Set; /** - * Returns a store credit account resource by ID. + * Retrieves a [`StoreCreditAccount`](https://shopify.dev/docs/api/admin-graphql/latest/objects/StoreCreditAccount) by ID. Store credit accounts hold monetary balances that account owners can + * use at checkout. The owner is either a [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer) or a [`CompanyLocation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CompanyLocation). */ public class StoreCreditAccountGraphQLQuery extends GraphQLQuery { public StoreCreditAccountGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/StorefrontAccessTokenCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/StorefrontAccessTokenCreateGraphQLQuery.java index d0bb8a33..92fe8e51 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/StorefrontAccessTokenCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/StorefrontAccessTokenCreateGraphQLQuery.java @@ -8,11 +8,16 @@ import java.util.Set; /** - * Creates a storefront access token for use with the [Storefront API](https://shopify.dev/docs/api/storefront). + * Creates a storefront access token that delegates unauthenticated access scopes + * to clients using the [Storefront + * API](https://shopify.dev/docs/api/storefront). The token provides public + * access to storefront resources without requiring customer authentication. * - * An app can have a maximum of 100 active storefront access tokens for each shop. + * Each shop can have up to 100 active [`StorefrontAccessToken`](https://shopify.dev/docs/api/admin-graphql/latest/objects/StorefrontAccessToken) + * objects. Headless storefronts, mobile apps, and other client applications + * typically use these tokens to access public storefront data. * - * [Get started with the Storefront API](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/getting-started). + * Learn more about [building with the Storefront API](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/getting-started). */ public class StorefrontAccessTokenCreateGraphQLQuery extends GraphQLQuery { public StorefrontAccessTokenCreateGraphQLQuery(StorefrontAccessTokenInput input, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SubscriptionBillingAttemptCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SubscriptionBillingAttemptCreateGraphQLQuery.java index 856dd243..0695058b 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SubscriptionBillingAttemptCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SubscriptionBillingAttemptCreateGraphQLQuery.java @@ -8,8 +8,25 @@ import java.util.Set; /** - * Creates a new subscription billing attempt. For more information, refer to - * [Create a subscription contract](https://shopify.dev/docs/apps/selling-strategies/subscriptions/contracts/create#step-4-create-a-billing-attempt). + * Creates a billing attempt to charge for a [`SubscriptionContract`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SubscriptionContract). + * The mutation processes either the payment for the current billing cycle or for + * a specific cycle, if selected. + * + * The mutation creates an + * [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) + * when successful. Failed billing attempts include a [`processingError`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/subscriptionBillingAttemptCreate#returns-subscriptionBillingAttempt.fields.processingError) + * field with error details. + * + * > Tip: + * > Use the [`idempotencyKey`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/subscriptionBillingAttemptCreate#arguments-subscriptionBillingAttemptInput.fields.idempotencyKey) to ensure the billing attempt executes only once, preventing duplicate charges + * if the request is retried. + * + * You can target a specific billing cycle using the [`billingCycleSelector`](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/SubscriptionBillingCycleSelector) + * to bill past or future cycles. The [`originTime`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SubscriptionBillingAttempt#field-SubscriptionBillingAttempt.fields.originTime) + * parameter adjusts fulfillment scheduling for attempts completed after the + * expected billing date. + * + * Learn more about [creating billing attempts](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/contracts/build-a-subscription-contract#step-4-create-a-billing-attempt). */ public class SubscriptionBillingAttemptCreateGraphQLQuery extends GraphQLQuery { public SubscriptionBillingAttemptCreateGraphQLQuery(String subscriptionContractId, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SubscriptionBillingAttemptGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SubscriptionBillingAttemptGraphQLQuery.java index 720765f5..c73ce648 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SubscriptionBillingAttemptGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SubscriptionBillingAttemptGraphQLQuery.java @@ -7,7 +7,7 @@ import java.util.Set; /** - * Returns a SubscriptionBillingAttempt by ID. + * Returns a `SubscriptionBillingAttempt` resource by ID. */ public class SubscriptionBillingAttemptGraphQLQuery extends GraphQLQuery { public SubscriptionBillingAttemptGraphQLQuery(String id, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SubscriptionContractCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SubscriptionContractCreateGraphQLQuery.java index 5de47588..ae424498 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SubscriptionContractCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SubscriptionContractCreateGraphQLQuery.java @@ -8,10 +8,19 @@ import java.util.Set; /** - * Creates a Subscription Contract Draft. - * You can submit all the desired information for the draft using [Subscription Draft Input object](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/SubscriptionDraftInput). - * You can also update the draft using the [Subscription Contract Update](https://shopify.dev/docs/api/admin-graphql/latest/mutations/subscriptionContractUpdate) mutation. - * The draft is not saved until you call the [Subscription Draft Commit](https://shopify.dev/docs/api/admin-graphql/latest/mutations/subscriptionDraftCommit) mutation. + * Creates a subscription contract draft, which is an intention to create a new + * subscription. The draft lets you incrementally build and modify subscription + * details before committing them to create the actual [`SubscriptionContract`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SubscriptionContract). + * + * The mutation requires [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer) + * information, billing details, and contract configuration including the [`SubscriptionBillingPolicy`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SubscriptionBillingPolicy) and [`SubscriptionDeliveryPolicy`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SubscriptionDeliveryPolicy). + * You can specify the [`CustomerPaymentMethod`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CustomerPaymentMethod), the [`MailingAddress`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MailingAddress) + * for shipping, and subscription intervals. + * + * After you create the draft, you can either modify it with the [`subscriptionDraftUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/subscriptionDraftUpdate) + * mutation or finalize and create the active subscription contract with [`subscriptionDraftCommit`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/subscriptionDraftCommit). + * + * Learn more about [building subscription contracts](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/contracts/build-a-subscription-contract). */ public class SubscriptionContractCreateGraphQLQuery extends GraphQLQuery { public SubscriptionContractCreateGraphQLQuery(SubscriptionContractCreateInput input, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SubscriptionContractGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SubscriptionContractGraphQLQuery.java index 389b7122..7421a27b 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SubscriptionContractGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SubscriptionContractGraphQLQuery.java @@ -7,7 +7,12 @@ import java.util.Set; /** - * Returns a Subscription Contract resource by ID. + * Retrieves a [`SubscriptionContract`](https://shopify.dev/docs/api/customer/latest/objects/SubscriptionContract) by ID. + * + * The contract tracks the subscription's lifecycle through various [statuses](https://shopify.dev/docs/api/admin-graphql/latest/queries/subscriptionContract#returns-SubscriptionContract.fields.status), + * and links to related billing attempts, generated + * [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) + * objects, and the customer's [`CustomerPaymentMethod`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CustomerPaymentMethod). */ public class SubscriptionContractGraphQLQuery extends GraphQLQuery { public SubscriptionContractGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SubscriptionContractUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SubscriptionContractUpdateGraphQLQuery.java index 47aa22ba..08a3f60b 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SubscriptionContractUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SubscriptionContractUpdateGraphQLQuery.java @@ -7,10 +7,15 @@ import java.util.Set; /** - * The subscriptionContractUpdate mutation allows you to create a draft of an - * existing subscription contract. This [draft](https://shopify.dev/api/admin-graphql/latest/objects/SubscriptionDraft) - * can be reviewed and modified as needed. Once the draft is committed with [subscriptionDraftCommit](https://shopify.dev/api/admin-graphql/latest/mutations/subscriptionDraftCommit), - * the changes are applied to the original subscription contract. + * Creates a draft of an existing [`SubscriptionContract`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SubscriptionContract). + * The draft captures the current state of the contract and allows incremental + * modifications through draft mutations such as [`subscriptionDraftLineAdd`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/subscriptionDraftLineAdd), [`subscriptionDraftDiscountAdd`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/subscriptionDraftDiscountAdd), and [`subscriptionDraftUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/subscriptionDraftUpdate). + * + * Changes remain in draft state and don't affect the live contract until + * committed. After you've made all necessary changes to the draft, commit it using [`subscriptionDraftCommit`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/subscriptionDraftCommit) + * to apply the updates to the original contract. + * + * Learn more about [updating subscription contracts](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/contracts/update-a-subscription-contract#step-2-create-a-draft-of-an-existing-contract). */ public class SubscriptionContractUpdateGraphQLQuery extends GraphQLQuery { public SubscriptionContractUpdateGraphQLQuery(String contractId, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SubscriptionContractsGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SubscriptionContractsGraphQLQuery.java index 75acf0dd..fc7197e8 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SubscriptionContractsGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SubscriptionContractsGraphQLQuery.java @@ -10,7 +10,13 @@ import java.util.Set; /** - * List Subscription Contracts. + * Returns a [`SubscriptionContractConnection`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SubscriptionContractConnection) containing [subscription contracts](https://shopify.dev/docs/api/customer/latest/objects/SubscriptionContract). + * Subscription contracts are agreements between [customers](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer) + * and merchants for recurring purchases with defined billing and delivery schedules. + * + * Filter results with the [`query`](https://shopify.dev/docs/api/admin-graphql/latest/queries/subscriptionContracts#arguments-query) + * argument. You can paginate results using standard [cursor-based + * pagination](https://shopify.dev/docs/api/usage/pagination-graphql). */ public class SubscriptionContractsGraphQLQuery extends GraphQLQuery { public SubscriptionContractsGraphQLQuery(Integer first, String after, Integer last, String before, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SubscriptionDeliveryMethodLocalDeliveryFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SubscriptionDeliveryMethodLocalDeliveryFragmentProjection.java index 9b525d18..ea0e49ea 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SubscriptionDeliveryMethodLocalDeliveryFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SubscriptionDeliveryMethodLocalDeliveryFragmentProjection.java @@ -18,9 +18,9 @@ public SubscriptionDeliveryMethodLocalDeliveryFragmentProjection _ return this; } - public SubscriptionMailingAddressProjection, ROOT> address( + public MailingAddressProjection, ROOT> address( ) { - SubscriptionMailingAddressProjection, ROOT> projection = new SubscriptionMailingAddressProjection<>(this, getRoot()); + MailingAddressProjection, ROOT> projection = new MailingAddressProjection<>(this, getRoot()); getFields().put("address", projection); return projection; } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SubscriptionDeliveryMethodShippingFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SubscriptionDeliveryMethodShippingFragmentProjection.java index 1e6a0648..98347482 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SubscriptionDeliveryMethodShippingFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SubscriptionDeliveryMethodShippingFragmentProjection.java @@ -18,9 +18,9 @@ public SubscriptionDeliveryMethodShippingFragmentProjection __type return this; } - public SubscriptionMailingAddressProjection, ROOT> address( + public MailingAddressProjection, ROOT> address( ) { - SubscriptionMailingAddressProjection, ROOT> projection = new SubscriptionMailingAddressProjection<>(this, getRoot()); + MailingAddressProjection, ROOT> projection = new MailingAddressProjection<>(this, getRoot()); getFields().put("address", projection); return projection; } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SubscriptionMailingAddressProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SubscriptionMailingAddressProjection.java deleted file mode 100644 index 2ec29205..00000000 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SubscriptionMailingAddressProjection.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.shopify.admin.client; - -import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; - -public class SubscriptionMailingAddressProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { - public SubscriptionMailingAddressProjection(PARENT parent, ROOT root) { - super(parent, root, java.util.Optional.of("SubscriptionMailingAddress")); - } - - public SubscriptionMailingAddressProjection __typename() { - getFields().put("__typename", null); - return this; - } - - public CountryCodeProjection, ROOT> countryCode( - ) { - CountryCodeProjection, ROOT> projection = new CountryCodeProjection<>(this, getRoot()); - getFields().put("countryCode", projection); - return projection; - } - - public SubscriptionMailingAddressProjection address1() { - getFields().put("address1", null); - return this; - } - - public SubscriptionMailingAddressProjection address2() { - getFields().put("address2", null); - return this; - } - - public SubscriptionMailingAddressProjection city() { - getFields().put("city", null); - return this; - } - - public SubscriptionMailingAddressProjection company() { - getFields().put("company", null); - return this; - } - - public SubscriptionMailingAddressProjection country() { - getFields().put("country", null); - return this; - } - - public SubscriptionMailingAddressProjection firstName() { - getFields().put("firstName", null); - return this; - } - - public SubscriptionMailingAddressProjection lastName() { - getFields().put("lastName", null); - return this; - } - - public SubscriptionMailingAddressProjection name() { - getFields().put("name", null); - return this; - } - - public SubscriptionMailingAddressProjection phone() { - getFields().put("phone", null); - return this; - } - - public SubscriptionMailingAddressProjection province() { - getFields().put("province", null); - return this; - } - - public SubscriptionMailingAddressProjection provinceCode() { - getFields().put("provinceCode", null); - return this; - } - - public SubscriptionMailingAddressProjection zip() { - getFields().put("zip", null); - return this; - } -} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SuggestedRefundMethodProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SuggestedRefundMethodProjection.java new file mode 100644 index 00000000..c23271a5 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SuggestedRefundMethodProjection.java @@ -0,0 +1,34 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class SuggestedRefundMethodProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public SuggestedRefundMethodProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("SuggestedRefundMethod")); + } + + public SuggestedRefundMethodProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public MoneyBagProjection, ROOT> amount() { + MoneyBagProjection, ROOT> projection = new MoneyBagProjection<>(this, getRoot()); + getFields().put("amount", projection); + return projection; + } + + public MoneyBagProjection, ROOT> maximumRefundable( + ) { + MoneyBagProjection, ROOT> projection = new MoneyBagProjection<>(this, getRoot()); + getFields().put("maximumRefundable", projection); + return projection; + } + + public SuggestedStoreCreditRefundFragmentProjection, ROOT> onSuggestedStoreCreditRefund( + ) { + SuggestedStoreCreditRefundFragmentProjection, ROOT> fragment = new SuggestedStoreCreditRefundFragmentProjection<>(this, getRoot()); + getFragments().add(fragment); + return fragment; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SuggestedRefundProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SuggestedRefundProjection.java index fd38f98b..1238d7b2 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SuggestedRefundProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SuggestedRefundProjection.java @@ -54,6 +54,13 @@ public MoneyBagProjection, ROOT> subtota return projection; } + public SuggestedRefundMethodProjection, ROOT> suggestedRefundMethods( + ) { + SuggestedRefundMethodProjection, ROOT> projection = new SuggestedRefundMethodProjection<>(this, getRoot()); + getFields().put("suggestedRefundMethods", projection); + return projection; + } + public SuggestedOrderTransactionProjection, ROOT> suggestedTransactions( ) { SuggestedOrderTransactionProjection, ROOT> projection = new SuggestedOrderTransactionProjection<>(this, getRoot()); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SuggestedReturnFinancialOutcomeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SuggestedReturnFinancialOutcomeProjection.java new file mode 100644 index 00000000..3fb449ce --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SuggestedReturnFinancialOutcomeProjection.java @@ -0,0 +1,77 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class SuggestedReturnFinancialOutcomeProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public SuggestedReturnFinancialOutcomeProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("SuggestedReturnFinancialOutcome")); + } + + public SuggestedReturnFinancialOutcomeProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public MoneyBagProjection, ROOT> discountedSubtotal( + ) { + MoneyBagProjection, ROOT> projection = new MoneyBagProjection<>(this, getRoot()); + getFields().put("discountedSubtotal", projection); + return projection; + } + + public ReturnOutcomeFinancialTransferProjection, ROOT> financialTransfer( + ) { + ReturnOutcomeFinancialTransferProjection, ROOT> projection = new ReturnOutcomeFinancialTransferProjection<>(this, getRoot()); + getFields().put("financialTransfer", projection); + return projection; + } + + public MoneyBagProjection, ROOT> maximumRefundable( + ) { + MoneyBagProjection, ROOT> projection = new MoneyBagProjection<>(this, getRoot()); + getFields().put("maximumRefundable", projection); + return projection; + } + + public RefundDutyProjection, ROOT> refundDuties( + ) { + RefundDutyProjection, ROOT> projection = new RefundDutyProjection<>(this, getRoot()); + getFields().put("refundDuties", projection); + return projection; + } + + public ShippingRefundProjection, ROOT> shipping( + ) { + ShippingRefundProjection, ROOT> projection = new ShippingRefundProjection<>(this, getRoot()); + getFields().put("shipping", projection); + return projection; + } + + public MoneyBagProjection, ROOT> totalAdditionalFees( + ) { + MoneyBagProjection, ROOT> projection = new MoneyBagProjection<>(this, getRoot()); + getFields().put("totalAdditionalFees", projection); + return projection; + } + + public MoneyBagProjection, ROOT> totalCartDiscountAmount( + ) { + MoneyBagProjection, ROOT> projection = new MoneyBagProjection<>(this, getRoot()); + getFields().put("totalCartDiscountAmount", projection); + return projection; + } + + public MoneyBagProjection, ROOT> totalDuties( + ) { + MoneyBagProjection, ROOT> projection = new MoneyBagProjection<>(this, getRoot()); + getFields().put("totalDuties", projection); + return projection; + } + + public MoneyBagProjection, ROOT> totalTax( + ) { + MoneyBagProjection, ROOT> projection = new MoneyBagProjection<>(this, getRoot()); + getFields().put("totalTax", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SuggestedStoreCreditRefundFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SuggestedStoreCreditRefundFragmentProjection.java new file mode 100644 index 00000000..02b772cc --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/SuggestedStoreCreditRefundFragmentProjection.java @@ -0,0 +1,54 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; +import java.lang.Override; +import java.lang.String; + +public class SuggestedStoreCreditRefundFragmentProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + { + getFields().put("__typename", null); + } + + public SuggestedStoreCreditRefundFragmentProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("SuggestedStoreCreditRefund")); + } + + public SuggestedStoreCreditRefundFragmentProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public MoneyBagProjection, ROOT> amount( + ) { + MoneyBagProjection, ROOT> projection = new MoneyBagProjection<>(this, getRoot()); + getFields().put("amount", projection); + return projection; + } + + public MoneyBagProjection, ROOT> maximumRefundable( + ) { + MoneyBagProjection, ROOT> projection = new MoneyBagProjection<>(this, getRoot()); + getFields().put("maximumRefundable", projection); + return projection; + } + + public SuggestedStoreCreditRefundFragmentProjection expiresAt() { + getFields().put("expiresAt", null); + return this; + } + + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + builder.append("... on SuggestedStoreCreditRefund {"); + getFields().forEach((k, v) -> { + builder.append(" ").append(k); + if(v != null) { + builder.append(" ").append(v.toString()); + } + }); + builder.append("}"); + + return builder.toString(); + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TagsAddGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TagsAddGraphQLQuery.java index f4c65743..a0d72e7f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TagsAddGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TagsAddGraphQLQuery.java @@ -8,7 +8,13 @@ import java.util.Set; /** - * Add tags to an order, a draft order, a customer, a product, or an online store article. + * Adds tags to a resource in the store. Supported resources include + * [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order), [`DraftOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrder), [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer), [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product), and [`Article`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Article). + * + * Tags help merchants organize and filter resources. See the [`tags`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/tagsAdd#arguments-tags) + * argument for supported input formats. + * + * Learn more about [using tags to organize subscription orders](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/fulfillments/sync-orders-subscriptions#order-tagging). */ public class TagsAddGraphQLQuery extends GraphQLQuery { public TagsAddGraphQLQuery(String id, List tags, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TagsRemoveGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TagsRemoveGraphQLQuery.java index 019f8d41..24b78220 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TagsRemoveGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TagsRemoveGraphQLQuery.java @@ -8,7 +8,10 @@ import java.util.Set; /** - * Remove tags from an order, a draft order, a customer, a product, or an online store article. + * Removes tags from an + * [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order), [`DraftOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrder), [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer), [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product), or [`Article`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Article). + * + * Tags are searchable keywords that help organize and filter these resources. */ public class TagsRemoveGraphQLQuery extends GraphQLQuery { public TagsRemoveGraphQLQuery(String id, List tags, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TaxSummaryCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TaxSummaryCreateGraphQLQuery.java new file mode 100644 index 00000000..fb7eb403 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TaxSummaryCreateGraphQLQuery.java @@ -0,0 +1,88 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import java.lang.Override; +import java.lang.String; +import java.time.OffsetDateTime; +import java.util.HashSet; +import java.util.Set; + +/** + * Creates a tax summary for a given order. + * If both an order ID and a start and end time are provided, the order ID will be used. + */ +public class TaxSummaryCreateGraphQLQuery extends GraphQLQuery { + public TaxSummaryCreateGraphQLQuery(String orderId, OffsetDateTime startTime, + OffsetDateTime endTime, String queryName, Set fieldsSet) { + super("mutation", queryName); + if (orderId != null || fieldsSet.contains("orderId")) { + getInput().put("orderId", orderId); + }if (startTime != null || fieldsSet.contains("startTime")) { + getInput().put("startTime", startTime); + }if (endTime != null || fieldsSet.contains("endTime")) { + getInput().put("endTime", endTime); + } + } + + public TaxSummaryCreateGraphQLQuery() { + super("mutation"); + } + + @Override + public String getOperationName() { + return "taxSummaryCreate"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private String orderId; + + private OffsetDateTime startTime; + + private OffsetDateTime endTime; + + private String queryName; + + public TaxSummaryCreateGraphQLQuery build() { + return new TaxSummaryCreateGraphQLQuery(orderId, startTime, endTime, queryName, fieldsSet); + + } + + /** + * The ID of the order to create the tax summary for. + */ + public Builder orderId(String orderId) { + this.orderId = orderId; + this.fieldsSet.add("orderId"); + return this; + } + + /** + * The start time of the range of orders to create the tax summary for. + */ + public Builder startTime(OffsetDateTime startTime) { + this.startTime = startTime; + this.fieldsSet.add("startTime"); + return this; + } + + /** + * The end time of the range of orders to create the tax summary for. + */ + public Builder endTime(OffsetDateTime endTime) { + this.endTime = endTime; + this.fieldsSet.add("endTime"); + return this; + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TaxSummaryCreateProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TaxSummaryCreateProjectionRoot.java new file mode 100644 index 00000000..0a33278f --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TaxSummaryCreateProjectionRoot.java @@ -0,0 +1,28 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class TaxSummaryCreateProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public TaxSummaryCreateProjectionRoot() { + super(null, null, java.util.Optional.of("TaxSummaryCreatePayload")); + } + + public TaxSummaryCreateProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public OrderProjection, TaxSummaryCreateProjectionRoot> enqueuedOrders( + ) { + OrderProjection, TaxSummaryCreateProjectionRoot> projection = new OrderProjection<>(this, this); + getFields().put("enqueuedOrders", projection); + return projection; + } + + public TaxSummaryCreateUserErrorProjection, TaxSummaryCreateProjectionRoot> userErrors( + ) { + TaxSummaryCreateUserErrorProjection, TaxSummaryCreateProjectionRoot> projection = new TaxSummaryCreateUserErrorProjection<>(this, this); + getFields().put("userErrors", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TaxSummaryCreateUserErrorCodeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TaxSummaryCreateUserErrorCodeProjection.java new file mode 100644 index 00000000..d8be4824 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TaxSummaryCreateUserErrorCodeProjection.java @@ -0,0 +1,14 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class TaxSummaryCreateUserErrorCodeProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public TaxSummaryCreateUserErrorCodeProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("TaxSummaryCreateUserErrorCode")); + } + + public TaxSummaryCreateUserErrorCodeProjection __typename() { + getFields().put("__typename", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TaxSummaryCreateUserErrorProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TaxSummaryCreateUserErrorProjection.java new file mode 100644 index 00000000..965aee39 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TaxSummaryCreateUserErrorProjection.java @@ -0,0 +1,31 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class TaxSummaryCreateUserErrorProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public TaxSummaryCreateUserErrorProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("TaxSummaryCreateUserError")); + } + + public TaxSummaryCreateUserErrorProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public TaxSummaryCreateUserErrorCodeProjection, ROOT> code( + ) { + TaxSummaryCreateUserErrorCodeProjection, ROOT> projection = new TaxSummaryCreateUserErrorCodeProjection<>(this, getRoot()); + getFields().put("code", projection); + return projection; + } + + public TaxSummaryCreateUserErrorProjection field() { + getFields().put("field", null); + return this; + } + + public TaxSummaryCreateUserErrorProjection message() { + getFields().put("message", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TaxonomyGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TaxonomyGraphQLQuery.java index b4ee5fde..3b8f04ef 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TaxonomyGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TaxonomyGraphQLQuery.java @@ -7,7 +7,15 @@ import java.util.Set; /** - * The Taxonomy resource lets you access the categories, attributes and values of the loaded taxonomy tree. + * Access to Shopify's [standardized product taxonomy](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) + * for categorizing products. The [`Taxonomy`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Taxonomy) + * organizes products into a hierarchical tree structure with categories, + * attributes, and values. + * + * Query categories using search terms, or navigate the hierarchy by requesting + * children, siblings, or descendants of specific categories. Each [`TaxonomyCategory`](https://shopify.dev/docs/api/admin-graphql/latest/objects/TaxonomyCategory) + * includes its position in the tree, parent-child relationships, and associated + * attributes for that product category. */ public class TaxonomyGraphQLQuery extends GraphQLQuery { public TaxonomyGraphQLQuery(String queryName) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TenderTransactionsGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TenderTransactionsGraphQLQuery.java index b58c8214..092f6325 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TenderTransactionsGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TenderTransactionsGraphQLQuery.java @@ -9,7 +9,14 @@ import java.util.Set; /** - * Returns a list of TenderTransactions associated with the shop. + * Transactions representing a movement of money between customers and the shop. + * Each transaction records the amount, payment method, processing details, and the associated + * [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order). + * + * Positive amounts indicate customer payments to the merchant. Negative amounts + * represent refunds from the merchant to the customer. Use the [`query`](https://shopify.dev/docs/api/admin-graphql/latest/queries/tenderTransactions#arguments-query) + * parameter to filter transactions by attributes such as transaction ID, + * processing date, and point-of-sale device ID. */ public class TenderTransactionsGraphQLQuery extends GraphQLQuery { public TenderTransactionsGraphQLQuery(Integer first, String after, Integer last, String before, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ThemeCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ThemeCreateGraphQLQuery.java index fdf3d6fb..73ba166b 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ThemeCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ThemeCreateGraphQLQuery.java @@ -8,9 +8,14 @@ import java.util.Set; /** - * Creates a theme using an external URL or for files that were previously uploaded using the - * [stagedUploadsCreate mutation](https://shopify.dev/api/admin-graphql/latest/mutations/stageduploadscreate). - * These themes are added to the [Themes page](https://admin.shopify.com/themes) in Shopify admin. + * Creates a theme from an external URL or staged upload. The theme source can + * either be a ZIP file hosted at a public URL or files previously uploaded using the [`stagedUploadsCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/stageduploadscreate) + * mutation. The theme displays in the [Themes + * page](https://admin.shopify.com/themes) in the Shopify admin. + * + * New themes have an [`UNPUBLISHED`](https://shopify.dev//docs/api/admin-graphql/latest/mutations/themeCreate#arguments-role.enums.UNPUBLISHED) + * role by default. You can optionally specify a [`DEVELOPMENT`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/themeCreate#arguments-role.enums.DEVELOPMENT) + * role for temporary themes used during development. */ public class ThemeCreateGraphQLQuery extends GraphQLQuery { public ThemeCreateGraphQLQuery(String source, String name, ThemeRole role, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ThemeDuplicateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ThemeDuplicateGraphQLQuery.java new file mode 100644 index 00000000..ded1d2a8 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ThemeDuplicateGraphQLQuery.java @@ -0,0 +1,73 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import java.lang.Override; +import java.lang.String; +import java.util.HashSet; +import java.util.Set; + +/** + * Duplicates a theme. + */ +public class ThemeDuplicateGraphQLQuery extends GraphQLQuery { + public ThemeDuplicateGraphQLQuery(String id, String name, String queryName, + Set fieldsSet) { + super("mutation", queryName); + if (id != null || fieldsSet.contains("id")) { + getInput().put("id", id); + }if (name != null || fieldsSet.contains("name")) { + getInput().put("name", name); + } + } + + public ThemeDuplicateGraphQLQuery() { + super("mutation"); + } + + @Override + public String getOperationName() { + return "themeDuplicate"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private String id; + + private String name; + + private String queryName; + + public ThemeDuplicateGraphQLQuery build() { + return new ThemeDuplicateGraphQLQuery(id, name, queryName, fieldsSet); + + } + + /** + * ID of the theme to be duplicated. + */ + public Builder id(String id) { + this.id = id; + this.fieldsSet.add("id"); + return this; + } + + /** + * Name of the new theme. + */ + public Builder name(String name) { + this.name = name; + this.fieldsSet.add("name"); + return this; + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ThemeDuplicateProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ThemeDuplicateProjectionRoot.java new file mode 100644 index 00000000..14e13a9c --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ThemeDuplicateProjectionRoot.java @@ -0,0 +1,28 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class ThemeDuplicateProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public ThemeDuplicateProjectionRoot() { + super(null, null, java.util.Optional.of("ThemeDuplicatePayload")); + } + + public ThemeDuplicateProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public OnlineStoreThemeProjection, ThemeDuplicateProjectionRoot> newTheme( + ) { + OnlineStoreThemeProjection, ThemeDuplicateProjectionRoot> projection = new OnlineStoreThemeProjection<>(this, this); + getFields().put("newTheme", projection); + return projection; + } + + public ThemeDuplicateUserErrorProjection, ThemeDuplicateProjectionRoot> userErrors( + ) { + ThemeDuplicateUserErrorProjection, ThemeDuplicateProjectionRoot> projection = new ThemeDuplicateUserErrorProjection<>(this, this); + getFields().put("userErrors", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ThemeDuplicateUserErrorCodeProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ThemeDuplicateUserErrorCodeProjection.java new file mode 100644 index 00000000..30b52d7e --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ThemeDuplicateUserErrorCodeProjection.java @@ -0,0 +1,14 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class ThemeDuplicateUserErrorCodeProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public ThemeDuplicateUserErrorCodeProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("ThemeDuplicateUserErrorCode")); + } + + public ThemeDuplicateUserErrorCodeProjection __typename() { + getFields().put("__typename", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ThemeDuplicateUserErrorProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ThemeDuplicateUserErrorProjection.java new file mode 100644 index 00000000..61fb27f0 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ThemeDuplicateUserErrorProjection.java @@ -0,0 +1,31 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class ThemeDuplicateUserErrorProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public ThemeDuplicateUserErrorProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("ThemeDuplicateUserError")); + } + + public ThemeDuplicateUserErrorProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public ThemeDuplicateUserErrorCodeProjection, ROOT> code( + ) { + ThemeDuplicateUserErrorCodeProjection, ROOT> projection = new ThemeDuplicateUserErrorCodeProjection<>(this, getRoot()); + getFields().put("code", projection); + return projection; + } + + public ThemeDuplicateUserErrorProjection field() { + getFields().put("field", null); + return this; + } + + public ThemeDuplicateUserErrorProjection message() { + getFields().put("message", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ThemeFilesUpsertGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ThemeFilesUpsertGraphQLQuery.java index f7995dea..0670171a 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ThemeFilesUpsertGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ThemeFilesUpsertGraphQLQuery.java @@ -9,7 +9,17 @@ import java.util.Set; /** - * Create or update theme files. + * Creates or updates theme files in an online store theme. This mutation allows + * batch operations on multiple theme files, either creating new files or + * overwriting existing ones with the same filename. + * + * > Note: You can process a maximum of 50 files in a single request. + * + * Each file requires a filename and body content. The body must specify a [`type`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/themeFilesUpsert#arguments-files.fields.body.type) + * with the corresponding [`value`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/themeFilesUpsert#arguments-files.fields.body.value). + * The mutation returns a [`job`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/themeFilesUpsert#returns-job) + * field for tracking asynchronous operations and an [`upsertedThemeFiles`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/themeFilesUpsert#returns-upsertedThemeFiles) + * field with details about the processed files. */ public class ThemeFilesUpsertGraphQLQuery extends GraphQLQuery { public ThemeFilesUpsertGraphQLQuery(String themeId, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ThemeGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ThemeGraphQLQuery.java index c54ee7e2..78479822 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ThemeGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ThemeGraphQLQuery.java @@ -7,7 +7,9 @@ import java.util.Set; /** - * Returns a particular theme for the shop. + * Returns an [`OnlineStoreTheme`](https://shopify.dev/docs/api/admin-graphql/latest/objects/OnlineStoreTheme) by its ID. Use this query to retrieve theme metadata and access the theme's [`files`](https://shopify.dev/docs/api/admin-graphql/latest/queries/theme#returns-OnlineStoreTheme.fields.files), + * which include templates, assets, [translations](https://shopify.dev/docs/api/admin-graphql/latest/objects/OnlineStoreTheme#field-published_translations), + * and configuration files. */ public class ThemeGraphQLQuery extends GraphQLQuery { public ThemeGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ThemesGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ThemesGraphQLQuery.java index 39e67b16..86cab068 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ThemesGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/ThemesGraphQLQuery.java @@ -11,7 +11,12 @@ import java.util.Set; /** - * Returns a paginated list of themes for the shop. + * Returns a paginated list of [`OnlineStoreTheme`](https://shopify.dev/docs/api/admin-graphql/latest/objects/OnlineStoreTheme) + * objects for the online store. Themes control the appearance and layout of the storefront. + * + * You can filter themes by [`role`](https://shopify.dev/docs/api/admin-graphql/latest/queries/themes#arguments-roles) + * to find specific theme types, such as `MAIN` for the published theme and + * `UNPUBLISHED` for draft themes. */ public class ThemesGraphQLQuery extends GraphQLQuery { public ThemesGraphQLQuery(List roles, List names, Integer first, String after, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TranslatableResourceGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TranslatableResourceGraphQLQuery.java index 367daf69..4b281609 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TranslatableResourceGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TranslatableResourceGraphQLQuery.java @@ -7,7 +7,13 @@ import java.util.Set; /** - * A resource that can have localized values for different languages. + * Retrieves a resource that has translatable fields. Returns the resource's [`Translation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Translation) + * objects for different locales and markets, along with the original [`TranslatableContent`](https://shopify.dev/docs/api/admin-graphql/latest/objects/TranslatableContent) + * and digest values needed to register new translations. Provides access to + * existing translations, translatable content with digest hashes for translation + * registration, and nested translatable resources like [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) objects or [`Metafield`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Metafield) objects. + * + * Learn more about [managing translated content](https://shopify.dev/docs/apps/build/markets/manage-translated-content). */ public class TranslatableResourceGraphQLQuery extends GraphQLQuery { public TranslatableResourceGraphQLQuery(String resourceId, String queryName, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TranslatableResourcesByIdsGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TranslatableResourcesByIdsGraphQLQuery.java index c6663e4a..df1f588b 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TranslatableResourcesByIdsGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TranslatableResourcesByIdsGraphQLQuery.java @@ -10,7 +10,11 @@ import java.util.Set; /** - * Resources that can have localized values for different languages. + * Returns a paginated list of [`TranslatableResource`](https://shopify.dev/docs/api/admin-graphql/latest/objects/TranslatableResource) + * objects for the specified resource IDs. Each resource provides translatable + * content and digest values needed for the [`translationsRegister`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/translationsRegister) mutation. + * + * Learn more about [managing translated content](https://shopify.dev/docs/apps/build/markets/manage-translated-content). */ public class TranslatableResourcesByIdsGraphQLQuery extends GraphQLQuery { public TranslatableResourcesByIdsGraphQLQuery(List resourceIds, Integer first, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TranslatableResourcesGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TranslatableResourcesGraphQLQuery.java index 354bdfe9..8d34ac7f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TranslatableResourcesGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TranslatableResourcesGraphQLQuery.java @@ -10,7 +10,13 @@ import java.util.Set; /** - * Resources that can have localized values for different languages. + * Returns a paginated list of [`TranslatableResource`](https://shopify.dev/docs/api/admin-graphql/latest/objects/TranslatableResource) + * objects for a specific resource type. Each resource provides translatable + * content and digest values needed for the [`translationsRegister`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/translationsRegister) mutation. + * + * Learn more about [managing translated content](https://shopify.dev/docs/apps/build/markets/manage-translated-content). + * + * Learn more about [managing translated content](https://shopify.dev/docs/apps/build/markets/manage-translated-content). */ public class TranslatableResourcesGraphQLQuery extends GraphQLQuery { public TranslatableResourcesGraphQLQuery(TranslatableResourceType resourceType, Integer first, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TranslationsRegisterGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TranslationsRegisterGraphQLQuery.java index 0ba3c6b2..0b7b2f8b 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TranslationsRegisterGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/TranslationsRegisterGraphQLQuery.java @@ -9,7 +9,15 @@ import java.util.Set; /** - * Creates or updates translations. + * Creates or updates translations for a resource's [translatable content](https://shopify.dev/docs/api/admin-graphql/latest/objects/TranslatableContent). + * + * Each translation requires a digest value from the resource's translatable + * content. Use the [`translatableResource`](https://shopify.dev/docs/api/admin-graphql/latest/queries/translatableResource) + * query to get a resource's translatable content and digest values before + * creating translations. You can optionally scope translations to specific + * markets using the `marketId` field in each translation input. + * + * Learn more about [managing translations](https://shopify.dev/docs/apps/build/markets/manage-translated-content). */ public class TranslationsRegisterGraphQLQuery extends GraphQLQuery { public TranslationsRegisterGraphQLQuery(String resourceId, List translations, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/URLProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/URLProjection.java new file mode 100644 index 00000000..97554eea --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/URLProjection.java @@ -0,0 +1,14 @@ +package com.shopify.admin.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class URLProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public URLProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("URL")); + } + + public URLProjection __typename() { + getFields().put("__typename", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/UnverifiedReturnLineItemFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/UnverifiedReturnLineItemFragmentProjection.java index 89f54ae0..d48f3334 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/UnverifiedReturnLineItemFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/UnverifiedReturnLineItemFragmentProjection.java @@ -25,6 +25,13 @@ public ReturnReasonProjection, ROOT> returnReasonDefinition( + ) { + ReturnReasonDefinitionProjection, ROOT> projection = new ReturnReasonDefinitionProjection<>(this, getRoot()); + getFields().put("returnReasonDefinition", projection); + return projection; + } + public MoneyV2Projection, ROOT> unitPrice( ) { MoneyV2Projection, ROOT> projection = new MoneyV2Projection<>(this, getRoot()); @@ -42,6 +49,16 @@ public UnverifiedReturnLineItemFragmentProjection id() { return this; } + public UnverifiedReturnLineItemFragmentProjection processableQuantity() { + getFields().put("processableQuantity", null); + return this; + } + + public UnverifiedReturnLineItemFragmentProjection processedQuantity() { + getFields().put("processedQuantity", null); + return this; + } + public UnverifiedReturnLineItemFragmentProjection quantity() { getFields().put("quantity", null); return this; @@ -62,6 +79,11 @@ public UnverifiedReturnLineItemFragmentProjection returnReasonNote return this; } + public UnverifiedReturnLineItemFragmentProjection unprocessedQuantity() { + getFields().put("unprocessedQuantity", null); + return this; + } + @Override public String toString() { StringBuilder builder = new StringBuilder(); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/UrlRedirectGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/UrlRedirectGraphQLQuery.java index f812c287..0b2ade1a 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/UrlRedirectGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/UrlRedirectGraphQLQuery.java @@ -7,7 +7,7 @@ import java.util.Set; /** - * Returns a redirect resource by ID. + * Returns a `UrlRedirect` resource by ID. */ public class UrlRedirectGraphQLQuery extends GraphQLQuery { public UrlRedirectGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/UrlRedirectImportGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/UrlRedirectImportGraphQLQuery.java index db605514..94c4d430 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/UrlRedirectImportGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/UrlRedirectImportGraphQLQuery.java @@ -7,7 +7,7 @@ import java.util.Set; /** - * Returns a redirect import resource by ID. + * Returns a `UrlRedirectImport` resource by ID. */ public class UrlRedirectImportGraphQLQuery extends GraphQLQuery { public UrlRedirectImportGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/UrlRedirectsCountGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/UrlRedirectsCountGraphQLQuery.java index a58534e0..ea439ff9 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/UrlRedirectsCountGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/UrlRedirectsCountGraphQLQuery.java @@ -1,22 +1,25 @@ package com.shopify.admin.client; import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import java.lang.Integer; import java.lang.Override; import java.lang.String; import java.util.HashSet; import java.util.Set; /** - * Count of redirects. Limited to a maximum of 10000. + * Count of redirects. Limited to a maximum of 10000 by default. */ public class UrlRedirectsCountGraphQLQuery extends GraphQLQuery { - public UrlRedirectsCountGraphQLQuery(String query, String savedSearchId, String queryName, - Set fieldsSet) { + public UrlRedirectsCountGraphQLQuery(String query, String savedSearchId, Integer limit, + String queryName, Set fieldsSet) { super("query", queryName); if (query != null || fieldsSet.contains("query")) { getInput().put("query", query); }if (savedSearchId != null || fieldsSet.contains("savedSearchId")) { getInput().put("savedSearchId", savedSearchId); + }if (limit != null || fieldsSet.contains("limit")) { + getInput().put("limit", limit); } } @@ -40,10 +43,12 @@ public static class Builder { private String savedSearchId; + private Integer limit; + private String queryName; public UrlRedirectsCountGraphQLQuery build() { - return new UrlRedirectsCountGraphQLQuery(query, savedSearchId, queryName, fieldsSet); + return new UrlRedirectsCountGraphQLQuery(query, savedSearchId, limit, queryName, fieldsSet); } @@ -77,6 +82,15 @@ public Builder savedSearchId(String savedSearchId) { return this; } + /** + * The upper bound on count value before returning a result. Use `null` to have no limit. + */ + public Builder limit(Integer limit) { + this.limit = limit; + this.fieldsSet.add("limit"); + return this; + } + public Builder queryName(String queryName) { this.queryName = queryName; return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/WebPresenceFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/WebPresenceFragmentProjection.java deleted file mode 100644 index 236001c8..00000000 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/WebPresenceFragmentProjection.java +++ /dev/null @@ -1,98 +0,0 @@ -package com.shopify.admin.client; - -import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; -import java.lang.Boolean; -import java.lang.Integer; -import java.lang.Override; -import java.lang.String; -import java.util.ArrayList; - -public class WebPresenceFragmentProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { - { - getFields().put("__typename", null); - } - - public WebPresenceFragmentProjection(PARENT parent, ROOT root) { - super(parent, root, java.util.Optional.of("WebPresence")); - } - - public WebPresenceFragmentProjection __typename() { - getFields().put("__typename", null); - return this; - } - - public ShopLocaleProjection, ROOT> alternateLocales( - ) { - ShopLocaleProjection, ROOT> projection = new ShopLocaleProjection<>(this, getRoot()); - getFields().put("alternateLocales", projection); - return projection; - } - - public ShopLocaleProjection, ROOT> defaultLocale() { - ShopLocaleProjection, ROOT> projection = new ShopLocaleProjection<>(this, getRoot()); - getFields().put("defaultLocale", projection); - return projection; - } - - public DomainProjection, ROOT> domain() { - DomainProjection, ROOT> projection = new DomainProjection<>(this, getRoot()); - getFields().put("domain", projection); - return projection; - } - - public MarketConnectionProjection, ROOT> markets() { - MarketConnectionProjection, ROOT> projection = new MarketConnectionProjection<>(this, getRoot()); - getFields().put("markets", projection); - return projection; - } - - public MarketConnectionProjection, ROOT> markets( - Integer first, String after, Integer last, String before, Boolean reverse) { - MarketConnectionProjection, ROOT> projection = new MarketConnectionProjection<>(this, getRoot()); - getFields().put("markets", projection); - getInputArguments().computeIfAbsent("markets", k -> new ArrayList<>()); - InputArgument firstArg = new InputArgument("first", first); - getInputArguments().get("markets").add(firstArg); - InputArgument afterArg = new InputArgument("after", after); - getInputArguments().get("markets").add(afterArg); - InputArgument lastArg = new InputArgument("last", last); - getInputArguments().get("markets").add(lastArg); - InputArgument beforeArg = new InputArgument("before", before); - getInputArguments().get("markets").add(beforeArg); - InputArgument reverseArg = new InputArgument("reverse", reverse); - getInputArguments().get("markets").add(reverseArg); - return projection; - } - - public WebPresenceRootUrlProjection, ROOT> rootUrls( - ) { - WebPresenceRootUrlProjection, ROOT> projection = new WebPresenceRootUrlProjection<>(this, getRoot()); - getFields().put("rootUrls", projection); - return projection; - } - - public WebPresenceFragmentProjection id() { - getFields().put("id", null); - return this; - } - - public WebPresenceFragmentProjection subfolderSuffix() { - getFields().put("subfolderSuffix", null); - return this; - } - - @Override - public String toString() { - StringBuilder builder = new StringBuilder(); - builder.append("... on WebPresence {"); - getFields().forEach((k, v) -> { - builder.append(" ").append(k); - if(v != null) { - builder.append(" ").append(v.toString()); - } - }); - builder.append("}"); - - return builder.toString(); - } -} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/WebPresenceRootUrlProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/WebPresenceRootUrlProjection.java deleted file mode 100644 index 77a83d6d..00000000 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/WebPresenceRootUrlProjection.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.shopify.admin.client; - -import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; - -public class WebPresenceRootUrlProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { - public WebPresenceRootUrlProjection(PARENT parent, ROOT root) { - super(parent, root, java.util.Optional.of("WebPresenceRootUrl")); - } - - public WebPresenceRootUrlProjection __typename() { - getFields().put("__typename", null); - return this; - } - - public WebPresenceRootUrlProjection locale() { - getFields().put("locale", null); - return this; - } - - public WebPresenceRootUrlProjection url() { - getFields().put("url", null); - return this; - } -} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/WebhookSubscriptionCreateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/WebhookSubscriptionCreateGraphQLQuery.java index fdb39920..80a498ad 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/WebhookSubscriptionCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/WebhookSubscriptionCreateGraphQLQuery.java @@ -9,7 +9,22 @@ import java.util.Set; /** - * Creates a new webhook subscription. + * Creates a webhook subscription that notifies your + * [`App`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App) when + * specific events occur in a shop. Webhooks push event data to your endpoint + * immediately when changes happen, eliminating the need for polling. + * + * The subscription configuration supports multiple endpoint types including + * HTTPS URLs, Google Pub/Sub topics, and AWS EventBridge event sources. You can + * filter events using [Shopify API search + * syntax](https://shopify.dev/docs/api/usage/search-syntax) to receive only + * relevant webhooks, control which data fields are included in webhook payloads, + * and specify metafield namespaces to include. + * + * > Note: + * > The Webhooks API version [configured in your app](https://shopify.dev/docs/apps/build/webhooks/subscribe/use-newer-api-version) + * determines the API version for webhook events. You can't specify it per subscription. + * * * Building an app? If you only use app-specific webhooks, you won't need this. * App-specific webhook subscriptions specified in your `shopify.app.toml` may be diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/WebhookSubscriptionDeleteGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/WebhookSubscriptionDeleteGraphQLQuery.java index e35f391d..f585e5c0 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/WebhookSubscriptionDeleteGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/WebhookSubscriptionDeleteGraphQLQuery.java @@ -7,7 +7,9 @@ import java.util.Set; /** - * Deletes a webhook subscription. + * Deletes a [`WebhookSubscription`](https://shopify.dev/docs/api/admin-graphql/latest/objects/WebhookSubscription) and stops all future webhooks to its endpoint. Returns the deleted + * subscription's ID for confirmation. + * * * Building an app? If you only use app-specific webhooks, you won't need this. * App-specific webhook subscriptions specified in your `shopify.app.toml` may be diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/WebhookSubscriptionFragmentProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/WebhookSubscriptionFragmentProjection.java index d51f426a..a3325896 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/WebhookSubscriptionFragmentProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/WebhookSubscriptionFragmentProjection.java @@ -93,6 +93,11 @@ public WebhookSubscriptionFragmentProjection updatedAt() { return this; } + public WebhookSubscriptionFragmentProjection uri() { + getFields().put("uri", null); + return this; + } + @Override public String toString() { StringBuilder builder = new StringBuilder(); diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/WebhookSubscriptionProjection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/WebhookSubscriptionProjection.java index feb97c1e..984c1294 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/WebhookSubscriptionProjection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/WebhookSubscriptionProjection.java @@ -85,4 +85,9 @@ public WebhookSubscriptionProjection updatedAt() { getFields().put("updatedAt", null); return this; } + + public WebhookSubscriptionProjection uri() { + getFields().put("uri", null); + return this; + } } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/WebhookSubscriptionProjectionRoot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/WebhookSubscriptionProjectionRoot.java index e68529b4..30a3b096 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/WebhookSubscriptionProjectionRoot.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/WebhookSubscriptionProjectionRoot.java @@ -86,4 +86,9 @@ public WebhookSubscriptionProjectionRoot updatedAt() { getFields().put("updatedAt", null); return this; } + + public WebhookSubscriptionProjectionRoot uri() { + getFields().put("uri", null); + return this; + } } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/WebhookSubscriptionUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/WebhookSubscriptionUpdateGraphQLQuery.java index 8f83e104..4ff3fb37 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/WebhookSubscriptionUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/WebhookSubscriptionUpdateGraphQLQuery.java @@ -8,7 +8,14 @@ import java.util.Set; /** - * Updates a webhook subscription. + * Updates a webhook subscription's configuration. Modify the endpoint URL, event + * filters, included fields, or metafield namespaces without recreating the subscription. + * + * The mutation accepts a [`WebhookSubscriptionInput`](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/WebhookSubscriptionInput) + * that specifies the new configuration. You can switch between endpoint types + * (HTTP, Pub/Sub, EventBridge) by providing a different URI format. Updates + * apply atomically without interrupting webhook delivery. + * * * Building an app? If you only use app-specific webhooks, you won't need this. * App-specific webhook subscriptions specified in your `shopify.app.toml` may be diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/WebhookSubscriptionsCountGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/WebhookSubscriptionsCountGraphQLQuery.java index 59c8f82d..e1eb3bf5 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/WebhookSubscriptionsCountGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/WebhookSubscriptionsCountGraphQLQuery.java @@ -1,6 +1,7 @@ package com.shopify.admin.client; import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import java.lang.Integer; import java.lang.Override; import java.lang.String; import java.util.HashSet; @@ -14,14 +15,16 @@ * easier. They are automatically kept up to date by Shopify & require less * maintenance. Please read [About managing webhook * subscriptions](https://shopify.dev/docs/apps/build/webhooks/subscribe). - * Limited to a maximum of 10000. + * Limited to a maximum of 10000 by default. */ public class WebhookSubscriptionsCountGraphQLQuery extends GraphQLQuery { - public WebhookSubscriptionsCountGraphQLQuery(String query, String queryName, + public WebhookSubscriptionsCountGraphQLQuery(String query, Integer limit, String queryName, Set fieldsSet) { super("query", queryName); if (query != null || fieldsSet.contains("query")) { getInput().put("query", query); + }if (limit != null || fieldsSet.contains("limit")) { + getInput().put("limit", limit); } } @@ -43,10 +46,12 @@ public static class Builder { private String query; + private Integer limit; + private String queryName; public WebhookSubscriptionsCountGraphQLQuery build() { - return new WebhookSubscriptionsCountGraphQLQuery(query, queryName, fieldsSet); + return new WebhookSubscriptionsCountGraphQLQuery(query, limit, queryName, fieldsSet); } @@ -68,6 +73,15 @@ public Builder query(String query) { return this; } + /** + * The upper bound on count value before returning a result. Use `null` to have no limit. + */ + public Builder limit(Integer limit) { + this.limit = limit; + this.fieldsSet.add("limit"); + return this; + } + public Builder queryName(String queryName) { this.queryName = queryName; return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/WebhookSubscriptionsGraphQLQuery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/WebhookSubscriptionsGraphQLQuery.java index a3cc1474..55497131 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/WebhookSubscriptionsGraphQLQuery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/client/WebhookSubscriptionsGraphQLQuery.java @@ -13,7 +13,14 @@ import java.util.Set; /** - * Returns a list of webhook subscriptions. + * Retrieves a paginated list of webhook subscriptions created using the API for the current app and shop. + * + * > Note: Returns only shop-scoped subscriptions, not app-scoped subscriptions configured in TOML files. + * + * Subscription details include event topics, endpoint URIs, filtering rules, + * field inclusion settings, and metafield namespace permissions. Results support + * cursor-based pagination that you can filter by topic, format, or custom search criteria. + * * * Building an app? If you only use app-specific webhooks, you won't need this. * App-specific webhook subscriptions specified in your `shopify.app.toml` may be @@ -23,7 +30,7 @@ */ public class WebhookSubscriptionsGraphQLQuery extends GraphQLQuery { public WebhookSubscriptionsGraphQLQuery(Integer first, String after, Integer last, String before, - Boolean reverse, WebhookSubscriptionSortKeys sortKey, String query, String callbackUrl, + Boolean reverse, WebhookSubscriptionSortKeys sortKey, String query, String uri, WebhookSubscriptionFormat format, List topics, String queryName, Set fieldsSet) { super("query", queryName); @@ -41,8 +48,8 @@ public WebhookSubscriptionsGraphQLQuery(Integer first, String after, Integer las getInput().put("sortKey", sortKey); }if (query != null || fieldsSet.contains("query")) { getInput().put("query", query); - }if (callbackUrl != null || fieldsSet.contains("callbackUrl")) { - getInput().put("callbackUrl", callbackUrl); + }if (uri != null || fieldsSet.contains("uri")) { + getInput().put("uri", uri); }if (format != null || fieldsSet.contains("format")) { getInput().put("format", format); }if (topics != null || fieldsSet.contains("topics")) { @@ -80,7 +87,7 @@ public static class Builder { private String query; - private String callbackUrl; + private String uri; private WebhookSubscriptionFormat format; @@ -89,7 +96,7 @@ public static class Builder { private String queryName; public WebhookSubscriptionsGraphQLQuery build() { - return new WebhookSubscriptionsGraphQLQuery(first, after, last, before, reverse, sortKey, query, callbackUrl, format, topics, queryName, fieldsSet); + return new WebhookSubscriptionsGraphQLQuery(first, after, last, before, reverse, sortKey, query, uri, format, topics, queryName, fieldsSet); } @@ -165,11 +172,12 @@ public Builder query(String query) { } /** - * Callback URL to filter by. + * URI to filter by. Supports an HTTPS URL, a Google Pub/Sub URI + * (pubsub://{project-id}:{topic-id}) or an Amazon EventBridge event source ARN. */ - public Builder callbackUrl(String callbackUrl) { - this.callbackUrl = callbackUrl; - this.fieldsSet.add("callbackUrl"); + public Builder uri(String uri) { + this.uri = uri; + this.fieldsSet.add("uri"); return this; } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AbandonedCheckout.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AbandonedCheckout.java index b633aeb5..246e93ba 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AbandonedCheckout.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AbandonedCheckout.java @@ -9,7 +9,16 @@ import java.util.Objects; /** - * A checkout that was abandoned by the customer. + * An incomplete checkout where the customer added items and provided contact + * information but didn't complete the purchase. Tracks the customer's cart + * contents, pricing details, addresses, and timestamps to enable recovery + * campaigns and abandonment analytics. + * + * The checkout includes a recovery URL that merchants can send to customers to + * resume their purchase. [`AbandonedCheckoutLineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AbandonedCheckoutLineItem) + * objects preserve the original + * [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) + * selections, quantities, and pricing at the time of abandonment. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AbandonedCheckoutLineItem.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AbandonedCheckoutLineItem.java index f70a3b0a..9542dfb4 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AbandonedCheckoutLineItem.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AbandonedCheckoutLineItem.java @@ -71,6 +71,11 @@ public class AbandonedCheckoutLineItem implements com.shopify.admin.types.Node { */ private MoneyBag originalUnitPriceSet; + /** + * The parent relationship for this line item. + */ + private AbandonedCheckoutLineItemParentRelationship parentRelationship; + /** * Product for this line item. * NULL for custom line items and products that were deleted after checkout began. @@ -231,6 +236,18 @@ public void setOriginalUnitPriceSet(MoneyBag originalUnitPriceSet) { this.originalUnitPriceSet = originalUnitPriceSet; } + /** + * The parent relationship for this line item. + */ + public AbandonedCheckoutLineItemParentRelationship getParentRelationship() { + return parentRelationship; + } + + public void setParentRelationship( + AbandonedCheckoutLineItemParentRelationship parentRelationship) { + this.parentRelationship = parentRelationship; + } + /** * Product for this line item. * NULL for custom line items and products that were deleted after checkout began. @@ -302,7 +319,7 @@ public void setVariantTitle(String variantTitle) { @Override public String toString() { - return "AbandonedCheckoutLineItem{components='" + components + "', customAttributes='" + customAttributes + "', discountAllocations='" + discountAllocations + "', discountedTotalPriceSet='" + discountedTotalPriceSet + "', discountedTotalPriceWithCodeDiscount='" + discountedTotalPriceWithCodeDiscount + "', discountedUnitPriceSet='" + discountedUnitPriceSet + "', discountedUnitPriceWithCodeDiscount='" + discountedUnitPriceWithCodeDiscount + "', id='" + id + "', image='" + image + "', originalTotalPriceSet='" + originalTotalPriceSet + "', originalUnitPriceSet='" + originalUnitPriceSet + "', product='" + product + "', quantity='" + quantity + "', sku='" + sku + "', title='" + title + "', variant='" + variant + "', variantTitle='" + variantTitle + "'}"; + return "AbandonedCheckoutLineItem{components='" + components + "', customAttributes='" + customAttributes + "', discountAllocations='" + discountAllocations + "', discountedTotalPriceSet='" + discountedTotalPriceSet + "', discountedTotalPriceWithCodeDiscount='" + discountedTotalPriceWithCodeDiscount + "', discountedUnitPriceSet='" + discountedUnitPriceSet + "', discountedUnitPriceWithCodeDiscount='" + discountedUnitPriceWithCodeDiscount + "', id='" + id + "', image='" + image + "', originalTotalPriceSet='" + originalTotalPriceSet + "', originalUnitPriceSet='" + originalUnitPriceSet + "', parentRelationship='" + parentRelationship + "', product='" + product + "', quantity='" + quantity + "', sku='" + sku + "', title='" + title + "', variant='" + variant + "', variantTitle='" + variantTitle + "'}"; } @Override @@ -321,6 +338,7 @@ public boolean equals(Object o) { Objects.equals(image, that.image) && Objects.equals(originalTotalPriceSet, that.originalTotalPriceSet) && Objects.equals(originalUnitPriceSet, that.originalUnitPriceSet) && + Objects.equals(parentRelationship, that.parentRelationship) && Objects.equals(product, that.product) && quantity == that.quantity && Objects.equals(sku, that.sku) && @@ -331,7 +349,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(components, customAttributes, discountAllocations, discountedTotalPriceSet, discountedTotalPriceWithCodeDiscount, discountedUnitPriceSet, discountedUnitPriceWithCodeDiscount, id, image, originalTotalPriceSet, originalUnitPriceSet, product, quantity, sku, title, variant, variantTitle); + return Objects.hash(components, customAttributes, discountAllocations, discountedTotalPriceSet, discountedTotalPriceWithCodeDiscount, discountedUnitPriceSet, discountedUnitPriceWithCodeDiscount, id, image, originalTotalPriceSet, originalUnitPriceSet, parentRelationship, product, quantity, sku, title, variant, variantTitle); } public static Builder newBuilder() { @@ -396,6 +414,11 @@ public static class Builder { */ private MoneyBag originalUnitPriceSet; + /** + * The parent relationship for this line item. + */ + private AbandonedCheckoutLineItemParentRelationship parentRelationship; + /** * Product for this line item. * NULL for custom line items and products that were deleted after checkout began. @@ -442,6 +465,7 @@ public AbandonedCheckoutLineItem build() { result.image = this.image; result.originalTotalPriceSet = this.originalTotalPriceSet; result.originalUnitPriceSet = this.originalUnitPriceSet; + result.parentRelationship = this.parentRelationship; result.product = this.product; result.quantity = this.quantity; result.sku = this.sku; @@ -543,6 +567,15 @@ public Builder originalUnitPriceSet(MoneyBag originalUnitPriceSet) { return this; } + /** + * The parent relationship for this line item. + */ + public Builder parentRelationship( + AbandonedCheckoutLineItemParentRelationship parentRelationship) { + this.parentRelationship = parentRelationship; + return this; + } + /** * Product for this line item. * NULL for custom line items and products that were deleted after checkout began. diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AbandonedCheckoutLineItemParentRelationship.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AbandonedCheckoutLineItemParentRelationship.java new file mode 100644 index 00000000..387eaa44 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AbandonedCheckoutLineItemParentRelationship.java @@ -0,0 +1,73 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * The line relationship between two line items in an abandoned checkout. + */ +public class AbandonedCheckoutLineItemParentRelationship { + /** + * The parent line item of the current line item. + */ + private AbandonedCheckoutLineItem _parent; + + public AbandonedCheckoutLineItemParentRelationship() { + } + + /** + * The parent line item of the current line item. + */ + public AbandonedCheckoutLineItem getParent() { + return _parent; + } + + public void setParent(AbandonedCheckoutLineItem _parent) { + this._parent = _parent; + } + + @Override + public String toString() { + return "AbandonedCheckoutLineItemParentRelationship{parent='" + _parent + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + AbandonedCheckoutLineItemParentRelationship that = (AbandonedCheckoutLineItemParentRelationship) o; + return Objects.equals(_parent, that._parent); + } + + @Override + public int hashCode() { + return Objects.hash(_parent); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The parent line item of the current line item. + */ + private AbandonedCheckoutLineItem _parent; + + public AbandonedCheckoutLineItemParentRelationship build() { + AbandonedCheckoutLineItemParentRelationship result = new AbandonedCheckoutLineItemParentRelationship(); + result._parent = this._parent; + return result; + } + + /** + * The parent line item of the current line item. + */ + public Builder _parent(AbandonedCheckoutLineItem _parent) { + this._parent = _parent; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Abandonment.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Abandonment.java index 91fe3b11..33ffa968 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Abandonment.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Abandonment.java @@ -9,7 +9,17 @@ import java.util.Objects; /** - * A browse, cart, or checkout that was abandoned by a customer. + * Tracks a [customer](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer)'s + * incomplete shopping journey, whether they abandoned while browsing + * [products](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product), + * adding items to cart, or during checkout. Provides data about the customer's + * behavior and products they interacted with. + * + * The abandonment includes fields that indicate whether the customer has completed + * any [orders](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) or [draft + * orders](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrder) + * after the abandonment occurred. It also tracks when emails were sent and how + * long since the customer's last activity across different abandonment types. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AccessScope.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AccessScope.java index 1a17c3b1..a85ce3ec 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AccessScope.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AccessScope.java @@ -6,8 +6,17 @@ import java.util.Objects; /** - * The permission required to access a Shopify Admin API or Storefront API resource - * for a shop. Merchants grant access scopes that are requested by applications. + * A permission that controls access to [GraphQL Admin API](https://shopify.dev/docs/api/usage/access-scopes#authenticated-access-scopes) or [Storefront API](https://shopify.dev/docs/api/usage/access-scopes#unauthenticated-access-scopes) + * types. Each scope defines what data an + * [`App`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App) can read + * or write, following the format `{action}_{resource}` where action is typically + * "read" or "write". + * + * Apps declare required and optional access scopes in their configuration. During + * installation, merchants review and grant these permissions, determining what + * shop data the app can access. The granted scopes remain active until the + * merchant uninstalls the app or revokes them. Apps can programmatically revoke + * their own dynamically granted optional scopes using [`appRevokeAccessScopes`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/appRevokeAccessScopes). */ public class AccessScope { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AdditionalFee.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AdditionalFee.java index f2908d09..aa1c1e28 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AdditionalFee.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AdditionalFee.java @@ -8,7 +8,16 @@ import java.util.Objects; /** - * The additional fees that have been applied to the order. + * Additional fees applied to an + * [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) + * beyond the standard product and shipping costs. Additional fees typically + * include duties, import fees, or other special handling charges that need + * separate tracking from regular + * [`LineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItem) objects. + * + * Each fee includes its name, price in both shop and presentment currencies, and + * any applicable taxes broken down by + * [`TaxLine`](https://shopify.dev/docs/api/admin-graphql/latest/objects/TaxLine). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AllDiscountItems.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AllDiscountItems.java index 26da7424..d490dbda 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AllDiscountItems.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AllDiscountItems.java @@ -7,7 +7,16 @@ import java.util.Objects; /** - * Targets all items the cart for a specified discount. + * Represents a discount configuration that applies to all items in a customer's + * cart without restriction. This object enables store-wide promotions that affect + * every product equally. + * + * For example, a "Sitewide 10% Off Everything" sale would target all items, + * ensuring that every product in the customer's cart receives the promotional + * discount regardless of category or collection. + * + * This universal targeting approach simplifies promotional campaigns and provides + * customers with clear, straightforward savings across the entire product catalog. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/App.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/App.java index 5d3710af..32b57a62 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/App.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/App.java @@ -8,7 +8,14 @@ import java.util.Objects; /** - * A Shopify application. + * A Shopify application that extends store functionality. Apps integrate with + * Shopify through APIs to add features, automate workflows, or connect external services. + * + * Provides metadata about the app including its developer information and listing + * details in the Shopify App Store. Use the [`installation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App#field-App.fields.installation) + * field to determine if the app is currently installed on the shop and access + * installation-specific details like granted [`AccessScope`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AccessScope) objects. Check [`failedRequirements`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App#field-App.fields.failedRequirements) + * before installation to identify any prerequisites that must be met. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE @@ -95,7 +102,7 @@ public class App implements com.shopify.admin.types.Node { private String id; /** - * Webpage where you can install the app. + * Webpage where you can install the app, if app requires explicit user permission. */ private String installUrl; @@ -377,7 +384,7 @@ public void setId(String id) { } /** - * Webpage where you can install the app. + * Webpage where you can install the app, if app requires explicit user permission. */ public String getInstallUrl() { return installUrl; @@ -731,7 +738,7 @@ public static class Builder { private String id; /** - * Webpage where you can install the app. + * Webpage where you can install the app, if app requires explicit user permission. */ private String installUrl; @@ -1002,7 +1009,7 @@ public Builder id(String id) { } /** - * Webpage where you can install the app. + * Webpage where you can install the app, if app requires explicit user permission. */ public Builder installUrl(String installUrl) { this.installUrl = installUrl; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AppCredit.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AppCredit.java index 301ab62d..8b03d488 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AppCredit.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AppCredit.java @@ -8,7 +8,26 @@ import java.util.Objects; /** - * App credits can be applied by the merchant towards future app purchases, subscriptions, or usage records in Shopify. + * Represents monetary credits that merchants can apply toward future app + * purchases, subscriptions, or usage-based billing within their Shopify store. App + * credits provide a flexible way to offer refunds, promotional credits, or + * compensation without processing external payments. + * + * For example, if a merchant experiences service downtime, an app might issue + * credits equivalent to the affected billing period. These credits can apply to + * future charges, reducing the merchant's next invoice or extending their + * subscription period. + * + * Use the `AppCredit` object to: + * - Issue refunds for service interruptions or billing disputes + * - Provide promotional credits for new merchant onboarding + * - Compensate merchants for app-related issues or downtime + * - Create loyalty rewards or referral bonuses within your billing system + * - Track credit balances and application history for accounting purposes + * + * For comprehensive billing strategies and credit management patterns, see the + * [subscription billing + * guide](https://shopify.dev/docs/apps/launch/billing/subscription-billing). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AppInstallation.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AppInstallation.java index 7725f7b1..c5b29fc3 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AppInstallation.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AppInstallation.java @@ -8,7 +8,15 @@ import java.util.Objects; /** - * Represents an installed application on a shop. + * An app installed on a shop. Each installation tracks the permissions granted to + * the app through [`AccessScope`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AccessScope) + * objects, along with billing subscriptions and [`Metafield`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Metafield) objects. + * + * The installation provides metafields that only the owning + * [`App`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App) can + * access. These metafields store app-specific configuration that merchants and + * other apps can't modify. The installation also provides URLs for launching and + * uninstalling the app, along with any active [`AppSubscription`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AppSubscription) objects or [`AppPurchaseOneTime`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AppPurchaseOneTime) purchases. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AppPlanV2.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AppPlanV2.java index f2b9e6c6..7976c7ba 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AppPlanV2.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AppPlanV2.java @@ -6,7 +6,13 @@ import java.util.Objects; /** - * The app plan that the merchant is subscribed to. + * Contains the pricing details for the app plan that a merchant has subscribed to within their current billing arrangement. + * + * This simplified object focuses on the essential pricing information merchants + * need to understand their current subscription costs and billing structure. + * + * Details about subscription management and pricing strategies are available in + * the [app billing documentation](https://shopify.dev/docs/apps/launch/billing). */ public class AppPlanV2 { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AppPurchaseOneTime.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AppPurchaseOneTime.java index 5778acc4..c0e0ba65 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AppPurchaseOneTime.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AppPurchaseOneTime.java @@ -8,7 +8,35 @@ import java.util.Objects; /** - * Services and features purchased once by a store. + * Represents a one-time purchase of app services or features by a merchant, + * tracking the transaction details and status throughout the billing lifecycle. + * This object captures essential information about non-recurring charges, + * including price and merchant acceptance status. + * + * One-time purchases are particularly valuable for apps offering premium features, + * professional services, or digital products that don't require ongoing + * subscriptions. For instance, a photography app might sell premium filters as + * one-time purchases, while a marketing app could charge for individual campaign + * setups or advanced analytics reports. + * + * Use the `AppPurchaseOneTime` object to: + * - Track the status of individual feature purchases and service charges + * - Track payment status for premium content or digital products + * - Access purchase details to enable or disable features based on payment status + * + * The purchase status indicates whether the charge is pending merchant approval, + * has been accepted and processed, or was declined. This status tracking is + * crucial for apps that need to conditionally enable features based on successful + * payment completion. + * + * Purchase records include creation timestamps, pricing details, and test flags to + * distinguish between production charges and development testing. The test flag + * ensures that development and staging environments don't generate actual charges + * while maintaining realistic billing flow testing. + * + * For detailed implementation patterns and billing best practices, see the + * [one-time-charges + * page](https://shopify.dev/docs/apps/launch/billing/one-time-charges). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AppRevenueAttributionRecord.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AppRevenueAttributionRecord.java index bf54f003..fcf71de0 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AppRevenueAttributionRecord.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AppRevenueAttributionRecord.java @@ -8,7 +8,36 @@ import java.util.Objects; /** - * Represents app revenue that was captured externally by the partner. + * Tracks revenue that was captured outside of Shopify's billing system but needs + * to be attributed to the app for comprehensive revenue reporting and partner + * analytics. This object enables accurate revenue tracking when apps process + * payments through external systems while maintaining visibility into total app performance. + * + * External revenue attribution is essential for apps that offer multiple payment + * channels or process certain transactions outside Shopify's billing + * infrastructure. For example, an enterprise app might process large custom + * contracts through external payment processors, or a marketplace app could handle + * direct merchant-to-merchant transactions that still generate app commissions. + * + * Use the `AppRevenueAttributionRecord` object to: + * - Report revenue from external payment processors and billing systems + * - Track commission-based earnings from marketplace or referral activities + * - Maintain comprehensive revenue analytics across multiple payment channels + * - Ensure accurate partner revenue sharing and commission calculations + * - Generate complete financial reports that include all app-generated revenue streams + * - Support compliance requirements for external revenue documentation + * + * Each attribution record includes the captured amount, external transaction + * timestamp, and idempotency keys to prevent duplicate reporting. The record type + * field categorizes different revenue streams, enabling detailed analytics and + * reporting segmentation. + * + * Revenue attribution records are particularly important for apps participating in + * Shopify's partner program, as they ensure accurate revenue sharing calculations + * and comprehensive performance metrics. The captured timestamp reflects when the + * external payment was processed, not when the attribution record was created in Shopify. + * + * For detailed revenue attribution values, see the [AppRevenueAttributionType enum](https://shopify.dev/docs/api/admin-graphql/latest/enums/AppRevenueAttributionType). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AppSubscription.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AppSubscription.java index 2e1fc0b4..27c8cc36 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AppSubscription.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AppSubscription.java @@ -9,7 +9,21 @@ import java.util.Objects; /** - * Provides users access to services and/or features for a duration of time. + * A recurring billing agreement that associates an + * [`App`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App) with a + * merchant's shop. Each subscription contains one or more [`AppSubscriptionLineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AppSubscriptionLineItem) + * objects that define the pricing structure. The pricing structure can include + * recurring charges, usage-based pricing, or both. + * + * The subscription tracks billing details including the current period end date, + * trial days, and [`AppSubscriptionStatus`](https://shopify.dev/docs/api/admin-graphql/latest/enums/AppSubscriptionStatus). + * + * Merchants must approve subscriptions through a [confirmation URL](https://shopify.dev/docs/api/admin-graphql/latest/mutations/appSubscriptionCreate#returns-confirmationUrl) + * before billing begins. Test subscriptions allow developers to verify billing + * flows without actual charges. + * + * Learn more about [subscription + * billing](https://shopify.dev/docs/apps/launch/billing/subscription-billing) and [testing charges](https://shopify.dev/docs/apps/launch/billing/managed-pricing#test-charges). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AppSubscriptionLineItem.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AppSubscriptionLineItem.java index 5acc8a83..769903e3 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AppSubscriptionLineItem.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AppSubscriptionLineItem.java @@ -6,7 +6,23 @@ import java.util.Objects; /** - * The plan attached to an app subscription. + * Represents a component of an app subscription that contains pricing details for + * either recurring fees or usage-based charges. Each subscription has exactly 1 or + * 2 line items - one for recurring fees and/or one for usage fees. + * + * If a subscription has both recurring and usage pricing, there will be 2 line + * items. If it only has one type of pricing, the subscription will have a single + * line item for that pricing model. + * + * Use the `AppSubscriptionLineItem` object to: + * - View the pricing terms a merchant has agreed to + * - Distinguish between recurring and usage fee components + * - Access detailed billing information for each pricing component + * + * This read-only object provides visibility into the subscription's pricing structure without allowing modifications. + * + * Read about subscription pricing models in the [billing architecture + * guide](https://shopify.dev/docs/apps/launch/billing/subscription-billing). */ public class AppSubscriptionLineItem { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AppUninstallAppUninstallError.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AppUninstallAppUninstallError.java new file mode 100644 index 00000000..81511e40 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AppUninstallAppUninstallError.java @@ -0,0 +1,140 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * Represents an error that happens while uninstalling an app. + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NONE +) +public class AppUninstallAppUninstallError implements com.shopify.admin.types.DisplayableError { + /** + * The error code. + */ + private AppUninstallAppUninstallErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public AppUninstallAppUninstallError() { + } + + /** + * The error code. + */ + public AppUninstallAppUninstallErrorCode getCode() { + return code; + } + + public void setCode(AppUninstallAppUninstallErrorCode code) { + this.code = code; + } + + /** + * The path to the input field that caused the error. + */ + public List getField() { + return field; + } + + public void setField(List field) { + this.field = field; + } + + /** + * The error message. + */ + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + @Override + public String toString() { + return "AppUninstallAppUninstallError{code='" + code + "', field='" + field + "', message='" + message + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + AppUninstallAppUninstallError that = (AppUninstallAppUninstallError) o; + return Objects.equals(code, that.code) && + Objects.equals(field, that.field) && + Objects.equals(message, that.message); + } + + @Override + public int hashCode() { + return Objects.hash(code, field, message); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The error code. + */ + private AppUninstallAppUninstallErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public AppUninstallAppUninstallError build() { + AppUninstallAppUninstallError result = new AppUninstallAppUninstallError(); + result.code = this.code; + result.field = this.field; + result.message = this.message; + return result; + } + + /** + * The error code. + */ + public Builder code(AppUninstallAppUninstallErrorCode code) { + this.code = code; + return this; + } + + /** + * The path to the input field that caused the error. + */ + public Builder field(List field) { + this.field = field; + return this; + } + + /** + * The error message. + */ + public Builder message(String message) { + this.message = message; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AppUninstallAppUninstallErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AppUninstallAppUninstallErrorCode.java new file mode 100644 index 00000000..80081dc5 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AppUninstallAppUninstallErrorCode.java @@ -0,0 +1,14 @@ +package com.shopify.admin.types; + +/** + * Possible error codes that can be returned by `AppUninstallAppUninstallError`. + */ +public enum AppUninstallAppUninstallErrorCode { + APP_NOT_FOUND, + + APP_NOT_INSTALLED, + + USER_PERMISSIONS_INSUFFICIENT, + + APP_UNINSTALL_ERROR +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AppUninstallPayload.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AppUninstallPayload.java new file mode 100644 index 00000000..6221b029 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AppUninstallPayload.java @@ -0,0 +1,105 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * Return type for `appUninstall` mutation. + */ +public class AppUninstallPayload { + /** + * The uninstalled app. + */ + private App app; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public AppUninstallPayload() { + } + + /** + * The uninstalled app. + */ + public App getApp() { + return app; + } + + public void setApp(App app) { + this.app = app; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public List getUserErrors() { + return userErrors; + } + + public void setUserErrors(List userErrors) { + this.userErrors = userErrors; + } + + @Override + public String toString() { + return "AppUninstallPayload{app='" + app + "', userErrors='" + userErrors + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + AppUninstallPayload that = (AppUninstallPayload) o; + return Objects.equals(app, that.app) && + Objects.equals(userErrors, that.userErrors); + } + + @Override + public int hashCode() { + return Objects.hash(app, userErrors); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The uninstalled app. + */ + private App app; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public AppUninstallPayload build() { + AppUninstallPayload result = new AppUninstallPayload(); + result.app = this.app; + result.userErrors = this.userErrors; + return result; + } + + /** + * The uninstalled app. + */ + public Builder app(App app) { + this.app = app; + return this; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public Builder userErrors(List userErrors) { + this.userErrors = userErrors; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AppUsagePricing.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AppUsagePricing.java index 9f6d06d8..bd8d4301 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AppUsagePricing.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/AppUsagePricing.java @@ -7,8 +7,24 @@ import java.util.Objects; /** - * Defines a usage pricing model for the app subscription. - * These charges are variable based on how much the merchant uses the app. + * Defines usage-based pricing terms for app subscriptions where merchants pay + * based on their actual consumption of app features or services. This pricing + * model provides flexibility for merchants who want to pay only for what they use + * rather than fixed monthly fees. + * + * For example, an email marketing app might charge variable pricing per email + * sent, with a monthly cap of variable pricing, allowing small merchants to pay + * minimal amounts while protecting larger merchants from excessive charges. + * + * Use the `AppUsagePricing` object to: + * - View consumption-based billing for variable app usage + * - See spending caps that protect merchants from unexpected charges + * + * The balance and capped amount fields provide apps with data about current usage + * costs and remaining budget within the billing period, which apps can present to + * merchants to promote transparency in variable pricing. + * + * For implementation guidance, see the [usage billing documentation](https://shopify.dev/docs/apps/launch/billing/subscription-billing/create-usage-based-subscriptions). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Article.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Article.java index 527ddc77..8668a038 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Article.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Article.java @@ -9,12 +9,19 @@ import java.util.Objects; /** - * An article in the blogging system. + * An article that contains content, author information, and metadata. Articles belong + * to a [`Blog`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Blog) + * and can include HTML-formatted body text, summary text, and an associated image. + * Merchants publish articles to share content, drive traffic, and engage customers. + * + * Articles can be organized with tags and published immediately or scheduled for + * future publication using the [`publishedAt`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Article#field-Article.fields.publishedAt) + * timestamp. The API manages comments on articles when the blog's comment policy enables them. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE ) -public class Article implements MetafieldReferencer, com.shopify.admin.types.HasEvents, com.shopify.admin.types.HasMetafieldDefinitions, com.shopify.admin.types.HasMetafields, com.shopify.admin.types.HasPublishedTranslations, com.shopify.admin.types.Navigable, com.shopify.admin.types.Node { +public class Article implements MetafieldReference, MetafieldReferencer, com.shopify.admin.types.HasEvents, com.shopify.admin.types.HasMetafieldDefinitions, com.shopify.admin.types.HasMetafields, com.shopify.admin.types.HasPublishedTranslations, com.shopify.admin.types.Navigable, com.shopify.admin.types.Node { /** * The name of the author of the article. */ @@ -36,7 +43,7 @@ public class Article implements MetafieldReferencer, com.shopify.admin.types.Has private CommentConnection comments; /** - * Count of comments. + * Count of comments. Limited to a maximum of 10000 by default. */ private Count commentsCount; @@ -183,7 +190,7 @@ public void setComments(CommentConnection comments) { } /** - * Count of comments. + * Count of comments. Limited to a maximum of 10000 by default. */ public Count getCommentsCount() { return commentsCount; @@ -455,7 +462,7 @@ public static class Builder { private CommentConnection comments; /** - * Count of comments. + * Count of comments. Limited to a maximum of 10000 by default. */ private Count commentsCount; @@ -614,7 +621,7 @@ public Builder comments(CommentConnection comments) { } /** - * Count of comments. + * Count of comments. Limited to a maximum of 10000 by default. */ public Builder commentsCount(Count commentsCount) { this.commentsCount = commentsCount; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ArticleAuthor.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ArticleAuthor.java index 3c33e503..54eadfc4 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ArticleAuthor.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ArticleAuthor.java @@ -6,7 +6,19 @@ import java.util.Objects; /** - * Represents an article author in an Article. + * Represents the author of an article. This object provides the author's full name for attribution purposes. + * + * The `ArticleAuthor` is a simple object that contains only the author's name + * field. When articles are created or updated, the author information is stored + * and can be displayed alongside the article content. + * + * Use the `ArticleAuthor` object to: + * - Retrieve the author's name for display in article bylines + * - Show author attribution in article listings + * - Display who wrote specific content + * + * Note: This object only contains the author's full name. It does not include + * additional author details like bio, email, or social media links. */ public class ArticleAuthor { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ArticleUpdateUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ArticleUpdateUserErrorCode.java index 98730789..d143b7d3 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ArticleUpdateUserErrorCode.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ArticleUpdateUserErrorCode.java @@ -22,5 +22,9 @@ public enum ArticleUpdateUserErrorCode { TAKEN, - INVALID + INVALID, + + INVALID_VALUE, + + INVALID_TYPE } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Attribute.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Attribute.java index 8d78983a..b8d5af0f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Attribute.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Attribute.java @@ -6,11 +6,17 @@ import java.util.Objects; /** - * Represents a generic custom attribute, such as whether an order is a customer's first. + * A custom property. Attributes are used to store additional information about a Shopify resource, such as + * products, customers, or orders. Attributes are stored as key-value pairs. + * + * For example, a list of attributes might include whether a customer is a first-time buyer (`"customer_first_order": "true"`), + * whether an order is gift-wrapped (`"gift_wrapped": "true"`), a preferred delivery date + * (`"preferred_delivery_date": "2025-10-01"`), the discount applied (`"loyalty_discount_applied": "10%"`), and any + * notes provided by the customer (`"customer_notes": "Please leave at the front door"`). */ public class Attribute { /** - * The key or name of the attribute. For example, `"customersFirstOrder"`. + * The key or name of the attribute. For example, `"customer_first_order"`. */ private String key; @@ -23,7 +29,7 @@ public Attribute() { } /** - * The key or name of the attribute. For example, `"customersFirstOrder"`. + * The key or name of the attribute. For example, `"customer_first_order"`. */ public String getKey() { return key; @@ -69,7 +75,7 @@ public static Builder newBuilder() { public static class Builder { /** - * The key or name of the attribute. For example, `"customersFirstOrder"`. + * The key or name of the attribute. For example, `"customer_first_order"`. */ private String key; @@ -86,7 +92,7 @@ public Attribute build() { } /** - * The key or name of the attribute. For example, `"customersFirstOrder"`. + * The key or name of the attribute. For example, `"customer_first_order"`. */ public Builder key(String key) { this.key = key; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Audience.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Audience.java new file mode 100644 index 00000000..1dd2416e --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Audience.java @@ -0,0 +1,10 @@ +package com.shopify.admin.types; + +/** + * The intended audience for the order status page. + */ +public enum Audience { + CUSTOMERVIEW, + + MERCHANTVIEW +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BankAccount.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BankAccount.java new file mode 100644 index 00000000..cc7122e3 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BankAccount.java @@ -0,0 +1,201 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * Represents a bank account payment instrument. + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NONE +) +public class BankAccount implements CustomerPaymentInstrument, PaymentInstrument { + /** + * The type of account holder. + */ + private BankAccountHolderType accountHolderType; + + /** + * The type of bank account. + */ + private BankAccountType accountType; + + /** + * The name of the bank. + */ + private String bankName; + + /** + * The billing address associated with the bank account. + */ + private CustomerPaymentInstrumentBillingAddress billingAddress; + + /** + * The last four digits of the account number. + */ + private String lastDigits; + + public BankAccount() { + } + + /** + * The type of account holder. + */ + public BankAccountHolderType getAccountHolderType() { + return accountHolderType; + } + + public void setAccountHolderType(BankAccountHolderType accountHolderType) { + this.accountHolderType = accountHolderType; + } + + /** + * The type of bank account. + */ + public BankAccountType getAccountType() { + return accountType; + } + + public void setAccountType(BankAccountType accountType) { + this.accountType = accountType; + } + + /** + * The name of the bank. + */ + public String getBankName() { + return bankName; + } + + public void setBankName(String bankName) { + this.bankName = bankName; + } + + /** + * The billing address associated with the bank account. + */ + public CustomerPaymentInstrumentBillingAddress getBillingAddress() { + return billingAddress; + } + + public void setBillingAddress(CustomerPaymentInstrumentBillingAddress billingAddress) { + this.billingAddress = billingAddress; + } + + /** + * The last four digits of the account number. + */ + public String getLastDigits() { + return lastDigits; + } + + public void setLastDigits(String lastDigits) { + this.lastDigits = lastDigits; + } + + @Override + public String toString() { + return "BankAccount{accountHolderType='" + accountHolderType + "', accountType='" + accountType + "', bankName='" + bankName + "', billingAddress='" + billingAddress + "', lastDigits='" + lastDigits + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + BankAccount that = (BankAccount) o; + return Objects.equals(accountHolderType, that.accountHolderType) && + Objects.equals(accountType, that.accountType) && + Objects.equals(bankName, that.bankName) && + Objects.equals(billingAddress, that.billingAddress) && + Objects.equals(lastDigits, that.lastDigits); + } + + @Override + public int hashCode() { + return Objects.hash(accountHolderType, accountType, bankName, billingAddress, lastDigits); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The type of account holder. + */ + private BankAccountHolderType accountHolderType; + + /** + * The type of bank account. + */ + private BankAccountType accountType; + + /** + * The name of the bank. + */ + private String bankName; + + /** + * The billing address associated with the bank account. + */ + private CustomerPaymentInstrumentBillingAddress billingAddress; + + /** + * The last four digits of the account number. + */ + private String lastDigits; + + public BankAccount build() { + BankAccount result = new BankAccount(); + result.accountHolderType = this.accountHolderType; + result.accountType = this.accountType; + result.bankName = this.bankName; + result.billingAddress = this.billingAddress; + result.lastDigits = this.lastDigits; + return result; + } + + /** + * The type of account holder. + */ + public Builder accountHolderType(BankAccountHolderType accountHolderType) { + this.accountHolderType = accountHolderType; + return this; + } + + /** + * The type of bank account. + */ + public Builder accountType(BankAccountType accountType) { + this.accountType = accountType; + return this; + } + + /** + * The name of the bank. + */ + public Builder bankName(String bankName) { + this.bankName = bankName; + return this; + } + + /** + * The billing address associated with the bank account. + */ + public Builder billingAddress(CustomerPaymentInstrumentBillingAddress billingAddress) { + this.billingAddress = billingAddress; + return this; + } + + /** + * The last four digits of the account number. + */ + public Builder lastDigits(String lastDigits) { + this.lastDigits = lastDigits; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BankAccountHolderType.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BankAccountHolderType.java new file mode 100644 index 00000000..b1e5df41 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BankAccountHolderType.java @@ -0,0 +1,10 @@ +package com.shopify.admin.types; + +/** + * The type of bank account holder. + */ +public enum BankAccountHolderType { + COMPANY, + + INDIVIDUAL +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BankAccountType.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BankAccountType.java new file mode 100644 index 00000000..d6606df9 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BankAccountType.java @@ -0,0 +1,10 @@ +package com.shopify.admin.types; + +/** + * The type of bank account. + */ +public enum BankAccountType { + CHECKING, + + SAVINGS +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BasePaymentDetails.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BasePaymentDetails.java index 0d3d95b5..84bbd39e 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BasePaymentDetails.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BasePaymentDetails.java @@ -15,6 +15,7 @@ @JsonSubTypes({ @JsonSubTypes.Type(value = CardPaymentDetails.class, name = "CardPaymentDetails"), @JsonSubTypes.Type(value = LocalPaymentMethodsPaymentDetails.class, name = "LocalPaymentMethodsPaymentDetails"), + @JsonSubTypes.Type(value = PaypalWalletPaymentDetails.class, name = "PaypalWalletPaymentDetails"), @JsonSubTypes.Type(value = ShopPayInstallmentsPaymentDetails.class, name = "ShopPayInstallmentsPaymentDetails") }) public interface BasePaymentDetails { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BasicEvent.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BasicEvent.java index e8d6b492..3437a416 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BasicEvent.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BasicEvent.java @@ -119,6 +119,11 @@ public class BasicEvent implements com.shopify.admin.types.Event, com.shopify.ad */ private boolean attributeToUser; + /** + * The entity which performed the action that generated the event. + */ + private String author; + /** * The date and time when the event was created. */ @@ -245,6 +250,17 @@ public void setAttributeToUser(boolean attributeToUser) { this.attributeToUser = attributeToUser; } + /** + * The entity which performed the action that generated the event. + */ + public String getAuthor() { + return author; + } + + public void setAuthor(String author) { + this.author = author; + } + /** * The date and time when the event was created. */ @@ -347,7 +363,7 @@ public void setSubjectType(EventSubjectType subjectType) { @Override public String toString() { - return "BasicEvent{action='" + action + "', additionalContent='" + additionalContent + "', additionalData='" + additionalData + "', appTitle='" + appTitle + "', arguments='" + arguments + "', attributeToApp='" + attributeToApp + "', attributeToUser='" + attributeToUser + "', createdAt='" + createdAt + "', criticalAlert='" + criticalAlert + "', hasAdditionalContent='" + hasAdditionalContent + "', id='" + id + "', message='" + message + "', secondaryMessage='" + secondaryMessage + "', subject='" + subject + "', subjectId='" + subjectId + "', subjectType='" + subjectType + "'}"; + return "BasicEvent{action='" + action + "', additionalContent='" + additionalContent + "', additionalData='" + additionalData + "', appTitle='" + appTitle + "', arguments='" + arguments + "', attributeToApp='" + attributeToApp + "', attributeToUser='" + attributeToUser + "', author='" + author + "', createdAt='" + createdAt + "', criticalAlert='" + criticalAlert + "', hasAdditionalContent='" + hasAdditionalContent + "', id='" + id + "', message='" + message + "', secondaryMessage='" + secondaryMessage + "', subject='" + subject + "', subjectId='" + subjectId + "', subjectType='" + subjectType + "'}"; } @Override @@ -362,6 +378,7 @@ public boolean equals(Object o) { Objects.equals(arguments, that.arguments) && attributeToApp == that.attributeToApp && attributeToUser == that.attributeToUser && + Objects.equals(author, that.author) && Objects.equals(createdAt, that.createdAt) && criticalAlert == that.criticalAlert && hasAdditionalContent == that.hasAdditionalContent && @@ -375,7 +392,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(action, additionalContent, additionalData, appTitle, arguments, attributeToApp, attributeToUser, createdAt, criticalAlert, hasAdditionalContent, id, message, secondaryMessage, subject, subjectId, subjectType); + return Objects.hash(action, additionalContent, additionalData, appTitle, arguments, attributeToApp, attributeToUser, author, createdAt, criticalAlert, hasAdditionalContent, id, message, secondaryMessage, subject, subjectId, subjectType); } public static Builder newBuilder() { @@ -418,6 +435,11 @@ public static class Builder { */ private boolean attributeToUser; + /** + * The entity which performed the action that generated the event. + */ + private String author; + /** * The date and time when the event was created. */ @@ -473,6 +495,7 @@ public BasicEvent build() { result.arguments = this.arguments; result.attributeToApp = this.attributeToApp; result.attributeToUser = this.attributeToUser; + result.author = this.author; result.createdAt = this.createdAt; result.criticalAlert = this.criticalAlert; result.hasAdditionalContent = this.hasAdditionalContent; @@ -541,6 +564,14 @@ public Builder attributeToUser(boolean attributeToUser) { return this; } + /** + * The entity which performed the action that generated the event. + */ + public Builder author(String author) { + this.author = author; + return this; + } + /** * The date and time when the event was created. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BillingAttemptUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BillingAttemptUserErrorCode.java index 2879ff73..82d8b68a 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BillingAttemptUserErrorCode.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BillingAttemptUserErrorCode.java @@ -28,5 +28,7 @@ public enum BillingAttemptUserErrorCode { CONTRACT_TERMINATED, - CONTRACT_PAUSED + CONTRACT_PAUSED, + + THROTTLED } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Blog.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Blog.java index 8bdeca19..7a3c5399 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Blog.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Blog.java @@ -9,8 +9,12 @@ import java.util.Objects; /** - * Shopify stores come with a built-in blogging engine, allowing a shop to have one or more blogs. Blogs are meant - * to be used as a type of magazine or newsletter for the shop, with content that changes over time. + * A blog for publishing articles in the online store. Stores can have multiple blogs to organize content by topic or purpose. + * + * Each blog contains articles with their associated comments, tags, and metadata. + * The comment policy controls whether readers can post comments and whether + * moderation is required. Blogs use customizable URL handles and can apply + * alternate templates for specialized layouts. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE @@ -22,7 +26,7 @@ public class Blog implements MetafieldReferencer, com.shopify.admin.types.HasEve private ArticleConnection articles; /** - * Count of articles. + * Count of articles. Limited to a maximum of 10000 by default. */ private Count articlesCount; @@ -117,7 +121,7 @@ public void setArticles(ArticleConnection articles) { } /** - * Count of articles. + * Count of articles. Limited to a maximum of 10000 by default. */ public Count getArticlesCount() { return articlesCount; @@ -331,7 +335,7 @@ public static class Builder { private ArticleConnection articles; /** - * Count of articles. + * Count of articles. Limited to a maximum of 10000 by default. */ private Count articlesCount; @@ -441,7 +445,7 @@ public Builder articles(ArticleConnection articles) { } /** - * Count of articles. + * Count of articles. Limited to a maximum of 10000 by default. */ public Builder articlesCount(Count articlesCount) { this.articlesCount = articlesCount; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BlogFeed.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BlogFeed.java index 7d2789e8..35ca0215 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BlogFeed.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BlogFeed.java @@ -6,7 +6,19 @@ import java.util.Objects; /** - * FeedBurner provider details. Any blogs that aren't already integrated with FeedBurner can't use the service. + * RSS feed provider details for blog syndication. This object contains the + * location and path information for external feed services that were previously + * integrated with the blog. + * + * The `BlogFeed` object maintains the feed URL and path to ensure existing feed subscriptions continue working. + * + * Use the `BlogFeed` object to: + * - Access RSS feed provider configuration + * - Retrieve feed location and path information + * - Maintain existing feed syndication settings + * + * > Note: + * > This is a legacy feature. New integrations with external feed services are not supported. */ public class BlogFeed { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BulkMutationErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BulkMutationErrorCode.java index af6c080a..ce3458b7 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BulkMutationErrorCode.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BulkMutationErrorCode.java @@ -12,5 +12,7 @@ public enum BulkMutationErrorCode { NO_SUCH_FILE, - INTERNAL_FILE_SERVER_ERROR + INTERNAL_FILE_SERVER_ERROR, + + LIMIT_REACHED } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BulkOperation.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BulkOperation.java index ffb8dd7c..4671b682 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BulkOperation.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BulkOperation.java @@ -8,13 +8,25 @@ import java.util.Objects; /** - * An asynchronous long-running operation to fetch data in bulk or to bulk import data. + * An asynchronous operation that exports large datasets or imports data in bulk. + * Create bulk operations using [bulkOperationRunQuery](https://shopify.dev/docs/api/admin-graphql/latest/mutations/bulkOperationRunQuery) + * to export data or [bulkOperationRunMutation](https://shopify.dev/docs/api/admin-graphql/latest/mutations/bulkOperationRunMutation) + * to import data. * - * Bulk operations are created using the `bulkOperationRunQuery` or `bulkOperationRunMutation` mutation. After - * they are created, clients should poll the `status` field for updates. When `COMPLETED`, the `url` field contains - * a link to the data in [JSONL](http://jsonlines.org/) format. + * After creation, check the [`status`](https://shopify.dev/docs/api/admin-graphql/latest/objects/BulkOperation#field-BulkOperation.fields.status) + * field to track progress. When completed, the [`url`](https://shopify.dev/docs/api/admin-graphql/latest/objects/BulkOperation#field-BulkOperation.fields.url) + * field contains a link to download results in [JSONL](http://jsonlines.org/) format. The [`objectCount`](https://shopify.dev/docs/api/admin-graphql/latest/objects/BulkOperation#field-BulkOperation.fields.objectCount) + * field shows the running total of processed objects, while [`rootObjectCount`](https://shopify.dev/docs/api/admin-graphql/latest/objects/BulkOperation#field-BulkOperation.fields.rootObjectCount) + * tracks only root-level objects in nested queries. * - * Refer to the [bulk operations guide](https://shopify.dev/api/usage/bulk-operations/imports) for more details. + * If an operation fails but retrieves partial data, then the [`partialDataUrl`](https://shopify.dev/docs/api/admin-graphql/latest/objects/BulkOperation#field-BulkOperation.fields.partialDataUrl) + * field provides access to incomplete results. + * + * > Note: `url` and `partialDataUrl` values expire after seven days. + * + * Learn more about + * [exporting](https://shopify.dev/docs/api/usage/bulk-operations/queries) and + * [importing](https://shopify.dev/docs/api/usage/bulk-operations/imports) data in bulk. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BulkOperationConnection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BulkOperationConnection.java new file mode 100644 index 00000000..86f1a21e --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BulkOperationConnection.java @@ -0,0 +1,152 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * An auto-generated type for paginating through multiple BulkOperations. + */ +public class BulkOperationConnection { + /** + * The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + */ + private List edges; + + /** + * A list of nodes that are contained in BulkOperationEdge. You can fetch data + * about an individual node, or you can follow the edges to fetch data about a + * collection of related nodes. At each node, you specify the fields that you + * want to retrieve. + */ + private List nodes; + + /** + * An object that’s used to retrieve [cursor + * information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + */ + private PageInfo pageInfo; + + public BulkOperationConnection() { + } + + /** + * The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + */ + public List getEdges() { + return edges; + } + + public void setEdges(List edges) { + this.edges = edges; + } + + /** + * A list of nodes that are contained in BulkOperationEdge. You can fetch data + * about an individual node, or you can follow the edges to fetch data about a + * collection of related nodes. At each node, you specify the fields that you + * want to retrieve. + */ + public List getNodes() { + return nodes; + } + + public void setNodes(List nodes) { + this.nodes = nodes; + } + + /** + * An object that’s used to retrieve [cursor + * information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + */ + public PageInfo getPageInfo() { + return pageInfo; + } + + public void setPageInfo(PageInfo pageInfo) { + this.pageInfo = pageInfo; + } + + @Override + public String toString() { + return "BulkOperationConnection{edges='" + edges + "', nodes='" + nodes + "', pageInfo='" + pageInfo + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + BulkOperationConnection that = (BulkOperationConnection) o; + return Objects.equals(edges, that.edges) && + Objects.equals(nodes, that.nodes) && + Objects.equals(pageInfo, that.pageInfo); + } + + @Override + public int hashCode() { + return Objects.hash(edges, nodes, pageInfo); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + */ + private List edges; + + /** + * A list of nodes that are contained in BulkOperationEdge. You can fetch data + * about an individual node, or you can follow the edges to fetch data about a + * collection of related nodes. At each node, you specify the fields that you + * want to retrieve. + */ + private List nodes; + + /** + * An object that’s used to retrieve [cursor + * information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + */ + private PageInfo pageInfo; + + public BulkOperationConnection build() { + BulkOperationConnection result = new BulkOperationConnection(); + result.edges = this.edges; + result.nodes = this.nodes; + result.pageInfo = this.pageInfo; + return result; + } + + /** + * The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + */ + public Builder edges(List edges) { + this.edges = edges; + return this; + } + + /** + * A list of nodes that are contained in BulkOperationEdge. You can fetch data + * about an individual node, or you can follow the edges to fetch data about a + * collection of related nodes. At each node, you specify the fields that you + * want to retrieve. + */ + public Builder nodes(List nodes) { + this.nodes = nodes; + return this; + } + + /** + * An object that’s used to retrieve [cursor + * information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + */ + public Builder pageInfo(PageInfo pageInfo) { + this.pageInfo = pageInfo; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BulkOperationEdge.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BulkOperationEdge.java new file mode 100644 index 00000000..1ca1075a --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BulkOperationEdge.java @@ -0,0 +1,104 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * An auto-generated type which holds one BulkOperation and a cursor during pagination. + */ +public class BulkOperationEdge { + /** + * The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + */ + private String cursor; + + /** + * The item at the end of BulkOperationEdge. + */ + private BulkOperation node; + + public BulkOperationEdge() { + } + + /** + * The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + */ + public String getCursor() { + return cursor; + } + + public void setCursor(String cursor) { + this.cursor = cursor; + } + + /** + * The item at the end of BulkOperationEdge. + */ + public BulkOperation getNode() { + return node; + } + + public void setNode(BulkOperation node) { + this.node = node; + } + + @Override + public String toString() { + return "BulkOperationEdge{cursor='" + cursor + "', node='" + node + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + BulkOperationEdge that = (BulkOperationEdge) o; + return Objects.equals(cursor, that.cursor) && + Objects.equals(node, that.node); + } + + @Override + public int hashCode() { + return Objects.hash(cursor, node); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + */ + private String cursor; + + /** + * The item at the end of BulkOperationEdge. + */ + private BulkOperation node; + + public BulkOperationEdge build() { + BulkOperationEdge result = new BulkOperationEdge(); + result.cursor = this.cursor; + result.node = this.node; + return result; + } + + /** + * The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + */ + public Builder cursor(String cursor) { + this.cursor = cursor; + return this; + } + + /** + * The item at the end of BulkOperationEdge. + */ + public Builder node(BulkOperation node) { + this.node = node; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BulkOperationUserError.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BulkOperationUserError.java index 7ebaf948..9f3c27a6 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BulkOperationUserError.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BulkOperationUserError.java @@ -8,7 +8,9 @@ import java.util.Objects; /** - * Represents an error in the input of a mutation. + * An error in the input of a mutation. Mutations return `UserError` objects to + * indicate validation failures, such as invalid field values or business logic + * violations, that prevent the operation from completing. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BulkOperationUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BulkOperationUserErrorCode.java index 62a8f65a..eef22cad 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BulkOperationUserErrorCode.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BulkOperationUserErrorCode.java @@ -6,5 +6,7 @@ public enum BulkOperationUserErrorCode { OPERATION_IN_PROGRESS, - INVALID + INVALID, + + LIMIT_REACHED } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BulkOperationsSortKeys.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BulkOperationsSortKeys.java new file mode 100644 index 00000000..03a41c1c --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BulkOperationsSortKeys.java @@ -0,0 +1,10 @@ +package com.shopify.admin.types; + +/** + * The set of valid sort keys for the BulkOperations query. + */ +public enum BulkOperationsSortKeys { + COMPLETED_AT, + + CREATED_AT +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BusinessEntity.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BusinessEntity.java index 22312234..c8da6a92 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BusinessEntity.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BusinessEntity.java @@ -7,7 +7,16 @@ import java.util.Objects; /** - * Represents a merchant's Business Entity. + * A legal entity through which a merchant operates. Each business entity contains its own [`BusinessEntityAddress`](https://shopify.dev/docs/api/admin-graphql/latest/objects/BusinessEntityAddress), + * company information, and can be associated with its own [`ShopifyPaymentsAccount`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsAccount). + * [`Market`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Market) + * objects can be assigned to a business entity to determine payment processing and + * [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) attribution. + * + * Every shop must have one primary business entity. Additional entities enable + * international operations by establishing legal presence in multiple countries. + * + * Learn more about [managing multiple legal entities](https://shopify.dev/docs/apps/build/markets/multiple-entities). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE @@ -18,6 +27,11 @@ public class BusinessEntity implements com.shopify.admin.types.Node { */ private BusinessEntityAddress address; + /** + * Whether the Business Entity is archived from the shop. + */ + private boolean archived; + /** * The name of the company associated with the merchant's Business Entity. */ @@ -39,7 +53,14 @@ public class BusinessEntity implements com.shopify.admin.types.Node { private boolean primary; /** - * Shopify Payments account information, including balances and payouts. + * Returns the Shopify Payments account information for the shop. Includes + * current balances across all currencies, payout schedules, and bank account + * configurations. + * + * The account includes [`ShopifyPaymentsBalanceTransaction`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsBalanceTransaction) + * records showing charges, refunds, and adjustments that affect your balance. Also includes [`ShopifyPaymentsDispute`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsDispute) records and [`ShopifyPaymentsPayout`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsPayout) + * history between the account and connected [`ShopifyPaymentsBankAccount`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsBankAccount) + * configurations. */ private ShopifyPaymentsAccount shopifyPaymentsAccount; @@ -57,6 +78,17 @@ public void setAddress(BusinessEntityAddress address) { this.address = address; } + /** + * Whether the Business Entity is archived from the shop. + */ + public boolean getArchived() { + return archived; + } + + public void setArchived(boolean archived) { + this.archived = archived; + } + /** * The name of the company associated with the merchant's Business Entity. */ @@ -102,7 +134,14 @@ public void setPrimary(boolean primary) { } /** - * Shopify Payments account information, including balances and payouts. + * Returns the Shopify Payments account information for the shop. Includes + * current balances across all currencies, payout schedules, and bank account + * configurations. + * + * The account includes [`ShopifyPaymentsBalanceTransaction`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsBalanceTransaction) + * records showing charges, refunds, and adjustments that affect your balance. Also includes [`ShopifyPaymentsDispute`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsDispute) records and [`ShopifyPaymentsPayout`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsPayout) + * history between the account and connected [`ShopifyPaymentsBankAccount`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsBankAccount) + * configurations. */ public ShopifyPaymentsAccount getShopifyPaymentsAccount() { return shopifyPaymentsAccount; @@ -114,7 +153,7 @@ public void setShopifyPaymentsAccount(ShopifyPaymentsAccount shopifyPaymentsAcco @Override public String toString() { - return "BusinessEntity{address='" + address + "', companyName='" + companyName + "', displayName='" + displayName + "', id='" + id + "', primary='" + primary + "', shopifyPaymentsAccount='" + shopifyPaymentsAccount + "'}"; + return "BusinessEntity{address='" + address + "', archived='" + archived + "', companyName='" + companyName + "', displayName='" + displayName + "', id='" + id + "', primary='" + primary + "', shopifyPaymentsAccount='" + shopifyPaymentsAccount + "'}"; } @Override @@ -123,6 +162,7 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) return false; BusinessEntity that = (BusinessEntity) o; return Objects.equals(address, that.address) && + archived == that.archived && Objects.equals(companyName, that.companyName) && Objects.equals(displayName, that.displayName) && Objects.equals(id, that.id) && @@ -132,7 +172,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(address, companyName, displayName, id, primary, shopifyPaymentsAccount); + return Objects.hash(address, archived, companyName, displayName, id, primary, shopifyPaymentsAccount); } public static Builder newBuilder() { @@ -145,6 +185,11 @@ public static class Builder { */ private BusinessEntityAddress address; + /** + * Whether the Business Entity is archived from the shop. + */ + private boolean archived; + /** * The name of the company associated with the merchant's Business Entity. */ @@ -166,13 +211,21 @@ public static class Builder { private boolean primary; /** - * Shopify Payments account information, including balances and payouts. + * Returns the Shopify Payments account information for the shop. Includes + * current balances across all currencies, payout schedules, and bank account + * configurations. + * + * The account includes [`ShopifyPaymentsBalanceTransaction`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsBalanceTransaction) + * records showing charges, refunds, and adjustments that affect your balance. Also includes [`ShopifyPaymentsDispute`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsDispute) records and [`ShopifyPaymentsPayout`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsPayout) + * history between the account and connected [`ShopifyPaymentsBankAccount`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsBankAccount) + * configurations. */ private ShopifyPaymentsAccount shopifyPaymentsAccount; public BusinessEntity build() { BusinessEntity result = new BusinessEntity(); result.address = this.address; + result.archived = this.archived; result.companyName = this.companyName; result.displayName = this.displayName; result.id = this.id; @@ -189,6 +242,14 @@ public Builder address(BusinessEntityAddress address) { return this; } + /** + * Whether the Business Entity is archived from the shop. + */ + public Builder archived(boolean archived) { + this.archived = archived; + return this; + } + /** * The name of the company associated with the merchant's Business Entity. */ @@ -222,7 +283,14 @@ public Builder primary(boolean primary) { } /** - * Shopify Payments account information, including balances and payouts. + * Returns the Shopify Payments account information for the shop. Includes + * current balances across all currencies, payout schedules, and bank account + * configurations. + * + * The account includes [`ShopifyPaymentsBalanceTransaction`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsBalanceTransaction) + * records showing charges, refunds, and adjustments that affect your balance. Also includes [`ShopifyPaymentsDispute`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsDispute) records and [`ShopifyPaymentsPayout`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsPayout) + * history between the account and connected [`ShopifyPaymentsBankAccount`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsBankAccount) + * configurations. */ public Builder shopifyPaymentsAccount(ShopifyPaymentsAccount shopifyPaymentsAccount) { this.shopifyPaymentsAccount = shopifyPaymentsAccount; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BuyerSignalInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BuyerSignalInput.java new file mode 100644 index 00000000..b0d5476b --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/BuyerSignalInput.java @@ -0,0 +1,73 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * The input fields for a buyer signal. + */ +public class BuyerSignalInput { + /** + * The country code of the buyer. + */ + private CountryCode countryCode; + + public BuyerSignalInput() { + } + + /** + * The country code of the buyer. + */ + public CountryCode getCountryCode() { + return countryCode; + } + + public void setCountryCode(CountryCode countryCode) { + this.countryCode = countryCode; + } + + @Override + public String toString() { + return "BuyerSignalInput{countryCode='" + countryCode + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + BuyerSignalInput that = (BuyerSignalInput) o; + return Objects.equals(countryCode, that.countryCode); + } + + @Override + public int hashCode() { + return Objects.hash(countryCode); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The country code of the buyer. + */ + private CountryCode countryCode; + + public BuyerSignalInput build() { + BuyerSignalInput result = new BuyerSignalInput(); + result.countryCode = this.countryCode; + return result; + } + + /** + * The country code of the buyer. + */ + public Builder countryCode(CountryCode countryCode) { + this.countryCode = countryCode; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CalculatedDraftOrder.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CalculatedDraftOrder.java index 22603d8c..32acbf19 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CalculatedDraftOrder.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CalculatedDraftOrder.java @@ -8,7 +8,15 @@ import java.util.Objects; /** - * The calculated fields for a draft order. + * Calculated pricing, taxes, and discounts for a [`DraftOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrder). + * Includes the complete financial breakdown with line items, discounts, shipping + * costs, tax calculations, and totals in both shop and presentment currencies. + * + * Available [`ShippingRate`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShippingRate) options are included when a valid shipping address and line items are present. + * + * > Note: + * > Returns alerts and warnings when issues occur during calculation, such as + * insufficient inventory or incompatible discounts. */ public class CalculatedDraftOrder { /** @@ -71,7 +79,7 @@ public class CalculatedDraftOrder { /** * A subtotal of the line items and corresponding discounts, - * excluding include shipping charges, shipping discounts, taxes, or order discounts. + * excluding shipping charges, shipping discounts, taxes, or order discounts. */ private MoneyBag lineItemsSubtotalPrice; @@ -137,7 +145,7 @@ public class CalculatedDraftOrder { private MoneyBag totalDiscountsSet; /** - * Total price of line items. + * Total price of line items, excluding discounts. */ private MoneyBag totalLineItemsPriceSet; @@ -319,7 +327,7 @@ public void setLineItems(List lineItems) { /** * A subtotal of the line items and corresponding discounts, - * excluding include shipping charges, shipping discounts, taxes, or order discounts. + * excluding shipping charges, shipping discounts, taxes, or order discounts. */ public MoneyBag getLineItemsSubtotalPrice() { return lineItemsSubtotalPrice; @@ -463,7 +471,7 @@ public void setTotalDiscountsSet(MoneyBag totalDiscountsSet) { } /** - * Total price of line items. + * Total price of line items, excluding discounts. */ public MoneyBag getTotalLineItemsPriceSet() { return totalLineItemsPriceSet; @@ -691,7 +699,7 @@ public static class Builder { /** * A subtotal of the line items and corresponding discounts, - * excluding include shipping charges, shipping discounts, taxes, or order discounts. + * excluding shipping charges, shipping discounts, taxes, or order discounts. */ private MoneyBag lineItemsSubtotalPrice; @@ -757,7 +765,7 @@ public static class Builder { private MoneyBag totalDiscountsSet; /** - * Total price of line items. + * Total price of line items, excluding discounts. */ private MoneyBag totalLineItemsPriceSet; @@ -942,7 +950,7 @@ public Builder lineItems(List lineItems) { /** * A subtotal of the line items and corresponding discounts, - * excluding include shipping charges, shipping discounts, taxes, or order discounts. + * excluding shipping charges, shipping discounts, taxes, or order discounts. */ public Builder lineItemsSubtotalPrice(MoneyBag lineItemsSubtotalPrice) { this.lineItemsSubtotalPrice = lineItemsSubtotalPrice; @@ -1047,7 +1055,7 @@ public Builder totalDiscountsSet(MoneyBag totalDiscountsSet) { } /** - * Total price of line items. + * Total price of line items, excluding discounts. */ public Builder totalLineItemsPriceSet(MoneyBag totalLineItemsPriceSet) { this.totalLineItemsPriceSet = totalLineItemsPriceSet; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CalculatedOrder.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CalculatedOrder.java index 634bdc32..73a23630 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CalculatedOrder.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CalculatedOrder.java @@ -8,7 +8,19 @@ import java.util.Objects; /** - * An order with edits applied but not saved. + * An order during an active edit session with all proposed changes applied but not + * yet committed. When you begin editing an order with the [`orderEditBegin`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderEditBegin) + * mutation, the system creates a [`CalculatedOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CalculatedOrder) + * that shows how the + * [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) will + * look after your changes. The calculated order tracks the original order state + * and all staged modifications (added or removed + * [`LineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItem) + * objects, quantity adjustments, discount changes, and [`ShippingLine`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShippingLine) + * updates). Use the calculated order to preview the financial impact of edits + * before committing them with the [`orderEditCommit`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderEditCommit) mutation. + * + * Learn more about [editing existing orders](https://shopify.dev/docs/apps/build/orders-fulfillment/order-management-apps/edit-orders). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CalculatedReturn.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CalculatedReturn.java index 1be6865a..17f93ffc 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CalculatedReturn.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CalculatedReturn.java @@ -26,7 +26,7 @@ public class CalculatedReturn { private List returnLineItems; /** - * The calulated return shipping fee. + * The calculated return shipping fee. */ private CalculatedReturnShippingFee returnShippingFee; @@ -67,7 +67,7 @@ public void setReturnLineItems(List returnLineItems) { } /** - * The calulated return shipping fee. + * The calculated return shipping fee. */ public CalculatedReturnShippingFee getReturnShippingFee() { return returnShippingFee; @@ -119,7 +119,7 @@ public static class Builder { private List returnLineItems; /** - * The calulated return shipping fee. + * The calculated return shipping fee. */ private CalculatedReturnShippingFee returnShippingFee; @@ -157,7 +157,7 @@ public Builder returnLineItems(List returnLineItems) { } /** - * The calulated return shipping fee. + * The calculated return shipping fee. */ public Builder returnShippingFee(CalculatedReturnShippingFee returnShippingFee) { this.returnShippingFee = returnShippingFee; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CardPaymentDetails.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CardPaymentDetails.java index 3d423754..27952cf8 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CardPaymentDetails.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CardPaymentDetails.java @@ -8,7 +8,8 @@ import java.util.Objects; /** - * Card payment details related to a transaction. + * Credit card payment information captured during a transaction. Includes + * cardholder details, card metadata, verification response codes, and the [`DigitalWallet`](https://shopify.dev/docs/api/admin-graphql/latest/enums/DigitalWallet#valid-values) when used. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CartTransform.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CartTransform.java index addf760a..2e739fd9 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CartTransform.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CartTransform.java @@ -7,7 +7,38 @@ import java.util.Objects; /** - * A Cart Transform Function to create [Customized Bundles.](https://shopify.dev/docs/apps/selling-strategies/bundles/add-a-customized-bundle). + * A deployed cart transformation function that actively modifies how products + * appear and behave in customer carts. Cart transforms enable sophisticated + * merchandising strategies by programmatically merging, expanding, or updating + * cart line items based on custom business logic. + * + * Use the `CartTransform` object to: + * - Monitor active bundling and cart modification logic + * - Track transform function deployment status and configuration + * - Manage error handling behavior for cart processing failures + * - Coordinate multiple transforms when running complex merchandising strategies + * - Analyze transform performance and customer interaction patterns + * + * Each cart transform links to a specific [Shopify + * Function](https://shopify.dev/docs/apps/build/functions) that contains the + * actual cart modification logic. The `blockOnFailure` setting determines whether + * cart processing should halt when the transform encounters errors, or whether it + * should allow customers to proceed with unmodified carts. This flexibility + * ensures merchants can balance feature richness with checkout reliability. + * + * Transform functions operate during cart updates, product additions, and checkout + * initiation, providing multiple touchpoints to enhance the shopping experience. + * They integrate seamlessly with existing cart APIs while extending functionality + * beyond standard product catalog capabilities. + * + * The function ID connects to your deployed function code, while the configuration + * settings control how the transform behaves in different scenarios. Multiple + * transforms can work together, processing cart modifications in sequence to + * support complex merchandising workflows. + * + * Learn more about [customized bundles](https://shopify.dev/docs/apps/selling-strategies/bundles/add-a-customized-bundle), + * and about the [Cart Transform Function + * API](https://shopify.dev/docs/api/functions/latest/cart-transform). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CartTransformCreateUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CartTransformCreateUserErrorCode.java index e24a3b2c..ee9d9223 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CartTransformCreateUserErrorCode.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CartTransformCreateUserErrorCode.java @@ -12,5 +12,9 @@ public enum CartTransformCreateUserErrorCode { FUNCTION_DOES_NOT_IMPLEMENT, - INVALID_METAFIELDS + INVALID_METAFIELDS, + + MULTIPLE_FUNCTION_IDENTIFIERS, + + MISSING_FUNCTION_IDENTIFIER } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CartTransformEligibleOperations.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CartTransformEligibleOperations.java index 26831c50..56c74ecd 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CartTransformEligibleOperations.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CartTransformEligibleOperations.java @@ -6,7 +6,14 @@ import java.util.Objects; /** - * Represents the cart transform feature configuration for the shop. + * Controls which cart transformation operations apps can perform in your store. + * This lets you define exactly what types of cart modifications are allowed based + * on your checkout setup and business needs. + * + * The eligible operations determine what cart transform functions can accomplish, + * providing a clear boundary for app capabilities within the store's ecosystem. + * + * Learn more about [cart transform operations](https://shopify.dev/docs/api/functions/latest/cart-transform#multiple-operations). */ public class CartTransformEligibleOperations { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CartTransformFeature.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CartTransformFeature.java index f7a7cef0..f2098ea9 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CartTransformFeature.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CartTransformFeature.java @@ -6,7 +6,17 @@ import java.util.Objects; /** - * Represents the cart transform feature configuration for the shop. + * Provides access to the cart transform feature configuration for the merchant's + * store. This wrapper object indicates whether cart transformation capabilities + * are enabled and what operations are available. + * + * For example, when checking if your app can deploy customized bundle features, + * you would query this object to confirm cart transforms are supported and review + * the eligible operations. + * + * The feature configuration helps apps determine compatibility before attempting to create transform functions. + * + * Learn more about [cart transformation](https://shopify.dev/docs/api/admin-graphql/latest/objects/CartTransform). */ public class CartTransformFeature { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Catalog.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Catalog.java index 54172a5c..f0fed7f7 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Catalog.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Catalog.java @@ -9,6 +9,10 @@ * 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). + * + * Catalogs can optionally include a publication to control product visibility and + * a price list to customize pricing. When a publication isn't associated with a + * catalog, product availability is determined by the sales channel. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NAME, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CatalogCreateInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CatalogCreateInput.java index c7550107..fb7b6d48 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CatalogCreateInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CatalogCreateInput.java @@ -30,7 +30,9 @@ public class CatalogCreateInput { private String priceListId; /** - * The ID of the publication to associate to the catalog. + * The ID of the publication to associate to the catalog. Only include this if + * you need to control which products are visible in the catalog. When omitted, + * product availability is determined by the sales channel. */ private String publicationId; @@ -82,7 +84,9 @@ public void setPriceListId(String priceListId) { } /** - * The ID of the publication to associate to the catalog. + * The ID of the publication to associate to the catalog. Only include this if + * you need to control which products are visible in the catalog. When omitted, + * product availability is determined by the sales channel. */ public String getPublicationId() { return publicationId; @@ -140,7 +144,9 @@ public static class Builder { private String priceListId; /** - * The ID of the publication to associate to the catalog. + * The ID of the publication to associate to the catalog. Only include this if + * you need to control which products are visible in the catalog. When omitted, + * product availability is determined by the sales channel. */ private String publicationId; @@ -187,7 +193,9 @@ public Builder priceListId(String priceListId) { } /** - * The ID of the publication to associate to the catalog. + * The ID of the publication to associate to the catalog. Only include this if + * you need to control which products are visible in the catalog. When omitted, + * product availability is determined by the sales channel. */ public Builder publicationId(String publicationId) { this.publicationId = publicationId; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CatalogUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CatalogUserErrorCode.java index 878b33a5..6378c902 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CatalogUserErrorCode.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CatalogUserErrorCode.java @@ -52,6 +52,8 @@ public enum CatalogUserErrorCode { PRICE_LIST_LOCKED, + CATALOG_CONTEXT_LOCKED, + PUBLICATION_NOT_FOUND, REQUIRES_CONTEXTS_TO_ADD_OR_REMOVE, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Channel.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Channel.java index 9efa9850..d03e0ccc 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Channel.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Channel.java @@ -8,8 +8,18 @@ import java.util.Objects; /** - * A channel represents an app where you sell a group of products and collections. - * A channel can be a platform or marketplace such as Facebook or Pinterest, an online store, or POS. + * An authenticated link to an external platform that supports syndication and + * optionally order ingestion, such as Facebook, Pinterest, an online store, or + * Point of Sale (POS). + * + * Each channel provides access to its underlying + * [`App`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App), + * published products and collections, and [`Publication`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication) + * settings, as well as what features of the platform it supports such as [scheduled publishing](https://shopify.dev/docs/apps/build/sales-channels/scheduled-product-publishing). + * Use channels to manage where catalog items appear, track publication status + * across platforms, and control + * [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) + * visibility for different customer touchpoints. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE @@ -21,7 +31,7 @@ public class Channel implements com.shopify.admin.types.Node { private App app; /** - * The collection publications for the list of collections published to the channel. + * The list of collection publications. Each record represents information about the publication of a collection. */ private ResourcePublicationConnection collectionPublicationsV3; @@ -66,7 +76,7 @@ public class Channel implements com.shopify.admin.types.Node { private ProductPublicationConnection productPublications; /** - * The product publications for the list of products published to the channel. + * The list of product publication records for products published to this channel. */ private ResourcePublicationConnection productPublicationsV3; @@ -76,7 +86,8 @@ public class Channel implements com.shopify.admin.types.Node { private ProductConnection products; /** - * The count of products published to the channel. Limited to a maximum of 10000. + * Retrieves the total count of [`products`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) + * published to a specific sales channel. Limited to a maximum of 10000 by default. */ private Count productsCount; @@ -100,7 +111,7 @@ public void setApp(App app) { } /** - * The collection publications for the list of collections published to the channel. + * The list of collection publications. Each record represents information about the publication of a collection. */ public ResourcePublicationConnection getCollectionPublicationsV3() { return collectionPublicationsV3; @@ -199,7 +210,7 @@ public void setProductPublications(ProductPublicationConnection productPublicati } /** - * The product publications for the list of products published to the channel. + * The list of product publication records for products published to this channel. */ public ResourcePublicationConnection getProductPublicationsV3() { return productPublicationsV3; @@ -221,7 +232,8 @@ public void setProducts(ProductConnection products) { } /** - * The count of products published to the channel. Limited to a maximum of 10000. + * Retrieves the total count of [`products`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) + * published to a specific sales channel. Limited to a maximum of 10000 by default. */ public Count getProductsCount() { return productsCount; @@ -284,7 +296,7 @@ public static class Builder { private App app; /** - * The collection publications for the list of collections published to the channel. + * The list of collection publications. Each record represents information about the publication of a collection. */ private ResourcePublicationConnection collectionPublicationsV3; @@ -329,7 +341,7 @@ public static class Builder { private ProductPublicationConnection productPublications; /** - * The product publications for the list of products published to the channel. + * The list of product publication records for products published to this channel. */ private ResourcePublicationConnection productPublicationsV3; @@ -339,7 +351,8 @@ public static class Builder { private ProductConnection products; /** - * The count of products published to the channel. Limited to a maximum of 10000. + * Retrieves the total count of [`products`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) + * published to a specific sales channel. Limited to a maximum of 10000 by default. */ private Count productsCount; @@ -376,7 +389,7 @@ public Builder app(App app) { } /** - * The collection publications for the list of collections published to the channel. + * The list of collection publications. Each record represents information about the publication of a collection. */ public Builder collectionPublicationsV3( ResourcePublicationConnection collectionPublicationsV3) { @@ -449,7 +462,7 @@ public Builder productPublications(ProductPublicationConnection productPublicati } /** - * The product publications for the list of products published to the channel. + * The list of product publication records for products published to this channel. */ public Builder productPublicationsV3(ResourcePublicationConnection productPublicationsV3) { this.productPublicationsV3 = productPublicationsV3; @@ -465,7 +478,8 @@ public Builder products(ProductConnection products) { } /** - * The count of products published to the channel. Limited to a maximum of 10000. + * Retrieves the total count of [`products`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) + * published to a specific sales channel. Limited to a maximum of 10000 by default. */ public Builder productsCount(Count productsCount) { this.productsCount = productsCount; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ChannelDefinition.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ChannelDefinition.java index d9f5bfa6..fc4562a0 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ChannelDefinition.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ChannelDefinition.java @@ -7,9 +7,17 @@ import java.util.Objects; /** - * A channel definition represents channels surfaces on the platform. - * A channel definition can be a platform or a subsegment of it such as Facebook - * Home, Instagram Live, Instagram Shops, or WhatsApp chat. + * A specific selling surface within a [sales + * channel](https://shopify.dev/docs/apps/build/sales-channels) platform. A channel + * definition identifies where products can be sold. Definitions can represent + * entire platforms (like Facebook or TikTok) or specific sales channels within + * those platforms, such as Instagram Shops, Instagram Shopping, or TikTok Live. + * + * Each definition includes the parent + * [`Channel`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Channel) + * name and subchannel name to indicate the selling surface hierarchy. The + * marketplace flag identifies whether this surface represents a marketplace + * channel such as shops on Facebook, Instagram, or Buy on Google. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ChannelInformation.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ChannelInformation.java index 6aeb5873..a9b67788 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ChannelInformation.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ChannelInformation.java @@ -7,7 +7,15 @@ import java.util.Objects; /** - * Contains the information for a given sales channel. + * Identifies the [sales + * channel](https://shopify.dev/docs/apps/build/sales-channels) and + * [`App`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App) from which + * an [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) + * originated. Provides attribution details such as the specific platform (Facebook + * Marketplace, Instagram Shopping) or marketplace where the order was placed. + * + * Links to the app that manages the channel and optional [`ChannelDefinition`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ChannelDefinition) + * details that specify the exact sub-channel or selling surface. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE @@ -28,6 +36,11 @@ public class ChannelInformation implements com.shopify.admin.types.Node { */ private String channelId; + /** + * The publishing destination display name or channel name. + */ + private String displayName; + /** * A globally-unique ID. */ @@ -69,6 +82,17 @@ public void setChannelId(String channelId) { this.channelId = channelId; } + /** + * The publishing destination display name or channel name. + */ + public String getDisplayName() { + return displayName; + } + + public void setDisplayName(String displayName) { + this.displayName = displayName; + } + /** * A globally-unique ID. */ @@ -82,7 +106,7 @@ public void setId(String id) { @Override public String toString() { - return "ChannelInformation{app='" + app + "', channelDefinition='" + channelDefinition + "', channelId='" + channelId + "', id='" + id + "'}"; + return "ChannelInformation{app='" + app + "', channelDefinition='" + channelDefinition + "', channelId='" + channelId + "', displayName='" + displayName + "', id='" + id + "'}"; } @Override @@ -93,12 +117,13 @@ public boolean equals(Object o) { return Objects.equals(app, that.app) && Objects.equals(channelDefinition, that.channelDefinition) && Objects.equals(channelId, that.channelId) && + Objects.equals(displayName, that.displayName) && Objects.equals(id, that.id); } @Override public int hashCode() { - return Objects.hash(app, channelDefinition, channelId, id); + return Objects.hash(app, channelDefinition, channelId, displayName, id); } public static Builder newBuilder() { @@ -121,6 +146,11 @@ public static class Builder { */ private String channelId; + /** + * The publishing destination display name or channel name. + */ + private String displayName; + /** * A globally-unique ID. */ @@ -131,6 +161,7 @@ public ChannelInformation build() { result.app = this.app; result.channelDefinition = this.channelDefinition; result.channelId = this.channelId; + result.displayName = this.displayName; result.id = this.id; return result; } @@ -159,6 +190,14 @@ public Builder channelId(String channelId) { return this; } + /** + * The publishing destination display name or channel name. + */ + public Builder displayName(String displayName) { + this.displayName = displayName; + return this; + } + /** * A globally-unique ID. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CheckoutBranding.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CheckoutBranding.java index e73158cb..c69835c2 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CheckoutBranding.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CheckoutBranding.java @@ -6,10 +6,31 @@ import java.util.Objects; /** - * The settings of checkout visual customizations. + * Creates a unified visual identity for your checkout that keeps customers engaged + * and reinforces your brand throughout the purchase process. This comprehensive + * branding system lets you control every visual aspect of checkout, from colors + * and fonts to layouts and imagery, so your checkout feels like a natural + * extension of your store. * - * To learn more about updating checkout branding settings, refer to the - * [checkoutBrandingUpsert](https://shopify.dev/api/admin-graphql/unstable/mutations/checkoutBrandingUpsert) mutation. + * For example, a luxury fashion retailer can configure their checkout with custom + * color palettes, premium typography, rounded corners for a softer feel, and + * branded imagery that matches their main website aesthetic. + * + * Use the `Branding` object to: + * - Configure comprehensive checkout visual identity + * - Coordinate color schemes across all checkout elements + * - Apply consistent typography and spacing standards + * - Manage background imagery and layout customizations + * - Control visibility of various checkout components + * + * The branding configuration includes design system foundations like color roles, + * typography scales, and spacing units, plus specific customizations for sections, + * dividers, and interactive elements. This allows merchants to create cohesive + * checkout experiences that reinforce their brand identity while maintaining + * usability standards. + * + * Different color schemes can be defined for various contexts, ensuring optimal + * contrast and accessibility across different checkout states and customer preferences. */ public class CheckoutBranding { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CheckoutBrandingButtonColorRoles.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CheckoutBrandingButtonColorRoles.java index d2279949..36a1afe1 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CheckoutBrandingButtonColorRoles.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CheckoutBrandingButtonColorRoles.java @@ -6,7 +6,22 @@ import java.util.Objects; /** - * Colors for buttons. + * Defines the color palette specifically for button elements within checkout + * branding, including hover states. These color roles ensure buttons maintain + * proper contrast and visual hierarchy throughout the checkout experience. + * + * For example, a sports brand might configure bright accent colors for primary + * action buttons, with darker hover states and contrasting text colors that + * maintain accessibility standards. + * + * Use the `ButtonColorRoles` object to: + * - Define button color schemes for different states + * - Ensure proper contrast for accessibility compliance + * - Coordinate button colors with overall brand palette + * + * Button color roles include background, border, text, icon, accent (for focused + * states), and decorative elements, plus specific hover state colors that provide + * clear interactive feedback to customers. */ public class CheckoutBrandingButtonColorRoles { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CheckoutBrandingBuyerJourney.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CheckoutBrandingBuyerJourney.java index b0d2d097..09928d36 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CheckoutBrandingBuyerJourney.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CheckoutBrandingBuyerJourney.java @@ -6,7 +6,19 @@ import java.util.Objects; /** - * The customizations for the breadcrumbs that represent a buyer's journey to the checkout. + * Controls the visibility settings for checkout breadcrumb navigation that shows + * customers their progress through the purchase journey. This simple customization + * allows merchants to show or hide the breadcrumb trail based on their checkout + * flow preferences. + * + * For example, a single-page checkout experience might hide breadcrumbs to create + * a more streamlined appearance, while multi-step checkouts can display them to + * help customers understand their progress. + * + * The visibility setting provides merchants flexibility in how they present + * checkout navigation to match their specific user experience strategy. + * + * Learn more about [checkout customization](https://shopify.dev/docs/api/admin-graphql/latest/objects/CheckoutBranding). */ public class CheckoutBrandingBuyerJourney { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CheckoutBrandingCartLink.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CheckoutBrandingCartLink.java index 2eb5ea1c..afa0107c 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CheckoutBrandingCartLink.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CheckoutBrandingCartLink.java @@ -6,7 +6,15 @@ import java.util.Objects; /** - * The customizations that you can make to cart links at checkout. + * Controls the visibility of cart links displayed during checkout. These links + * allow customers to return to their cart or continue shopping. + * + * For example, an electronics store might hide cart links during final checkout + * steps to reduce distractions, or show them prominently to encourage customers to + * add accessories before completing their purchase. + * + * The `CartLink` object provides visibility settings to control when and how these + * navigation elements appear based on the merchant's checkout flow strategy. */ public class CheckoutBrandingCartLink { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CheckoutBrandingCheckbox.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CheckoutBrandingCheckbox.java index d562f4a4..320ba493 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CheckoutBrandingCheckbox.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CheckoutBrandingCheckbox.java @@ -6,7 +6,16 @@ import java.util.Objects; /** - * The checkboxes customizations. + * Defines the visual styling for checkbox elements throughout the checkout + * interface, focusing on corner radius customization. This allows merchants to + * align checkbox appearance with their overall design aesthetic. + * + * For example, a modern minimalist brand might prefer sharp, square checkboxes + * while a friendly consumer brand could opt for rounded corners to create a + * softer, more approachable feel. + * + * The corner radius setting ensures checkboxes integrate seamlessly with the + * overall checkout design language and brand identity. */ public class CheckoutBrandingCheckbox { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CheckoutBrandingChoiceList.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CheckoutBrandingChoiceList.java index bc6c7e17..deba3bda 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CheckoutBrandingChoiceList.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CheckoutBrandingChoiceList.java @@ -6,7 +6,11 @@ import java.util.Objects; /** - * The choice list customizations. + * Controls spacing customization for the grouped variant of choice list components in checkout forms. + * + * The `ChoiceList` object contains settings specifically for the 'group' variant + * styling through the [`ChoiceListGroup`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CheckoutBrandingChoiceListGroup) + * field, which determines the spacing between choice options. */ public class CheckoutBrandingChoiceList { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CheckoutBrandingChoiceListGroup.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CheckoutBrandingChoiceListGroup.java index 653d5374..db9a8d39 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CheckoutBrandingChoiceListGroup.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CheckoutBrandingChoiceListGroup.java @@ -6,7 +6,14 @@ import java.util.Objects; /** - * The settings that apply to the 'group' variant of ChoiceList. + * Controls the spacing between options in the 'group' variant of [`ChoiceList`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CheckoutBrandingChoiceList) components. + * + * This setting adjusts the vertical spacing between choice options to improve + * readability and visual organization. The spacing value helps create clear + * separation between options, making it easier for customers to scan and select + * from available choices. + * + * Learn more about [checkout customization](https://shopify.dev/docs/api/admin-graphql/latest/objects/CheckoutBranding). */ public class CheckoutBrandingChoiceListGroup { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CheckoutBrandingColorGlobal.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CheckoutBrandingColorGlobal.java index a9b84384..7a2fd0e2 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CheckoutBrandingColorGlobal.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CheckoutBrandingColorGlobal.java @@ -6,7 +6,21 @@ import java.util.Objects; /** - * A set of colors for customizing the overall look and feel of the checkout. + * Defines the global color roles for checkout branding. These semantic colors + * maintain consistency across all checkout elements and provide the foundation for + * the checkout's visual design system. + * + * Use global colors to: + * - Set brand colors for primary actions and buttons + * - Define accent colors for links and interactive elements + * - Configure semantic colors for success, warning, and error states + * - Apply decorative colors for visual highlights + * + * For example, a merchant might set their brand blue for primary buttons, green + * for success messages, amber for warnings, and red for critical errors, creating + * a consistent color language throughout checkout. + * + * Learn more about [checkout customization](https://shopify.dev/docs/api/admin-graphql/latest/objects/CheckoutBranding). */ public class CheckoutBrandingColorGlobal { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Collection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Collection.java index 121d1705..b667ca7c 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Collection.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Collection.java @@ -9,20 +9,51 @@ import java.util.Objects; /** - * Represents a group of products that can be displayed in online stores and other - * sales channels in categories, which makes it easy for customers to find them. - * For example, an athletics store might create different collections for running - * attire, shoes, and accessories. + * The `Collection` object represents a group of [products](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) + * that merchants can organize to make their stores easier to browse and help customers find related products. + * Collections serve as the primary way to categorize and display products across + * [online stores](https://shopify.dev/docs/apps/build/online-store), + * [sales channels](https://shopify.dev/docs/apps/build/sales-channels), and marketing campaigns. * - * Collections can be defined by conditions, such as whether they match certain - * product tags. These are called smart or automated collections. + * There are two types of collections: * - * Collections can also be created for a custom group of products. These are called custom or manual collections. + * - **[Custom (manual) collections](https://help.shopify.com/manual/products/collections/manual-shopify-collection)**: + * You specify the products to include in a collection. + * - **[Smart (automated) collections](https://help.shopify.com/manual/products/collections/automated-collections)**: + * You define rules, and products matching those rules are automatically included + * in the collection. + * + * The `Collection` object provides information to: + * + * - Organize products by category, season, or promotion. + * - Automate product grouping using rules (for example, by tag, type, or price). + * - Configure product sorting and display order (for example, alphabetical, best-selling, price, or manual). + * - Manage collection visibility and publication across sales channels. + * - Add rich descriptions, images, and metadata to enhance discovery. + * + * > Note: + * > Collections are unpublished by default. To make them available to customers, + * use the [`publishablePublish`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/publishablePublish) + * mutation after creation. + * + * Collections can be displayed in a store with Shopify's theme system through [Liquid templates](https://shopify.dev/docs/storefronts/themes/architecture/templates/collection) + * and can be customized with [template suffixes](https://shopify.dev/docs/storefronts/themes/architecture/templates/alternate-templates) + * for unique layouts. They also support advanced features like translated content, resource feedback, + * and contextual publication for location-based catalogs. + * + * Learn about [using metafields with smart collections](https://shopify.dev/docs/apps/build/custom-data/metafields/use-metafield-capabilities). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE ) public class Collection implements MetafieldReference, MetafieldReferencer, com.shopify.admin.types.HasEvents, com.shopify.admin.types.HasMetafieldDefinitions, com.shopify.admin.types.HasMetafields, com.shopify.admin.types.HasPublishedTranslations, com.shopify.admin.types.Node, com.shopify.admin.types.Publishable { + /** + * Collection duplicate operations involving this collection, either as a source + * (copying products from this collection to another) or a target (copying + * products to this collection from another). + */ + private CollectionOperations activeOperations; + /** * The number of * [publications](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication) @@ -237,6 +268,19 @@ public class Collection implements MetafieldReference, MetafieldReferencer, com. public Collection() { } + /** + * Collection duplicate operations involving this collection, either as a source + * (copying products from this collection to another) or a target (copying + * products to this collection from another). + */ + public CollectionOperations getActiveOperations() { + return activeOperations; + } + + public void setActiveOperations(CollectionOperations activeOperations) { + this.activeOperations = activeOperations; + } + /** * The number of * [publications](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication) @@ -654,7 +698,7 @@ public void setUpdatedAt(OffsetDateTime updatedAt) { @Override public String toString() { - return "Collection{availablePublicationsCount='" + availablePublicationsCount + "', description='" + description + "', descriptionHtml='" + descriptionHtml + "', events='" + events + "', feedback='" + feedback + "', handle='" + handle + "', hasProduct='" + hasProduct + "', id='" + id + "', image='" + image + "', legacyResourceId='" + legacyResourceId + "', metafield='" + metafield + "', metafieldDefinitions='" + metafieldDefinitions + "', metafields='" + metafields + "', products='" + products + "', productsCount='" + productsCount + "', publicationCount='" + publicationCount + "', publications='" + publications + "', publishedOnChannel='" + publishedOnChannel + "', publishedOnCurrentChannel='" + publishedOnCurrentChannel + "', publishedOnCurrentPublication='" + publishedOnCurrentPublication + "', publishedOnPublication='" + publishedOnPublication + "', resourcePublications='" + resourcePublications + "', resourcePublicationsCount='" + resourcePublicationsCount + "', resourcePublicationsV2='" + resourcePublicationsV2 + "', ruleSet='" + ruleSet + "', seo='" + seo + "', sortOrder='" + sortOrder + "', storefrontId='" + storefrontId + "', templateSuffix='" + templateSuffix + "', title='" + title + "', translations='" + translations + "', unpublishedChannels='" + unpublishedChannels + "', unpublishedPublications='" + unpublishedPublications + "', updatedAt='" + updatedAt + "'}"; + return "Collection{activeOperations='" + activeOperations + "', availablePublicationsCount='" + availablePublicationsCount + "', description='" + description + "', descriptionHtml='" + descriptionHtml + "', events='" + events + "', feedback='" + feedback + "', handle='" + handle + "', hasProduct='" + hasProduct + "', id='" + id + "', image='" + image + "', legacyResourceId='" + legacyResourceId + "', metafield='" + metafield + "', metafieldDefinitions='" + metafieldDefinitions + "', metafields='" + metafields + "', products='" + products + "', productsCount='" + productsCount + "', publicationCount='" + publicationCount + "', publications='" + publications + "', publishedOnChannel='" + publishedOnChannel + "', publishedOnCurrentChannel='" + publishedOnCurrentChannel + "', publishedOnCurrentPublication='" + publishedOnCurrentPublication + "', publishedOnPublication='" + publishedOnPublication + "', resourcePublications='" + resourcePublications + "', resourcePublicationsCount='" + resourcePublicationsCount + "', resourcePublicationsV2='" + resourcePublicationsV2 + "', ruleSet='" + ruleSet + "', seo='" + seo + "', sortOrder='" + sortOrder + "', storefrontId='" + storefrontId + "', templateSuffix='" + templateSuffix + "', title='" + title + "', translations='" + translations + "', unpublishedChannels='" + unpublishedChannels + "', unpublishedPublications='" + unpublishedPublications + "', updatedAt='" + updatedAt + "'}"; } @Override @@ -662,7 +706,8 @@ public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Collection that = (Collection) o; - return Objects.equals(availablePublicationsCount, that.availablePublicationsCount) && + return Objects.equals(activeOperations, that.activeOperations) && + Objects.equals(availablePublicationsCount, that.availablePublicationsCount) && Objects.equals(description, that.description) && Objects.equals(descriptionHtml, that.descriptionHtml) && Objects.equals(events, that.events) && @@ -700,7 +745,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(availablePublicationsCount, description, descriptionHtml, events, feedback, handle, hasProduct, id, image, legacyResourceId, metafield, metafieldDefinitions, metafields, products, productsCount, publicationCount, publications, publishedOnChannel, publishedOnCurrentChannel, publishedOnCurrentPublication, publishedOnPublication, resourcePublications, resourcePublicationsCount, resourcePublicationsV2, ruleSet, seo, sortOrder, storefrontId, templateSuffix, title, translations, unpublishedChannels, unpublishedPublications, updatedAt); + return Objects.hash(activeOperations, availablePublicationsCount, description, descriptionHtml, events, feedback, handle, hasProduct, id, image, legacyResourceId, metafield, metafieldDefinitions, metafields, products, productsCount, publicationCount, publications, publishedOnChannel, publishedOnCurrentChannel, publishedOnCurrentPublication, publishedOnPublication, resourcePublications, resourcePublicationsCount, resourcePublicationsV2, ruleSet, seo, sortOrder, storefrontId, templateSuffix, title, translations, unpublishedChannels, unpublishedPublications, updatedAt); } public static Builder newBuilder() { @@ -708,6 +753,13 @@ public static Builder newBuilder() { } public static class Builder { + /** + * Collection duplicate operations involving this collection, either as a source + * (copying products from this collection to another) or a target (copying + * products to this collection from another). + */ + private CollectionOperations activeOperations; + /** * The number of * [publications](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication) @@ -921,6 +973,7 @@ public static class Builder { public Collection build() { Collection result = new Collection(); + result.activeOperations = this.activeOperations; result.availablePublicationsCount = this.availablePublicationsCount; result.description = this.description; result.descriptionHtml = this.descriptionHtml; @@ -958,6 +1011,16 @@ public Collection build() { return result; } + /** + * Collection duplicate operations involving this collection, either as a source + * (copying products from this collection to another) or a target (copying + * products to this collection from another). + */ + public Builder activeOperations(CollectionOperations activeOperations) { + this.activeOperations = activeOperations; + return this; + } + /** * The number of * [publications](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication) diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CollectionDuplicateInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CollectionDuplicateInput.java new file mode 100644 index 00000000..9b842a2d --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CollectionDuplicateInput.java @@ -0,0 +1,148 @@ +package com.shopify.admin.types; + +import java.lang.Boolean; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * The input fields for duplicating a collection. + */ +public class CollectionDuplicateInput { + /** + * The ID of the collection to be duplicated. + */ + private String collectionId; + + /** + * The new title of the collection. + */ + private String newTitle; + + /** + * Whether to duplicate the collection's publications (channel availability). + * When `true` (default), the duplicated collection will be published to the same + * channels as the original. When `false`, the duplicated collection will be + * unpublished on all channels. + */ + private Boolean copyPublications = true; + + public CollectionDuplicateInput() { + } + + /** + * The ID of the collection to be duplicated. + */ + public String getCollectionId() { + return collectionId; + } + + public void setCollectionId(String collectionId) { + this.collectionId = collectionId; + } + + /** + * The new title of the collection. + */ + public String getNewTitle() { + return newTitle; + } + + public void setNewTitle(String newTitle) { + this.newTitle = newTitle; + } + + /** + * Whether to duplicate the collection's publications (channel availability). + * When `true` (default), the duplicated collection will be published to the same + * channels as the original. When `false`, the duplicated collection will be + * unpublished on all channels. + */ + public Boolean getCopyPublications() { + return copyPublications; + } + + public void setCopyPublications(Boolean copyPublications) { + this.copyPublications = copyPublications; + } + + @Override + public String toString() { + return "CollectionDuplicateInput{collectionId='" + collectionId + "', newTitle='" + newTitle + "', copyPublications='" + copyPublications + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + CollectionDuplicateInput that = (CollectionDuplicateInput) o; + return Objects.equals(collectionId, that.collectionId) && + Objects.equals(newTitle, that.newTitle) && + Objects.equals(copyPublications, that.copyPublications); + } + + @Override + public int hashCode() { + return Objects.hash(collectionId, newTitle, copyPublications); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The ID of the collection to be duplicated. + */ + private String collectionId; + + /** + * The new title of the collection. + */ + private String newTitle; + + /** + * Whether to duplicate the collection's publications (channel availability). + * When `true` (default), the duplicated collection will be published to the same + * channels as the original. When `false`, the duplicated collection will be + * unpublished on all channels. + */ + private Boolean copyPublications = true; + + public CollectionDuplicateInput build() { + CollectionDuplicateInput result = new CollectionDuplicateInput(); + result.collectionId = this.collectionId; + result.newTitle = this.newTitle; + result.copyPublications = this.copyPublications; + return result; + } + + /** + * The ID of the collection to be duplicated. + */ + public Builder collectionId(String collectionId) { + this.collectionId = collectionId; + return this; + } + + /** + * The new title of the collection. + */ + public Builder newTitle(String newTitle) { + this.newTitle = newTitle; + return this; + } + + /** + * Whether to duplicate the collection's publications (channel availability). + * When `true` (default), the duplicated collection will be published to the same + * channels as the original. When `false`, the duplicated collection will be + * unpublished on all channels. + */ + public Builder copyPublications(Boolean copyPublications) { + this.copyPublications = copyPublications; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CollectionDuplicateOperation.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CollectionDuplicateOperation.java new file mode 100644 index 00000000..e594886f --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CollectionDuplicateOperation.java @@ -0,0 +1,110 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * Represents an in-progress collection duplication operation. Collection + * duplication is a synchronous operation for simple collections, and an + * asynchronous operation for collections containing too many products to process synchronously. + */ +public class CollectionDuplicateOperation { + /** + * Whether the collection is the source that products are being duplicated from, + * or the target collection that products are being duplicated onto. + */ + private CollectionDuplicateOperationRole collectionRole; + + /** + * The background job performing the duplication. + */ + private Job job; + + public CollectionDuplicateOperation() { + } + + /** + * Whether the collection is the source that products are being duplicated from, + * or the target collection that products are being duplicated onto. + */ + public CollectionDuplicateOperationRole getCollectionRole() { + return collectionRole; + } + + public void setCollectionRole(CollectionDuplicateOperationRole collectionRole) { + this.collectionRole = collectionRole; + } + + /** + * The background job performing the duplication. + */ + public Job getJob() { + return job; + } + + public void setJob(Job job) { + this.job = job; + } + + @Override + public String toString() { + return "CollectionDuplicateOperation{collectionRole='" + collectionRole + "', job='" + job + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + CollectionDuplicateOperation that = (CollectionDuplicateOperation) o; + return Objects.equals(collectionRole, that.collectionRole) && + Objects.equals(job, that.job); + } + + @Override + public int hashCode() { + return Objects.hash(collectionRole, job); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * Whether the collection is the source that products are being duplicated from, + * or the target collection that products are being duplicated onto. + */ + private CollectionDuplicateOperationRole collectionRole; + + /** + * The background job performing the duplication. + */ + private Job job; + + public CollectionDuplicateOperation build() { + CollectionDuplicateOperation result = new CollectionDuplicateOperation(); + result.collectionRole = this.collectionRole; + result.job = this.job; + return result; + } + + /** + * Whether the collection is the source that products are being duplicated from, + * or the target collection that products are being duplicated onto. + */ + public Builder collectionRole(CollectionDuplicateOperationRole collectionRole) { + this.collectionRole = collectionRole; + return this; + } + + /** + * The background job performing the duplication. + */ + public Builder job(Job job) { + this.job = job; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CollectionDuplicateOperationRole.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CollectionDuplicateOperationRole.java new file mode 100644 index 00000000..81f66725 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CollectionDuplicateOperationRole.java @@ -0,0 +1,10 @@ +package com.shopify.admin.types; + +/** + * The role a collection plays in a duplication operation. + */ +public enum CollectionDuplicateOperationRole { + SOURCE, + + TARGET +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CollectionDuplicatePayload.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CollectionDuplicatePayload.java new file mode 100644 index 00000000..f22b8a86 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CollectionDuplicatePayload.java @@ -0,0 +1,152 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * Return type for `collectionDuplicate` mutation. + */ +public class CollectionDuplicatePayload { + /** + * The newly created duplicate collection. Will contain all data if duplication completed synchronously. + * If async processing is required, the collection will be created but products will be added in the background + * and can be tracked via the job field or the collection's active_operations field. + */ + private Collection collection; + + /** + * The background job copying manually included products onto the target + * collection. Only returned if async processing is required, otherwise products + * will be copied synchronously when the collection is created. + */ + private Job job; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public CollectionDuplicatePayload() { + } + + /** + * The newly created duplicate collection. Will contain all data if duplication completed synchronously. + * If async processing is required, the collection will be created but products will be added in the background + * and can be tracked via the job field or the collection's active_operations field. + */ + public Collection getCollection() { + return collection; + } + + public void setCollection(Collection collection) { + this.collection = collection; + } + + /** + * The background job copying manually included products onto the target + * collection. Only returned if async processing is required, otherwise products + * will be copied synchronously when the collection is created. + */ + public Job getJob() { + return job; + } + + public void setJob(Job job) { + this.job = job; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public List getUserErrors() { + return userErrors; + } + + public void setUserErrors(List userErrors) { + this.userErrors = userErrors; + } + + @Override + public String toString() { + return "CollectionDuplicatePayload{collection='" + collection + "', job='" + job + "', userErrors='" + userErrors + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + CollectionDuplicatePayload that = (CollectionDuplicatePayload) o; + return Objects.equals(collection, that.collection) && + Objects.equals(job, that.job) && + Objects.equals(userErrors, that.userErrors); + } + + @Override + public int hashCode() { + return Objects.hash(collection, job, userErrors); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The newly created duplicate collection. Will contain all data if duplication completed synchronously. + * If async processing is required, the collection will be created but products will be added in the background + * and can be tracked via the job field or the collection's active_operations field. + */ + private Collection collection; + + /** + * The background job copying manually included products onto the target + * collection. Only returned if async processing is required, otherwise products + * will be copied synchronously when the collection is created. + */ + private Job job; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public CollectionDuplicatePayload build() { + CollectionDuplicatePayload result = new CollectionDuplicatePayload(); + result.collection = this.collection; + result.job = this.job; + result.userErrors = this.userErrors; + return result; + } + + /** + * The newly created duplicate collection. Will contain all data if duplication completed synchronously. + * If async processing is required, the collection will be created but products will be added in the background + * and can be tracked via the job field or the collection's active_operations field. + */ + public Builder collection(Collection collection) { + this.collection = collection; + return this; + } + + /** + * The background job copying manually included products onto the target + * collection. Only returned if async processing is required, otherwise products + * will be copied synchronously when the collection is created. + */ + public Builder job(Job job) { + this.job = job; + return this; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public Builder userErrors(List userErrors) { + this.userErrors = userErrors; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CollectionDuplicateUserError.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CollectionDuplicateUserError.java new file mode 100644 index 00000000..dd1d0ac4 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CollectionDuplicateUserError.java @@ -0,0 +1,140 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * Errors related to collection duplication. + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NONE +) +public class CollectionDuplicateUserError implements com.shopify.admin.types.DisplayableError { + /** + * The error code. + */ + private CollectionDuplicateUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public CollectionDuplicateUserError() { + } + + /** + * The error code. + */ + public CollectionDuplicateUserErrorCode getCode() { + return code; + } + + public void setCode(CollectionDuplicateUserErrorCode code) { + this.code = code; + } + + /** + * The path to the input field that caused the error. + */ + public List getField() { + return field; + } + + public void setField(List field) { + this.field = field; + } + + /** + * The error message. + */ + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + @Override + public String toString() { + return "CollectionDuplicateUserError{code='" + code + "', field='" + field + "', message='" + message + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + CollectionDuplicateUserError that = (CollectionDuplicateUserError) o; + return Objects.equals(code, that.code) && + Objects.equals(field, that.field) && + Objects.equals(message, that.message); + } + + @Override + public int hashCode() { + return Objects.hash(code, field, message); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The error code. + */ + private CollectionDuplicateUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public CollectionDuplicateUserError build() { + CollectionDuplicateUserError result = new CollectionDuplicateUserError(); + result.code = this.code; + result.field = this.field; + result.message = this.message; + return result; + } + + /** + * The error code. + */ + public Builder code(CollectionDuplicateUserErrorCode code) { + this.code = code; + return this; + } + + /** + * The path to the input field that caused the error. + */ + public Builder field(List field) { + this.field = field; + return this; + } + + /** + * The error message. + */ + public Builder message(String message) { + this.message = message; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CollectionDuplicateUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CollectionDuplicateUserErrorCode.java new file mode 100644 index 00000000..2ce1c950 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CollectionDuplicateUserErrorCode.java @@ -0,0 +1,8 @@ +package com.shopify.admin.types; + +/** + * Possible error codes that can be returned by `CollectionDuplicateUserError`. + */ +public enum CollectionDuplicateUserErrorCode { + COLLECTION_NOT_FOUND +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CollectionOperations.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CollectionOperations.java new file mode 100644 index 00000000..a77c7e92 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CollectionOperations.java @@ -0,0 +1,74 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * Represents operations involving a collection. + */ +public class CollectionOperations { + /** + * Collection duplicate operations. + */ + private List duplicate; + + public CollectionOperations() { + } + + /** + * Collection duplicate operations. + */ + public List getDuplicate() { + return duplicate; + } + + public void setDuplicate(List duplicate) { + this.duplicate = duplicate; + } + + @Override + public String toString() { + return "CollectionOperations{duplicate='" + duplicate + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + CollectionOperations that = (CollectionOperations) o; + return Objects.equals(duplicate, that.duplicate); + } + + @Override + public int hashCode() { + return Objects.hash(duplicate); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * Collection duplicate operations. + */ + private List duplicate; + + public CollectionOperations build() { + CollectionOperations result = new CollectionOperations(); + result.duplicate = this.duplicate; + return result; + } + + /** + * Collection duplicate operations. + */ + public Builder duplicate(List duplicate) { + this.duplicate = duplicate; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CollectionPublication.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CollectionPublication.java index 6d1515bf..cc62746f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CollectionPublication.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CollectionPublication.java @@ -7,7 +7,35 @@ import java.util.Objects; /** - * Represents the publications where a collection is published. + * Represents the publication status and settings for a collection across different + * sales channels. This tracks where collections are published, when they were + * published, and any channel-specific configuration. + * + * For example, a "Holiday Gifts" collection might be published to the online store + * and Facebook Shop but not to the POS channel, with different publication dates + * for each channel based on marketing strategy. + * + * Use `CollectionPublication` to: + * - Track collection visibility across multiple sales channels + * - Manage channel-specific collection settings and availability + * - Monitor publication history and timing for collections + * - Control where collections appear in customer-facing channels + * - Implement channel-specific collection management workflows + * + * Each publication record includes the channel information, publication status, + * and timing details. This enables merchants to control collection visibility + * strategically across their sales channels. + * + * Collections can have different publication settings per channel, allowing for + * targeted marketing and inventory management. For instance, wholesale collections + * might only be published to B2B channels while retail collections appear in + * consumer-facing channels. + * + * The publication system integrates with Shopify's broader channel management, + * ensuring collections appear consistently across the merchant's sales ecosystem + * while respecting channel-specific rules and permissions. + * + * Learn more about [sales channel management](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication). */ public class CollectionPublication { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CollectionReorderProductsPayload.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CollectionReorderProductsPayload.java index 051aed76..210cc3dc 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CollectionReorderProductsPayload.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CollectionReorderProductsPayload.java @@ -18,7 +18,7 @@ public class CollectionReorderProductsPayload { /** * The list of errors that occurred from executing the mutation. */ - private List userErrors; + private List userErrors; public CollectionReorderProductsPayload() { } @@ -37,11 +37,11 @@ public void setJob(Job job) { /** * The list of errors that occurred from executing the mutation. */ - public List getUserErrors() { + public List getUserErrors() { return userErrors; } - public void setUserErrors(List userErrors) { + public void setUserErrors(List userErrors) { this.userErrors = userErrors; } @@ -77,7 +77,7 @@ public static class Builder { /** * The list of errors that occurred from executing the mutation. */ - private List userErrors; + private List userErrors; public CollectionReorderProductsPayload build() { CollectionReorderProductsPayload result = new CollectionReorderProductsPayload(); @@ -97,7 +97,7 @@ public Builder job(Job job) { /** * The list of errors that occurred from executing the mutation. */ - public Builder userErrors(List userErrors) { + public Builder userErrors(List userErrors) { this.userErrors = userErrors; return this; } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CollectionReorderProductsUserError.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CollectionReorderProductsUserError.java new file mode 100644 index 00000000..fa65f1b9 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CollectionReorderProductsUserError.java @@ -0,0 +1,140 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * Errors related to order customer removal. + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NONE +) +public class CollectionReorderProductsUserError implements com.shopify.admin.types.DisplayableError { + /** + * The error code. + */ + private CollectionReorderProductsUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public CollectionReorderProductsUserError() { + } + + /** + * The error code. + */ + public CollectionReorderProductsUserErrorCode getCode() { + return code; + } + + public void setCode(CollectionReorderProductsUserErrorCode code) { + this.code = code; + } + + /** + * The path to the input field that caused the error. + */ + public List getField() { + return field; + } + + public void setField(List field) { + this.field = field; + } + + /** + * The error message. + */ + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + @Override + public String toString() { + return "CollectionReorderProductsUserError{code='" + code + "', field='" + field + "', message='" + message + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + CollectionReorderProductsUserError that = (CollectionReorderProductsUserError) o; + return Objects.equals(code, that.code) && + Objects.equals(field, that.field) && + Objects.equals(message, that.message); + } + + @Override + public int hashCode() { + return Objects.hash(code, field, message); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The error code. + */ + private CollectionReorderProductsUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public CollectionReorderProductsUserError build() { + CollectionReorderProductsUserError result = new CollectionReorderProductsUserError(); + result.code = this.code; + result.field = this.field; + result.message = this.message; + return result; + } + + /** + * The error code. + */ + public Builder code(CollectionReorderProductsUserErrorCode code) { + this.code = code; + return this; + } + + /** + * The path to the input field that caused the error. + */ + public Builder field(List field) { + this.field = field; + return this; + } + + /** + * The error message. + */ + public Builder message(String message) { + this.message = message; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CollectionReorderProductsUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CollectionReorderProductsUserErrorCode.java new file mode 100644 index 00000000..b3d5c157 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CollectionReorderProductsUserErrorCode.java @@ -0,0 +1,14 @@ +package com.shopify.admin.types; + +/** + * Possible error codes that can be returned by `CollectionReorderProductsUserError`. + */ +public enum CollectionReorderProductsUserErrorCode { + TOO_MANY_ATTEMPTS_TO_REORDER_PRODUCTS, + + COLLECTION_NOT_FOUND, + + MANUALLY_SORTED_COLLECTION, + + INVALID_MOVE +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CollectionRuleConditions.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CollectionRuleConditions.java index 6e68f425..38724297 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CollectionRuleConditions.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CollectionRuleConditions.java @@ -7,8 +7,24 @@ import java.util.Objects; /** - * This object defines all columns and allowed relations that can be used in rules - * for smart collections to automatically include the matching products. + * Defines the available columns and relationships that can be used when creating + * rules for smart collections. This provides the schema for building automated + * collection logic based on product attributes. + * + * For example, merchants can create rules like "product type equals 'Shirts'" or + * "vendor contains 'Nike'" using the conditions defined in this object to + * automatically populate collections. + * + * Use `CollectionRuleConditions` to: + * - Discovering valid field options for smart collection rule interfaces + * - Understanding which conditions are available for automated collections + * - Exploring available product attributes for collection automation + * - Learning about proper field relationships for rule implementation + * + * The conditions define which product fields can be used in smart collection rules + * and what types of comparisons are allowed for each field. + * + * Learn more about [smart collections](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection). */ public class CollectionRuleConditions { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ColumnDataType.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ColumnDataType.java new file mode 100644 index 00000000..d301b4cf --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ColumnDataType.java @@ -0,0 +1,62 @@ +package com.shopify.admin.types; + +/** + * The data type of a column. + */ +public enum ColumnDataType { + UNSPECIFIED, + + MONEY, + + PERCENT, + + INTEGER, + + FLOAT, + + DECIMAL, + + STRING, + + BOOLEAN, + + TIMESTAMP, + + MINUTE_TIMESTAMP, + + HOUR_TIMESTAMP, + + DAY_TIMESTAMP, + + WEEK_TIMESTAMP, + + MONTH_TIMESTAMP, + + QUARTER_TIMESTAMP, + + YEAR_TIMESTAMP, + + DAY_OF_WEEK, + + HOUR_OF_DAY, + + IDENTITY, + + MONTH_OF_YEAR, + + WEEK_OF_YEAR, + + SECOND_TIMESTAMP, + + ARRAY, + + MILLISECOND_DURATION, + + SECOND_DURATION, + + MINUTE_DURATION, + + HOUR_DURATION, + + DAY_DURATION +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CombinedListingUpdateUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CombinedListingUpdateUserErrorCode.java index f200aaef..244d7cf5 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CombinedListingUpdateUserErrorCode.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CombinedListingUpdateUserErrorCode.java @@ -48,10 +48,14 @@ public enum CombinedListingUpdateUserErrorCode { OPTION_VALUES_CANNOT_BE_EMPTY, + OPTION_VALUES_MUST_BE_COMPLETE, + PARENT_PRODUCT_CANNOT_BE_COMBINED_LISTING_CHILD, PARENT_PRODUCT_MUST_BE_A_COMBINED_LISTING, + PARENT_PRODUCT_MUST_HAVE_CATEGORY, + PARENT_PRODUCT_NOT_FOUND, PRODUCT_IS_ALREADY_A_CHILD, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CommentAuthor.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CommentAuthor.java index df0fcba5..2a5ebd6f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CommentAuthor.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CommentAuthor.java @@ -6,7 +6,18 @@ import java.util.Objects; /** - * The author of a comment. + * The author of a comment on a blog article, containing the commenter's name and + * email address. This information helps merchants moderate comments and + * potentially engage with their community. + * + * For example, when reviewing pending comments, merchants can see the commenter's + * name and email to help with moderation decisions or to enable follow-up + * communication if needed. + * + * Use the `CommentAuthor` object to: + * - Display comment attribution + * - Support comment moderation workflows + * - Enable merchant-to-reader communication */ public class CommentAuthor { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CommentEvent.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CommentEvent.java index 72a758e1..63be3912 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CommentEvent.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CommentEvent.java @@ -9,8 +9,17 @@ import java.util.Objects; /** - * Comment events are generated by staff members of a shop. - * They are created when a staff member adds a comment to the timeline of an order, draft order, customer, or transfer. + * A comment that staff members add to the timeline of + * [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order), [`DraftOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrder), [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer), [`InventoryTransfer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryTransfer), + * [`Company`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Company), [`CompanyLocation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CompanyLocation), or [`PriceRule`](https://shopify.dev/docs/api/admin-graphql/latest/objects/PriceRule) + * objects. Staff use comments to document internal notes, communicate with team + * members, and track important information about these types. + * + * The comment includes information like the [`StaffMember`](https://shopify.dev/docs/api/admin-graphql/latest/objects/StaffMember) + * who authored it, when it was created, and whether it's editable or deletable. + * Comments can have file attachments and reference related objects like + * [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) or [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) + * objects through embeds. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CommentEventEmbed.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CommentEventEmbed.java index beadbb68..05ac5ce0 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CommentEventEmbed.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CommentEventEmbed.java @@ -11,6 +11,7 @@ @JsonSubTypes({ @JsonSubTypes.Type(value = Customer.class, name = "Customer"), @JsonSubTypes.Type(value = DraftOrder.class, name = "DraftOrder"), + @JsonSubTypes.Type(value = InventoryTransfer.class, name = "InventoryTransfer"), @JsonSubTypes.Type(value = Order.class, name = "Order"), @JsonSubTypes.Type(value = Product.class, name = "Product"), @JsonSubTypes.Type(value = ProductVariant.class, name = "ProductVariant") diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CommentEventSubject.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CommentEventSubject.java index bf941ae6..2ee73e47 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CommentEventSubject.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CommentEventSubject.java @@ -17,6 +17,7 @@ @JsonSubTypes.Type(value = CompanyLocation.class, name = "CompanyLocation"), @JsonSubTypes.Type(value = Customer.class, name = "Customer"), @JsonSubTypes.Type(value = DraftOrder.class, name = "DraftOrder"), + @JsonSubTypes.Type(value = InventoryTransfer.class, name = "InventoryTransfer"), @JsonSubTypes.Type(value = Order.class, name = "Order"), @JsonSubTypes.Type(value = PriceRule.class, name = "PriceRule") }) diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Company.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Company.java index 9d326925..3f45fa94 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Company.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Company.java @@ -8,7 +8,11 @@ import java.util.Objects; /** - * Represents information about a company which is also a customer of the shop. + * A business entity that purchases from the shop as part of B2B commerce. + * Companies organize multiple locations and contacts who can place orders on + * behalf of the organization. [`CompanyLocation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CompanyLocation) + * objects can have custom pricing through [`Catalog`](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/Catalog) and [`PriceList`](https://shopify.dev/docs/api/admin-graphql/latest/objects/PriceList) + * configurations. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CompanyContact.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CompanyContact.java index a9a10581..4ca0428e 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CompanyContact.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CompanyContact.java @@ -8,8 +8,15 @@ import java.util.Objects; /** - * A person that acts on behalf of company associated to [a - * customer](https://shopify.dev/api/admin-graphql/latest/objects/customer). + * A person who acts on behalf of a + * [`Company`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Company) + * to make B2B purchases. Company contacts are associated with + * [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer) + * accounts and can place orders on behalf of their company. + * + * Each contact can be assigned to one or more [`CompanyLocation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CompanyLocation) + * objects with specific roles that determine their permissions and access to + * catalogs, pricing, and payment terms configured for those locations. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CompanyLocation.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CompanyLocation.java index 27d247fb..aa6370a6 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CompanyLocation.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CompanyLocation.java @@ -9,15 +9,24 @@ import java.util.Objects; /** - * A location or branch of a [company that's a - * customer](https://shopify.dev/api/admin-graphql/latest/objects/company) of the - * shop. Configuration of B2B relationship, for example prices lists and checkout - * settings, may be done for a location. + * A location or branch of a + * [`Company`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Company) + * that's a customer of the shop. Company locations enable B2B customers to manage + * multiple branches with distinct billing and shipping addresses, tax settings, + * and checkout configurations. + * + * Each location can have its own [`Catalog`](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/Catalog) + * objects that determine which products are published and their pricing. The [`BuyerExperienceConfiguration`](https://shopify.dev/docs/api/admin-graphql/latest/objects/BuyerExperienceConfiguration) + * determines checkout behavior including [`PaymentTerms`](https://shopify.dev/docs/api/admin-graphql/latest/objects/PaymentTerms), + * and whether orders require merchant review. B2B customers select which location + * they're purchasing for, which determines the applicable catalogs, pricing, [`TaxExemption`](https://shopify.dev/docs/api/admin-graphql/latest/enums/TaxExemption) + * values, and checkout settings for their + * [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) objects. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE ) -public class CompanyLocation implements MetafieldReferencer, com.shopify.admin.types.CommentEventSubject, com.shopify.admin.types.HasEvents, com.shopify.admin.types.HasMetafieldDefinitions, com.shopify.admin.types.HasMetafields, com.shopify.admin.types.Navigable, com.shopify.admin.types.Node { +public class CompanyLocation implements MetafieldReferencer, com.shopify.admin.types.CommentEventSubject, com.shopify.admin.types.HasEvents, com.shopify.admin.types.HasMetafieldDefinitions, com.shopify.admin.types.HasMetafields, com.shopify.admin.types.HasStoreCreditAccounts, com.shopify.admin.types.Navigable, com.shopify.admin.types.Node { /** * The address used as billing address for the location. */ @@ -34,7 +43,7 @@ public class CompanyLocation implements MetafieldReferencer, com.shopify.admin.t private CatalogConnection catalogs; /** - * The number of catalogs associated with the company location. Limited to a maximum of 10000. + * The number of catalogs associated with the company location. Limited to a maximum of 10000 by default. */ private Count catalogsCount; @@ -165,6 +174,12 @@ public class CompanyLocation implements MetafieldReferencer, com.shopify.admin.t */ private CompanyLocationStaffMemberAssignmentConnection staffMemberAssignments; + /** + * Returns a list of store credit accounts that belong to the owner resource. + * A store credit account owner can hold multiple accounts each with a different currency. + */ + private StoreCreditAccountConnection storeCreditAccounts; + /** * The list of tax exemptions applied to the location. */ @@ -229,7 +244,7 @@ public void setCatalogs(CatalogConnection catalogs) { } /** - * The number of catalogs associated with the company location. Limited to a maximum of 10000. + * The number of catalogs associated with the company location. Limited to a maximum of 10000 by default. */ public Count getCatalogsCount() { return catalogsCount; @@ -511,6 +526,18 @@ public void setStaffMemberAssignments( this.staffMemberAssignments = staffMemberAssignments; } + /** + * Returns a list of store credit accounts that belong to the owner resource. + * A store credit account owner can hold multiple accounts each with a different currency. + */ + public StoreCreditAccountConnection getStoreCreditAccounts() { + return storeCreditAccounts; + } + + public void setStoreCreditAccounts(StoreCreditAccountConnection storeCreditAccounts) { + this.storeCreditAccounts = storeCreditAccounts; + } + /** * The list of tax exemptions applied to the location. */ @@ -569,7 +596,7 @@ public void setUpdatedAt(OffsetDateTime updatedAt) { @Override public String toString() { - return "CompanyLocation{billingAddress='" + billingAddress + "', buyerExperienceConfiguration='" + buyerExperienceConfiguration + "', catalogs='" + catalogs + "', catalogsCount='" + catalogsCount + "', company='" + company + "', createdAt='" + createdAt + "', currency='" + currency + "', defaultCursor='" + defaultCursor + "', draftOrders='" + draftOrders + "', events='" + events + "', externalId='" + externalId + "', hasTimelineComment='" + hasTimelineComment + "', id='" + id + "', inCatalog='" + inCatalog + "', locale='" + locale + "', market='" + market + "', metafield='" + metafield + "', metafieldDefinitions='" + metafieldDefinitions + "', metafields='" + metafields + "', name='" + name + "', note='" + note + "', orderCount='" + orderCount + "', orders='" + orders + "', ordersCount='" + ordersCount + "', phone='" + phone + "', roleAssignments='" + roleAssignments + "', shippingAddress='" + shippingAddress + "', staffMemberAssignments='" + staffMemberAssignments + "', taxExemptions='" + taxExemptions + "', taxRegistrationId='" + taxRegistrationId + "', taxSettings='" + taxSettings + "', totalSpent='" + totalSpent + "', updatedAt='" + updatedAt + "'}"; + return "CompanyLocation{billingAddress='" + billingAddress + "', buyerExperienceConfiguration='" + buyerExperienceConfiguration + "', catalogs='" + catalogs + "', catalogsCount='" + catalogsCount + "', company='" + company + "', createdAt='" + createdAt + "', currency='" + currency + "', defaultCursor='" + defaultCursor + "', draftOrders='" + draftOrders + "', events='" + events + "', externalId='" + externalId + "', hasTimelineComment='" + hasTimelineComment + "', id='" + id + "', inCatalog='" + inCatalog + "', locale='" + locale + "', market='" + market + "', metafield='" + metafield + "', metafieldDefinitions='" + metafieldDefinitions + "', metafields='" + metafields + "', name='" + name + "', note='" + note + "', orderCount='" + orderCount + "', orders='" + orders + "', ordersCount='" + ordersCount + "', phone='" + phone + "', roleAssignments='" + roleAssignments + "', shippingAddress='" + shippingAddress + "', staffMemberAssignments='" + staffMemberAssignments + "', storeCreditAccounts='" + storeCreditAccounts + "', taxExemptions='" + taxExemptions + "', taxRegistrationId='" + taxRegistrationId + "', taxSettings='" + taxSettings + "', totalSpent='" + totalSpent + "', updatedAt='" + updatedAt + "'}"; } @Override @@ -605,6 +632,7 @@ public boolean equals(Object o) { Objects.equals(roleAssignments, that.roleAssignments) && Objects.equals(shippingAddress, that.shippingAddress) && Objects.equals(staffMemberAssignments, that.staffMemberAssignments) && + Objects.equals(storeCreditAccounts, that.storeCreditAccounts) && Objects.equals(taxExemptions, that.taxExemptions) && Objects.equals(taxRegistrationId, that.taxRegistrationId) && Objects.equals(taxSettings, that.taxSettings) && @@ -614,7 +642,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(billingAddress, buyerExperienceConfiguration, catalogs, catalogsCount, company, createdAt, currency, defaultCursor, draftOrders, events, externalId, hasTimelineComment, id, inCatalog, locale, market, metafield, metafieldDefinitions, metafields, name, note, orderCount, orders, ordersCount, phone, roleAssignments, shippingAddress, staffMemberAssignments, taxExemptions, taxRegistrationId, taxSettings, totalSpent, updatedAt); + return Objects.hash(billingAddress, buyerExperienceConfiguration, catalogs, catalogsCount, company, createdAt, currency, defaultCursor, draftOrders, events, externalId, hasTimelineComment, id, inCatalog, locale, market, metafield, metafieldDefinitions, metafields, name, note, orderCount, orders, ordersCount, phone, roleAssignments, shippingAddress, staffMemberAssignments, storeCreditAccounts, taxExemptions, taxRegistrationId, taxSettings, totalSpent, updatedAt); } public static Builder newBuilder() { @@ -638,7 +666,7 @@ public static class Builder { private CatalogConnection catalogs; /** - * The number of catalogs associated with the company location. Limited to a maximum of 10000. + * The number of catalogs associated with the company location. Limited to a maximum of 10000 by default. */ private Count catalogsCount; @@ -769,6 +797,12 @@ public static class Builder { */ private CompanyLocationStaffMemberAssignmentConnection staffMemberAssignments; + /** + * Returns a list of store credit accounts that belong to the owner resource. + * A store credit account owner can hold multiple accounts each with a different currency. + */ + private StoreCreditAccountConnection storeCreditAccounts; + /** * The list of tax exemptions applied to the location. */ @@ -825,6 +859,7 @@ public CompanyLocation build() { result.roleAssignments = this.roleAssignments; result.shippingAddress = this.shippingAddress; result.staffMemberAssignments = this.staffMemberAssignments; + result.storeCreditAccounts = this.storeCreditAccounts; result.taxExemptions = this.taxExemptions; result.taxRegistrationId = this.taxRegistrationId; result.taxSettings = this.taxSettings; @@ -859,7 +894,7 @@ public Builder catalogs(CatalogConnection catalogs) { } /** - * The number of catalogs associated with the company location. Limited to a maximum of 10000. + * The number of catalogs associated with the company location. Limited to a maximum of 10000 by default. */ public Builder catalogsCount(Count catalogsCount) { this.catalogsCount = catalogsCount; @@ -1066,6 +1101,15 @@ public Builder staffMemberAssignments( return this; } + /** + * Returns a list of store credit accounts that belong to the owner resource. + * A store credit account owner can hold multiple accounts each with a different currency. + */ + public Builder storeCreditAccounts(StoreCreditAccountConnection storeCreditAccounts) { + this.storeCreditAccounts = storeCreditAccounts; + return this; + } + /** * The list of tax exemptions applied to the location. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CompanyLocationCatalog.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CompanyLocationCatalog.java index bcde1959..5178e3c2 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CompanyLocationCatalog.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CompanyLocationCatalog.java @@ -9,6 +9,10 @@ /** * A list of products with publishing and pricing information associated with company locations. + * + * Company location catalogs can include an optional publication to control product + * visibility and a price list to customize pricing. When a publication isn't + * associated with the catalog, product availability is determined by the sales channel. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ComponentizedProductsBundleConsolidatedOption.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ComponentizedProductsBundleConsolidatedOption.java new file mode 100644 index 00000000..429bc2a1 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ComponentizedProductsBundleConsolidatedOption.java @@ -0,0 +1,107 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * An option on the bundle parent product that is consolidated from multiple different components. + */ +public class ComponentizedProductsBundleConsolidatedOption { + /** + * The name of the consolidated option. + */ + private String name; + + /** + * The selections of the consolidated option. + */ + private List selections; + + public ComponentizedProductsBundleConsolidatedOption() { + } + + /** + * The name of the consolidated option. + */ + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + /** + * The selections of the consolidated option. + */ + public List getSelections() { + return selections; + } + + public void setSelections( + List selections) { + this.selections = selections; + } + + @Override + public String toString() { + return "ComponentizedProductsBundleConsolidatedOption{name='" + name + "', selections='" + selections + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ComponentizedProductsBundleConsolidatedOption that = (ComponentizedProductsBundleConsolidatedOption) o; + return Objects.equals(name, that.name) && + Objects.equals(selections, that.selections); + } + + @Override + public int hashCode() { + return Objects.hash(name, selections); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The name of the consolidated option. + */ + private String name; + + /** + * The selections of the consolidated option. + */ + private List selections; + + public ComponentizedProductsBundleConsolidatedOption build() { + ComponentizedProductsBundleConsolidatedOption result = new ComponentizedProductsBundleConsolidatedOption(); + result.name = this.name; + result.selections = this.selections; + return result; + } + + /** + * The name of the consolidated option. + */ + public Builder name(String name) { + this.name = name; + return this; + } + + /** + * The selections of the consolidated option. + */ + public Builder selections( + List selections) { + this.selections = selections; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ComponentizedProductsBundleConsolidatedOptionSelection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ComponentizedProductsBundleConsolidatedOptionSelection.java new file mode 100644 index 00000000..6e383c8e --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ComponentizedProductsBundleConsolidatedOptionSelection.java @@ -0,0 +1,107 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * An option selection for a bundle consolidated option. + */ +public class ComponentizedProductsBundleConsolidatedOptionSelection { + /** + * The component values that are included in the consolidated option selection. + */ + private List components; + + /** + * The value of the consolidated option on the bundle parent. + */ + private String value; + + public ComponentizedProductsBundleConsolidatedOptionSelection() { + } + + /** + * The component values that are included in the consolidated option selection. + */ + public List getComponents() { + return components; + } + + public void setComponents( + List components) { + this.components = components; + } + + /** + * The value of the consolidated option on the bundle parent. + */ + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + @Override + public String toString() { + return "ComponentizedProductsBundleConsolidatedOptionSelection{components='" + components + "', value='" + value + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ComponentizedProductsBundleConsolidatedOptionSelection that = (ComponentizedProductsBundleConsolidatedOptionSelection) o; + return Objects.equals(components, that.components) && + Objects.equals(value, that.value); + } + + @Override + public int hashCode() { + return Objects.hash(components, value); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The component values that are included in the consolidated option selection. + */ + private List components; + + /** + * The value of the consolidated option on the bundle parent. + */ + private String value; + + public ComponentizedProductsBundleConsolidatedOptionSelection build() { + ComponentizedProductsBundleConsolidatedOptionSelection result = new ComponentizedProductsBundleConsolidatedOptionSelection(); + result.components = this.components; + result.value = this.value; + return result; + } + + /** + * The component values that are included in the consolidated option selection. + */ + public Builder components( + List components) { + this.components = components; + return this; + } + + /** + * The value of the consolidated option on the bundle parent. + */ + public Builder value(String value) { + this.value = value; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ComponentizedProductsBundleConsolidatedOptionSelectionComponent.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ComponentizedProductsBundleConsolidatedOptionSelectionComponent.java new file mode 100644 index 00000000..4128fc5c --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ComponentizedProductsBundleConsolidatedOptionSelectionComponent.java @@ -0,0 +1,104 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * A component that's included in a bundle consolidated option selection. + */ +public class ComponentizedProductsBundleConsolidatedOptionSelectionComponent { + /** + * The ID of the component's option that's included in this consolidated option selection. + */ + private String optionId; + + /** + * The value of the component's option value that's included in this consolidated option selection. + */ + private String value; + + public ComponentizedProductsBundleConsolidatedOptionSelectionComponent() { + } + + /** + * The ID of the component's option that's included in this consolidated option selection. + */ + public String getOptionId() { + return optionId; + } + + public void setOptionId(String optionId) { + this.optionId = optionId; + } + + /** + * The value of the component's option value that's included in this consolidated option selection. + */ + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + @Override + public String toString() { + return "ComponentizedProductsBundleConsolidatedOptionSelectionComponent{optionId='" + optionId + "', value='" + value + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ComponentizedProductsBundleConsolidatedOptionSelectionComponent that = (ComponentizedProductsBundleConsolidatedOptionSelectionComponent) o; + return Objects.equals(optionId, that.optionId) && + Objects.equals(value, that.value); + } + + @Override + public int hashCode() { + return Objects.hash(optionId, value); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The ID of the component's option that's included in this consolidated option selection. + */ + private String optionId; + + /** + * The value of the component's option value that's included in this consolidated option selection. + */ + private String value; + + public ComponentizedProductsBundleConsolidatedOptionSelectionComponent build() { + ComponentizedProductsBundleConsolidatedOptionSelectionComponent result = new ComponentizedProductsBundleConsolidatedOptionSelectionComponent(); + result.optionId = this.optionId; + result.value = this.value; + return result; + } + + /** + * The ID of the component's option that's included in this consolidated option selection. + */ + public Builder optionId(String optionId) { + this.optionId = optionId; + return this; + } + + /** + * The value of the component's option value that's included in this consolidated option selection. + */ + public Builder value(String value) { + this.value = value; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Count.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Count.java index df4fe22f..dbf8d5ad 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Count.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Count.java @@ -6,7 +6,7 @@ import java.util.Objects; /** - * Details for count of elements. + * A numeric count with precision information indicating whether the count is exact or an estimate. */ public class Count { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CountryHarmonizedSystemCodeInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CountryHarmonizedSystemCodeInput.java index f0ba7200..d752fd8e 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CountryHarmonizedSystemCodeInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CountryHarmonizedSystemCodeInput.java @@ -15,7 +15,8 @@ public class CountryHarmonizedSystemCodeInput { private String harmonizedSystemCode; /** - * The ISO 3166-1 alpha-2 country code for the country that issued the specified harmonized system code. + * The ISO 3166-1 alpha-2 country code for the country that issued the specified + * harmonized system code. Represents global harmonized system code when set to null. */ private CountryCode countryCode; @@ -34,7 +35,8 @@ public void setHarmonizedSystemCode(String harmonizedSystemCode) { } /** - * The ISO 3166-1 alpha-2 country code for the country that issued the specified harmonized system code. + * The ISO 3166-1 alpha-2 country code for the country that issued the specified + * harmonized system code. Represents global harmonized system code when set to null. */ public CountryCode getCountryCode() { return countryCode; @@ -74,7 +76,8 @@ public static class Builder { private String harmonizedSystemCode; /** - * The ISO 3166-1 alpha-2 country code for the country that issued the specified harmonized system code. + * The ISO 3166-1 alpha-2 country code for the country that issued the specified + * harmonized system code. Represents global harmonized system code when set to null. */ private CountryCode countryCode; @@ -94,7 +97,8 @@ public Builder harmonizedSystemCode(String harmonizedSystemCode) { } /** - * The ISO 3166-1 alpha-2 country code for the country that issued the specified harmonized system code. + * The ISO 3166-1 alpha-2 country code for the country that issued the specified + * harmonized system code. Represents global harmonized system code when set to null. */ public Builder countryCode(CountryCode countryCode) { this.countryCode = countryCode; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CurrencyCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CurrencyCode.java index db6c5af5..470311b8 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CurrencyCode.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CurrencyCode.java @@ -1,9 +1,9 @@ package com.shopify.admin.types; /** - * The three-letter currency codes that represent the world currencies used in - * stores. These include standard ISO 4217 codes, legacy codes, - * and non-standard codes. + * The currency codes that represent the world currencies throughout the Admin API. Currency codes include + * [standard ISO 4217 codes](https://en.wikipedia.org/wiki/ISO_4217), legacy codes, non-standard codes, + * digital currency codes. */ public enum CurrencyCode { USD, @@ -316,6 +316,8 @@ public enum CurrencyCode { ZMW, + USDC, + BYR, STD, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CurrencyExchangeAdjustment.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CurrencyExchangeAdjustment.java new file mode 100644 index 00000000..03e07df2 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CurrencyExchangeAdjustment.java @@ -0,0 +1,170 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * Represents a currency exchange adjustment applied to an order transaction. + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NONE +) +public class CurrencyExchangeAdjustment implements com.shopify.admin.types.Node { + /** + * The adjustment amount in both shop and presentment currencies. + */ + private MoneyV2 adjustment; + + /** + * The final amount in both shop and presentment currencies after the adjustment. + */ + private MoneyV2 finalAmountSet; + + /** + * A globally-unique ID. + */ + private String id; + + /** + * The original amount in both shop and presentment currencies before the adjustment. + */ + private MoneyV2 originalAmountSet; + + public CurrencyExchangeAdjustment() { + } + + /** + * The adjustment amount in both shop and presentment currencies. + */ + public MoneyV2 getAdjustment() { + return adjustment; + } + + public void setAdjustment(MoneyV2 adjustment) { + this.adjustment = adjustment; + } + + /** + * The final amount in both shop and presentment currencies after the adjustment. + */ + public MoneyV2 getFinalAmountSet() { + return finalAmountSet; + } + + public void setFinalAmountSet(MoneyV2 finalAmountSet) { + this.finalAmountSet = finalAmountSet; + } + + /** + * A globally-unique ID. + */ + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + /** + * The original amount in both shop and presentment currencies before the adjustment. + */ + public MoneyV2 getOriginalAmountSet() { + return originalAmountSet; + } + + public void setOriginalAmountSet(MoneyV2 originalAmountSet) { + this.originalAmountSet = originalAmountSet; + } + + @Override + public String toString() { + return "CurrencyExchangeAdjustment{adjustment='" + adjustment + "', finalAmountSet='" + finalAmountSet + "', id='" + id + "', originalAmountSet='" + originalAmountSet + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + CurrencyExchangeAdjustment that = (CurrencyExchangeAdjustment) o; + return Objects.equals(adjustment, that.adjustment) && + Objects.equals(finalAmountSet, that.finalAmountSet) && + Objects.equals(id, that.id) && + Objects.equals(originalAmountSet, that.originalAmountSet); + } + + @Override + public int hashCode() { + return Objects.hash(adjustment, finalAmountSet, id, originalAmountSet); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The adjustment amount in both shop and presentment currencies. + */ + private MoneyV2 adjustment; + + /** + * The final amount in both shop and presentment currencies after the adjustment. + */ + private MoneyV2 finalAmountSet; + + /** + * A globally-unique ID. + */ + private String id; + + /** + * The original amount in both shop and presentment currencies before the adjustment. + */ + private MoneyV2 originalAmountSet; + + public CurrencyExchangeAdjustment build() { + CurrencyExchangeAdjustment result = new CurrencyExchangeAdjustment(); + result.adjustment = this.adjustment; + result.finalAmountSet = this.finalAmountSet; + result.id = this.id; + result.originalAmountSet = this.originalAmountSet; + return result; + } + + /** + * The adjustment amount in both shop and presentment currencies. + */ + public Builder adjustment(MoneyV2 adjustment) { + this.adjustment = adjustment; + return this; + } + + /** + * The final amount in both shop and presentment currencies after the adjustment. + */ + public Builder finalAmountSet(MoneyV2 finalAmountSet) { + this.finalAmountSet = finalAmountSet; + return this; + } + + /** + * A globally-unique ID. + */ + public Builder id(String id) { + this.id = id; + return this; + } + + /** + * The original amount in both shop and presentment currencies before the adjustment. + */ + public Builder originalAmountSet(MoneyV2 originalAmountSet) { + this.originalAmountSet = originalAmountSet; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CurrencySetting.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CurrencySetting.java index f5a3ef19..8336eb3f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CurrencySetting.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CurrencySetting.java @@ -26,6 +26,12 @@ public class CurrencySetting { */ private boolean enabled; + /** + * The manual rate, if enabled, that applies to this currency when converting + * from shop currency. This rate is specific to the associated market's currency setting. + */ + private String manualRate; + /** * The date and time when the active exchange rate for the currency was last * modified. It can be the automatic rate's creation date, or the manual rate's @@ -70,6 +76,18 @@ public void setEnabled(boolean enabled) { this.enabled = enabled; } + /** + * The manual rate, if enabled, that applies to this currency when converting + * from shop currency. This rate is specific to the associated market's currency setting. + */ + public String getManualRate() { + return manualRate; + } + + public void setManualRate(String manualRate) { + this.manualRate = manualRate; + } + /** * The date and time when the active exchange rate for the currency was last * modified. It can be the automatic rate's creation date, or the manual rate's @@ -85,7 +103,7 @@ public void setRateUpdatedAt(OffsetDateTime rateUpdatedAt) { @Override public String toString() { - return "CurrencySetting{currencyCode='" + currencyCode + "', currencyName='" + currencyName + "', enabled='" + enabled + "', rateUpdatedAt='" + rateUpdatedAt + "'}"; + return "CurrencySetting{currencyCode='" + currencyCode + "', currencyName='" + currencyName + "', enabled='" + enabled + "', manualRate='" + manualRate + "', rateUpdatedAt='" + rateUpdatedAt + "'}"; } @Override @@ -96,12 +114,13 @@ public boolean equals(Object o) { return Objects.equals(currencyCode, that.currencyCode) && Objects.equals(currencyName, that.currencyName) && enabled == that.enabled && + Objects.equals(manualRate, that.manualRate) && Objects.equals(rateUpdatedAt, that.rateUpdatedAt); } @Override public int hashCode() { - return Objects.hash(currencyCode, currencyName, enabled, rateUpdatedAt); + return Objects.hash(currencyCode, currencyName, enabled, manualRate, rateUpdatedAt); } public static Builder newBuilder() { @@ -125,6 +144,12 @@ public static class Builder { */ private boolean enabled; + /** + * The manual rate, if enabled, that applies to this currency when converting + * from shop currency. This rate is specific to the associated market's currency setting. + */ + private String manualRate; + /** * The date and time when the active exchange rate for the currency was last * modified. It can be the automatic rate's creation date, or the manual rate's @@ -137,6 +162,7 @@ public CurrencySetting build() { result.currencyCode = this.currencyCode; result.currencyName = this.currencyName; result.enabled = this.enabled; + result.manualRate = this.manualRate; result.rateUpdatedAt = this.rateUpdatedAt; return result; } @@ -166,6 +192,15 @@ public Builder enabled(boolean enabled) { return this; } + /** + * The manual rate, if enabled, that applies to this currency when converting + * from shop currency. This rate is specific to the associated market's currency setting. + */ + public Builder manualRate(String manualRate) { + this.manualRate = manualRate; + return this; + } + /** * The date and time when the active exchange rate for the currency was last * modified. It can be the automatic rate's creation date, or the manual rate's diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Customer.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Customer.java index 5ff4162a..e8d1af1e 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Customer.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Customer.java @@ -9,20 +9,25 @@ import java.util.Objects; /** - * Represents information about a customer of the shop, such as the customer's contact details, their order - * history, and whether they've agreed to receive marketing material by email. + * Information about a customer of the shop, such as the customer's contact + * details, purchase history, and marketing preferences. * - * **Caution:** Only use this data if it's required for your app's functionality. - * Shopify will restrict [access to - * scopes](https://shopify.dev/api/usage/access-scopes) for apps that don't have a - * legitimate use for the associated data. + * Tracks the customer's total spending through the [`amountSpent`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer#field-amountSpent) + * field and provides access to associated data such as payment methods and + * subscription contracts. + * + * > Caution: + * > Only use this data if it's required for your app's functionality. Shopify will + * restrict [access to scopes](https://shopify.dev/api/usage/access-scopes) for + * apps that don't have a legitimate use for the associated data. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE ) public class Customer implements CommentEventEmbed, MetafieldReference, MetafieldReferencer, PurchasingEntity, com.shopify.admin.types.CommentEventSubject, com.shopify.admin.types.HasEvents, com.shopify.admin.types.HasMetafieldDefinitions, com.shopify.admin.types.HasMetafields, com.shopify.admin.types.HasStoreCreditAccounts, com.shopify.admin.types.LegacyInteroperability, com.shopify.admin.types.Node { /** - * A list of addresses associated with the customer. + * A list of addresses associated with the customer. Limited to 250 addresses. + * Use `addressesV2` for paginated access to all addresses. */ private List addresses; @@ -281,7 +286,8 @@ public Customer() { } /** - * A list of addresses associated with the customer. + * A list of addresses associated with the customer. Limited to 250 addresses. + * Use `addressesV2` for paginated access to all addresses. */ public List getAddresses() { return addresses; @@ -888,7 +894,8 @@ public static Builder newBuilder() { public static class Builder { /** - * A list of addresses associated with the customer. + * A list of addresses associated with the customer. Limited to 250 addresses. + * Use `addressesV2` for paginated access to all addresses. */ private List addresses; @@ -1196,7 +1203,8 @@ public Customer build() { } /** - * A list of addresses associated with the customer. + * A list of addresses associated with the customer. Limited to 250 addresses. + * Use `addressesV2` for paginated access to all addresses. */ public Builder addresses(List addresses) { this.addresses = addresses; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerAccountsV2.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerAccountsV2.java index cf0cb90e..54b810db 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerAccountsV2.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerAccountsV2.java @@ -6,7 +6,10 @@ import java.util.Objects; /** - * Information about the shop's customer accounts. + * Information about the shop's customer account-related settings. Includes the + * [customer account version](https://shopify.dev/docs/api/admin-graphql/latest/objects/CustomerAccountsV2#field-CustomerAccountsV2.fields.customerAccountsVersion) + * which indicates whether the merchant is using new customer accounts or legacy + * customer accounts, along with other account configuration such as login requirements. */ public class CustomerAccountsV2 { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerCancelDataErasureErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerCancelDataErasureErrorCode.java index afab3c46..dbde0d96 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerCancelDataErasureErrorCode.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerCancelDataErasureErrorCode.java @@ -8,5 +8,7 @@ public enum CustomerCancelDataErasureErrorCode { FAILED_TO_CANCEL, - NOT_BEING_ERASED + NOT_BEING_ERASED, + + UNAUTHORIZED_CANCELLATION } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerEmailAddress.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerEmailAddress.java index fb159cb8..6c6bcb98 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerEmailAddress.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerEmailAddress.java @@ -7,7 +7,13 @@ import java.util.Objects; /** - * Represents an email address. + * A customer's email address with marketing consent. This includes the email + * address, marketing subscription status, and opt-in level according to [M3AAWG best practices guidelines](https://www.m3aawg.org/news/updated-m3aawg-best-practices-for-senders-urge-opt-in-only-mailings-address-sender-transparency). + * + * It also provides the timestamp of when customers last updated marketing consent + * and URLs for unsubscribing from marketing emails or opting in or out of email + * open tracking. The [`sourceLocation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CustomerEmailAddress#field-CustomerEmailAddress.fields.sourceLocation) + * field indicates where the customer consented to receive marketing material. */ public class CustomerEmailAddress { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerEmailMarketingConsentInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerEmailMarketingConsentInput.java index 64e5efc0..faf46493 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerEmailMarketingConsentInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerEmailMarketingConsentInput.java @@ -17,8 +17,8 @@ public class CustomerEmailMarketingConsentInput { private CustomerMarketingOptInLevel marketingOptInLevel; /** - * The current marketing state associated with the customer's email. - * If the customer doesn't have an email, then this field is `null`. + * The marketing state to set. Accepted values: SUBSCRIBED, UNSUBSCRIBED, and + * PENDING. NOT_SUBSCRIBED, REDACTED, and INVALID are rejected if sent as input. */ private CustomerEmailMarketingState marketingState; @@ -48,8 +48,8 @@ public void setMarketingOptInLevel(CustomerMarketingOptInLevel marketingOptInLev } /** - * The current marketing state associated with the customer's email. - * If the customer doesn't have an email, then this field is `null`. + * The marketing state to set. Accepted values: SUBSCRIBED, UNSUBSCRIBED, and + * PENDING. NOT_SUBSCRIBED, REDACTED, and INVALID are rejected if sent as input. */ public CustomerEmailMarketingState getMarketingState() { return marketingState; @@ -114,8 +114,8 @@ public static class Builder { private CustomerMarketingOptInLevel marketingOptInLevel; /** - * The current marketing state associated with the customer's email. - * If the customer doesn't have an email, then this field is `null`. + * The marketing state to set. Accepted values: SUBSCRIBED, UNSUBSCRIBED, and + * PENDING. NOT_SUBSCRIBED, REDACTED, and INVALID are rejected if sent as input. */ private CustomerEmailMarketingState marketingState; @@ -148,8 +148,8 @@ public Builder marketingOptInLevel(CustomerMarketingOptInLevel marketingOptInLev } /** - * The current marketing state associated with the customer's email. - * If the customer doesn't have an email, then this field is `null`. + * The marketing state to set. Accepted values: SUBSCRIBED, UNSUBSCRIBED, and + * PENDING. NOT_SUBSCRIBED, REDACTED, and INVALID are rejected if sent as input. */ public Builder marketingState(CustomerEmailMarketingState marketingState) { this.marketingState = marketingState; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerInput.java index 7f3e6dea..3f4324c4 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerInput.java @@ -11,11 +11,6 @@ * The input fields and values to use when creating or updating a customer. */ public class CustomerInput { - /** - * The addresses for a customer. - */ - private List addresses; - /** * The unique email address of the customer. */ @@ -91,18 +86,12 @@ public class CustomerInput { */ private List taxExemptions; - public CustomerInput() { - } - /** - * The addresses for a customer. + * A unique identifier for the customer that's used with Multipass login. */ - public List getAddresses() { - return addresses; - } + private String multipassIdentifier; - public void setAddresses(List addresses) { - this.addresses = addresses; + public CustomerInput() { } /** @@ -258,9 +247,20 @@ public void setTaxExemptions(List taxExemptions) { this.taxExemptions = taxExemptions; } + /** + * A unique identifier for the customer that's used with Multipass login. + */ + public String getMultipassIdentifier() { + return multipassIdentifier; + } + + public void setMultipassIdentifier(String multipassIdentifier) { + this.multipassIdentifier = multipassIdentifier; + } + @Override public String toString() { - return "CustomerInput{addresses='" + addresses + "', email='" + email + "', firstName='" + firstName + "', id='" + id + "', lastName='" + lastName + "', locale='" + locale + "', metafields='" + metafields + "', note='" + note + "', phone='" + phone + "', tags='" + tags + "', emailMarketingConsent='" + emailMarketingConsent + "', smsMarketingConsent='" + smsMarketingConsent + "', taxExempt='" + taxExempt + "', taxExemptions='" + taxExemptions + "'}"; + return "CustomerInput{email='" + email + "', firstName='" + firstName + "', id='" + id + "', lastName='" + lastName + "', locale='" + locale + "', metafields='" + metafields + "', note='" + note + "', phone='" + phone + "', tags='" + tags + "', emailMarketingConsent='" + emailMarketingConsent + "', smsMarketingConsent='" + smsMarketingConsent + "', taxExempt='" + taxExempt + "', taxExemptions='" + taxExemptions + "', multipassIdentifier='" + multipassIdentifier + "'}"; } @Override @@ -268,8 +268,7 @@ public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; CustomerInput that = (CustomerInput) o; - return Objects.equals(addresses, that.addresses) && - Objects.equals(email, that.email) && + return Objects.equals(email, that.email) && Objects.equals(firstName, that.firstName) && Objects.equals(id, that.id) && Objects.equals(lastName, that.lastName) && @@ -281,12 +280,13 @@ public boolean equals(Object o) { Objects.equals(emailMarketingConsent, that.emailMarketingConsent) && Objects.equals(smsMarketingConsent, that.smsMarketingConsent) && Objects.equals(taxExempt, that.taxExempt) && - Objects.equals(taxExemptions, that.taxExemptions); + Objects.equals(taxExemptions, that.taxExemptions) && + Objects.equals(multipassIdentifier, that.multipassIdentifier); } @Override public int hashCode() { - return Objects.hash(addresses, email, firstName, id, lastName, locale, metafields, note, phone, tags, emailMarketingConsent, smsMarketingConsent, taxExempt, taxExemptions); + return Objects.hash(email, firstName, id, lastName, locale, metafields, note, phone, tags, emailMarketingConsent, smsMarketingConsent, taxExempt, taxExemptions, multipassIdentifier); } public static Builder newBuilder() { @@ -294,11 +294,6 @@ public static Builder newBuilder() { } public static class Builder { - /** - * The addresses for a customer. - */ - private List addresses; - /** * The unique email address of the customer. */ @@ -374,9 +369,13 @@ public static class Builder { */ private List taxExemptions; + /** + * A unique identifier for the customer that's used with Multipass login. + */ + private String multipassIdentifier; + public CustomerInput build() { CustomerInput result = new CustomerInput(); - result.addresses = this.addresses; result.email = this.email; result.firstName = this.firstName; result.id = this.id; @@ -390,17 +389,10 @@ public CustomerInput build() { result.smsMarketingConsent = this.smsMarketingConsent; result.taxExempt = this.taxExempt; result.taxExemptions = this.taxExemptions; + result.multipassIdentifier = this.multipassIdentifier; return result; } - /** - * The addresses for a customer. - */ - public Builder addresses(List addresses) { - this.addresses = addresses; - return this; - } - /** * The unique email address of the customer. */ @@ -514,5 +506,13 @@ public Builder taxExemptions(List taxExemptions) { this.taxExemptions = taxExemptions; return this; } + + /** + * A unique identifier for the customer that's used with Multipass login. + */ + public Builder multipassIdentifier(String multipassIdentifier) { + this.multipassIdentifier = multipassIdentifier; + return this; + } } } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerJourney.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerJourney.java index 9f69e0fd..f8495efd 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerJourney.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerJourney.java @@ -7,7 +7,13 @@ import java.util.Objects; /** - * Represents a customer's visiting activities on a shop's online store. + * Tracks a customer's path to purchase through their online store visits. The + * journey captures key moments like shop sessions that led to the order, helping + * merchants understand customer behavior and marketing attribution within a 30-day + * window. Includes the first and last sessions before an + * [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order), the + * time between initial visit and conversion, and the customer's order position in + * their purchase history. */ public class CustomerJourney { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerJourneySummary.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerJourneySummary.java index a7da3e9d..c0138834 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerJourneySummary.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerJourneySummary.java @@ -7,7 +7,15 @@ import java.util.Objects; /** - * Represents a customer's visiting activities on a shop's online store. + * A [`CustomerJourney`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CustomerJourney) through the online store leading up to an + * [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order). + * Tracks session data, attribution sources, and the timeline from first visit to + * purchase conversion. + * + * The summary includes the customer's position in their order history, days + * between first visit and order creation, and details about their first and last + * sessions. Use the [`moments`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CustomerJourneySummary#field-moments) + * connection to access the complete timeline of customer interactions before the purchase. */ public class CustomerJourneySummary { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerMergeErrorFieldType.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerMergeErrorFieldType.java index 578978d8..45b459b7 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerMergeErrorFieldType.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerMergeErrorFieldType.java @@ -14,6 +14,8 @@ public enum CustomerMergeErrorFieldType { GIFT_CARDS, + OVERRIDE_FIELDS, + STORE_CREDIT, COMPANY_CONTACT, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerPaymentInstrument.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerPaymentInstrument.java index bd60260e..7e5b23ea 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerPaymentInstrument.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerPaymentInstrument.java @@ -9,6 +9,7 @@ property = "__typename" ) @JsonSubTypes({ + @JsonSubTypes.Type(value = BankAccount.class, name = "BankAccount"), @JsonSubTypes.Type(value = CustomerCreditCard.class, name = "CustomerCreditCard"), @JsonSubTypes.Type(value = CustomerPaypalBillingAgreement.class, name = "CustomerPaypalBillingAgreement"), @JsonSubTypes.Type(value = CustomerShopPayAgreement.class, name = "CustomerShopPayAgreement") diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerPaymentMethod.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerPaymentMethod.java index fe574465..b981fa08 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerPaymentMethod.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerPaymentMethod.java @@ -8,7 +8,9 @@ import java.util.Objects; /** - * A customer's payment method. + * A customer's saved payment method. Stores the payment instrument details and billing information for recurring charges. + * + * The payment method supports types included in the [`CustomerPaymentInstrument`](https://shopify.dev/docs/api/admin-graphql/latest/unions/CustomerPaymentInstrument) union. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE @@ -29,6 +31,11 @@ public class CustomerPaymentMethod implements com.shopify.admin.types.Node { */ private CustomerPaymentInstrument instrument; + /** + * The mandates associated with the payment method. + */ + private PaymentMandateResourceConnection mandates; + /** * The time that the payment method was revoked. */ @@ -80,6 +87,17 @@ public void setInstrument(CustomerPaymentInstrument instrument) { this.instrument = instrument; } + /** + * The mandates associated with the payment method. + */ + public PaymentMandateResourceConnection getMandates() { + return mandates; + } + + public void setMandates(PaymentMandateResourceConnection mandates) { + this.mandates = mandates; + } + /** * The time that the payment method was revoked. */ @@ -115,7 +133,7 @@ public void setSubscriptionContracts(SubscriptionContractConnection subscription @Override public String toString() { - return "CustomerPaymentMethod{customer='" + customer + "', id='" + id + "', instrument='" + instrument + "', revokedAt='" + revokedAt + "', revokedReason='" + revokedReason + "', subscriptionContracts='" + subscriptionContracts + "'}"; + return "CustomerPaymentMethod{customer='" + customer + "', id='" + id + "', instrument='" + instrument + "', mandates='" + mandates + "', revokedAt='" + revokedAt + "', revokedReason='" + revokedReason + "', subscriptionContracts='" + subscriptionContracts + "'}"; } @Override @@ -126,6 +144,7 @@ public boolean equals(Object o) { return Objects.equals(customer, that.customer) && Objects.equals(id, that.id) && Objects.equals(instrument, that.instrument) && + Objects.equals(mandates, that.mandates) && Objects.equals(revokedAt, that.revokedAt) && Objects.equals(revokedReason, that.revokedReason) && Objects.equals(subscriptionContracts, that.subscriptionContracts); @@ -133,7 +152,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(customer, id, instrument, revokedAt, revokedReason, subscriptionContracts); + return Objects.hash(customer, id, instrument, mandates, revokedAt, revokedReason, subscriptionContracts); } public static Builder newBuilder() { @@ -156,6 +175,11 @@ public static class Builder { */ private CustomerPaymentInstrument instrument; + /** + * The mandates associated with the payment method. + */ + private PaymentMandateResourceConnection mandates; + /** * The time that the payment method was revoked. */ @@ -176,6 +200,7 @@ public CustomerPaymentMethod build() { result.customer = this.customer; result.id = this.id; result.instrument = this.instrument; + result.mandates = this.mandates; result.revokedAt = this.revokedAt; result.revokedReason = this.revokedReason; result.subscriptionContracts = this.subscriptionContracts; @@ -206,6 +231,14 @@ public Builder instrument(CustomerPaymentInstrument instrument) { return this; } + /** + * The mandates associated with the payment method. + */ + public Builder mandates(PaymentMandateResourceConnection mandates) { + this.mandates = mandates; + return this; + } + /** * The time that the payment method was revoked. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerPaymentMethodRemoteUserError.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerPaymentMethodRemoteUserError.java index bf87dcfd..2aa91ca9 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerPaymentMethodRemoteUserError.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerPaymentMethodRemoteUserError.java @@ -8,7 +8,9 @@ import java.util.Objects; /** - * Represents an error in the input of a mutation. + * An error in the input of a mutation. Mutations return `UserError` objects to + * indicate validation failures, such as invalid field values or business logic + * violations, that prevent the operation from completing. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerPaymentMethodUserError.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerPaymentMethodUserError.java index 0514e988..56f39ab9 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerPaymentMethodUserError.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerPaymentMethodUserError.java @@ -8,7 +8,9 @@ import java.util.Objects; /** - * Represents an error in the input of a mutation. + * An error in the input of a mutation. Mutations return `UserError` objects to + * indicate validation failures, such as invalid field values or business logic + * violations, that prevent the operation from completing. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerVisit.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerVisit.java index c6753528..6cd52ea0 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerVisit.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/CustomerVisit.java @@ -8,8 +8,15 @@ import java.util.Objects; /** - * Represents a customer's session visiting a shop's online store, including - * information about the marketing activity attributed to starting the session. + * A customer's session on the online store. Tracks how the + * [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer) + * arrived at the store, including the landing page, referral source, and any + * associated marketing campaigns. + * + * The visit captures attribution data such as [`UTMParameters`](https://shopify.dev/docs/api/admin-graphql/latest/objects/UTMParameters), + * referral codes, and the [`MarketingEvent`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MarketingEvent) + * that drove the session. This information helps merchants understand which + * marketing efforts successfully bring customers to their store. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DeliveryCarrierService.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DeliveryCarrierService.java index 55f030b7..ab21c6a5 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DeliveryCarrierService.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DeliveryCarrierService.java @@ -92,7 +92,16 @@ * "variant_id": 258644705304 * }], * "currency": "USD", - * "locale": "en" + * "locale": "en", + * "order_totals": { + * "subtotal_price": "1999", + * "total_price": "2199", + * "discount_amount": "150" + * }, + * "customer": { + * "id": 207119551, + * "tags": ["VIP", "wholesale"] + * } * } * } * ``` @@ -124,7 +133,15 @@ * "total_price": "3587", * "currency": "USD", * "min_delivery_date": "2013-04-12 14:48:45 -0400", - * "max_delivery_date": "2013-04-12 14:48:45 -0400" + * "max_delivery_date": "2013-04-12 14:48:45 -0400", + * "metafields": [ + * { + * "key": "tracking_url", + * "value": "abc123", + * "namespace": "carrier_service_metadata", + * "type": "single_line_text_field" + * } + * ] * } * ] * } @@ -160,9 +177,9 @@ * | `description` | Yes | A description of the rate, which * customers see at checkout. For example: `Includes tracking and insurance`. * | - * | `service_code` | Yes | A unique code associated with the rate. - * For example: `expedited_mail`. - * | + * | `service_code` | Yes | A unique code associated with the rate + * that must be consistent across requests. For example: `expedited_mail`. + * | * | `currency` | Yes | The currency of the shipping rate. * * | @@ -178,6 +195,9 @@ * | `max_delivery_date` | No | The latest delivery date for the * displayed rate to still be valid. * | + * | `metafields` | No | An array of metafield objects to attach + * custom metadata to the shipping rate. + * | * * ### Special conditions * @@ -189,6 +209,10 @@ * original callback URL. Attempting to redirect to a different domain will trigger backup rates. * * There is no retry mechanism. The response must be successful on the first try, * within the time budget listed below. Timeouts or errors will trigger backup rates. + * * The `service_code` must be stable and consistent across requests for the same + * shipping option. It should not contain dynamic values like session IDs, + * timestamps, or request-specific identifiers. Use metafields for passing dynamic + * or session-specific data. * * ## Response Timeouts * diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DeliveryCarrierServiceAndLocations.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DeliveryCarrierServiceAndLocations.java index 69c2c680..13823522 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DeliveryCarrierServiceAndLocations.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DeliveryCarrierServiceAndLocations.java @@ -7,7 +7,14 @@ import java.util.Objects; /** - * A carrier service and the associated list of shop locations. + * Links a [`DeliveryCarrierService`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DeliveryCarrierService) with the associated shop + * [locations](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location) + * where it can calculate shipping rates. Each pairing indicates the locations that + * can use a specific carrier service for real-time rate calculations during checkout. + * + * The carrier service provides the shipping rate calculation logic, while the + * locations represent physical or virtual fulfillment points that can ship orders + * using that service. */ public class DeliveryCarrierServiceAndLocations { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DeliveryCustomizationErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DeliveryCustomizationErrorCode.java index 7a148ca1..cb1facb2 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DeliveryCustomizationErrorCode.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DeliveryCustomizationErrorCode.java @@ -26,5 +26,9 @@ public enum DeliveryCustomizationErrorCode { REQUIRED_INPUT_FIELD, - INVALID_METAFIELDS + INVALID_METAFIELDS, + + MISSING_FUNCTION_IDENTIFIER, + + MULTIPLE_FUNCTION_IDENTIFIERS } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DeliveryCustomizationInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DeliveryCustomizationInput.java index 2f2a52e6..efff680c 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DeliveryCustomizationInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DeliveryCustomizationInput.java @@ -13,9 +13,9 @@ */ public class DeliveryCustomizationInput { /** - * The ID of the function providing the delivery customization. + * Function handle scoped to your current app ID. Only finds functions within your app. */ - private String functionId; + private String functionHandle; /** * The title of the delivery customization. @@ -36,14 +36,14 @@ public DeliveryCustomizationInput() { } /** - * The ID of the function providing the delivery customization. + * Function handle scoped to your current app ID. Only finds functions within your app. */ - public String getFunctionId() { - return functionId; + public String getFunctionHandle() { + return functionHandle; } - public void setFunctionId(String functionId) { - this.functionId = functionId; + public void setFunctionHandle(String functionHandle) { + this.functionHandle = functionHandle; } /** @@ -81,7 +81,7 @@ public void setMetafields(List metafields) { @Override public String toString() { - return "DeliveryCustomizationInput{functionId='" + functionId + "', title='" + title + "', enabled='" + enabled + "', metafields='" + metafields + "'}"; + return "DeliveryCustomizationInput{functionHandle='" + functionHandle + "', title='" + title + "', enabled='" + enabled + "', metafields='" + metafields + "'}"; } @Override @@ -89,7 +89,7 @@ public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; DeliveryCustomizationInput that = (DeliveryCustomizationInput) o; - return Objects.equals(functionId, that.functionId) && + return Objects.equals(functionHandle, that.functionHandle) && Objects.equals(title, that.title) && Objects.equals(enabled, that.enabled) && Objects.equals(metafields, that.metafields); @@ -97,7 +97,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(functionId, title, enabled, metafields); + return Objects.hash(functionHandle, title, enabled, metafields); } public static Builder newBuilder() { @@ -106,9 +106,9 @@ public static Builder newBuilder() { public static class Builder { /** - * The ID of the function providing the delivery customization. + * Function handle scoped to your current app ID. Only finds functions within your app. */ - private String functionId; + private String functionHandle; /** * The title of the delivery customization. @@ -127,7 +127,7 @@ public static class Builder { public DeliveryCustomizationInput build() { DeliveryCustomizationInput result = new DeliveryCustomizationInput(); - result.functionId = this.functionId; + result.functionHandle = this.functionHandle; result.title = this.title; result.enabled = this.enabled; result.metafields = this.metafields; @@ -135,10 +135,10 @@ public DeliveryCustomizationInput build() { } /** - * The ID of the function providing the delivery customization. + * Function handle scoped to your current app ID. Only finds functions within your app. */ - public Builder functionId(String functionId) { - this.functionId = functionId; + public Builder functionHandle(String functionHandle) { + this.functionHandle = functionHandle; return this; } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DeliveryMethod.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DeliveryMethod.java index c5707ad9..8cbfb1aa 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DeliveryMethod.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DeliveryMethod.java @@ -8,7 +8,14 @@ import java.util.Objects; /** - * The delivery method used by a fulfillment order. + * Information about the delivery method selected for a [`FulfillmentOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder). + * Includes the method type, expected delivery timeframe, and any additional + * information needed for delivery. + * + * The delivery method stores details from checkout such as the carrier, branded + * promises like Shop Promise, and the delivery option name shown to the buyer. + * Additional information like delivery instructions or contact phone numbers helps fulfill + * the [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) correctly. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DeliveryMethodDefinitionInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DeliveryMethodDefinitionInput.java index 3e9a0e42..479890b7 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DeliveryMethodDefinitionInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DeliveryMethodDefinitionInput.java @@ -12,7 +12,7 @@ */ public class DeliveryMethodDefinitionInput { /** - * A globally-unique ID of the method definition. Use only when updating a method definiton. + * A globally-unique ID of the method definition. Use only when updating a method definition. */ private String id; @@ -60,7 +60,7 @@ public DeliveryMethodDefinitionInput() { } /** - * A globally-unique ID of the method definition. Use only when updating a method definiton. + * A globally-unique ID of the method definition. Use only when updating a method definition. */ public String getId() { return id; @@ -192,7 +192,7 @@ public static Builder newBuilder() { public static class Builder { /** - * A globally-unique ID of the method definition. Use only when updating a method definiton. + * A globally-unique ID of the method definition. Use only when updating a method definition. */ private String id; @@ -251,7 +251,7 @@ public DeliveryMethodDefinitionInput build() { } /** - * A globally-unique ID of the method definition. Use only when updating a method definiton. + * A globally-unique ID of the method definition. Use only when updating a method definition. */ public Builder id(String id) { this.id = id; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DeliveryProfile.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DeliveryProfile.java index 2559953e..a857aaf7 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DeliveryProfile.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DeliveryProfile.java @@ -8,9 +8,18 @@ import java.util.Objects; /** - * A shipping profile. In Shopify, a shipping profile is a set of shipping rates - * scoped to a set of products or variants that can be shipped from selected - * locations to zones. Learn more about [building with delivery profiles](https://shopify.dev/apps/build/purchase-options/deferred/delivery-and-deferment/build-delivery-profiles). + * A shipping profile that defines shipping rates for specific + * [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) objects and [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) + * objects. Delivery profiles determine which products can ship from which + * [`Location`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location) + * objects to which zones, and at what rates. + * + * Profiles can associate with [`SellingPlanGroup`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SellingPlanGroup) + * objects to provide custom shipping rules for subscriptions, such as free + * shipping or restricted delivery zones. The default profile applies to all + * products that aren't assigned to other profiles. + * + * Learn more about [building delivery profiles](https://shopify.dev/apps/build/purchase-options/deferred/delivery-and-deferment/build-delivery-profiles). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE @@ -86,6 +95,11 @@ public class DeliveryProfile implements com.shopify.admin.types.Node { */ private LocationConnection unassignedLocationsPaginated; + /** + * The version of the delivery profile. + */ + private int version; + /** * The number of countries with active rates to deliver to. */ @@ -248,6 +262,17 @@ public void setUnassignedLocationsPaginated(LocationConnection unassignedLocatio this.unassignedLocationsPaginated = unassignedLocationsPaginated; } + /** + * The version of the delivery profile. + */ + public int getVersion() { + return version; + } + + public void setVersion(int version) { + this.version = version; + } + /** * The number of countries with active rates to deliver to. */ @@ -261,7 +286,7 @@ public void setZoneCountryCount(int zoneCountryCount) { @Override public String toString() { - return "DeliveryProfile{activeMethodDefinitionsCount='" + activeMethodDefinitionsCount + "', default='" + _default + "', id='" + id + "', legacyMode='" + legacyMode + "', locationsWithoutRatesCount='" + locationsWithoutRatesCount + "', name='" + name + "', originLocationCount='" + originLocationCount + "', productVariantsCount='" + productVariantsCount + "', productVariantsCountV2='" + productVariantsCountV2 + "', profileItems='" + profileItems + "', profileLocationGroups='" + profileLocationGroups + "', sellingPlanGroups='" + sellingPlanGroups + "', unassignedLocations='" + unassignedLocations + "', unassignedLocationsPaginated='" + unassignedLocationsPaginated + "', zoneCountryCount='" + zoneCountryCount + "'}"; + return "DeliveryProfile{activeMethodDefinitionsCount='" + activeMethodDefinitionsCount + "', default='" + _default + "', id='" + id + "', legacyMode='" + legacyMode + "', locationsWithoutRatesCount='" + locationsWithoutRatesCount + "', name='" + name + "', originLocationCount='" + originLocationCount + "', productVariantsCount='" + productVariantsCount + "', productVariantsCountV2='" + productVariantsCountV2 + "', profileItems='" + profileItems + "', profileLocationGroups='" + profileLocationGroups + "', sellingPlanGroups='" + sellingPlanGroups + "', unassignedLocations='" + unassignedLocations + "', unassignedLocationsPaginated='" + unassignedLocationsPaginated + "', version='" + version + "', zoneCountryCount='" + zoneCountryCount + "'}"; } @Override @@ -283,12 +308,13 @@ public boolean equals(Object o) { Objects.equals(sellingPlanGroups, that.sellingPlanGroups) && Objects.equals(unassignedLocations, that.unassignedLocations) && Objects.equals(unassignedLocationsPaginated, that.unassignedLocationsPaginated) && + version == that.version && zoneCountryCount == that.zoneCountryCount; } @Override public int hashCode() { - return Objects.hash(activeMethodDefinitionsCount, _default, id, legacyMode, locationsWithoutRatesCount, name, originLocationCount, productVariantsCount, productVariantsCountV2, profileItems, profileLocationGroups, sellingPlanGroups, unassignedLocations, unassignedLocationsPaginated, zoneCountryCount); + return Objects.hash(activeMethodDefinitionsCount, _default, id, legacyMode, locationsWithoutRatesCount, name, originLocationCount, productVariantsCount, productVariantsCountV2, profileItems, profileLocationGroups, sellingPlanGroups, unassignedLocations, unassignedLocationsPaginated, version, zoneCountryCount); } public static Builder newBuilder() { @@ -366,6 +392,11 @@ public static class Builder { */ private LocationConnection unassignedLocationsPaginated; + /** + * The version of the delivery profile. + */ + private int version; + /** * The number of countries with active rates to deliver to. */ @@ -387,6 +418,7 @@ public DeliveryProfile build() { result.sellingPlanGroups = this.sellingPlanGroups; result.unassignedLocations = this.unassignedLocations; result.unassignedLocationsPaginated = this.unassignedLocationsPaginated; + result.version = this.version; result.zoneCountryCount = this.zoneCountryCount; return result; } @@ -503,6 +535,14 @@ public Builder unassignedLocationsPaginated(LocationConnection unassignedLocatio return this; } + /** + * The version of the delivery profile. + */ + public Builder version(int version) { + this.version = version; + return this; + } + /** * The number of countries with active rates to deliver to. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DeliverySetting.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DeliverySetting.java index 258384c6..fd070c38 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DeliverySetting.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DeliverySetting.java @@ -7,18 +7,20 @@ /** * The `DeliverySetting` object enables you to manage shop-wide shipping settings. - * You can enable legacy compatibility mode for the multi-location delivery profiles feature - * if the legacy mode isn't blocked. */ public class DeliverySetting { /** * Whether the shop is blocked from converting to full multi-location delivery - * profiles mode. If the shop is blocked, then the blocking reasons are also returned. + * profiles mode. If the shop is blocked, then the blocking reasons are also + * returned. Note: this field is effectively deprecated and will be removed in a + * future version of the API. */ private DeliveryLegacyModeBlocked legacyModeBlocked; /** - * Enables legacy compatability mode for the multi-location delivery profiles feature. + * Enables legacy compatability mode for the multi-location delivery profiles + * feature. Note: this field is effectively deprecated and will be removed in a + * future version of the API. */ private boolean legacyModeProfiles; @@ -27,7 +29,9 @@ public DeliverySetting() { /** * Whether the shop is blocked from converting to full multi-location delivery - * profiles mode. If the shop is blocked, then the blocking reasons are also returned. + * profiles mode. If the shop is blocked, then the blocking reasons are also + * returned. Note: this field is effectively deprecated and will be removed in a + * future version of the API. */ public DeliveryLegacyModeBlocked getLegacyModeBlocked() { return legacyModeBlocked; @@ -38,7 +42,9 @@ public void setLegacyModeBlocked(DeliveryLegacyModeBlocked legacyModeBlocked) { } /** - * Enables legacy compatability mode for the multi-location delivery profiles feature. + * Enables legacy compatability mode for the multi-location delivery profiles + * feature. Note: this field is effectively deprecated and will be removed in a + * future version of the API. */ public boolean getLegacyModeProfiles() { return legacyModeProfiles; @@ -74,12 +80,16 @@ public static Builder newBuilder() { public static class Builder { /** * Whether the shop is blocked from converting to full multi-location delivery - * profiles mode. If the shop is blocked, then the blocking reasons are also returned. + * profiles mode. If the shop is blocked, then the blocking reasons are also + * returned. Note: this field is effectively deprecated and will be removed in a + * future version of the API. */ private DeliveryLegacyModeBlocked legacyModeBlocked; /** - * Enables legacy compatability mode for the multi-location delivery profiles feature. + * Enables legacy compatability mode for the multi-location delivery profiles + * feature. Note: this field is effectively deprecated and will be removed in a + * future version of the API. */ private boolean legacyModeProfiles; @@ -92,7 +102,9 @@ public DeliverySetting build() { /** * Whether the shop is blocked from converting to full multi-location delivery - * profiles mode. If the shop is blocked, then the blocking reasons are also returned. + * profiles mode. If the shop is blocked, then the blocking reasons are also + * returned. Note: this field is effectively deprecated and will be removed in a + * future version of the API. */ public Builder legacyModeBlocked(DeliveryLegacyModeBlocked legacyModeBlocked) { this.legacyModeBlocked = legacyModeBlocked; @@ -100,7 +112,9 @@ public Builder legacyModeBlocked(DeliveryLegacyModeBlocked legacyModeBlocked) { } /** - * Enables legacy compatability mode for the multi-location delivery profiles feature. + * Enables legacy compatability mode for the multi-location delivery profiles + * feature. Note: this field is effectively deprecated and will be removed in a + * future version of the API. */ public Builder legacyModeProfiles(boolean legacyModeProfiles) { this.legacyModeProfiles = legacyModeProfiles; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DeliverySettingInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DeliverySettingInput.java index d1fa1bfd..77f78650 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DeliverySettingInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DeliverySettingInput.java @@ -11,7 +11,9 @@ */ public class DeliverySettingInput { /** - * Whether legacy compatability mode is enabled for the multi-location delivery profiles feature. + * Whether legacy compatability mode is enabled for the multi-location delivery + * profiles feature. Note: this field is effectively deprecated and will be + * removed in a future version of the API. */ private Boolean legacyModeProfiles; @@ -19,7 +21,9 @@ public DeliverySettingInput() { } /** - * Whether legacy compatability mode is enabled for the multi-location delivery profiles feature. + * Whether legacy compatability mode is enabled for the multi-location delivery + * profiles feature. Note: this field is effectively deprecated and will be + * removed in a future version of the API. */ public Boolean getLegacyModeProfiles() { return legacyModeProfiles; @@ -53,7 +57,9 @@ public static Builder newBuilder() { public static class Builder { /** - * Whether legacy compatability mode is enabled for the multi-location delivery profiles feature. + * Whether legacy compatability mode is enabled for the multi-location delivery + * profiles feature. Note: this field is effectively deprecated and will be + * removed in a future version of the API. */ private Boolean legacyModeProfiles; @@ -64,7 +70,9 @@ public DeliverySettingInput build() { } /** - * Whether legacy compatability mode is enabled for the multi-location delivery profiles feature. + * Whether legacy compatability mode is enabled for the multi-location delivery + * profiles feature. Note: this field is effectively deprecated and will be + * removed in a future version of the API. */ public Builder legacyModeProfiles(Boolean legacyModeProfiles) { this.legacyModeProfiles = legacyModeProfiles; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DepositInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DepositInput.java index 3b1efef0..8df0d122 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DepositInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DepositInput.java @@ -10,7 +10,7 @@ */ public class DepositInput { /** - * The percentage of the order total that should be paid as a deposit. + * The percentage of the order total that should be paid as a deposit. Must be between 1 and 99, inclusive. */ private double percentage; @@ -18,7 +18,7 @@ public DepositInput() { } /** - * The percentage of the order total that should be paid as a deposit. + * The percentage of the order total that should be paid as a deposit. Must be between 1 and 99, inclusive. */ public double getPercentage() { return percentage; @@ -52,7 +52,7 @@ public static Builder newBuilder() { public static class Builder { /** - * The percentage of the order total that should be paid as a deposit. + * The percentage of the order total that should be paid as a deposit. Must be between 1 and 99, inclusive. */ private double percentage; @@ -63,7 +63,7 @@ public DepositInput build() { } /** - * The percentage of the order total that should be paid as a deposit. + * The percentage of the order total that should be paid as a deposit. Must be between 1 and 99, inclusive. */ public Builder percentage(double percentage) { this.percentage = percentage; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DigitalWallet.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DigitalWallet.java index dc8c4ccf..0881e173 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DigitalWallet.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DigitalWallet.java @@ -10,5 +10,9 @@ public enum DigitalWallet { GOOGLE_PAY, - SHOPIFY_PAY + SHOPIFY_PAY, + + FACEBOOK_PAY, + + AMAZON_PAY } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountAllocation.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountAllocation.java index 7c0056ec..efdc1dd5 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountAllocation.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountAllocation.java @@ -6,7 +6,12 @@ import java.util.Objects; /** - * An amount that's allocated to a line based on an associated discount application. + * The actual amount discounted on a line item or shipping line. While [`DiscountApplication`](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/DiscountApplication) + * captures the discount's intentions and rules, The `DiscountAllocation` object + * shows the final calculated discount amount applied to each line. + * + * The allocation includes the discounted amount in both shop and presentment + * currencies, with a reference to the originating discount application. */ public class DiscountAllocation { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountAutomaticApp.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountAutomaticApp.java index 9f75ff11..b120784e 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountAutomaticApp.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountAutomaticApp.java @@ -23,6 +23,9 @@ * > The [`DiscountCodeApp`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCodeApp) * object has similar functionality to the `DiscountAutomaticApp` object, with the exception that `DiscountCodeApp` * stores information about discount codes that are managed by an app using Shopify Functions. + * > + * > API versions prior to `2025-10` only return automatic discounts with `context` + * set to `all`, discounts with other values are filtered out. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE @@ -72,6 +75,11 @@ public class DiscountAutomaticApp implements Discount, DiscountAutomatic { */ private DiscountCombinesWith combinesWith; + /** + * The context defining which buyers can use the discount. + */ + private DiscountContext context; + /** * The date and time when the discount was created. */ @@ -213,6 +221,17 @@ public void setCombinesWith(DiscountCombinesWith combinesWith) { this.combinesWith = combinesWith; } + /** + * The context defining which buyers can use the discount. + */ + public DiscountContext getContext() { + return context; + } + + public void setContext(DiscountContext context) { + this.context = context; + } + /** * The date and time when the discount was created. */ @@ -345,7 +364,7 @@ public void setUpdatedAt(OffsetDateTime updatedAt) { @Override public String toString() { - return "DiscountAutomaticApp{appDiscountType='" + appDiscountType + "', appliesOnOneTimePurchase='" + appliesOnOneTimePurchase + "', appliesOnSubscription='" + appliesOnSubscription + "', asyncUsageCount='" + asyncUsageCount + "', combinesWith='" + combinesWith + "', createdAt='" + createdAt + "', discountClass='" + discountClass + "', discountClasses='" + discountClasses + "', discountId='" + discountId + "', endsAt='" + endsAt + "', errorHistory='" + errorHistory + "', recurringCycleLimit='" + recurringCycleLimit + "', startsAt='" + startsAt + "', status='" + status + "', title='" + title + "', updatedAt='" + updatedAt + "'}"; + return "DiscountAutomaticApp{appDiscountType='" + appDiscountType + "', appliesOnOneTimePurchase='" + appliesOnOneTimePurchase + "', appliesOnSubscription='" + appliesOnSubscription + "', asyncUsageCount='" + asyncUsageCount + "', combinesWith='" + combinesWith + "', context='" + context + "', createdAt='" + createdAt + "', discountClass='" + discountClass + "', discountClasses='" + discountClasses + "', discountId='" + discountId + "', endsAt='" + endsAt + "', errorHistory='" + errorHistory + "', recurringCycleLimit='" + recurringCycleLimit + "', startsAt='" + startsAt + "', status='" + status + "', title='" + title + "', updatedAt='" + updatedAt + "'}"; } @Override @@ -358,6 +377,7 @@ public boolean equals(Object o) { appliesOnSubscription == that.appliesOnSubscription && asyncUsageCount == that.asyncUsageCount && Objects.equals(combinesWith, that.combinesWith) && + Objects.equals(context, that.context) && Objects.equals(createdAt, that.createdAt) && Objects.equals(discountClass, that.discountClass) && Objects.equals(discountClasses, that.discountClasses) && @@ -373,7 +393,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(appDiscountType, appliesOnOneTimePurchase, appliesOnSubscription, asyncUsageCount, combinesWith, createdAt, discountClass, discountClasses, discountId, endsAt, errorHistory, recurringCycleLimit, startsAt, status, title, updatedAt); + return Objects.hash(appDiscountType, appliesOnOneTimePurchase, appliesOnSubscription, asyncUsageCount, combinesWith, context, createdAt, discountClass, discountClasses, discountId, endsAt, errorHistory, recurringCycleLimit, startsAt, status, title, updatedAt); } public static Builder newBuilder() { @@ -425,6 +445,11 @@ public static class Builder { */ private DiscountCombinesWith combinesWith; + /** + * The context defining which buyers can use the discount. + */ + private DiscountContext context; + /** * The date and time when the discount was created. */ @@ -496,6 +521,7 @@ public DiscountAutomaticApp build() { result.appliesOnSubscription = this.appliesOnSubscription; result.asyncUsageCount = this.asyncUsageCount; result.combinesWith = this.combinesWith; + result.context = this.context; result.createdAt = this.createdAt; result.discountClass = this.discountClass; result.discountClasses = this.discountClasses; @@ -569,6 +595,14 @@ public Builder combinesWith(DiscountCombinesWith combinesWith) { return this; } + /** + * The context defining which buyers can use the discount. + */ + public Builder context(DiscountContext context) { + this.context = context; + return this; + } + /** * The date and time when the discount was created. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountAutomaticAppInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountAutomaticAppInput.java index ba70001d..1c620ec7 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountAutomaticAppInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountAutomaticAppInput.java @@ -49,12 +49,18 @@ public class DiscountAutomaticAppInput { private OffsetDateTime endsAt; /** - * The - * [function ID](https://shopify.dev/docs/apps/build/functions/input-output/metafields-for-input-queries) - * associated with the app extension providing the - * [discount type](https://help.shopify.com/manual/discounts/discount-types). + * The context defining which buyers can use the discount. + * You can target specific customer IDs, customer segments, or make the discount available to all buyers. + * Discounts automatically apply on Point of Sale (POS) for Pro locations. For + * app discounts using Admin UI Extensions, merchants can control POS eligibility + * when the context is set to ALL. + */ + private DiscountContextInput context; + + /** + * The handle of the function providing the discount. */ - private String functionId; + private String functionHandle; /** * Additional metafields to associate to the discount. @@ -149,17 +155,29 @@ public void setEndsAt(OffsetDateTime endsAt) { } /** - * The - * [function ID](https://shopify.dev/docs/apps/build/functions/input-output/metafields-for-input-queries) - * associated with the app extension providing the - * [discount type](https://help.shopify.com/manual/discounts/discount-types). + * The context defining which buyers can use the discount. + * You can target specific customer IDs, customer segments, or make the discount available to all buyers. + * Discounts automatically apply on Point of Sale (POS) for Pro locations. For + * app discounts using Admin UI Extensions, merchants can control POS eligibility + * when the context is set to ALL. + */ + public DiscountContextInput getContext() { + return context; + } + + public void setContext(DiscountContextInput context) { + this.context = context; + } + + /** + * The handle of the function providing the discount. */ - public String getFunctionId() { - return functionId; + public String getFunctionHandle() { + return functionHandle; } - public void setFunctionId(String functionId) { - this.functionId = functionId; + public void setFunctionHandle(String functionHandle) { + this.functionHandle = functionHandle; } /** @@ -218,7 +236,7 @@ public void setRecurringCycleLimit(Integer recurringCycleLimit) { @Override public String toString() { - return "DiscountAutomaticAppInput{combinesWith='" + combinesWith + "', discountClasses='" + discountClasses + "', title='" + title + "', startsAt='" + startsAt + "', endsAt='" + endsAt + "', functionId='" + functionId + "', metafields='" + metafields + "', appliesOnSubscription='" + appliesOnSubscription + "', appliesOnOneTimePurchase='" + appliesOnOneTimePurchase + "', recurringCycleLimit='" + recurringCycleLimit + "'}"; + return "DiscountAutomaticAppInput{combinesWith='" + combinesWith + "', discountClasses='" + discountClasses + "', title='" + title + "', startsAt='" + startsAt + "', endsAt='" + endsAt + "', context='" + context + "', functionHandle='" + functionHandle + "', metafields='" + metafields + "', appliesOnSubscription='" + appliesOnSubscription + "', appliesOnOneTimePurchase='" + appliesOnOneTimePurchase + "', recurringCycleLimit='" + recurringCycleLimit + "'}"; } @Override @@ -231,7 +249,8 @@ public boolean equals(Object o) { Objects.equals(title, that.title) && Objects.equals(startsAt, that.startsAt) && Objects.equals(endsAt, that.endsAt) && - Objects.equals(functionId, that.functionId) && + Objects.equals(context, that.context) && + Objects.equals(functionHandle, that.functionHandle) && Objects.equals(metafields, that.metafields) && Objects.equals(appliesOnSubscription, that.appliesOnSubscription) && Objects.equals(appliesOnOneTimePurchase, that.appliesOnOneTimePurchase) && @@ -240,7 +259,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(combinesWith, discountClasses, title, startsAt, endsAt, functionId, metafields, appliesOnSubscription, appliesOnOneTimePurchase, recurringCycleLimit); + return Objects.hash(combinesWith, discountClasses, title, startsAt, endsAt, context, functionHandle, metafields, appliesOnSubscription, appliesOnOneTimePurchase, recurringCycleLimit); } public static Builder newBuilder() { @@ -278,12 +297,18 @@ public static class Builder { private OffsetDateTime endsAt; /** - * The - * [function ID](https://shopify.dev/docs/apps/build/functions/input-output/metafields-for-input-queries) - * associated with the app extension providing the - * [discount type](https://help.shopify.com/manual/discounts/discount-types). + * The context defining which buyers can use the discount. + * You can target specific customer IDs, customer segments, or make the discount available to all buyers. + * Discounts automatically apply on Point of Sale (POS) for Pro locations. For + * app discounts using Admin UI Extensions, merchants can control POS eligibility + * when the context is set to ALL. */ - private String functionId; + private DiscountContextInput context; + + /** + * The handle of the function providing the discount. + */ + private String functionHandle; /** * Additional metafields to associate to the discount. @@ -322,7 +347,8 @@ public DiscountAutomaticAppInput build() { result.title = this.title; result.startsAt = this.startsAt; result.endsAt = this.endsAt; - result.functionId = this.functionId; + result.context = this.context; + result.functionHandle = this.functionHandle; result.metafields = this.metafields; result.appliesOnSubscription = this.appliesOnSubscription; result.appliesOnOneTimePurchase = this.appliesOnOneTimePurchase; @@ -375,13 +401,22 @@ public Builder endsAt(OffsetDateTime endsAt) { } /** - * The - * [function ID](https://shopify.dev/docs/apps/build/functions/input-output/metafields-for-input-queries) - * associated with the app extension providing the - * [discount type](https://help.shopify.com/manual/discounts/discount-types). + * The context defining which buyers can use the discount. + * You can target specific customer IDs, customer segments, or make the discount available to all buyers. + * Discounts automatically apply on Point of Sale (POS) for Pro locations. For + * app discounts using Admin UI Extensions, merchants can control POS eligibility + * when the context is set to ALL. + */ + public Builder context(DiscountContextInput context) { + this.context = context; + return this; + } + + /** + * The handle of the function providing the discount. */ - public Builder functionId(String functionId) { - this.functionId = functionId; + public Builder functionHandle(String functionHandle) { + this.functionHandle = functionHandle; return this; } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountAutomaticBasic.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountAutomaticBasic.java index aa54154b..bc461ecf 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountAutomaticBasic.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountAutomaticBasic.java @@ -26,6 +26,9 @@ * > The [`DiscountCodeBasic`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCodeBasic) * object has similar functionality to the `DiscountAutomaticBasic` object, but customers need to enter a code to * receive a discount. + * > + * > API versions prior to `2025-10` only return automatic discounts with `context` + * set to `all`, discounts with other values are filtered out. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE @@ -50,6 +53,11 @@ public class DiscountAutomaticBasic implements Discount, DiscountAutomatic { */ private DiscountCombinesWith combinesWith; + /** + * The context defining which buyers can use the discount. + */ + private DiscountContext context; + /** * The date and time when the discount was created. */ @@ -164,6 +172,17 @@ public void setCombinesWith(DiscountCombinesWith combinesWith) { this.combinesWith = combinesWith; } + /** + * The context defining which buyers can use the discount. + */ + public DiscountContext getContext() { + return context; + } + + public void setContext(DiscountContext context) { + this.context = context; + } + /** * The date and time when the discount was created. */ @@ -330,7 +349,7 @@ public void setUsageCount(int usageCount) { @Override public String toString() { - return "DiscountAutomaticBasic{asyncUsageCount='" + asyncUsageCount + "', combinesWith='" + combinesWith + "', createdAt='" + createdAt + "', customerGets='" + customerGets + "', discountClass='" + discountClass + "', discountClasses='" + discountClasses + "', endsAt='" + endsAt + "', minimumRequirement='" + minimumRequirement + "', recurringCycleLimit='" + recurringCycleLimit + "', shortSummary='" + shortSummary + "', startsAt='" + startsAt + "', status='" + status + "', summary='" + summary + "', title='" + title + "', updatedAt='" + updatedAt + "', usageCount='" + usageCount + "'}"; + return "DiscountAutomaticBasic{asyncUsageCount='" + asyncUsageCount + "', combinesWith='" + combinesWith + "', context='" + context + "', createdAt='" + createdAt + "', customerGets='" + customerGets + "', discountClass='" + discountClass + "', discountClasses='" + discountClasses + "', endsAt='" + endsAt + "', minimumRequirement='" + minimumRequirement + "', recurringCycleLimit='" + recurringCycleLimit + "', shortSummary='" + shortSummary + "', startsAt='" + startsAt + "', status='" + status + "', summary='" + summary + "', title='" + title + "', updatedAt='" + updatedAt + "', usageCount='" + usageCount + "'}"; } @Override @@ -340,6 +359,7 @@ public boolean equals(Object o) { DiscountAutomaticBasic that = (DiscountAutomaticBasic) o; return asyncUsageCount == that.asyncUsageCount && Objects.equals(combinesWith, that.combinesWith) && + Objects.equals(context, that.context) && Objects.equals(createdAt, that.createdAt) && Objects.equals(customerGets, that.customerGets) && Objects.equals(discountClass, that.discountClass) && @@ -358,7 +378,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(asyncUsageCount, combinesWith, createdAt, customerGets, discountClass, discountClasses, endsAt, minimumRequirement, recurringCycleLimit, shortSummary, startsAt, status, summary, title, updatedAt, usageCount); + return Objects.hash(asyncUsageCount, combinesWith, context, createdAt, customerGets, discountClass, discountClasses, endsAt, minimumRequirement, recurringCycleLimit, shortSummary, startsAt, status, summary, title, updatedAt, usageCount); } public static Builder newBuilder() { @@ -385,6 +405,11 @@ public static class Builder { */ private DiscountCombinesWith combinesWith; + /** + * The context defining which buyers can use the discount. + */ + private DiscountContext context; + /** * The date and time when the discount was created. */ @@ -469,6 +494,7 @@ public DiscountAutomaticBasic build() { DiscountAutomaticBasic result = new DiscountAutomaticBasic(); result.asyncUsageCount = this.asyncUsageCount; result.combinesWith = this.combinesWith; + result.context = this.context; result.createdAt = this.createdAt; result.customerGets = this.customerGets; result.discountClass = this.discountClass; @@ -511,6 +537,14 @@ public Builder combinesWith(DiscountCombinesWith combinesWith) { return this; } + /** + * The context defining which buyers can use the discount. + */ + public Builder context(DiscountContext context) { + this.context = context; + return this; + } + /** * The date and time when the discount was created. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountAutomaticBasicInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountAutomaticBasicInput.java index 4f1fe18e..80103e6f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountAutomaticBasicInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountAutomaticBasicInput.java @@ -11,6 +11,11 @@ * The input fields for creating or updating an * [amount off discount](https://help.shopify.com/manual/discounts/discount-types/percentage-fixed-amount) * that's automatically applied on a cart and at checkout. + * + * During creation the required fields are: + * - `customerGets` + * - `startsAt` + * - `title` */ public class DiscountAutomaticBasicInput { /** @@ -37,6 +42,13 @@ public class DiscountAutomaticBasicInput { */ private OffsetDateTime endsAt; + /** + * The context defining which buyers can use the discount. + * You can target specific customer IDs, customer segments, or make the discount available to all buyers. + * Discounts automatically apply on Point of Sale (POS) for Pro locations when the context is not set to ALL. + */ + private DiscountContextInput context; + /** * The minimum subtotal or quantity of items that are required for the discount to be applied. */ @@ -106,6 +118,19 @@ public void setEndsAt(OffsetDateTime endsAt) { this.endsAt = endsAt; } + /** + * The context defining which buyers can use the discount. + * You can target specific customer IDs, customer segments, or make the discount available to all buyers. + * Discounts automatically apply on Point of Sale (POS) for Pro locations when the context is not set to ALL. + */ + public DiscountContextInput getContext() { + return context; + } + + public void setContext(DiscountContextInput context) { + this.context = context; + } + /** * The minimum subtotal or quantity of items that are required for the discount to be applied. */ @@ -144,7 +169,7 @@ public void setRecurringCycleLimit(Integer recurringCycleLimit) { @Override public String toString() { - return "DiscountAutomaticBasicInput{combinesWith='" + combinesWith + "', title='" + title + "', startsAt='" + startsAt + "', endsAt='" + endsAt + "', minimumRequirement='" + minimumRequirement + "', customerGets='" + customerGets + "', recurringCycleLimit='" + recurringCycleLimit + "'}"; + return "DiscountAutomaticBasicInput{combinesWith='" + combinesWith + "', title='" + title + "', startsAt='" + startsAt + "', endsAt='" + endsAt + "', context='" + context + "', minimumRequirement='" + minimumRequirement + "', customerGets='" + customerGets + "', recurringCycleLimit='" + recurringCycleLimit + "'}"; } @Override @@ -156,6 +181,7 @@ public boolean equals(Object o) { Objects.equals(title, that.title) && Objects.equals(startsAt, that.startsAt) && Objects.equals(endsAt, that.endsAt) && + Objects.equals(context, that.context) && Objects.equals(minimumRequirement, that.minimumRequirement) && Objects.equals(customerGets, that.customerGets) && Objects.equals(recurringCycleLimit, that.recurringCycleLimit); @@ -163,7 +189,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(combinesWith, title, startsAt, endsAt, minimumRequirement, customerGets, recurringCycleLimit); + return Objects.hash(combinesWith, title, startsAt, endsAt, context, minimumRequirement, customerGets, recurringCycleLimit); } public static Builder newBuilder() { @@ -195,6 +221,13 @@ public static class Builder { */ private OffsetDateTime endsAt; + /** + * The context defining which buyers can use the discount. + * You can target specific customer IDs, customer segments, or make the discount available to all buyers. + * Discounts automatically apply on Point of Sale (POS) for Pro locations when the context is not set to ALL. + */ + private DiscountContextInput context; + /** * The minimum subtotal or quantity of items that are required for the discount to be applied. */ @@ -219,6 +252,7 @@ public DiscountAutomaticBasicInput build() { result.title = this.title; result.startsAt = this.startsAt; result.endsAt = this.endsAt; + result.context = this.context; result.minimumRequirement = this.minimumRequirement; result.customerGets = this.customerGets; result.recurringCycleLimit = this.recurringCycleLimit; @@ -261,6 +295,16 @@ public Builder endsAt(OffsetDateTime endsAt) { return this; } + /** + * The context defining which buyers can use the discount. + * You can target specific customer IDs, customer segments, or make the discount available to all buyers. + * Discounts automatically apply on Point of Sale (POS) for Pro locations when the context is not set to ALL. + */ + public Builder context(DiscountContextInput context) { + this.context = context; + return this; + } + /** * The minimum subtotal or quantity of items that are required for the discount to be applied. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountAutomaticBxgy.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountAutomaticBxgy.java index 22a55da7..89160443 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountAutomaticBxgy.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountAutomaticBxgy.java @@ -27,6 +27,9 @@ * > The [`DiscountCodeBxgy`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCodeBxgy) * object has similar functionality to the `DiscountAutomaticBxgy` object, but customers need to enter a code to * receive a discount. + * > + * > API versions prior to `2025-10` only return automatic discounts with `context` + * set to `all`, discounts with other values are filtered out. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE @@ -51,6 +54,11 @@ public class DiscountAutomaticBxgy implements Discount, DiscountAutomatic, com.s */ private DiscountCombinesWith combinesWith; + /** + * The context defining which buyers can use the discount. + */ + private DiscountContext context; + /** * The date and time when the discount was created. */ @@ -165,6 +173,17 @@ public void setCombinesWith(DiscountCombinesWith combinesWith) { this.combinesWith = combinesWith; } + /** + * The context defining which buyers can use the discount. + */ + public DiscountContext getContext() { + return context; + } + + public void setContext(DiscountContext context) { + this.context = context; + } + /** * The date and time when the discount was created. */ @@ -337,7 +356,7 @@ public void setUsesPerOrderLimit(Integer usesPerOrderLimit) { @Override public String toString() { - return "DiscountAutomaticBxgy{asyncUsageCount='" + asyncUsageCount + "', combinesWith='" + combinesWith + "', createdAt='" + createdAt + "', customerBuys='" + customerBuys + "', customerGets='" + customerGets + "', discountClass='" + discountClass + "', discountClasses='" + discountClasses + "', endsAt='" + endsAt + "', events='" + events + "', id='" + id + "', startsAt='" + startsAt + "', status='" + status + "', summary='" + summary + "', title='" + title + "', updatedAt='" + updatedAt + "', usageCount='" + usageCount + "', usesPerOrderLimit='" + usesPerOrderLimit + "'}"; + return "DiscountAutomaticBxgy{asyncUsageCount='" + asyncUsageCount + "', combinesWith='" + combinesWith + "', context='" + context + "', createdAt='" + createdAt + "', customerBuys='" + customerBuys + "', customerGets='" + customerGets + "', discountClass='" + discountClass + "', discountClasses='" + discountClasses + "', endsAt='" + endsAt + "', events='" + events + "', id='" + id + "', startsAt='" + startsAt + "', status='" + status + "', summary='" + summary + "', title='" + title + "', updatedAt='" + updatedAt + "', usageCount='" + usageCount + "', usesPerOrderLimit='" + usesPerOrderLimit + "'}"; } @Override @@ -347,6 +366,7 @@ public boolean equals(Object o) { DiscountAutomaticBxgy that = (DiscountAutomaticBxgy) o; return asyncUsageCount == that.asyncUsageCount && Objects.equals(combinesWith, that.combinesWith) && + Objects.equals(context, that.context) && Objects.equals(createdAt, that.createdAt) && Objects.equals(customerBuys, that.customerBuys) && Objects.equals(customerGets, that.customerGets) && @@ -366,7 +386,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(asyncUsageCount, combinesWith, createdAt, customerBuys, customerGets, discountClass, discountClasses, endsAt, events, id, startsAt, status, summary, title, updatedAt, usageCount, usesPerOrderLimit); + return Objects.hash(asyncUsageCount, combinesWith, context, createdAt, customerBuys, customerGets, discountClass, discountClasses, endsAt, events, id, startsAt, status, summary, title, updatedAt, usageCount, usesPerOrderLimit); } public static Builder newBuilder() { @@ -393,6 +413,11 @@ public static class Builder { */ private DiscountCombinesWith combinesWith; + /** + * The context defining which buyers can use the discount. + */ + private DiscountContext context; + /** * The date and time when the discount was created. */ @@ -477,6 +502,7 @@ public DiscountAutomaticBxgy build() { DiscountAutomaticBxgy result = new DiscountAutomaticBxgy(); result.asyncUsageCount = this.asyncUsageCount; result.combinesWith = this.combinesWith; + result.context = this.context; result.createdAt = this.createdAt; result.customerBuys = this.customerBuys; result.customerGets = this.customerGets; @@ -520,6 +546,14 @@ public Builder combinesWith(DiscountCombinesWith combinesWith) { return this; } + /** + * The context defining which buyers can use the discount. + */ + public Builder context(DiscountContext context) { + this.context = context; + return this; + } + /** * The date and time when the discount was created. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountAutomaticBxgyInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountAutomaticBxgyInput.java index 17415571..860669dc 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountAutomaticBxgyInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountAutomaticBxgyInput.java @@ -10,6 +10,12 @@ * The input fields for creating or updating a * [buy X get Y discount (BXGY)](https://help.shopify.com/manual/discounts/discount-types/buy-x-get-y) * that's automatically applied on a cart and at checkout. + * + * When creating, required fields are: + * - `customerBuys` + * - `customerGets` + * - `startsAt` + * - `title` */ public class DiscountAutomaticBxgyInput { /** @@ -36,6 +42,13 @@ public class DiscountAutomaticBxgyInput { */ private OffsetDateTime endsAt; + /** + * The context defining which buyers can use the discount. + * You can target specific customer IDs, customer segments, or make the discount available to all buyers. + * Discounts automatically apply on Point of Sale (POS) for Pro locations when the context is not set to ALL. + */ + private DiscountContextInput context; + /** * The maximum number of times that the discount can be applied to an order. */ @@ -102,6 +115,19 @@ public void setEndsAt(OffsetDateTime endsAt) { this.endsAt = endsAt; } + /** + * The context defining which buyers can use the discount. + * You can target specific customer IDs, customer segments, or make the discount available to all buyers. + * Discounts automatically apply on Point of Sale (POS) for Pro locations when the context is not set to ALL. + */ + public DiscountContextInput getContext() { + return context; + } + + public void setContext(DiscountContextInput context) { + this.context = context; + } + /** * The maximum number of times that the discount can be applied to an order. */ @@ -137,7 +163,7 @@ public void setCustomerGets(DiscountCustomerGetsInput customerGets) { @Override public String toString() { - return "DiscountAutomaticBxgyInput{combinesWith='" + combinesWith + "', title='" + title + "', startsAt='" + startsAt + "', endsAt='" + endsAt + "', usesPerOrderLimit='" + usesPerOrderLimit + "', customerBuys='" + customerBuys + "', customerGets='" + customerGets + "'}"; + return "DiscountAutomaticBxgyInput{combinesWith='" + combinesWith + "', title='" + title + "', startsAt='" + startsAt + "', endsAt='" + endsAt + "', context='" + context + "', usesPerOrderLimit='" + usesPerOrderLimit + "', customerBuys='" + customerBuys + "', customerGets='" + customerGets + "'}"; } @Override @@ -149,6 +175,7 @@ public boolean equals(Object o) { Objects.equals(title, that.title) && Objects.equals(startsAt, that.startsAt) && Objects.equals(endsAt, that.endsAt) && + Objects.equals(context, that.context) && Objects.equals(usesPerOrderLimit, that.usesPerOrderLimit) && Objects.equals(customerBuys, that.customerBuys) && Objects.equals(customerGets, that.customerGets); @@ -156,7 +183,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(combinesWith, title, startsAt, endsAt, usesPerOrderLimit, customerBuys, customerGets); + return Objects.hash(combinesWith, title, startsAt, endsAt, context, usesPerOrderLimit, customerBuys, customerGets); } public static Builder newBuilder() { @@ -188,6 +215,13 @@ public static class Builder { */ private OffsetDateTime endsAt; + /** + * The context defining which buyers can use the discount. + * You can target specific customer IDs, customer segments, or make the discount available to all buyers. + * Discounts automatically apply on Point of Sale (POS) for Pro locations when the context is not set to ALL. + */ + private DiscountContextInput context; + /** * The maximum number of times that the discount can be applied to an order. */ @@ -209,6 +243,7 @@ public DiscountAutomaticBxgyInput build() { result.title = this.title; result.startsAt = this.startsAt; result.endsAt = this.endsAt; + result.context = this.context; result.usesPerOrderLimit = this.usesPerOrderLimit; result.customerBuys = this.customerBuys; result.customerGets = this.customerGets; @@ -251,6 +286,16 @@ public Builder endsAt(OffsetDateTime endsAt) { return this; } + /** + * The context defining which buyers can use the discount. + * You can target specific customer IDs, customer segments, or make the discount available to all buyers. + * Discounts automatically apply on Point of Sale (POS) for Pro locations when the context is not set to ALL. + */ + public Builder context(DiscountContextInput context) { + this.context = context; + return this; + } + /** * The maximum number of times that the discount can be applied to an order. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountAutomaticFreeShipping.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountAutomaticFreeShipping.java index aeea66c7..65f877af 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountAutomaticFreeShipping.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountAutomaticFreeShipping.java @@ -26,6 +26,9 @@ * > The [`DiscountCodeFreeShipping`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCodeFreeShipping) * object has similar functionality to the `DiscountAutomaticFreeShipping` object, but customers need to enter a code to * receive a discount. + * > + * > API versions prior to `2025-10` only return automatic discounts with `context` + * set to `all`, discounts with other values are filtered out. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE @@ -66,6 +69,11 @@ public class DiscountAutomaticFreeShipping implements Discount, DiscountAutomati */ private DiscountCombinesWith combinesWith; + /** + * The context defining which buyers can use the discount. + */ + private DiscountContext context; + /** * The date and time when the discount was created. */ @@ -224,6 +232,17 @@ public void setCombinesWith(DiscountCombinesWith combinesWith) { this.combinesWith = combinesWith; } + /** + * The context defining which buyers can use the discount. + */ + public DiscountContext getContext() { + return context; + } + + public void setContext(DiscountContext context) { + this.context = context; + } + /** * The date and time when the discount was created. */ @@ -418,7 +437,7 @@ public void setUpdatedAt(OffsetDateTime updatedAt) { @Override public String toString() { - return "DiscountAutomaticFreeShipping{appliesOnOneTimePurchase='" + appliesOnOneTimePurchase + "', appliesOnSubscription='" + appliesOnSubscription + "', asyncUsageCount='" + asyncUsageCount + "', combinesWith='" + combinesWith + "', createdAt='" + createdAt + "', destinationSelection='" + destinationSelection + "', discountClass='" + discountClass + "', discountClasses='" + discountClasses + "', endsAt='" + endsAt + "', hasTimelineComment='" + hasTimelineComment + "', maximumShippingPrice='" + maximumShippingPrice + "', minimumRequirement='" + minimumRequirement + "', recurringCycleLimit='" + recurringCycleLimit + "', shortSummary='" + shortSummary + "', startsAt='" + startsAt + "', status='" + status + "', summary='" + summary + "', title='" + title + "', totalSales='" + totalSales + "', updatedAt='" + updatedAt + "'}"; + return "DiscountAutomaticFreeShipping{appliesOnOneTimePurchase='" + appliesOnOneTimePurchase + "', appliesOnSubscription='" + appliesOnSubscription + "', asyncUsageCount='" + asyncUsageCount + "', combinesWith='" + combinesWith + "', context='" + context + "', createdAt='" + createdAt + "', destinationSelection='" + destinationSelection + "', discountClass='" + discountClass + "', discountClasses='" + discountClasses + "', endsAt='" + endsAt + "', hasTimelineComment='" + hasTimelineComment + "', maximumShippingPrice='" + maximumShippingPrice + "', minimumRequirement='" + minimumRequirement + "', recurringCycleLimit='" + recurringCycleLimit + "', shortSummary='" + shortSummary + "', startsAt='" + startsAt + "', status='" + status + "', summary='" + summary + "', title='" + title + "', totalSales='" + totalSales + "', updatedAt='" + updatedAt + "'}"; } @Override @@ -430,6 +449,7 @@ public boolean equals(Object o) { appliesOnSubscription == that.appliesOnSubscription && asyncUsageCount == that.asyncUsageCount && Objects.equals(combinesWith, that.combinesWith) && + Objects.equals(context, that.context) && Objects.equals(createdAt, that.createdAt) && Objects.equals(destinationSelection, that.destinationSelection) && Objects.equals(discountClass, that.discountClass) && @@ -450,7 +470,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(appliesOnOneTimePurchase, appliesOnSubscription, asyncUsageCount, combinesWith, createdAt, destinationSelection, discountClass, discountClasses, endsAt, hasTimelineComment, maximumShippingPrice, minimumRequirement, recurringCycleLimit, shortSummary, startsAt, status, summary, title, totalSales, updatedAt); + return Objects.hash(appliesOnOneTimePurchase, appliesOnSubscription, asyncUsageCount, combinesWith, context, createdAt, destinationSelection, discountClass, discountClasses, endsAt, hasTimelineComment, maximumShippingPrice, minimumRequirement, recurringCycleLimit, shortSummary, startsAt, status, summary, title, totalSales, updatedAt); } public static Builder newBuilder() { @@ -493,6 +513,11 @@ public static class Builder { */ private DiscountCombinesWith combinesWith; + /** + * The context defining which buyers can use the discount. + */ + private DiscountContext context; + /** * The date and time when the discount was created. */ @@ -595,6 +620,7 @@ public DiscountAutomaticFreeShipping build() { result.appliesOnSubscription = this.appliesOnSubscription; result.asyncUsageCount = this.asyncUsageCount; result.combinesWith = this.combinesWith; + result.context = this.context; result.createdAt = this.createdAt; result.destinationSelection = this.destinationSelection; result.discountClass = this.discountClass; @@ -661,6 +687,14 @@ public Builder combinesWith(DiscountCombinesWith combinesWith) { return this; } + /** + * The context defining which buyers can use the discount. + */ + public Builder context(DiscountContext context) { + this.context = context; + return this; + } + /** * The date and time when the discount was created. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountAutomaticFreeShippingInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountAutomaticFreeShippingInput.java index bc004fa1..894f86b5 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountAutomaticFreeShippingInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountAutomaticFreeShippingInput.java @@ -12,6 +12,10 @@ * The input fields for creating or updating a * [free shipping discount](https://help.shopify.com/manual/discounts/discount-types/free-shipping) * that's automatically applied on a cart and at checkout. + * + * When creating, required fields are: + * - `startsAt` + * - `title` */ public class DiscountAutomaticFreeShippingInput { /** @@ -30,6 +34,13 @@ public class DiscountAutomaticFreeShippingInput { */ private OffsetDateTime endsAt; + /** + * The context defining which buyers can use the discount. + * You can target specific customer IDs, customer segments, or make the discount available to all buyers. + * Discounts automatically apply on Point of Sale (POS) for Pro locations when the context is not set to ALL. + */ + private DiscountContextInput context; + /** * The * [discount classes](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) @@ -55,7 +66,7 @@ public class DiscountAutomaticFreeShippingInput { /** * Whether the discount applies on regular one-time-purchase items. */ - private Boolean appliesOnOneTimePurchase = true; + private Boolean appliesOnOneTimePurchase; /** * Whether the discount applies on subscription items. @@ -63,7 +74,7 @@ public class DiscountAutomaticFreeShippingInput { * enable customers to purchase products * on a recurring basis. */ - private Boolean appliesOnSubscription = false; + private Boolean appliesOnSubscription; /** * The number of billing cycles for which the discount can be applied, @@ -110,6 +121,19 @@ public void setEndsAt(OffsetDateTime endsAt) { this.endsAt = endsAt; } + /** + * The context defining which buyers can use the discount. + * You can target specific customer IDs, customer segments, or make the discount available to all buyers. + * Discounts automatically apply on Point of Sale (POS) for Pro locations when the context is not set to ALL. + */ + public DiscountContextInput getContext() { + return context; + } + + public void setContext(DiscountContextInput context) { + this.context = context; + } + /** * The * [discount classes](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) @@ -197,7 +221,7 @@ public void setRecurringCycleLimit(Integer recurringCycleLimit) { @Override public String toString() { - return "DiscountAutomaticFreeShippingInput{title='" + title + "', startsAt='" + startsAt + "', endsAt='" + endsAt + "', combinesWith='" + combinesWith + "', minimumRequirement='" + minimumRequirement + "', destination='" + destination + "', maximumShippingPrice='" + maximumShippingPrice + "', appliesOnOneTimePurchase='" + appliesOnOneTimePurchase + "', appliesOnSubscription='" + appliesOnSubscription + "', recurringCycleLimit='" + recurringCycleLimit + "'}"; + return "DiscountAutomaticFreeShippingInput{title='" + title + "', startsAt='" + startsAt + "', endsAt='" + endsAt + "', context='" + context + "', combinesWith='" + combinesWith + "', minimumRequirement='" + minimumRequirement + "', destination='" + destination + "', maximumShippingPrice='" + maximumShippingPrice + "', appliesOnOneTimePurchase='" + appliesOnOneTimePurchase + "', appliesOnSubscription='" + appliesOnSubscription + "', recurringCycleLimit='" + recurringCycleLimit + "'}"; } @Override @@ -208,6 +232,7 @@ public boolean equals(Object o) { return Objects.equals(title, that.title) && Objects.equals(startsAt, that.startsAt) && Objects.equals(endsAt, that.endsAt) && + Objects.equals(context, that.context) && Objects.equals(combinesWith, that.combinesWith) && Objects.equals(minimumRequirement, that.minimumRequirement) && Objects.equals(destination, that.destination) && @@ -219,7 +244,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(title, startsAt, endsAt, combinesWith, minimumRequirement, destination, maximumShippingPrice, appliesOnOneTimePurchase, appliesOnSubscription, recurringCycleLimit); + return Objects.hash(title, startsAt, endsAt, context, combinesWith, minimumRequirement, destination, maximumShippingPrice, appliesOnOneTimePurchase, appliesOnSubscription, recurringCycleLimit); } public static Builder newBuilder() { @@ -243,6 +268,13 @@ public static class Builder { */ private OffsetDateTime endsAt; + /** + * The context defining which buyers can use the discount. + * You can target specific customer IDs, customer segments, or make the discount available to all buyers. + * Discounts automatically apply on Point of Sale (POS) for Pro locations when the context is not set to ALL. + */ + private DiscountContextInput context; + /** * The * [discount classes](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) @@ -268,7 +300,7 @@ public static class Builder { /** * Whether the discount applies on regular one-time-purchase items. */ - private Boolean appliesOnOneTimePurchase = true; + private Boolean appliesOnOneTimePurchase; /** * Whether the discount applies on subscription items. @@ -276,7 +308,7 @@ public static class Builder { * enable customers to purchase products * on a recurring basis. */ - private Boolean appliesOnSubscription = false; + private Boolean appliesOnSubscription; /** * The number of billing cycles for which the discount can be applied, @@ -291,6 +323,7 @@ public DiscountAutomaticFreeShippingInput build() { result.title = this.title; result.startsAt = this.startsAt; result.endsAt = this.endsAt; + result.context = this.context; result.combinesWith = this.combinesWith; result.minimumRequirement = this.minimumRequirement; result.destination = this.destination; @@ -326,6 +359,16 @@ public Builder endsAt(OffsetDateTime endsAt) { return this; } + /** + * The context defining which buyers can use the discount. + * You can target specific customer IDs, customer segments, or make the discount available to all buyers. + * Discounts automatically apply on Point of Sale (POS) for Pro locations when the context is not set to ALL. + */ + public Builder context(DiscountContextInput context) { + this.context = context; + return this; + } + /** * The * [discount classes](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountBuyerSelection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountBuyerSelection.java new file mode 100644 index 00000000..d60cec70 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountBuyerSelection.java @@ -0,0 +1,8 @@ +package com.shopify.admin.types; + +/** + * All buyers are eligible for the discount. + */ +public enum DiscountBuyerSelection { + ALL +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountBuyerSelectionAll.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountBuyerSelectionAll.java new file mode 100644 index 00000000..986e0232 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountBuyerSelectionAll.java @@ -0,0 +1,83 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * Indicates that a discount applies to all buyers without restrictions, enabling + * universal promotions that reach every customer. This selection removes + * buyer-specific limitations from discount eligibility. + * + * For example, a flash sale or grand opening promotion would target all buyers to maximize participation and store visibility. + * + * Learn more about [discount targeting](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountApplication). + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NONE +) +public class DiscountBuyerSelectionAll implements DiscountContext { + /** + * All buyers are eligible for the discount. + */ + private DiscountBuyerSelection all; + + public DiscountBuyerSelectionAll() { + } + + /** + * All buyers are eligible for the discount. + */ + public DiscountBuyerSelection getAll() { + return all; + } + + public void setAll(DiscountBuyerSelection all) { + this.all = all; + } + + @Override + public String toString() { + return "DiscountBuyerSelectionAll{all='" + all + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + DiscountBuyerSelectionAll that = (DiscountBuyerSelectionAll) o; + return Objects.equals(all, that.all); + } + + @Override + public int hashCode() { + return Objects.hash(all); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * All buyers are eligible for the discount. + */ + private DiscountBuyerSelection all; + + public DiscountBuyerSelectionAll build() { + DiscountBuyerSelectionAll result = new DiscountBuyerSelectionAll(); + result.all = this.all; + return result; + } + + /** + * All buyers are eligible for the discount. + */ + public Builder all(DiscountBuyerSelection all) { + this.all = all; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCodeApp.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCodeApp.java index 77acaa61..3e7a70dd 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCodeApp.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCodeApp.java @@ -85,6 +85,11 @@ public class DiscountCodeApp implements Discount, DiscountCode { */ private DiscountCombinesWith combinesWith; + /** + * The context defining which buyers can use the discount. + */ + private DiscountContext context; + /** * The date and time when the discount was created. */ @@ -172,8 +177,8 @@ public class DiscountCodeApp implements Discount, DiscountCode { private OffsetDateTime updatedAt; /** - * The maximum number of times that a customer can use the discount. - * For discounts with unlimited usage, specify `null`. + * The maximum number of times the discount can be redeemed. + * For unlimited usage, specify `null`. */ private Integer usageLimit; @@ -284,6 +289,17 @@ public void setCombinesWith(DiscountCombinesWith combinesWith) { this.combinesWith = combinesWith; } + /** + * The context defining which buyers can use the discount. + */ + public DiscountContext getContext() { + return context; + } + + public void setContext(DiscountContext context) { + this.context = context; + } + /** * The date and time when the discount was created. */ @@ -461,8 +477,8 @@ public void setUpdatedAt(OffsetDateTime updatedAt) { } /** - * The maximum number of times that a customer can use the discount. - * For discounts with unlimited usage, specify `null`. + * The maximum number of times the discount can be redeemed. + * For unlimited usage, specify `null`. */ public Integer getUsageLimit() { return usageLimit; @@ -474,7 +490,7 @@ public void setUsageLimit(Integer usageLimit) { @Override public String toString() { - return "DiscountCodeApp{appDiscountType='" + appDiscountType + "', appliesOnOneTimePurchase='" + appliesOnOneTimePurchase + "', appliesOnSubscription='" + appliesOnSubscription + "', appliesOncePerCustomer='" + appliesOncePerCustomer + "', asyncUsageCount='" + asyncUsageCount + "', codes='" + codes + "', codesCount='" + codesCount + "', combinesWith='" + combinesWith + "', createdAt='" + createdAt + "', customerSelection='" + customerSelection + "', discountClass='" + discountClass + "', discountClasses='" + discountClasses + "', discountId='" + discountId + "', endsAt='" + endsAt + "', errorHistory='" + errorHistory + "', hasTimelineComment='" + hasTimelineComment + "', recurringCycleLimit='" + recurringCycleLimit + "', shareableUrls='" + shareableUrls + "', startsAt='" + startsAt + "', status='" + status + "', title='" + title + "', totalSales='" + totalSales + "', updatedAt='" + updatedAt + "', usageLimit='" + usageLimit + "'}"; + return "DiscountCodeApp{appDiscountType='" + appDiscountType + "', appliesOnOneTimePurchase='" + appliesOnOneTimePurchase + "', appliesOnSubscription='" + appliesOnSubscription + "', appliesOncePerCustomer='" + appliesOncePerCustomer + "', asyncUsageCount='" + asyncUsageCount + "', codes='" + codes + "', codesCount='" + codesCount + "', combinesWith='" + combinesWith + "', context='" + context + "', createdAt='" + createdAt + "', customerSelection='" + customerSelection + "', discountClass='" + discountClass + "', discountClasses='" + discountClasses + "', discountId='" + discountId + "', endsAt='" + endsAt + "', errorHistory='" + errorHistory + "', hasTimelineComment='" + hasTimelineComment + "', recurringCycleLimit='" + recurringCycleLimit + "', shareableUrls='" + shareableUrls + "', startsAt='" + startsAt + "', status='" + status + "', title='" + title + "', totalSales='" + totalSales + "', updatedAt='" + updatedAt + "', usageLimit='" + usageLimit + "'}"; } @Override @@ -490,6 +506,7 @@ public boolean equals(Object o) { Objects.equals(codes, that.codes) && Objects.equals(codesCount, that.codesCount) && Objects.equals(combinesWith, that.combinesWith) && + Objects.equals(context, that.context) && Objects.equals(createdAt, that.createdAt) && Objects.equals(customerSelection, that.customerSelection) && Objects.equals(discountClass, that.discountClass) && @@ -510,7 +527,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(appDiscountType, appliesOnOneTimePurchase, appliesOnSubscription, appliesOncePerCustomer, asyncUsageCount, codes, codesCount, combinesWith, createdAt, customerSelection, discountClass, discountClasses, discountId, endsAt, errorHistory, hasTimelineComment, recurringCycleLimit, shareableUrls, startsAt, status, title, totalSales, updatedAt, usageLimit); + return Objects.hash(appDiscountType, appliesOnOneTimePurchase, appliesOnSubscription, appliesOncePerCustomer, asyncUsageCount, codes, codesCount, combinesWith, context, createdAt, customerSelection, discountClass, discountClasses, discountId, endsAt, errorHistory, hasTimelineComment, recurringCycleLimit, shareableUrls, startsAt, status, title, totalSales, updatedAt, usageLimit); } public static Builder newBuilder() { @@ -574,6 +591,11 @@ public static class Builder { */ private DiscountCombinesWith combinesWith; + /** + * The context defining which buyers can use the discount. + */ + private DiscountContext context; + /** * The date and time when the discount was created. */ @@ -661,8 +683,8 @@ public static class Builder { private OffsetDateTime updatedAt; /** - * The maximum number of times that a customer can use the discount. - * For discounts with unlimited usage, specify `null`. + * The maximum number of times the discount can be redeemed. + * For unlimited usage, specify `null`. */ private Integer usageLimit; @@ -676,6 +698,7 @@ public DiscountCodeApp build() { result.codes = this.codes; result.codesCount = this.codesCount; result.combinesWith = this.combinesWith; + result.context = this.context; result.createdAt = this.createdAt; result.customerSelection = this.customerSelection; result.discountClass = this.discountClass; @@ -775,6 +798,14 @@ public Builder combinesWith(DiscountCombinesWith combinesWith) { return this; } + /** + * The context defining which buyers can use the discount. + */ + public Builder context(DiscountContext context) { + this.context = context; + return this; + } + /** * The date and time when the discount was created. */ @@ -907,8 +938,8 @@ public Builder updatedAt(OffsetDateTime updatedAt) { } /** - * The maximum number of times that a customer can use the discount. - * For discounts with unlimited usage, specify `null`. + * The maximum number of times the discount can be redeemed. + * For unlimited usage, specify `null`. */ public Builder usageLimit(Integer usageLimit) { this.usageLimit = usageLimit; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCodeAppInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCodeAppInput.java index f92e0e42..cc39f0cc 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCodeAppInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCodeAppInput.java @@ -15,7 +15,6 @@ * type is provided by an app extension that uses [Shopify * Functions](https://shopify.dev/docs/apps/build/functions). * - * * Use these input fields when you need advanced or custom discount capabilities * that aren't supported by [Shopify's native discount * types](https://help.shopify.com/manual/discounts/discount-types). @@ -61,21 +60,21 @@ public class DiscountCodeAppInput { private String code; /** - * The customers that can use the discount. + * The maximum number of times the discount can be redeemed. + * For unlimited usage, specify `null`. */ - private DiscountCustomerSelectionInput customerSelection; + private Integer usageLimit; /** - * The maximum number of times that a customer can use the discount. - * For discounts with unlimited usage, specify `null`. + * The context defining which buyers can use the discount. + * You can target specific customer IDs, customer segments, or make the discount available to all buyers. */ - private Integer usageLimit; + private DiscountContextInput context; /** - * The [function ID](https://shopify.dev/docs/apps/build/functions/input-output/metafields-for-input-queries) associated with the app extension that's providing the [discount - * type](https://help.shopify.com/manual/discounts/discount-types). + * The handle of the function providing the discount. */ - private String functionId; + private String functionHandle; /** * Whether the discount applies to subscriptions items. @@ -187,38 +186,38 @@ public void setCode(String code) { } /** - * The customers that can use the discount. + * The maximum number of times the discount can be redeemed. + * For unlimited usage, specify `null`. */ - public DiscountCustomerSelectionInput getCustomerSelection() { - return customerSelection; + public Integer getUsageLimit() { + return usageLimit; } - public void setCustomerSelection(DiscountCustomerSelectionInput customerSelection) { - this.customerSelection = customerSelection; + public void setUsageLimit(Integer usageLimit) { + this.usageLimit = usageLimit; } /** - * The maximum number of times that a customer can use the discount. - * For discounts with unlimited usage, specify `null`. + * The context defining which buyers can use the discount. + * You can target specific customer IDs, customer segments, or make the discount available to all buyers. */ - public Integer getUsageLimit() { - return usageLimit; + public DiscountContextInput getContext() { + return context; } - public void setUsageLimit(Integer usageLimit) { - this.usageLimit = usageLimit; + public void setContext(DiscountContextInput context) { + this.context = context; } /** - * The [function ID](https://shopify.dev/docs/apps/build/functions/input-output/metafields-for-input-queries) associated with the app extension that's providing the [discount - * type](https://help.shopify.com/manual/discounts/discount-types). + * The handle of the function providing the discount. */ - public String getFunctionId() { - return functionId; + public String getFunctionHandle() { + return functionHandle; } - public void setFunctionId(String functionId) { - this.functionId = functionId; + public void setFunctionHandle(String functionHandle) { + this.functionHandle = functionHandle; } /** @@ -272,7 +271,7 @@ public void setMetafields(List metafields) { @Override public String toString() { - return "DiscountCodeAppInput{combinesWith='" + combinesWith + "', discountClasses='" + discountClasses + "', title='" + title + "', startsAt='" + startsAt + "', endsAt='" + endsAt + "', appliesOncePerCustomer='" + appliesOncePerCustomer + "', code='" + code + "', customerSelection='" + customerSelection + "', usageLimit='" + usageLimit + "', functionId='" + functionId + "', appliesOnSubscription='" + appliesOnSubscription + "', appliesOnOneTimePurchase='" + appliesOnOneTimePurchase + "', recurringCycleLimit='" + recurringCycleLimit + "', metafields='" + metafields + "'}"; + return "DiscountCodeAppInput{combinesWith='" + combinesWith + "', discountClasses='" + discountClasses + "', title='" + title + "', startsAt='" + startsAt + "', endsAt='" + endsAt + "', appliesOncePerCustomer='" + appliesOncePerCustomer + "', code='" + code + "', usageLimit='" + usageLimit + "', context='" + context + "', functionHandle='" + functionHandle + "', appliesOnSubscription='" + appliesOnSubscription + "', appliesOnOneTimePurchase='" + appliesOnOneTimePurchase + "', recurringCycleLimit='" + recurringCycleLimit + "', metafields='" + metafields + "'}"; } @Override @@ -287,9 +286,9 @@ public boolean equals(Object o) { Objects.equals(endsAt, that.endsAt) && Objects.equals(appliesOncePerCustomer, that.appliesOncePerCustomer) && Objects.equals(code, that.code) && - Objects.equals(customerSelection, that.customerSelection) && Objects.equals(usageLimit, that.usageLimit) && - Objects.equals(functionId, that.functionId) && + Objects.equals(context, that.context) && + Objects.equals(functionHandle, that.functionHandle) && Objects.equals(appliesOnSubscription, that.appliesOnSubscription) && Objects.equals(appliesOnOneTimePurchase, that.appliesOnOneTimePurchase) && Objects.equals(recurringCycleLimit, that.recurringCycleLimit) && @@ -298,7 +297,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(combinesWith, discountClasses, title, startsAt, endsAt, appliesOncePerCustomer, code, customerSelection, usageLimit, functionId, appliesOnSubscription, appliesOnOneTimePurchase, recurringCycleLimit, metafields); + return Objects.hash(combinesWith, discountClasses, title, startsAt, endsAt, appliesOncePerCustomer, code, usageLimit, context, functionHandle, appliesOnSubscription, appliesOnOneTimePurchase, recurringCycleLimit, metafields); } public static Builder newBuilder() { @@ -346,21 +345,21 @@ public static class Builder { private String code; /** - * The customers that can use the discount. + * The maximum number of times the discount can be redeemed. + * For unlimited usage, specify `null`. */ - private DiscountCustomerSelectionInput customerSelection; + private Integer usageLimit; /** - * The maximum number of times that a customer can use the discount. - * For discounts with unlimited usage, specify `null`. + * The context defining which buyers can use the discount. + * You can target specific customer IDs, customer segments, or make the discount available to all buyers. */ - private Integer usageLimit; + private DiscountContextInput context; /** - * The [function ID](https://shopify.dev/docs/apps/build/functions/input-output/metafields-for-input-queries) associated with the app extension that's providing the [discount - * type](https://help.shopify.com/manual/discounts/discount-types). + * The handle of the function providing the discount. */ - private String functionId; + private String functionHandle; /** * Whether the discount applies to subscriptions items. @@ -396,9 +395,9 @@ public DiscountCodeAppInput build() { result.endsAt = this.endsAt; result.appliesOncePerCustomer = this.appliesOncePerCustomer; result.code = this.code; - result.customerSelection = this.customerSelection; result.usageLimit = this.usageLimit; - result.functionId = this.functionId; + result.context = this.context; + result.functionHandle = this.functionHandle; result.appliesOnSubscription = this.appliesOnSubscription; result.appliesOnOneTimePurchase = this.appliesOnOneTimePurchase; result.recurringCycleLimit = this.recurringCycleLimit; @@ -467,28 +466,28 @@ public Builder code(String code) { } /** - * The customers that can use the discount. + * The maximum number of times the discount can be redeemed. + * For unlimited usage, specify `null`. */ - public Builder customerSelection(DiscountCustomerSelectionInput customerSelection) { - this.customerSelection = customerSelection; + public Builder usageLimit(Integer usageLimit) { + this.usageLimit = usageLimit; return this; } /** - * The maximum number of times that a customer can use the discount. - * For discounts with unlimited usage, specify `null`. + * The context defining which buyers can use the discount. + * You can target specific customer IDs, customer segments, or make the discount available to all buyers. */ - public Builder usageLimit(Integer usageLimit) { - this.usageLimit = usageLimit; + public Builder context(DiscountContextInput context) { + this.context = context; return this; } /** - * The [function ID](https://shopify.dev/docs/apps/build/functions/input-output/metafields-for-input-queries) associated with the app extension that's providing the [discount - * type](https://help.shopify.com/manual/discounts/discount-types). + * The handle of the function providing the discount. */ - public Builder functionId(String functionId) { - this.functionId = functionId; + public Builder functionHandle(String functionHandle) { + this.functionHandle = functionHandle; return this; } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCodeBasic.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCodeBasic.java index ef33142b..b0013126 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCodeBasic.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCodeBasic.java @@ -66,6 +66,11 @@ public class DiscountCodeBasic implements Discount, DiscountCode { */ private DiscountCombinesWith combinesWith; + /** + * The context defining which buyers can use the discount. + */ + private DiscountContext context; + /** * The date and time when the discount was created. */ @@ -164,8 +169,8 @@ public class DiscountCodeBasic implements Discount, DiscountCode { private OffsetDateTime updatedAt; /** - * The maximum number of times that a customer can use the discount. - * For discounts with unlimited usage, specify `null`. + * The maximum number of times the discount can be redeemed. + * For unlimited usage, specify `null`. */ private Integer usageLimit; @@ -236,6 +241,17 @@ public void setCombinesWith(DiscountCombinesWith combinesWith) { this.combinesWith = combinesWith; } + /** + * The context defining which buyers can use the discount. + */ + public DiscountContext getContext() { + return context; + } + + public void setContext(DiscountContext context) { + this.context = context; + } + /** * The date and time when the discount was created. */ @@ -436,8 +452,8 @@ public void setUpdatedAt(OffsetDateTime updatedAt) { } /** - * The maximum number of times that a customer can use the discount. - * For discounts with unlimited usage, specify `null`. + * The maximum number of times the discount can be redeemed. + * For unlimited usage, specify `null`. */ public Integer getUsageLimit() { return usageLimit; @@ -449,7 +465,7 @@ public void setUsageLimit(Integer usageLimit) { @Override public String toString() { - return "DiscountCodeBasic{appliesOncePerCustomer='" + appliesOncePerCustomer + "', asyncUsageCount='" + asyncUsageCount + "', codes='" + codes + "', codesCount='" + codesCount + "', combinesWith='" + combinesWith + "', createdAt='" + createdAt + "', customerGets='" + customerGets + "', customerSelection='" + customerSelection + "', discountClass='" + discountClass + "', discountClasses='" + discountClasses + "', endsAt='" + endsAt + "', hasTimelineComment='" + hasTimelineComment + "', minimumRequirement='" + minimumRequirement + "', recurringCycleLimit='" + recurringCycleLimit + "', shareableUrls='" + shareableUrls + "', shortSummary='" + shortSummary + "', startsAt='" + startsAt + "', status='" + status + "', summary='" + summary + "', title='" + title + "', totalSales='" + totalSales + "', updatedAt='" + updatedAt + "', usageLimit='" + usageLimit + "'}"; + return "DiscountCodeBasic{appliesOncePerCustomer='" + appliesOncePerCustomer + "', asyncUsageCount='" + asyncUsageCount + "', codes='" + codes + "', codesCount='" + codesCount + "', combinesWith='" + combinesWith + "', context='" + context + "', createdAt='" + createdAt + "', customerGets='" + customerGets + "', customerSelection='" + customerSelection + "', discountClass='" + discountClass + "', discountClasses='" + discountClasses + "', endsAt='" + endsAt + "', hasTimelineComment='" + hasTimelineComment + "', minimumRequirement='" + minimumRequirement + "', recurringCycleLimit='" + recurringCycleLimit + "', shareableUrls='" + shareableUrls + "', shortSummary='" + shortSummary + "', startsAt='" + startsAt + "', status='" + status + "', summary='" + summary + "', title='" + title + "', totalSales='" + totalSales + "', updatedAt='" + updatedAt + "', usageLimit='" + usageLimit + "'}"; } @Override @@ -462,6 +478,7 @@ public boolean equals(Object o) { Objects.equals(codes, that.codes) && Objects.equals(codesCount, that.codesCount) && Objects.equals(combinesWith, that.combinesWith) && + Objects.equals(context, that.context) && Objects.equals(createdAt, that.createdAt) && Objects.equals(customerGets, that.customerGets) && Objects.equals(customerSelection, that.customerSelection) && @@ -484,7 +501,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(appliesOncePerCustomer, asyncUsageCount, codes, codesCount, combinesWith, createdAt, customerGets, customerSelection, discountClass, discountClasses, endsAt, hasTimelineComment, minimumRequirement, recurringCycleLimit, shareableUrls, shortSummary, startsAt, status, summary, title, totalSales, updatedAt, usageLimit); + return Objects.hash(appliesOncePerCustomer, asyncUsageCount, codes, codesCount, combinesWith, context, createdAt, customerGets, customerSelection, discountClass, discountClasses, endsAt, hasTimelineComment, minimumRequirement, recurringCycleLimit, shareableUrls, shortSummary, startsAt, status, summary, title, totalSales, updatedAt, usageLimit); } public static Builder newBuilder() { @@ -526,6 +543,11 @@ public static class Builder { */ private DiscountCombinesWith combinesWith; + /** + * The context defining which buyers can use the discount. + */ + private DiscountContext context; + /** * The date and time when the discount was created. */ @@ -624,8 +646,8 @@ public static class Builder { private OffsetDateTime updatedAt; /** - * The maximum number of times that a customer can use the discount. - * For discounts with unlimited usage, specify `null`. + * The maximum number of times the discount can be redeemed. + * For unlimited usage, specify `null`. */ private Integer usageLimit; @@ -636,6 +658,7 @@ public DiscountCodeBasic build() { result.codes = this.codes; result.codesCount = this.codesCount; result.combinesWith = this.combinesWith; + result.context = this.context; result.createdAt = this.createdAt; result.customerGets = this.customerGets; result.customerSelection = this.customerSelection; @@ -706,6 +729,14 @@ public Builder combinesWith(DiscountCombinesWith combinesWith) { return this; } + /** + * The context defining which buyers can use the discount. + */ + public Builder context(DiscountContext context) { + this.context = context; + return this; + } + /** * The date and time when the discount was created. */ @@ -855,8 +886,8 @@ public Builder updatedAt(OffsetDateTime updatedAt) { } /** - * The maximum number of times that a customer can use the discount. - * For discounts with unlimited usage, specify `null`. + * The maximum number of times the discount can be redeemed. + * For unlimited usage, specify `null`. */ public Builder usageLimit(Integer usageLimit) { this.usageLimit = usageLimit; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCodeBasicInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCodeBasicInput.java index 14050d6e..360c4a1b 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCodeBasicInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCodeBasicInput.java @@ -12,6 +12,13 @@ * The input fields for creating or updating an [amount off discount](https://help.shopify.com/manual/discounts/discount-types/percentage-fixed-amount) * that's applied on a cart and at checkout when a customer enters a code. Amount * off discounts can be a percentage off or a fixed amount off. + * + * When creating, required fields are: + * - `code` + * - `context` (or deprecated `customerSelection`) + * - `customerGets` + * - `startsAt` + * - `title` */ public class DiscountCodeBasicInput { /** @@ -49,15 +56,16 @@ public class DiscountCodeBasicInput { private String code; /** - * The customers that can use the discount. + * The maximum number of times the discount can be redeemed. + * For unlimited usage, specify `null`. */ - private DiscountCustomerSelectionInput customerSelection; + private Integer usageLimit; /** - * The maximum number of times that a customer can use the discount. - * For discounts with unlimited usage, specify `null`. + * The context defining which buyers can use the discount. + * You can target specific customer IDs, customer segments, or make the discount available to all buyers. */ - private Integer usageLimit; + private DiscountContextInput context; /** * The minimum subtotal or quantity of items that are required for the discount to be applied. @@ -151,26 +159,27 @@ public void setCode(String code) { } /** - * The customers that can use the discount. + * The maximum number of times the discount can be redeemed. + * For unlimited usage, specify `null`. */ - public DiscountCustomerSelectionInput getCustomerSelection() { - return customerSelection; + public Integer getUsageLimit() { + return usageLimit; } - public void setCustomerSelection(DiscountCustomerSelectionInput customerSelection) { - this.customerSelection = customerSelection; + public void setUsageLimit(Integer usageLimit) { + this.usageLimit = usageLimit; } /** - * The maximum number of times that a customer can use the discount. - * For discounts with unlimited usage, specify `null`. + * The context defining which buyers can use the discount. + * You can target specific customer IDs, customer segments, or make the discount available to all buyers. */ - public Integer getUsageLimit() { - return usageLimit; + public DiscountContextInput getContext() { + return context; } - public void setUsageLimit(Integer usageLimit) { - this.usageLimit = usageLimit; + public void setContext(DiscountContextInput context) { + this.context = context; } /** @@ -211,7 +220,7 @@ public void setRecurringCycleLimit(Integer recurringCycleLimit) { @Override public String toString() { - return "DiscountCodeBasicInput{combinesWith='" + combinesWith + "', title='" + title + "', startsAt='" + startsAt + "', endsAt='" + endsAt + "', appliesOncePerCustomer='" + appliesOncePerCustomer + "', code='" + code + "', customerSelection='" + customerSelection + "', usageLimit='" + usageLimit + "', minimumRequirement='" + minimumRequirement + "', customerGets='" + customerGets + "', recurringCycleLimit='" + recurringCycleLimit + "'}"; + return "DiscountCodeBasicInput{combinesWith='" + combinesWith + "', title='" + title + "', startsAt='" + startsAt + "', endsAt='" + endsAt + "', appliesOncePerCustomer='" + appliesOncePerCustomer + "', code='" + code + "', usageLimit='" + usageLimit + "', context='" + context + "', minimumRequirement='" + minimumRequirement + "', customerGets='" + customerGets + "', recurringCycleLimit='" + recurringCycleLimit + "'}"; } @Override @@ -225,8 +234,8 @@ public boolean equals(Object o) { Objects.equals(endsAt, that.endsAt) && Objects.equals(appliesOncePerCustomer, that.appliesOncePerCustomer) && Objects.equals(code, that.code) && - Objects.equals(customerSelection, that.customerSelection) && Objects.equals(usageLimit, that.usageLimit) && + Objects.equals(context, that.context) && Objects.equals(minimumRequirement, that.minimumRequirement) && Objects.equals(customerGets, that.customerGets) && Objects.equals(recurringCycleLimit, that.recurringCycleLimit); @@ -234,7 +243,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(combinesWith, title, startsAt, endsAt, appliesOncePerCustomer, code, customerSelection, usageLimit, minimumRequirement, customerGets, recurringCycleLimit); + return Objects.hash(combinesWith, title, startsAt, endsAt, appliesOncePerCustomer, code, usageLimit, context, minimumRequirement, customerGets, recurringCycleLimit); } public static Builder newBuilder() { @@ -277,15 +286,16 @@ public static class Builder { private String code; /** - * The customers that can use the discount. + * The maximum number of times the discount can be redeemed. + * For unlimited usage, specify `null`. */ - private DiscountCustomerSelectionInput customerSelection; + private Integer usageLimit; /** - * The maximum number of times that a customer can use the discount. - * For discounts with unlimited usage, specify `null`. + * The context defining which buyers can use the discount. + * You can target specific customer IDs, customer segments, or make the discount available to all buyers. */ - private Integer usageLimit; + private DiscountContextInput context; /** * The minimum subtotal or quantity of items that are required for the discount to be applied. @@ -313,8 +323,8 @@ public DiscountCodeBasicInput build() { result.endsAt = this.endsAt; result.appliesOncePerCustomer = this.appliesOncePerCustomer; result.code = this.code; - result.customerSelection = this.customerSelection; result.usageLimit = this.usageLimit; + result.context = this.context; result.minimumRequirement = this.minimumRequirement; result.customerGets = this.customerGets; result.recurringCycleLimit = this.recurringCycleLimit; @@ -374,19 +384,20 @@ public Builder code(String code) { } /** - * The customers that can use the discount. + * The maximum number of times the discount can be redeemed. + * For unlimited usage, specify `null`. */ - public Builder customerSelection(DiscountCustomerSelectionInput customerSelection) { - this.customerSelection = customerSelection; + public Builder usageLimit(Integer usageLimit) { + this.usageLimit = usageLimit; return this; } /** - * The maximum number of times that a customer can use the discount. - * For discounts with unlimited usage, specify `null`. + * The context defining which buyers can use the discount. + * You can target specific customer IDs, customer segments, or make the discount available to all buyers. */ - public Builder usageLimit(Integer usageLimit) { - this.usageLimit = usageLimit; + public Builder context(DiscountContextInput context) { + this.context = context; return this; } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCodeBxgy.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCodeBxgy.java index ed27d2dd..20d90f90 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCodeBxgy.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCodeBxgy.java @@ -67,6 +67,11 @@ public class DiscountCodeBxgy implements Discount, DiscountCode { */ private DiscountCombinesWith combinesWith; + /** + * The context defining which buyers can use the discount. + */ + private DiscountContext context; + /** * The date and time when the discount was created. */ @@ -150,8 +155,8 @@ public class DiscountCodeBxgy implements Discount, DiscountCode { private OffsetDateTime updatedAt; /** - * The maximum number of times that a customer can use the discount. - * For discounts with unlimited usage, specify `null`. + * The maximum number of times the discount can be redeemed. + * For unlimited usage, specify `null`. */ private Integer usageLimit; @@ -227,6 +232,17 @@ public void setCombinesWith(DiscountCombinesWith combinesWith) { this.combinesWith = combinesWith; } + /** + * The context defining which buyers can use the discount. + */ + public DiscountContext getContext() { + return context; + } + + public void setContext(DiscountContext context) { + this.context = context; + } + /** * The date and time when the discount was created. */ @@ -400,8 +416,8 @@ public void setUpdatedAt(OffsetDateTime updatedAt) { } /** - * The maximum number of times that a customer can use the discount. - * For discounts with unlimited usage, specify `null`. + * The maximum number of times the discount can be redeemed. + * For unlimited usage, specify `null`. */ public Integer getUsageLimit() { return usageLimit; @@ -424,7 +440,7 @@ public void setUsesPerOrderLimit(Integer usesPerOrderLimit) { @Override public String toString() { - return "DiscountCodeBxgy{appliesOncePerCustomer='" + appliesOncePerCustomer + "', asyncUsageCount='" + asyncUsageCount + "', codes='" + codes + "', codesCount='" + codesCount + "', combinesWith='" + combinesWith + "', createdAt='" + createdAt + "', customerBuys='" + customerBuys + "', customerGets='" + customerGets + "', customerSelection='" + customerSelection + "', discountClass='" + discountClass + "', discountClasses='" + discountClasses + "', endsAt='" + endsAt + "', hasTimelineComment='" + hasTimelineComment + "', shareableUrls='" + shareableUrls + "', startsAt='" + startsAt + "', status='" + status + "', summary='" + summary + "', title='" + title + "', totalSales='" + totalSales + "', updatedAt='" + updatedAt + "', usageLimit='" + usageLimit + "', usesPerOrderLimit='" + usesPerOrderLimit + "'}"; + return "DiscountCodeBxgy{appliesOncePerCustomer='" + appliesOncePerCustomer + "', asyncUsageCount='" + asyncUsageCount + "', codes='" + codes + "', codesCount='" + codesCount + "', combinesWith='" + combinesWith + "', context='" + context + "', createdAt='" + createdAt + "', customerBuys='" + customerBuys + "', customerGets='" + customerGets + "', customerSelection='" + customerSelection + "', discountClass='" + discountClass + "', discountClasses='" + discountClasses + "', endsAt='" + endsAt + "', hasTimelineComment='" + hasTimelineComment + "', shareableUrls='" + shareableUrls + "', startsAt='" + startsAt + "', status='" + status + "', summary='" + summary + "', title='" + title + "', totalSales='" + totalSales + "', updatedAt='" + updatedAt + "', usageLimit='" + usageLimit + "', usesPerOrderLimit='" + usesPerOrderLimit + "'}"; } @Override @@ -437,6 +453,7 @@ public boolean equals(Object o) { Objects.equals(codes, that.codes) && Objects.equals(codesCount, that.codesCount) && Objects.equals(combinesWith, that.combinesWith) && + Objects.equals(context, that.context) && Objects.equals(createdAt, that.createdAt) && Objects.equals(customerBuys, that.customerBuys) && Objects.equals(customerGets, that.customerGets) && @@ -458,7 +475,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(appliesOncePerCustomer, asyncUsageCount, codes, codesCount, combinesWith, createdAt, customerBuys, customerGets, customerSelection, discountClass, discountClasses, endsAt, hasTimelineComment, shareableUrls, startsAt, status, summary, title, totalSales, updatedAt, usageLimit, usesPerOrderLimit); + return Objects.hash(appliesOncePerCustomer, asyncUsageCount, codes, codesCount, combinesWith, context, createdAt, customerBuys, customerGets, customerSelection, discountClass, discountClasses, endsAt, hasTimelineComment, shareableUrls, startsAt, status, summary, title, totalSales, updatedAt, usageLimit, usesPerOrderLimit); } public static Builder newBuilder() { @@ -500,6 +517,11 @@ public static class Builder { */ private DiscountCombinesWith combinesWith; + /** + * The context defining which buyers can use the discount. + */ + private DiscountContext context; + /** * The date and time when the discount was created. */ @@ -583,8 +605,8 @@ public static class Builder { private OffsetDateTime updatedAt; /** - * The maximum number of times that a customer can use the discount. - * For discounts with unlimited usage, specify `null`. + * The maximum number of times the discount can be redeemed. + * For unlimited usage, specify `null`. */ private Integer usageLimit; @@ -600,6 +622,7 @@ public DiscountCodeBxgy build() { result.codes = this.codes; result.codesCount = this.codesCount; result.combinesWith = this.combinesWith; + result.context = this.context; result.createdAt = this.createdAt; result.customerBuys = this.customerBuys; result.customerGets = this.customerGets; @@ -669,6 +692,14 @@ public Builder combinesWith(DiscountCombinesWith combinesWith) { return this; } + /** + * The context defining which buyers can use the discount. + */ + public Builder context(DiscountContext context) { + this.context = context; + return this; + } + /** * The date and time when the discount was created. */ @@ -797,8 +828,8 @@ public Builder updatedAt(OffsetDateTime updatedAt) { } /** - * The maximum number of times that a customer can use the discount. - * For discounts with unlimited usage, specify `null`. + * The maximum number of times the discount can be redeemed. + * For unlimited usage, specify `null`. */ public Builder usageLimit(Integer usageLimit) { this.usageLimit = usageLimit; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCodeBxgyInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCodeBxgyInput.java index 91a47a07..d3523ce2 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCodeBxgyInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCodeBxgyInput.java @@ -12,6 +12,14 @@ * The input fields for creating or updating a * [buy X get Y discount (BXGY)](https://help.shopify.com/manual/discounts/discount-types/buy-x-get-y) * that's applied on a cart and at checkout when a customer enters a code. + * + * When creating, required fields are: + * - `code` + * - `context` (or deprecated `customerSelection`) + * - `customerBuys` + * - `customerGets` + * - `startsAt` + * - `title` */ public class DiscountCodeBxgyInput { /** @@ -49,15 +57,16 @@ public class DiscountCodeBxgyInput { private String code; /** - * The customers that can use the discount. + * The maximum number of times the discount can be redeemed. + * For unlimited usage, specify `null`. */ - private DiscountCustomerSelectionInput customerSelection; + private Integer usageLimit; /** - * The maximum number of times that a customer can use the discount. - * For discounts with unlimited usage, specify `null`. + * The context defining which buyers can use the discount. + * You can target specific customer IDs, customer segments, or make the discount available to all buyers. */ - private Integer usageLimit; + private DiscountContextInput context; /** * The items eligible for the discount and the required quantity of each to receive the discount. @@ -148,26 +157,27 @@ public void setCode(String code) { } /** - * The customers that can use the discount. + * The maximum number of times the discount can be redeemed. + * For unlimited usage, specify `null`. */ - public DiscountCustomerSelectionInput getCustomerSelection() { - return customerSelection; + public Integer getUsageLimit() { + return usageLimit; } - public void setCustomerSelection(DiscountCustomerSelectionInput customerSelection) { - this.customerSelection = customerSelection; + public void setUsageLimit(Integer usageLimit) { + this.usageLimit = usageLimit; } /** - * The maximum number of times that a customer can use the discount. - * For discounts with unlimited usage, specify `null`. + * The context defining which buyers can use the discount. + * You can target specific customer IDs, customer segments, or make the discount available to all buyers. */ - public Integer getUsageLimit() { - return usageLimit; + public DiscountContextInput getContext() { + return context; } - public void setUsageLimit(Integer usageLimit) { - this.usageLimit = usageLimit; + public void setContext(DiscountContextInput context) { + this.context = context; } /** @@ -205,7 +215,7 @@ public void setUsesPerOrderLimit(Integer usesPerOrderLimit) { @Override public String toString() { - return "DiscountCodeBxgyInput{combinesWith='" + combinesWith + "', title='" + title + "', startsAt='" + startsAt + "', endsAt='" + endsAt + "', appliesOncePerCustomer='" + appliesOncePerCustomer + "', code='" + code + "', customerSelection='" + customerSelection + "', usageLimit='" + usageLimit + "', customerBuys='" + customerBuys + "', customerGets='" + customerGets + "', usesPerOrderLimit='" + usesPerOrderLimit + "'}"; + return "DiscountCodeBxgyInput{combinesWith='" + combinesWith + "', title='" + title + "', startsAt='" + startsAt + "', endsAt='" + endsAt + "', appliesOncePerCustomer='" + appliesOncePerCustomer + "', code='" + code + "', usageLimit='" + usageLimit + "', context='" + context + "', customerBuys='" + customerBuys + "', customerGets='" + customerGets + "', usesPerOrderLimit='" + usesPerOrderLimit + "'}"; } @Override @@ -219,8 +229,8 @@ public boolean equals(Object o) { Objects.equals(endsAt, that.endsAt) && Objects.equals(appliesOncePerCustomer, that.appliesOncePerCustomer) && Objects.equals(code, that.code) && - Objects.equals(customerSelection, that.customerSelection) && Objects.equals(usageLimit, that.usageLimit) && + Objects.equals(context, that.context) && Objects.equals(customerBuys, that.customerBuys) && Objects.equals(customerGets, that.customerGets) && Objects.equals(usesPerOrderLimit, that.usesPerOrderLimit); @@ -228,7 +238,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(combinesWith, title, startsAt, endsAt, appliesOncePerCustomer, code, customerSelection, usageLimit, customerBuys, customerGets, usesPerOrderLimit); + return Objects.hash(combinesWith, title, startsAt, endsAt, appliesOncePerCustomer, code, usageLimit, context, customerBuys, customerGets, usesPerOrderLimit); } public static Builder newBuilder() { @@ -271,15 +281,16 @@ public static class Builder { private String code; /** - * The customers that can use the discount. + * The maximum number of times the discount can be redeemed. + * For unlimited usage, specify `null`. */ - private DiscountCustomerSelectionInput customerSelection; + private Integer usageLimit; /** - * The maximum number of times that a customer can use the discount. - * For discounts with unlimited usage, specify `null`. + * The context defining which buyers can use the discount. + * You can target specific customer IDs, customer segments, or make the discount available to all buyers. */ - private Integer usageLimit; + private DiscountContextInput context; /** * The items eligible for the discount and the required quantity of each to receive the discount. @@ -304,8 +315,8 @@ public DiscountCodeBxgyInput build() { result.endsAt = this.endsAt; result.appliesOncePerCustomer = this.appliesOncePerCustomer; result.code = this.code; - result.customerSelection = this.customerSelection; result.usageLimit = this.usageLimit; + result.context = this.context; result.customerBuys = this.customerBuys; result.customerGets = this.customerGets; result.usesPerOrderLimit = this.usesPerOrderLimit; @@ -365,19 +376,20 @@ public Builder code(String code) { } /** - * The customers that can use the discount. + * The maximum number of times the discount can be redeemed. + * For unlimited usage, specify `null`. */ - public Builder customerSelection(DiscountCustomerSelectionInput customerSelection) { - this.customerSelection = customerSelection; + public Builder usageLimit(Integer usageLimit) { + this.usageLimit = usageLimit; return this; } /** - * The maximum number of times that a customer can use the discount. - * For discounts with unlimited usage, specify `null`. + * The context defining which buyers can use the discount. + * You can target specific customer IDs, customer segments, or make the discount available to all buyers. */ - public Builder usageLimit(Integer usageLimit) { - this.usageLimit = usageLimit; + public Builder context(DiscountContextInput context) { + this.context = context; return this; } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCodeFreeShipping.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCodeFreeShipping.java index 8054acba..673dff95 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCodeFreeShipping.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCodeFreeShipping.java @@ -83,6 +83,11 @@ public class DiscountCodeFreeShipping implements Discount, DiscountCode { */ private DiscountCombinesWith combinesWith; + /** + * The context defining which buyers can use the discount. + */ + private DiscountContext context; + /** * The date and time when the discount was created. */ @@ -190,8 +195,8 @@ public class DiscountCodeFreeShipping implements Discount, DiscountCode { private OffsetDateTime updatedAt; /** - * The maximum number of times that a customer can use the discount. - * For discounts with unlimited usage, specify `null`. + * The maximum number of times the discount can be redeemed. + * For unlimited usage, specify `null`. */ private Integer usageLimit; @@ -290,6 +295,17 @@ public void setCombinesWith(DiscountCombinesWith combinesWith) { this.combinesWith = combinesWith; } + /** + * The context defining which buyers can use the discount. + */ + public DiscountContext getContext() { + return context; + } + + public void setContext(DiscountContext context) { + this.context = context; + } + /** * The date and time when the discount was created. */ @@ -505,8 +521,8 @@ public void setUpdatedAt(OffsetDateTime updatedAt) { } /** - * The maximum number of times that a customer can use the discount. - * For discounts with unlimited usage, specify `null`. + * The maximum number of times the discount can be redeemed. + * For unlimited usage, specify `null`. */ public Integer getUsageLimit() { return usageLimit; @@ -518,7 +534,7 @@ public void setUsageLimit(Integer usageLimit) { @Override public String toString() { - return "DiscountCodeFreeShipping{appliesOnOneTimePurchase='" + appliesOnOneTimePurchase + "', appliesOnSubscription='" + appliesOnSubscription + "', appliesOncePerCustomer='" + appliesOncePerCustomer + "', asyncUsageCount='" + asyncUsageCount + "', codes='" + codes + "', codesCount='" + codesCount + "', combinesWith='" + combinesWith + "', createdAt='" + createdAt + "', customerSelection='" + customerSelection + "', destinationSelection='" + destinationSelection + "', discountClass='" + discountClass + "', discountClasses='" + discountClasses + "', endsAt='" + endsAt + "', hasTimelineComment='" + hasTimelineComment + "', maximumShippingPrice='" + maximumShippingPrice + "', minimumRequirement='" + minimumRequirement + "', recurringCycleLimit='" + recurringCycleLimit + "', shareableUrls='" + shareableUrls + "', shortSummary='" + shortSummary + "', startsAt='" + startsAt + "', status='" + status + "', summary='" + summary + "', title='" + title + "', totalSales='" + totalSales + "', updatedAt='" + updatedAt + "', usageLimit='" + usageLimit + "'}"; + return "DiscountCodeFreeShipping{appliesOnOneTimePurchase='" + appliesOnOneTimePurchase + "', appliesOnSubscription='" + appliesOnSubscription + "', appliesOncePerCustomer='" + appliesOncePerCustomer + "', asyncUsageCount='" + asyncUsageCount + "', codes='" + codes + "', codesCount='" + codesCount + "', combinesWith='" + combinesWith + "', context='" + context + "', createdAt='" + createdAt + "', customerSelection='" + customerSelection + "', destinationSelection='" + destinationSelection + "', discountClass='" + discountClass + "', discountClasses='" + discountClasses + "', endsAt='" + endsAt + "', hasTimelineComment='" + hasTimelineComment + "', maximumShippingPrice='" + maximumShippingPrice + "', minimumRequirement='" + minimumRequirement + "', recurringCycleLimit='" + recurringCycleLimit + "', shareableUrls='" + shareableUrls + "', shortSummary='" + shortSummary + "', startsAt='" + startsAt + "', status='" + status + "', summary='" + summary + "', title='" + title + "', totalSales='" + totalSales + "', updatedAt='" + updatedAt + "', usageLimit='" + usageLimit + "'}"; } @Override @@ -533,6 +549,7 @@ public boolean equals(Object o) { Objects.equals(codes, that.codes) && Objects.equals(codesCount, that.codesCount) && Objects.equals(combinesWith, that.combinesWith) && + Objects.equals(context, that.context) && Objects.equals(createdAt, that.createdAt) && Objects.equals(customerSelection, that.customerSelection) && Objects.equals(destinationSelection, that.destinationSelection) && @@ -556,7 +573,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(appliesOnOneTimePurchase, appliesOnSubscription, appliesOncePerCustomer, asyncUsageCount, codes, codesCount, combinesWith, createdAt, customerSelection, destinationSelection, discountClass, discountClasses, endsAt, hasTimelineComment, maximumShippingPrice, minimumRequirement, recurringCycleLimit, shareableUrls, shortSummary, startsAt, status, summary, title, totalSales, updatedAt, usageLimit); + return Objects.hash(appliesOnOneTimePurchase, appliesOnSubscription, appliesOncePerCustomer, asyncUsageCount, codes, codesCount, combinesWith, context, createdAt, customerSelection, destinationSelection, discountClass, discountClasses, endsAt, hasTimelineComment, maximumShippingPrice, minimumRequirement, recurringCycleLimit, shareableUrls, shortSummary, startsAt, status, summary, title, totalSales, updatedAt, usageLimit); } public static Builder newBuilder() { @@ -614,6 +631,11 @@ public static class Builder { */ private DiscountCombinesWith combinesWith; + /** + * The context defining which buyers can use the discount. + */ + private DiscountContext context; + /** * The date and time when the discount was created. */ @@ -721,8 +743,8 @@ public static class Builder { private OffsetDateTime updatedAt; /** - * The maximum number of times that a customer can use the discount. - * For discounts with unlimited usage, specify `null`. + * The maximum number of times the discount can be redeemed. + * For unlimited usage, specify `null`. */ private Integer usageLimit; @@ -735,6 +757,7 @@ public DiscountCodeFreeShipping build() { result.codes = this.codes; result.codesCount = this.codesCount; result.combinesWith = this.combinesWith; + result.context = this.context; result.createdAt = this.createdAt; result.customerSelection = this.customerSelection; result.destinationSelection = this.destinationSelection; @@ -828,6 +851,14 @@ public Builder combinesWith(DiscountCombinesWith combinesWith) { return this; } + /** + * The context defining which buyers can use the discount. + */ + public Builder context(DiscountContext context) { + this.context = context; + return this; + } + /** * The date and time when the discount was created. */ @@ -989,8 +1020,8 @@ public Builder updatedAt(OffsetDateTime updatedAt) { } /** - * The maximum number of times that a customer can use the discount. - * For discounts with unlimited usage, specify `null`. + * The maximum number of times the discount can be redeemed. + * For unlimited usage, specify `null`. */ public Builder usageLimit(Integer usageLimit) { this.usageLimit = usageLimit; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCodeFreeShippingInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCodeFreeShippingInput.java index 40bf6426..57fce492 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCodeFreeShippingInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCodeFreeShippingInput.java @@ -11,6 +11,12 @@ /** * The input fields for creating or updating a [free shipping discount](https://help.shopify.com/manual/discounts/discount-types/free-shipping) * that's applied on a cart and at checkout when a customer enters a code. + * + * When creating, required fields are: + * - `code` + * - `context` (or deprecated `customerSelection`) + * - `startsAt` + * - `title` */ public class DiscountCodeFreeShippingInput { /** @@ -47,15 +53,16 @@ public class DiscountCodeFreeShippingInput { private String code; /** - * The customers that can use the discount. + * The maximum number of times the discount can be redeemed. + * For unlimited usage, specify `null`. */ - private DiscountCustomerSelectionInput customerSelection; + private Integer usageLimit; /** - * The maximum number of times that a customer can use the discount. - * For discounts with unlimited usage, specify `null`. + * The context defining which buyers can use the discount. + * You can target specific customer IDs, customer segments, or make the discount available to all buyers. */ - private Integer usageLimit; + private DiscountContextInput context; /** * The minimum subtotal or quantity of items that are required for the discount to be applied. @@ -171,26 +178,27 @@ public void setCode(String code) { } /** - * The customers that can use the discount. + * The maximum number of times the discount can be redeemed. + * For unlimited usage, specify `null`. */ - public DiscountCustomerSelectionInput getCustomerSelection() { - return customerSelection; + public Integer getUsageLimit() { + return usageLimit; } - public void setCustomerSelection(DiscountCustomerSelectionInput customerSelection) { - this.customerSelection = customerSelection; + public void setUsageLimit(Integer usageLimit) { + this.usageLimit = usageLimit; } /** - * The maximum number of times that a customer can use the discount. - * For discounts with unlimited usage, specify `null`. + * The context defining which buyers can use the discount. + * You can target specific customer IDs, customer segments, or make the discount available to all buyers. */ - public Integer getUsageLimit() { - return usageLimit; + public DiscountContextInput getContext() { + return context; } - public void setUsageLimit(Integer usageLimit) { - this.usageLimit = usageLimit; + public void setContext(DiscountContextInput context) { + this.context = context; } /** @@ -272,7 +280,7 @@ public void setAppliesOnSubscription(Boolean appliesOnSubscription) { @Override public String toString() { - return "DiscountCodeFreeShippingInput{combinesWith='" + combinesWith + "', title='" + title + "', startsAt='" + startsAt + "', endsAt='" + endsAt + "', appliesOncePerCustomer='" + appliesOncePerCustomer + "', code='" + code + "', customerSelection='" + customerSelection + "', usageLimit='" + usageLimit + "', minimumRequirement='" + minimumRequirement + "', destination='" + destination + "', maximumShippingPrice='" + maximumShippingPrice + "', recurringCycleLimit='" + recurringCycleLimit + "', appliesOnOneTimePurchase='" + appliesOnOneTimePurchase + "', appliesOnSubscription='" + appliesOnSubscription + "'}"; + return "DiscountCodeFreeShippingInput{combinesWith='" + combinesWith + "', title='" + title + "', startsAt='" + startsAt + "', endsAt='" + endsAt + "', appliesOncePerCustomer='" + appliesOncePerCustomer + "', code='" + code + "', usageLimit='" + usageLimit + "', context='" + context + "', minimumRequirement='" + minimumRequirement + "', destination='" + destination + "', maximumShippingPrice='" + maximumShippingPrice + "', recurringCycleLimit='" + recurringCycleLimit + "', appliesOnOneTimePurchase='" + appliesOnOneTimePurchase + "', appliesOnSubscription='" + appliesOnSubscription + "'}"; } @Override @@ -286,8 +294,8 @@ public boolean equals(Object o) { Objects.equals(endsAt, that.endsAt) && Objects.equals(appliesOncePerCustomer, that.appliesOncePerCustomer) && Objects.equals(code, that.code) && - Objects.equals(customerSelection, that.customerSelection) && Objects.equals(usageLimit, that.usageLimit) && + Objects.equals(context, that.context) && Objects.equals(minimumRequirement, that.minimumRequirement) && Objects.equals(destination, that.destination) && Objects.equals(maximumShippingPrice, that.maximumShippingPrice) && @@ -298,7 +306,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(combinesWith, title, startsAt, endsAt, appliesOncePerCustomer, code, customerSelection, usageLimit, minimumRequirement, destination, maximumShippingPrice, recurringCycleLimit, appliesOnOneTimePurchase, appliesOnSubscription); + return Objects.hash(combinesWith, title, startsAt, endsAt, appliesOncePerCustomer, code, usageLimit, context, minimumRequirement, destination, maximumShippingPrice, recurringCycleLimit, appliesOnOneTimePurchase, appliesOnSubscription); } public static Builder newBuilder() { @@ -340,15 +348,16 @@ public static class Builder { private String code; /** - * The customers that can use the discount. + * The maximum number of times the discount can be redeemed. + * For unlimited usage, specify `null`. */ - private DiscountCustomerSelectionInput customerSelection; + private Integer usageLimit; /** - * The maximum number of times that a customer can use the discount. - * For discounts with unlimited usage, specify `null`. + * The context defining which buyers can use the discount. + * You can target specific customer IDs, customer segments, or make the discount available to all buyers. */ - private Integer usageLimit; + private DiscountContextInput context; /** * The minimum subtotal or quantity of items that are required for the discount to be applied. @@ -399,8 +408,8 @@ public DiscountCodeFreeShippingInput build() { result.endsAt = this.endsAt; result.appliesOncePerCustomer = this.appliesOncePerCustomer; result.code = this.code; - result.customerSelection = this.customerSelection; result.usageLimit = this.usageLimit; + result.context = this.context; result.minimumRequirement = this.minimumRequirement; result.destination = this.destination; result.maximumShippingPrice = this.maximumShippingPrice; @@ -462,19 +471,20 @@ public Builder code(String code) { } /** - * The customers that can use the discount. + * The maximum number of times the discount can be redeemed. + * For unlimited usage, specify `null`. */ - public Builder customerSelection(DiscountCustomerSelectionInput customerSelection) { - this.customerSelection = customerSelection; + public Builder usageLimit(Integer usageLimit) { + this.usageLimit = usageLimit; return this; } /** - * The maximum number of times that a customer can use the discount. - * For discounts with unlimited usage, specify `null`. + * The context defining which buyers can use the discount. + * You can target specific customer IDs, customer segments, or make the discount available to all buyers. */ - public Builder usageLimit(Integer usageLimit) { - this.usageLimit = usageLimit; + public Builder context(DiscountContextInput context) { + this.context = context; return this; } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountContext.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountContext.java new file mode 100644 index 00000000..15df62c3 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountContext.java @@ -0,0 +1,17 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.PROPERTY, + property = "__typename" +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = DiscountBuyerSelectionAll.class, name = "DiscountBuyerSelectionAll"), + @JsonSubTypes.Type(value = DiscountCustomerSegments.class, name = "DiscountCustomerSegments"), + @JsonSubTypes.Type(value = DiscountCustomers.class, name = "DiscountCustomers") +}) +public interface DiscountContext { +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountContextInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountContextInput.java new file mode 100644 index 00000000..7fe50c3f --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountContextInput.java @@ -0,0 +1,135 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * The input fields for the buyers who can use this discount. + */ +public class DiscountContextInput { + /** + * All buyers are eligible for this discount. + */ + private DiscountBuyerSelection all; + + /** + * The list of customer IDs to add or remove from the list of customers. + */ + private DiscountCustomersInput customers; + + /** + * The list of customer segment IDs to add or remove from the list of customer segments. + */ + private DiscountCustomerSegmentsInput customerSegments; + + public DiscountContextInput() { + } + + /** + * All buyers are eligible for this discount. + */ + public DiscountBuyerSelection getAll() { + return all; + } + + public void setAll(DiscountBuyerSelection all) { + this.all = all; + } + + /** + * The list of customer IDs to add or remove from the list of customers. + */ + public DiscountCustomersInput getCustomers() { + return customers; + } + + public void setCustomers(DiscountCustomersInput customers) { + this.customers = customers; + } + + /** + * The list of customer segment IDs to add or remove from the list of customer segments. + */ + public DiscountCustomerSegmentsInput getCustomerSegments() { + return customerSegments; + } + + public void setCustomerSegments(DiscountCustomerSegmentsInput customerSegments) { + this.customerSegments = customerSegments; + } + + @Override + public String toString() { + return "DiscountContextInput{all='" + all + "', customers='" + customers + "', customerSegments='" + customerSegments + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + DiscountContextInput that = (DiscountContextInput) o; + return Objects.equals(all, that.all) && + Objects.equals(customers, that.customers) && + Objects.equals(customerSegments, that.customerSegments); + } + + @Override + public int hashCode() { + return Objects.hash(all, customers, customerSegments); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * All buyers are eligible for this discount. + */ + private DiscountBuyerSelection all; + + /** + * The list of customer IDs to add or remove from the list of customers. + */ + private DiscountCustomersInput customers; + + /** + * The list of customer segment IDs to add or remove from the list of customer segments. + */ + private DiscountCustomerSegmentsInput customerSegments; + + public DiscountContextInput build() { + DiscountContextInput result = new DiscountContextInput(); + result.all = this.all; + result.customers = this.customers; + result.customerSegments = this.customerSegments; + return result; + } + + /** + * All buyers are eligible for this discount. + */ + public Builder all(DiscountBuyerSelection all) { + this.all = all; + return this; + } + + /** + * The list of customer IDs to add or remove from the list of customers. + */ + public Builder customers(DiscountCustomersInput customers) { + this.customers = customers; + return this; + } + + /** + * The list of customer segment IDs to add or remove from the list of customer segments. + */ + public Builder customerSegments(DiscountCustomerSegmentsInput customerSegments) { + this.customerSegments = customerSegments; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCountries.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCountries.java index 9e3a180e..d62b345e 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCountries.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCountries.java @@ -8,7 +8,16 @@ import java.util.Objects; /** - * The shipping destinations where the discount can be applied. + * Defines the geographic scope where a shipping discount can be applied based on + * customer shipping destinations. This configuration determines which countries + * are eligible for the promotional offer. + * + * For example, a "Free Shipping to EU" promotion would specify European Union + * countries, while a domestic-only sale might target just the store's home country. + * + * The object includes both specific country selections and an option to include + * all remaining countries not explicitly listed, providing flexible geographic + * targeting for international merchants. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCountryAll.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCountryAll.java index e1b2633a..e454df9d 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCountryAll.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCountryAll.java @@ -7,7 +7,17 @@ import java.util.Objects; /** - * The `DiscountCountryAll` object lets you target all countries as shipping destination for discount eligibility. + * Indicates that a shipping discount applies to all countries without restriction, + * enabling merchants to create truly global promotions. This object represents + * universal geographic eligibility for shipping discount offers. + * + * For example, an online store launching a "Worldwide Free Shipping" campaign + * would use this configuration to ensure customers from any country can benefit + * from the promotion. + * + * This setting simplifies international discount management by eliminating the + * need to manually select individual countries or regions, making it ideal for + * digital products or stores with comprehensive global shipping capabilities. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCustomerAll.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCustomerAll.java index 9e320097..6cac5941 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCustomerAll.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCustomerAll.java @@ -7,7 +7,15 @@ import java.util.Objects; /** - * The `DiscountCustomerAll` object lets you target all customers for discount eligibility. + * Creates the broadest possible discount reach by targeting all customers, + * regardless of their purchase history or segment membership. This gives merchants + * maximum flexibility to run store-wide promotions without worrying about customer + * eligibility restrictions. + * + * For example, a flash sale or grand opening promotion would target all customers + * to maximize participation and store visibility. + * + * Learn more about [customer targeting](https://help.shopify.com/manual/discounts/). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCustomerGetsValueInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCustomerGetsValueInput.java index 96f8ff6a..22005a0c 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCustomerGetsValueInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCustomerGetsValueInput.java @@ -17,11 +17,15 @@ public class DiscountCustomerGetsValueInput { /** * The percentage value of the discount. Value must be between 0.00 - 1.00. + * + * Note: BXGY doesn't support percentage. */ private Double percentage; /** * The value of the discount. + * + * Note: BXGY doesn't support discountAmount. */ private DiscountAmountInput discountAmount; @@ -41,6 +45,8 @@ public void setDiscountOnQuantity(DiscountOnQuantityInput discountOnQuantity) { /** * The percentage value of the discount. Value must be between 0.00 - 1.00. + * + * Note: BXGY doesn't support percentage. */ public Double getPercentage() { return percentage; @@ -52,6 +58,8 @@ public void setPercentage(Double percentage) { /** * The value of the discount. + * + * Note: BXGY doesn't support discountAmount. */ public DiscountAmountInput getDiscountAmount() { return discountAmount; @@ -93,11 +101,15 @@ public static class Builder { /** * The percentage value of the discount. Value must be between 0.00 - 1.00. + * + * Note: BXGY doesn't support percentage. */ private Double percentage; /** * The value of the discount. + * + * Note: BXGY doesn't support discountAmount. */ private DiscountAmountInput discountAmount; @@ -119,6 +131,8 @@ public Builder discountOnQuantity(DiscountOnQuantityInput discountOnQuantity) { /** * The percentage value of the discount. Value must be between 0.00 - 1.00. + * + * Note: BXGY doesn't support percentage. */ public Builder percentage(Double percentage) { this.percentage = percentage; @@ -127,6 +141,8 @@ public Builder percentage(Double percentage) { /** * The value of the discount. + * + * Note: BXGY doesn't support discountAmount. */ public Builder discountAmount(DiscountAmountInput discountAmount) { this.discountAmount = discountAmount; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCustomerSegments.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCustomerSegments.java index 2902a680..19306bf5 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCustomerSegments.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCustomerSegments.java @@ -8,12 +8,23 @@ import java.util.Objects; /** - * A list of customer segments who are eligible for the discount. + * Represents customer segments that are eligible to receive a specific discount, + * allowing merchants to target promotions to defined groups of customers. This + * enables personalized marketing campaigns based on customer behavior and + * characteristics. + * + * For example, a "VIP Customer 15% Off" promotion might target a segment of + * high-value repeat customers, while a "New Customer Welcome" discount could focus + * on first-time buyers. + * + * Segment-based discounts help merchants create more relevant promotional + * experiences and improve conversion rates by showing the right offers to the + * right customers at the right time. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE ) -public class DiscountCustomerSegments implements DiscountCustomerSelection { +public class DiscountCustomerSegments implements DiscountContext, DiscountCustomerSelection { /** * The list of customer segments who are eligible for the discount. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCustomers.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCustomers.java index 80e533e2..fdba99bd 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCustomers.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountCustomers.java @@ -8,12 +8,29 @@ import java.util.Objects; /** - * A list of individual customers eligible for the discount. + * Defines customer targeting for discounts through specific individual customers. + * This object allows merchants to create exclusive discounts that are only + * available to explicitly selected customers. + * + * For example, a VIP customer appreciation discount might target specific + * high-value customers by individually selecting them, or a beta program discount + * could be offered to selected early adopters. + * + * Use `DiscountCustomers` to: + * - Target specific individual customers for exclusive promotions + * - Create personalized discount experiences for selected customers + * - Offer special discounts to VIP or loyal customers + * - Provide exclusive access to promotions for specific individuals + * + * This targeting method requires you to add each customer who should be eligible + * for the discount. For broader targeting based on customer attributes or segments, use [`DiscountCustomerSegments`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCustomerSegments) instead. + * + * Learn more about creating customer-specific discounts using [`discountCodeBasicCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/discountCodeBasicCreate) and [`discountCodeBasicUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/discountCodeBasicUpdate). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE ) -public class DiscountCustomers implements DiscountCustomerSelection { +public class DiscountCustomers implements DiscountContext, DiscountCustomerSelection { /** * The list of individual customers eligible for the discount. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountErrorCode.java index 91b24cc2..2c6b1a2f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountErrorCode.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountErrorCode.java @@ -60,5 +60,9 @@ public enum DiscountErrorCode { RECURRING_CYCLE_LIMIT_NOT_A_VALID_INTEGER, - MULTIPLE_RECURRING_CYCLE_LIMIT_FOR_NON_SUBSCRIPTION_ITEMS + MULTIPLE_RECURRING_CYCLE_LIMIT_FOR_NON_SUBSCRIPTION_ITEMS, + + MISSING_FUNCTION_IDENTIFIER, + + MULTIPLE_FUNCTION_IDENTIFIERS } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountItemsInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountItemsInput.java index 1c88edbf..d8819f9a 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountItemsInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountItemsInput.java @@ -24,7 +24,7 @@ public class DiscountItemsInput { private DiscountCollectionsInput collections; /** - * Whether all items should be selected. + * Whether all items should be selected for the discount. Not supported for Buy X get Y discounts. */ private Boolean all; @@ -57,7 +57,7 @@ public void setCollections(DiscountCollectionsInput collections) { } /** - * Whether all items should be selected. + * Whether all items should be selected for the discount. Not supported for Buy X get Y discounts. */ public Boolean getAll() { return all; @@ -106,7 +106,7 @@ public static class Builder { private DiscountCollectionsInput collections; /** - * Whether all items should be selected. + * Whether all items should be selected for the discount. Not supported for Buy X get Y discounts. */ private Boolean all; @@ -138,7 +138,7 @@ public Builder collections(DiscountCollectionsInput collections) { } /** - * Whether all items should be selected. + * Whether all items should be selected for the discount. Not supported for Buy X get Y discounts. */ public Builder all(Boolean all) { this.all = all; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountMinimumQuantity.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountMinimumQuantity.java index a6d6db28..9cca348f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountMinimumQuantity.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountMinimumQuantity.java @@ -7,7 +7,13 @@ import java.util.Objects; /** - * The minimum quantity of items required for the discount to apply. + * Specifies the minimum item quantity required for discount eligibility, helping + * merchants create volume-based promotions that encourage larger purchases. This + * threshold applies to qualifying items in the customer's cart. + * + * For example, a "Buy 3, Get 10% Off" promotion would set the minimum quantity to 3 items. + * + * Learn more about [discount requirements](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountApplication). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountOnQuantity.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountOnQuantity.java index beb9534f..ded7463d 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountOnQuantity.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountOnQuantity.java @@ -7,7 +7,17 @@ import java.util.Objects; /** - * The quantity of items discounted, the discount value, and how the discount will be applied. + * Defines quantity-based discount rules that specify how many items are eligible + * for a discount effect. This object enables bulk purchase incentives and tiered + * pricing strategies. + * + * For example, a "Buy 4 candles, get 2 candles 50% off (mix and match)" promotion + * would specify a quantity threshold of 2 items that will receive a percentage + * discount effect, encouraging customers to purchase more items to unlock savings. + * + * The configuration combines quantity requirements with discount effects, allowing + * merchants to create sophisticated pricing rules that reward larger purchases and + * increase average order values. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountPercentage.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountPercentage.java index ac177efa..4e7f2f77 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountPercentage.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountPercentage.java @@ -7,7 +7,14 @@ import java.util.Objects; /** - * A discount effect that gives customers a percentage off of specified items on their order. + * Creates percentage-based discounts that reduce item prices by a specified + * percentage amount. This gives merchants a flexible way to offer proportional + * savings that automatically scale with order value. + * + * For example, a "20% off all winter clothing" promotion would use this object to + * apply consistent percentage savings across different price points. + * + * Learn more about [discount types](https://help.shopify.com/manual/discounts/). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountQuantity.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountQuantity.java index a669b8b5..86275e63 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountQuantity.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DiscountQuantity.java @@ -7,9 +7,16 @@ import java.util.Objects; /** - * A quantity of items in the context of a discount. This object can be used to - * define the minimum quantity of items required to apply a discount. - * Alternatively, it can be used to define the quantity of items that can be discounted. + * Defines a quantity threshold for discount eligibility or application. This + * simple object specifies the number of items required to trigger or calculate + * discount benefits. + * + * For example, a "Buy 3, Get 1 Free" promotion would use DiscountQuantity to + * define the minimum purchase quantity of 3 items, or a bulk discount might + * specify quantity tiers like 10+ items for wholesale pricing. + * + * The quantity value determines how discounts interact with cart contents, whether + * setting minimum purchase requirements or defining quantity-based discount calculations. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DisplayableError.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DisplayableError.java index d58ab42f..d48f4cf7 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DisplayableError.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DisplayableError.java @@ -18,6 +18,7 @@ @JsonSubTypes.Type(value = AbandonmentUpdateActivitiesDeliveryStatusesUserError.class, name = "AbandonmentUpdateActivitiesDeliveryStatusesUserError"), @JsonSubTypes.Type(value = AppRevokeAccessScopesAppRevokeScopeError.class, name = "AppRevokeAccessScopesAppRevokeScopeError"), @JsonSubTypes.Type(value = AppSubscriptionTrialExtendUserError.class, name = "AppSubscriptionTrialExtendUserError"), + @JsonSubTypes.Type(value = AppUninstallAppUninstallError.class, name = "AppUninstallAppUninstallError"), @JsonSubTypes.Type(value = ArticleCreateUserError.class, name = "ArticleCreateUserError"), @JsonSubTypes.Type(value = ArticleDeleteUserError.class, name = "ArticleDeleteUserError"), @JsonSubTypes.Type(value = ArticleUpdateUserError.class, name = "ArticleUpdateUserError"), @@ -37,6 +38,8 @@ @JsonSubTypes.Type(value = CatalogUserError.class, name = "CatalogUserError"), @JsonSubTypes.Type(value = CheckoutBrandingUpsertUserError.class, name = "CheckoutBrandingUpsertUserError"), @JsonSubTypes.Type(value = CollectionAddProductsV2UserError.class, name = "CollectionAddProductsV2UserError"), + @JsonSubTypes.Type(value = CollectionDuplicateUserError.class, name = "CollectionDuplicateUserError"), + @JsonSubTypes.Type(value = CollectionReorderProductsUserError.class, name = "CollectionReorderProductsUserError"), @JsonSubTypes.Type(value = CombinedListingUpdateUserError.class, name = "CombinedListingUpdateUserError"), @JsonSubTypes.Type(value = CommentApproveUserError.class, name = "CommentApproveUserError"), @JsonSubTypes.Type(value = CommentDeleteUserError.class, name = "CommentDeleteUserError"), @@ -76,6 +79,7 @@ @JsonSubTypes.Type(value = FulfillmentOrderReleaseHoldUserError.class, name = "FulfillmentOrderReleaseHoldUserError"), @JsonSubTypes.Type(value = FulfillmentOrderRescheduleUserError.class, name = "FulfillmentOrderRescheduleUserError"), @JsonSubTypes.Type(value = FulfillmentOrderSplitUserError.class, name = "FulfillmentOrderSplitUserError"), + @JsonSubTypes.Type(value = FulfillmentOrdersRerouteUserError.class, name = "FulfillmentOrdersRerouteUserError"), @JsonSubTypes.Type(value = FulfillmentOrdersSetFulfillmentDeadlineUserError.class, name = "FulfillmentOrdersSetFulfillmentDeadlineUserError"), @JsonSubTypes.Type(value = GiftCardDeactivateUserError.class, name = "GiftCardDeactivateUserError"), @JsonSubTypes.Type(value = GiftCardSendNotificationToCustomerUserError.class, name = "GiftCardSendNotificationToCustomerUserError"), @@ -88,6 +92,24 @@ @JsonSubTypes.Type(value = InventorySetOnHandQuantitiesUserError.class, name = "InventorySetOnHandQuantitiesUserError"), @JsonSubTypes.Type(value = InventorySetQuantitiesUserError.class, name = "InventorySetQuantitiesUserError"), @JsonSubTypes.Type(value = InventorySetScheduledChangesUserError.class, name = "InventorySetScheduledChangesUserError"), + @JsonSubTypes.Type(value = InventoryShipmentAddItemsUserError.class, name = "InventoryShipmentAddItemsUserError"), + @JsonSubTypes.Type(value = InventoryShipmentCreateInTransitUserError.class, name = "InventoryShipmentCreateInTransitUserError"), + @JsonSubTypes.Type(value = InventoryShipmentCreateUserError.class, name = "InventoryShipmentCreateUserError"), + @JsonSubTypes.Type(value = InventoryShipmentDeleteUserError.class, name = "InventoryShipmentDeleteUserError"), + @JsonSubTypes.Type(value = InventoryShipmentMarkInTransitUserError.class, name = "InventoryShipmentMarkInTransitUserError"), + @JsonSubTypes.Type(value = InventoryShipmentReceiveUserError.class, name = "InventoryShipmentReceiveUserError"), + @JsonSubTypes.Type(value = InventoryShipmentRemoveItemsUserError.class, name = "InventoryShipmentRemoveItemsUserError"), + @JsonSubTypes.Type(value = InventoryShipmentSetTrackingUserError.class, name = "InventoryShipmentSetTrackingUserError"), + @JsonSubTypes.Type(value = InventoryShipmentUpdateItemQuantitiesUserError.class, name = "InventoryShipmentUpdateItemQuantitiesUserError"), + @JsonSubTypes.Type(value = InventoryTransferCancelUserError.class, name = "InventoryTransferCancelUserError"), + @JsonSubTypes.Type(value = InventoryTransferCreateAsReadyToShipUserError.class, name = "InventoryTransferCreateAsReadyToShipUserError"), + @JsonSubTypes.Type(value = InventoryTransferCreateUserError.class, name = "InventoryTransferCreateUserError"), + @JsonSubTypes.Type(value = InventoryTransferDeleteUserError.class, name = "InventoryTransferDeleteUserError"), + @JsonSubTypes.Type(value = InventoryTransferDuplicateUserError.class, name = "InventoryTransferDuplicateUserError"), + @JsonSubTypes.Type(value = InventoryTransferEditUserError.class, name = "InventoryTransferEditUserError"), + @JsonSubTypes.Type(value = InventoryTransferMarkAsReadyToShipUserError.class, name = "InventoryTransferMarkAsReadyToShipUserError"), + @JsonSubTypes.Type(value = InventoryTransferRemoveItemsUserError.class, name = "InventoryTransferRemoveItemsUserError"), + @JsonSubTypes.Type(value = InventoryTransferSetItemsUserError.class, name = "InventoryTransferSetItemsUserError"), @JsonSubTypes.Type(value = LocationActivateUserError.class, name = "LocationActivateUserError"), @JsonSubTypes.Type(value = LocationAddUserError.class, name = "LocationAddUserError"), @JsonSubTypes.Type(value = LocationDeactivateUserError.class, name = "LocationDeactivateUserError"), @@ -113,6 +135,8 @@ @JsonSubTypes.Type(value = OrderCreateMandatePaymentUserError.class, name = "OrderCreateMandatePaymentUserError"), @JsonSubTypes.Type(value = OrderCreateManualPaymentOrderCreateManualPaymentError.class, name = "OrderCreateManualPaymentOrderCreateManualPaymentError"), @JsonSubTypes.Type(value = OrderCreateUserError.class, name = "OrderCreateUserError"), + @JsonSubTypes.Type(value = OrderCustomerRemoveUserError.class, name = "OrderCustomerRemoveUserError"), + @JsonSubTypes.Type(value = OrderCustomerSetUserError.class, name = "OrderCustomerSetUserError"), @JsonSubTypes.Type(value = OrderDeleteUserError.class, name = "OrderDeleteUserError"), @JsonSubTypes.Type(value = OrderEditAddShippingLineUserError.class, name = "OrderEditAddShippingLineUserError"), @JsonSubTypes.Type(value = OrderEditRemoveDiscountUserError.class, name = "OrderEditRemoveDiscountUserError"), @@ -169,8 +193,10 @@ @JsonSubTypes.Type(value = SubscriptionContractUserError.class, name = "SubscriptionContractUserError"), @JsonSubTypes.Type(value = SubscriptionDraftUserError.class, name = "SubscriptionDraftUserError"), @JsonSubTypes.Type(value = TaxAppConfigureUserError.class, name = "TaxAppConfigureUserError"), + @JsonSubTypes.Type(value = TaxSummaryCreateUserError.class, name = "TaxSummaryCreateUserError"), @JsonSubTypes.Type(value = ThemeCreateUserError.class, name = "ThemeCreateUserError"), @JsonSubTypes.Type(value = ThemeDeleteUserError.class, name = "ThemeDeleteUserError"), + @JsonSubTypes.Type(value = ThemeDuplicateUserError.class, name = "ThemeDuplicateUserError"), @JsonSubTypes.Type(value = ThemePublishUserError.class, name = "ThemePublishUserError"), @JsonSubTypes.Type(value = ThemeUpdateUserError.class, name = "ThemeUpdateUserError"), @JsonSubTypes.Type(value = TransactionVoidUserError.class, name = "TransactionVoidUserError"), diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Distance.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Distance.java new file mode 100644 index 00000000..c829b5b5 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Distance.java @@ -0,0 +1,104 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * A distance, which includes a numeric value and a unit of measurement. + */ +public class Distance { + /** + * The unit of measurement for `value`. + */ + private DistanceUnit unit; + + /** + * The distance value using the unit system specified with `unit`. + */ + private double value; + + public Distance() { + } + + /** + * The unit of measurement for `value`. + */ + public DistanceUnit getUnit() { + return unit; + } + + public void setUnit(DistanceUnit unit) { + this.unit = unit; + } + + /** + * The distance value using the unit system specified with `unit`. + */ + public double getValue() { + return value; + } + + public void setValue(double value) { + this.value = value; + } + + @Override + public String toString() { + return "Distance{unit='" + unit + "', value='" + value + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Distance that = (Distance) o; + return Objects.equals(unit, that.unit) && + value == that.value; + } + + @Override + public int hashCode() { + return Objects.hash(unit, value); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The unit of measurement for `value`. + */ + private DistanceUnit unit; + + /** + * The distance value using the unit system specified with `unit`. + */ + private double value; + + public Distance build() { + Distance result = new Distance(); + result.unit = this.unit; + result.value = this.value; + return result; + } + + /** + * The unit of measurement for `value`. + */ + public Builder unit(DistanceUnit unit) { + this.unit = unit; + return this; + } + + /** + * The distance value using the unit system specified with `unit`. + */ + public Builder value(double value) { + this.value = value; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DistanceUnit.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DistanceUnit.java new file mode 100644 index 00000000..b0c8cbab --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DistanceUnit.java @@ -0,0 +1,10 @@ +package com.shopify.admin.types; + +/** + * Units of measurement for distance. + */ +public enum DistanceUnit { + KILOMETERS, + + MILES +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DraftOrder.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DraftOrder.java index 99f3cbb5..986713eb 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DraftOrder.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DraftOrder.java @@ -20,7 +20,6 @@ * - Re-create orders manually from active sales channels. * - Sell products at discount or wholesale rates. * - Take pre-orders. - * - Save an order as a draft and resume working on it later. * * For draft orders in multiple currencies `presentment_money` is the source of * truth for what a customer is going to be charged and `shop_money` is an estimate @@ -158,7 +157,7 @@ public class DraftOrder implements CommentEventEmbed, MetafieldReferencer, com.s /** * A subtotal of the line items and corresponding discounts, - * excluding include shipping charges, shipping discounts, taxes, or order discounts. + * excluding shipping charges, shipping discounts, taxes, or order discounts. */ private MoneyBag lineItemsSubtotalPrice; @@ -306,7 +305,7 @@ public class DraftOrder implements CommentEventEmbed, MetafieldReferencer, com.s private MoneyBag totalDiscountsSet; /** - * Total price of line items. + * Total price of line items, excluding discounts. */ private MoneyBag totalLineItemsPriceSet; @@ -637,7 +636,7 @@ public void setLineItems(DraftOrderLineItemConnection lineItems) { /** * A subtotal of the line items and corresponding discounts, - * excluding include shipping charges, shipping discounts, taxes, or order discounts. + * excluding shipping charges, shipping discounts, taxes, or order discounts. */ public MoneyBag getLineItemsSubtotalPrice() { return lineItemsSubtotalPrice; @@ -953,7 +952,7 @@ public void setTotalDiscountsSet(MoneyBag totalDiscountsSet) { } /** - * Total price of line items. + * Total price of line items, excluding discounts. */ public MoneyBag getTotalLineItemsPriceSet() { return totalLineItemsPriceSet; @@ -1306,7 +1305,7 @@ public static class Builder { /** * A subtotal of the line items and corresponding discounts, - * excluding include shipping charges, shipping discounts, taxes, or order discounts. + * excluding shipping charges, shipping discounts, taxes, or order discounts. */ private MoneyBag lineItemsSubtotalPrice; @@ -1454,7 +1453,7 @@ public static class Builder { private MoneyBag totalDiscountsSet; /** - * Total price of line items. + * Total price of line items, excluding discounts. */ private MoneyBag totalLineItemsPriceSet; @@ -1782,7 +1781,7 @@ public Builder lineItems(DraftOrderLineItemConnection lineItems) { /** * A subtotal of the line items and corresponding discounts, - * excluding include shipping charges, shipping discounts, taxes, or order discounts. + * excluding shipping charges, shipping discounts, taxes, or order discounts. */ public Builder lineItemsSubtotalPrice(MoneyBag lineItemsSubtotalPrice) { this.lineItemsSubtotalPrice = lineItemsSubtotalPrice; @@ -2014,7 +2013,7 @@ public Builder totalDiscountsSet(MoneyBag totalDiscountsSet) { } /** - * Total price of line items. + * Total price of line items, excluding discounts. */ public Builder totalLineItemsPriceSet(MoneyBag totalLineItemsPriceSet) { this.totalLineItemsPriceSet = totalLineItemsPriceSet; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DraftOrderAvailableDeliveryOptions.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DraftOrderAvailableDeliveryOptions.java new file mode 100644 index 00000000..2a30cd8a --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DraftOrderAvailableDeliveryOptions.java @@ -0,0 +1,179 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * The available delivery options for a draft order. + */ +public class DraftOrderAvailableDeliveryOptions { + /** + * The available local delivery rates for the draft order. Requires a customer + * with a valid shipping address and at least one line item. + */ + private List availableLocalDeliveryRates; + + /** + * The available local pickup options for the draft order. Requires at least one line item. + */ + private List availableLocalPickupOptions; + + /** + * The available shipping rates for the draft order. Requires a customer with a + * valid shipping address and at least one line item. + */ + private List availableShippingRates; + + /** + * Returns information about pagination of local pickup options. + */ + private PageInfo pageInfo; + + public DraftOrderAvailableDeliveryOptions() { + } + + /** + * The available local delivery rates for the draft order. Requires a customer + * with a valid shipping address and at least one line item. + */ + public List getAvailableLocalDeliveryRates() { + return availableLocalDeliveryRates; + } + + public void setAvailableLocalDeliveryRates( + List availableLocalDeliveryRates) { + this.availableLocalDeliveryRates = availableLocalDeliveryRates; + } + + /** + * The available local pickup options for the draft order. Requires at least one line item. + */ + public List getAvailableLocalPickupOptions() { + return availableLocalPickupOptions; + } + + public void setAvailableLocalPickupOptions( + List availableLocalPickupOptions) { + this.availableLocalPickupOptions = availableLocalPickupOptions; + } + + /** + * The available shipping rates for the draft order. Requires a customer with a + * valid shipping address and at least one line item. + */ + public List getAvailableShippingRates() { + return availableShippingRates; + } + + public void setAvailableShippingRates(List availableShippingRates) { + this.availableShippingRates = availableShippingRates; + } + + /** + * Returns information about pagination of local pickup options. + */ + public PageInfo getPageInfo() { + return pageInfo; + } + + public void setPageInfo(PageInfo pageInfo) { + this.pageInfo = pageInfo; + } + + @Override + public String toString() { + return "DraftOrderAvailableDeliveryOptions{availableLocalDeliveryRates='" + availableLocalDeliveryRates + "', availableLocalPickupOptions='" + availableLocalPickupOptions + "', availableShippingRates='" + availableShippingRates + "', pageInfo='" + pageInfo + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + DraftOrderAvailableDeliveryOptions that = (DraftOrderAvailableDeliveryOptions) o; + return Objects.equals(availableLocalDeliveryRates, that.availableLocalDeliveryRates) && + Objects.equals(availableLocalPickupOptions, that.availableLocalPickupOptions) && + Objects.equals(availableShippingRates, that.availableShippingRates) && + Objects.equals(pageInfo, that.pageInfo); + } + + @Override + public int hashCode() { + return Objects.hash(availableLocalDeliveryRates, availableLocalPickupOptions, availableShippingRates, pageInfo); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The available local delivery rates for the draft order. Requires a customer + * with a valid shipping address and at least one line item. + */ + private List availableLocalDeliveryRates; + + /** + * The available local pickup options for the draft order. Requires at least one line item. + */ + private List availableLocalPickupOptions; + + /** + * The available shipping rates for the draft order. Requires a customer with a + * valid shipping address and at least one line item. + */ + private List availableShippingRates; + + /** + * Returns information about pagination of local pickup options. + */ + private PageInfo pageInfo; + + public DraftOrderAvailableDeliveryOptions build() { + DraftOrderAvailableDeliveryOptions result = new DraftOrderAvailableDeliveryOptions(); + result.availableLocalDeliveryRates = this.availableLocalDeliveryRates; + result.availableLocalPickupOptions = this.availableLocalPickupOptions; + result.availableShippingRates = this.availableShippingRates; + result.pageInfo = this.pageInfo; + return result; + } + + /** + * The available local delivery rates for the draft order. Requires a customer + * with a valid shipping address and at least one line item. + */ + public Builder availableLocalDeliveryRates( + List availableLocalDeliveryRates) { + this.availableLocalDeliveryRates = availableLocalDeliveryRates; + return this; + } + + /** + * The available local pickup options for the draft order. Requires at least one line item. + */ + public Builder availableLocalPickupOptions( + List availableLocalPickupOptions) { + this.availableLocalPickupOptions = availableLocalPickupOptions; + return this; + } + + /** + * The available shipping rates for the draft order. Requires a customer with a + * valid shipping address and at least one line item. + */ + public Builder availableShippingRates(List availableShippingRates) { + this.availableShippingRates = availableShippingRates; + return this; + } + + /** + * Returns information about pagination of local pickup options. + */ + public Builder pageInfo(PageInfo pageInfo) { + this.pageInfo = pageInfo; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DraftOrderAvailableDeliveryOptionsInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DraftOrderAvailableDeliveryOptionsInput.java new file mode 100644 index 00000000..410f943e --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DraftOrderAvailableDeliveryOptionsInput.java @@ -0,0 +1,281 @@ +package com.shopify.admin.types; + +import java.lang.Boolean; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * The input fields used to determine available delivery options for a draft order. + */ +public class DraftOrderAvailableDeliveryOptionsInput { + /** + * The discount that will be applied to the draft order. + * A draft order line item can have one discount. A draft order can also have one order-level discount. + */ + private DraftOrderAppliedDiscountInput appliedDiscount; + + /** + * Discount codes that will be attempted to be applied to the draft order. If the + * draft isn't eligible for any given discount code it will be skipped during calculation. + */ + private List discountCodes; + + /** + * Whether or not to accept automatic discounts on the draft order during calculation. + * If false, only discount codes and custom draft order discounts (see `appliedDiscount`) will be applied. + * If true, eligible automatic discounts will be applied in addition to discount codes and custom draft order discounts. + */ + private Boolean acceptAutomaticDiscounts; + + /** + * Product variant line item or custom line item associated to the draft order. + * Each draft order must include at least one line item. + */ + private List lineItems; + + /** + * The mailing address to where the order will be shipped. + */ + private MailingAddressInput shippingAddress; + + /** + * The selected country code that determines the pricing of the draft order. + */ + private CountryCode marketRegionCountryCode; + + /** + * The purchasing entity for the draft order. + */ + private PurchasingEntityInput purchasingEntity; + + public DraftOrderAvailableDeliveryOptionsInput() { + } + + /** + * The discount that will be applied to the draft order. + * A draft order line item can have one discount. A draft order can also have one order-level discount. + */ + public DraftOrderAppliedDiscountInput getAppliedDiscount() { + return appliedDiscount; + } + + public void setAppliedDiscount(DraftOrderAppliedDiscountInput appliedDiscount) { + this.appliedDiscount = appliedDiscount; + } + + /** + * Discount codes that will be attempted to be applied to the draft order. If the + * draft isn't eligible for any given discount code it will be skipped during calculation. + */ + public List getDiscountCodes() { + return discountCodes; + } + + public void setDiscountCodes(List discountCodes) { + this.discountCodes = discountCodes; + } + + /** + * Whether or not to accept automatic discounts on the draft order during calculation. + * If false, only discount codes and custom draft order discounts (see `appliedDiscount`) will be applied. + * If true, eligible automatic discounts will be applied in addition to discount codes and custom draft order discounts. + */ + public Boolean getAcceptAutomaticDiscounts() { + return acceptAutomaticDiscounts; + } + + public void setAcceptAutomaticDiscounts(Boolean acceptAutomaticDiscounts) { + this.acceptAutomaticDiscounts = acceptAutomaticDiscounts; + } + + /** + * Product variant line item or custom line item associated to the draft order. + * Each draft order must include at least one line item. + */ + public List getLineItems() { + return lineItems; + } + + public void setLineItems(List lineItems) { + this.lineItems = lineItems; + } + + /** + * The mailing address to where the order will be shipped. + */ + public MailingAddressInput getShippingAddress() { + return shippingAddress; + } + + public void setShippingAddress(MailingAddressInput shippingAddress) { + this.shippingAddress = shippingAddress; + } + + /** + * The selected country code that determines the pricing of the draft order. + */ + public CountryCode getMarketRegionCountryCode() { + return marketRegionCountryCode; + } + + public void setMarketRegionCountryCode(CountryCode marketRegionCountryCode) { + this.marketRegionCountryCode = marketRegionCountryCode; + } + + /** + * The purchasing entity for the draft order. + */ + public PurchasingEntityInput getPurchasingEntity() { + return purchasingEntity; + } + + public void setPurchasingEntity(PurchasingEntityInput purchasingEntity) { + this.purchasingEntity = purchasingEntity; + } + + @Override + public String toString() { + return "DraftOrderAvailableDeliveryOptionsInput{appliedDiscount='" + appliedDiscount + "', discountCodes='" + discountCodes + "', acceptAutomaticDiscounts='" + acceptAutomaticDiscounts + "', lineItems='" + lineItems + "', shippingAddress='" + shippingAddress + "', marketRegionCountryCode='" + marketRegionCountryCode + "', purchasingEntity='" + purchasingEntity + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + DraftOrderAvailableDeliveryOptionsInput that = (DraftOrderAvailableDeliveryOptionsInput) o; + return Objects.equals(appliedDiscount, that.appliedDiscount) && + Objects.equals(discountCodes, that.discountCodes) && + Objects.equals(acceptAutomaticDiscounts, that.acceptAutomaticDiscounts) && + Objects.equals(lineItems, that.lineItems) && + Objects.equals(shippingAddress, that.shippingAddress) && + Objects.equals(marketRegionCountryCode, that.marketRegionCountryCode) && + Objects.equals(purchasingEntity, that.purchasingEntity); + } + + @Override + public int hashCode() { + return Objects.hash(appliedDiscount, discountCodes, acceptAutomaticDiscounts, lineItems, shippingAddress, marketRegionCountryCode, purchasingEntity); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The discount that will be applied to the draft order. + * A draft order line item can have one discount. A draft order can also have one order-level discount. + */ + private DraftOrderAppliedDiscountInput appliedDiscount; + + /** + * Discount codes that will be attempted to be applied to the draft order. If the + * draft isn't eligible for any given discount code it will be skipped during calculation. + */ + private List discountCodes; + + /** + * Whether or not to accept automatic discounts on the draft order during calculation. + * If false, only discount codes and custom draft order discounts (see `appliedDiscount`) will be applied. + * If true, eligible automatic discounts will be applied in addition to discount codes and custom draft order discounts. + */ + private Boolean acceptAutomaticDiscounts; + + /** + * Product variant line item or custom line item associated to the draft order. + * Each draft order must include at least one line item. + */ + private List lineItems; + + /** + * The mailing address to where the order will be shipped. + */ + private MailingAddressInput shippingAddress; + + /** + * The selected country code that determines the pricing of the draft order. + */ + private CountryCode marketRegionCountryCode; + + /** + * The purchasing entity for the draft order. + */ + private PurchasingEntityInput purchasingEntity; + + public DraftOrderAvailableDeliveryOptionsInput build() { + DraftOrderAvailableDeliveryOptionsInput result = new DraftOrderAvailableDeliveryOptionsInput(); + result.appliedDiscount = this.appliedDiscount; + result.discountCodes = this.discountCodes; + result.acceptAutomaticDiscounts = this.acceptAutomaticDiscounts; + result.lineItems = this.lineItems; + result.shippingAddress = this.shippingAddress; + result.marketRegionCountryCode = this.marketRegionCountryCode; + result.purchasingEntity = this.purchasingEntity; + return result; + } + + /** + * The discount that will be applied to the draft order. + * A draft order line item can have one discount. A draft order can also have one order-level discount. + */ + public Builder appliedDiscount(DraftOrderAppliedDiscountInput appliedDiscount) { + this.appliedDiscount = appliedDiscount; + return this; + } + + /** + * Discount codes that will be attempted to be applied to the draft order. If the + * draft isn't eligible for any given discount code it will be skipped during calculation. + */ + public Builder discountCodes(List discountCodes) { + this.discountCodes = discountCodes; + return this; + } + + /** + * Whether or not to accept automatic discounts on the draft order during calculation. + * If false, only discount codes and custom draft order discounts (see `appliedDiscount`) will be applied. + * If true, eligible automatic discounts will be applied in addition to discount codes and custom draft order discounts. + */ + public Builder acceptAutomaticDiscounts(Boolean acceptAutomaticDiscounts) { + this.acceptAutomaticDiscounts = acceptAutomaticDiscounts; + return this; + } + + /** + * Product variant line item or custom line item associated to the draft order. + * Each draft order must include at least one line item. + */ + public Builder lineItems(List lineItems) { + this.lineItems = lineItems; + return this; + } + + /** + * The mailing address to where the order will be shipped. + */ + public Builder shippingAddress(MailingAddressInput shippingAddress) { + this.shippingAddress = shippingAddress; + return this; + } + + /** + * The selected country code that determines the pricing of the draft order. + */ + public Builder marketRegionCountryCode(CountryCode marketRegionCountryCode) { + this.marketRegionCountryCode = marketRegionCountryCode; + return this; + } + + /** + * The purchasing entity for the draft order. + */ + public Builder purchasingEntity(PurchasingEntityInput purchasingEntity) { + this.purchasingEntity = purchasingEntity; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DraftOrderCreateMerchantCheckoutPayload.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DraftOrderCreateMerchantCheckoutPayload.java deleted file mode 100644 index 2a71dd41..00000000 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DraftOrderCreateMerchantCheckoutPayload.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.shopify.admin.types; - -import java.lang.Object; -import java.lang.Override; -import java.lang.String; -import java.util.List; -import java.util.Objects; - -/** - * Return type for `draftOrderCreateMerchantCheckout` mutation. - */ -public class DraftOrderCreateMerchantCheckoutPayload { - /** - * The list of errors that occurred from executing the mutation. - */ - private List userErrors; - - public DraftOrderCreateMerchantCheckoutPayload() { - } - - /** - * The list of errors that occurred from executing the mutation. - */ - public List getUserErrors() { - return userErrors; - } - - public void setUserErrors(List userErrors) { - this.userErrors = userErrors; - } - - @Override - public String toString() { - return "DraftOrderCreateMerchantCheckoutPayload{userErrors='" + userErrors + "'}"; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - DraftOrderCreateMerchantCheckoutPayload that = (DraftOrderCreateMerchantCheckoutPayload) o; - return Objects.equals(userErrors, that.userErrors); - } - - @Override - public int hashCode() { - return Objects.hash(userErrors); - } - - public static Builder newBuilder() { - return new Builder(); - } - - public static class Builder { - /** - * The list of errors that occurred from executing the mutation. - */ - private List userErrors; - - public DraftOrderCreateMerchantCheckoutPayload build() { - DraftOrderCreateMerchantCheckoutPayload result = new DraftOrderCreateMerchantCheckoutPayload(); - result.userErrors = this.userErrors; - return result; - } - - /** - * The list of errors that occurred from executing the mutation. - */ - public Builder userErrors(List userErrors) { - this.userErrors = userErrors; - return this; - } - } -} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DraftOrderInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DraftOrderInput.java index fb9671c2..4feb4854 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DraftOrderInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DraftOrderInput.java @@ -49,6 +49,7 @@ public class DraftOrderInput { /** * The list of product variant or custom line item. * Each draft order must include at least one line item. + * Accepts a maximum of 499 line items. * * NOTE: Draft orders don't currently support subscriptions. */ @@ -234,6 +235,7 @@ public void setEmail(String email) { /** * The list of product variant or custom line item. * Each draft order must include at least one line item. + * Accepts a maximum of 499 line items. * * NOTE: Draft orders don't currently support subscriptions. */ @@ -548,6 +550,7 @@ public static class Builder { /** * The list of product variant or custom line item. * Each draft order must include at least one line item. + * Accepts a maximum of 499 line items. * * NOTE: Draft orders don't currently support subscriptions. */ @@ -743,6 +746,7 @@ public Builder email(String email) { /** * The list of product variant or custom line item. * Each draft order must include at least one line item. + * Accepts a maximum of 499 line items. * * NOTE: Draft orders don't currently support subscriptions. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DraftOrderLineItem.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DraftOrderLineItem.java index 4882f584..2bbd3af4 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DraftOrderLineItem.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DraftOrderLineItem.java @@ -9,7 +9,12 @@ import java.util.Objects; /** - * The line item for a draft order. + * A line item in a draft order. Line items are either [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) + * objects or custom items created manually with specific pricing and attributes. + * + * Each line item includes [quantity](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrderLineItem#field-DraftOrderLineItem.fields.quantity), [pricing](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrderLineItem#field-DraftOrderLineItem.fields.originalUnitPrice), [discounts](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrderLineItem#field-DraftOrderLineItem.fields.discountedTotal), [tax information](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrderLineItem#field-DraftOrderLineItem.fields.taxLines), and [custom attributes](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrderLineItem#field-DraftOrderLineItem.fields.customAttributes). + * For [bundle products](https://shopify.dev/docs/apps/build/products/bundles), the + * line item includes components that define the individual products within the bundle. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DraftOrderMarketRegionCountryCodeNotSupportedWarning.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DraftOrderMarketRegionCountryCodeNotSupportedWarning.java new file mode 100644 index 00000000..85a51de5 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DraftOrderMarketRegionCountryCodeNotSupportedWarning.java @@ -0,0 +1,139 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * A warning indicating that the market region country code is not supported with Markets. + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NONE +) +public class DraftOrderMarketRegionCountryCodeNotSupportedWarning implements com.shopify.admin.types.DraftOrderWarning { + /** + * The error code. + */ + private String errorCode; + + /** + * The input field that the warning applies to. + */ + private String field; + + /** + * The warning message. + */ + private String message; + + public DraftOrderMarketRegionCountryCodeNotSupportedWarning() { + } + + /** + * The error code. + */ + public String getErrorCode() { + return errorCode; + } + + public void setErrorCode(String errorCode) { + this.errorCode = errorCode; + } + + /** + * The input field that the warning applies to. + */ + public String getField() { + return field; + } + + public void setField(String field) { + this.field = field; + } + + /** + * The warning message. + */ + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + @Override + public String toString() { + return "DraftOrderMarketRegionCountryCodeNotSupportedWarning{errorCode='" + errorCode + "', field='" + field + "', message='" + message + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + DraftOrderMarketRegionCountryCodeNotSupportedWarning that = (DraftOrderMarketRegionCountryCodeNotSupportedWarning) o; + return Objects.equals(errorCode, that.errorCode) && + Objects.equals(field, that.field) && + Objects.equals(message, that.message); + } + + @Override + public int hashCode() { + return Objects.hash(errorCode, field, message); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The error code. + */ + private String errorCode; + + /** + * The input field that the warning applies to. + */ + private String field; + + /** + * The warning message. + */ + private String message; + + public DraftOrderMarketRegionCountryCodeNotSupportedWarning build() { + DraftOrderMarketRegionCountryCodeNotSupportedWarning result = new DraftOrderMarketRegionCountryCodeNotSupportedWarning(); + result.errorCode = this.errorCode; + result.field = this.field; + result.message = this.message; + return result; + } + + /** + * The error code. + */ + public Builder errorCode(String errorCode) { + this.errorCode = errorCode; + return this; + } + + /** + * The input field that the warning applies to. + */ + public Builder field(String field) { + this.field = field; + return this; + } + + /** + * The warning message. + */ + public Builder message(String message) { + this.message = message; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DraftOrderPlatformDiscount.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DraftOrderPlatformDiscount.java index 6f743bfc..13fa195e 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DraftOrderPlatformDiscount.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DraftOrderPlatformDiscount.java @@ -35,6 +35,11 @@ public class DraftOrderPlatformDiscount { */ private DiscountClass discountClass; + /** + * The discount classes. + */ + private List discountClasses; + /** * The discount node for the platform discount. */ @@ -133,6 +138,17 @@ public void setDiscountClass(DiscountClass discountClass) { this.discountClass = discountClass; } + /** + * The discount classes. + */ + public List getDiscountClasses() { + return discountClasses; + } + + public void setDiscountClasses(List discountClasses) { + this.discountClasses = discountClasses; + } + /** * The discount node for the platform discount. */ @@ -223,7 +239,7 @@ public void setTotalAmountPriceSet(MoneyBag totalAmountPriceSet) { @Override public String toString() { - return "DraftOrderPlatformDiscount{allocations='" + allocations + "', automaticDiscount='" + automaticDiscount + "', bxgyDiscount='" + bxgyDiscount + "', code='" + code + "', discountClass='" + discountClass + "', discountNode='" + discountNode + "', id='" + id + "', presentationLevel='" + presentationLevel + "', shortSummary='" + shortSummary + "', summary='" + summary + "', title='" + title + "', totalAmount='" + totalAmount + "', totalAmountPriceSet='" + totalAmountPriceSet + "'}"; + return "DraftOrderPlatformDiscount{allocations='" + allocations + "', automaticDiscount='" + automaticDiscount + "', bxgyDiscount='" + bxgyDiscount + "', code='" + code + "', discountClass='" + discountClass + "', discountClasses='" + discountClasses + "', discountNode='" + discountNode + "', id='" + id + "', presentationLevel='" + presentationLevel + "', shortSummary='" + shortSummary + "', summary='" + summary + "', title='" + title + "', totalAmount='" + totalAmount + "', totalAmountPriceSet='" + totalAmountPriceSet + "'}"; } @Override @@ -236,6 +252,7 @@ public boolean equals(Object o) { bxgyDiscount == that.bxgyDiscount && Objects.equals(code, that.code) && Objects.equals(discountClass, that.discountClass) && + Objects.equals(discountClasses, that.discountClasses) && Objects.equals(discountNode, that.discountNode) && Objects.equals(id, that.id) && Objects.equals(presentationLevel, that.presentationLevel) && @@ -248,7 +265,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(allocations, automaticDiscount, bxgyDiscount, code, discountClass, discountNode, id, presentationLevel, shortSummary, summary, title, totalAmount, totalAmountPriceSet); + return Objects.hash(allocations, automaticDiscount, bxgyDiscount, code, discountClass, discountClasses, discountNode, id, presentationLevel, shortSummary, summary, title, totalAmount, totalAmountPriceSet); } public static Builder newBuilder() { @@ -281,6 +298,11 @@ public static class Builder { */ private DiscountClass discountClass; + /** + * The discount classes. + */ + private List discountClasses; + /** * The discount node for the platform discount. */ @@ -328,6 +350,7 @@ public DraftOrderPlatformDiscount build() { result.bxgyDiscount = this.bxgyDiscount; result.code = this.code; result.discountClass = this.discountClass; + result.discountClasses = this.discountClasses; result.discountNode = this.discountNode; result.id = this.id; result.presentationLevel = this.presentationLevel; @@ -379,6 +402,14 @@ public Builder discountClass(DiscountClass discountClass) { return this; } + /** + * The discount classes. + */ + public Builder discountClasses(List discountClasses) { + this.discountClasses = discountClasses; + return this; + } + /** * The discount node for the platform discount. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DraftOrderShippingRate.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DraftOrderShippingRate.java new file mode 100644 index 00000000..4a5da364 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DraftOrderShippingRate.java @@ -0,0 +1,197 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * A shipping rate is an additional cost added to the cost of the products that were ordered. + */ +public class DraftOrderShippingRate { + /** + * The code of the shipping rate. + */ + private String code; + + /** + * Unique identifier for this shipping rate. + */ + private String handle; + + /** + * The cost associated with the shipping rate. + */ + private MoneyV2 price; + + /** + * The source of the shipping rate. + */ + private String source; + + /** + * The name of the shipping rate. + */ + private String title; + + public DraftOrderShippingRate() { + } + + /** + * The code of the shipping rate. + */ + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + /** + * Unique identifier for this shipping rate. + */ + public String getHandle() { + return handle; + } + + public void setHandle(String handle) { + this.handle = handle; + } + + /** + * The cost associated with the shipping rate. + */ + public MoneyV2 getPrice() { + return price; + } + + public void setPrice(MoneyV2 price) { + this.price = price; + } + + /** + * The source of the shipping rate. + */ + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + /** + * The name of the shipping rate. + */ + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + @Override + public String toString() { + return "DraftOrderShippingRate{code='" + code + "', handle='" + handle + "', price='" + price + "', source='" + source + "', title='" + title + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + DraftOrderShippingRate that = (DraftOrderShippingRate) o; + return Objects.equals(code, that.code) && + Objects.equals(handle, that.handle) && + Objects.equals(price, that.price) && + Objects.equals(source, that.source) && + Objects.equals(title, that.title); + } + + @Override + public int hashCode() { + return Objects.hash(code, handle, price, source, title); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The code of the shipping rate. + */ + private String code; + + /** + * Unique identifier for this shipping rate. + */ + private String handle; + + /** + * The cost associated with the shipping rate. + */ + private MoneyV2 price; + + /** + * The source of the shipping rate. + */ + private String source; + + /** + * The name of the shipping rate. + */ + private String title; + + public DraftOrderShippingRate build() { + DraftOrderShippingRate result = new DraftOrderShippingRate(); + result.code = this.code; + result.handle = this.handle; + result.price = this.price; + result.source = this.source; + result.title = this.title; + return result; + } + + /** + * The code of the shipping rate. + */ + public Builder code(String code) { + this.code = code; + return this; + } + + /** + * Unique identifier for this shipping rate. + */ + public Builder handle(String handle) { + this.handle = handle; + return this; + } + + /** + * The cost associated with the shipping rate. + */ + public Builder price(MoneyV2 price) { + this.price = price; + return this; + } + + /** + * The source of the shipping rate. + */ + public Builder source(String source) { + this.source = source; + return this; + } + + /** + * The name of the shipping rate. + */ + public Builder title(String title) { + this.title = title; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DraftOrderWarning.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DraftOrderWarning.java index 3608aba7..63fa2bfb 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DraftOrderWarning.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/DraftOrderWarning.java @@ -14,7 +14,8 @@ ) @JsonSubTypes({ @JsonSubTypes.Type(value = DraftOrderBundleAddedWarning.class, name = "DraftOrderBundleAddedWarning"), - @JsonSubTypes.Type(value = DraftOrderDiscountNotAppliedWarning.class, name = "DraftOrderDiscountNotAppliedWarning") + @JsonSubTypes.Type(value = DraftOrderDiscountNotAppliedWarning.class, name = "DraftOrderDiscountNotAppliedWarning"), + @JsonSubTypes.Type(value = DraftOrderMarketRegionCountryCodeNotSupportedWarning.class, name = "DraftOrderMarketRegionCountryCodeNotSupportedWarning") }) public interface DraftOrderWarning { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/EventBridgeWebhookSubscriptionInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/EventBridgeWebhookSubscriptionInput.java index 7164c77b..5cb92b08 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/EventBridgeWebhookSubscriptionInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/EventBridgeWebhookSubscriptionInput.java @@ -10,18 +10,15 @@ * The input fields for an EventBridge webhook subscription. */ public class EventBridgeWebhookSubscriptionInput { - /** - * The ARN of the EventBridge partner event source. - */ - private String arn; - /** * The format in which the webhook subscription should send the data. */ private WebhookSubscriptionFormat format; /** - * The list of fields to be included in the webhook subscription. + * The list of fields to be included in the webhook subscription. Only the fields + * specified will be included in the webhook payload. If null, then all fields + * will be included. Learn more about [modifying webhook payloads](https://shopify.dev/docs/apps/build/webhooks/customize/modify_payloads). */ private List includeFields; @@ -42,18 +39,12 @@ public class EventBridgeWebhookSubscriptionInput { */ private List metafields; - public EventBridgeWebhookSubscriptionInput() { - } - /** * The ARN of the EventBridge partner event source. */ - public String getArn() { - return arn; - } + private String arn; - public void setArn(String arn) { - this.arn = arn; + public EventBridgeWebhookSubscriptionInput() { } /** @@ -68,7 +59,9 @@ public void setFormat(WebhookSubscriptionFormat format) { } /** - * The list of fields to be included in the webhook subscription. + * The list of fields to be included in the webhook subscription. Only the fields + * specified will be included in the webhook payload. If null, then all fields + * will be included. Learn more about [modifying webhook payloads](https://shopify.dev/docs/apps/build/webhooks/customize/modify_payloads). */ public List getIncludeFields() { return includeFields; @@ -113,9 +106,20 @@ public void setMetafields(List metafields this.metafields = metafields; } + /** + * The ARN of the EventBridge partner event source. + */ + public String getArn() { + return arn; + } + + public void setArn(String arn) { + this.arn = arn; + } + @Override public String toString() { - return "EventBridgeWebhookSubscriptionInput{arn='" + arn + "', format='" + format + "', includeFields='" + includeFields + "', filter='" + filter + "', metafieldNamespaces='" + metafieldNamespaces + "', metafields='" + metafields + "'}"; + return "EventBridgeWebhookSubscriptionInput{format='" + format + "', includeFields='" + includeFields + "', filter='" + filter + "', metafieldNamespaces='" + metafieldNamespaces + "', metafields='" + metafields + "', arn='" + arn + "'}"; } @Override @@ -123,17 +127,17 @@ public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; EventBridgeWebhookSubscriptionInput that = (EventBridgeWebhookSubscriptionInput) o; - return Objects.equals(arn, that.arn) && - Objects.equals(format, that.format) && + return Objects.equals(format, that.format) && Objects.equals(includeFields, that.includeFields) && Objects.equals(filter, that.filter) && Objects.equals(metafieldNamespaces, that.metafieldNamespaces) && - Objects.equals(metafields, that.metafields); + Objects.equals(metafields, that.metafields) && + Objects.equals(arn, that.arn); } @Override public int hashCode() { - return Objects.hash(arn, format, includeFields, filter, metafieldNamespaces, metafields); + return Objects.hash(format, includeFields, filter, metafieldNamespaces, metafields, arn); } public static Builder newBuilder() { @@ -141,18 +145,15 @@ public static Builder newBuilder() { } public static class Builder { - /** - * The ARN of the EventBridge partner event source. - */ - private String arn; - /** * The format in which the webhook subscription should send the data. */ private WebhookSubscriptionFormat format; /** - * The list of fields to be included in the webhook subscription. + * The list of fields to be included in the webhook subscription. Only the fields + * specified will be included in the webhook payload. If null, then all fields + * will be included. Learn more about [modifying webhook payloads](https://shopify.dev/docs/apps/build/webhooks/customize/modify_payloads). */ private List includeFields; @@ -173,25 +174,22 @@ public static class Builder { */ private List metafields; + /** + * The ARN of the EventBridge partner event source. + */ + private String arn; + public EventBridgeWebhookSubscriptionInput build() { EventBridgeWebhookSubscriptionInput result = new EventBridgeWebhookSubscriptionInput(); - result.arn = this.arn; result.format = this.format; result.includeFields = this.includeFields; result.filter = this.filter; result.metafieldNamespaces = this.metafieldNamespaces; result.metafields = this.metafields; + result.arn = this.arn; return result; } - /** - * The ARN of the EventBridge partner event source. - */ - public Builder arn(String arn) { - this.arn = arn; - return this; - } - /** * The format in which the webhook subscription should send the data. */ @@ -201,7 +199,9 @@ public Builder format(WebhookSubscriptionFormat format) { } /** - * The list of fields to be included in the webhook subscription. + * The list of fields to be included in the webhook subscription. Only the fields + * specified will be included in the webhook payload. If null, then all fields + * will be included. Learn more about [modifying webhook payloads](https://shopify.dev/docs/apps/build/webhooks/customize/modify_payloads). */ public Builder includeFields(List includeFields) { this.includeFields = includeFields; @@ -233,5 +233,13 @@ public Builder metafields(List metafields this.metafields = metafields; return this; } + + /** + * The ARN of the EventBridge partner event source. + */ + public Builder arn(String arn) { + this.arn = arn; + return this; + } } } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/EventSubjectType.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/EventSubjectType.java index 5d4e8953..9e6867c7 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/EventSubjectType.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/EventSubjectType.java @@ -12,6 +12,8 @@ public enum EventSubjectType { DRAFT_ORDER, + INVENTORY_TRANSFER, + COLLECTION, PRODUCT, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ExchangeLineItem.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ExchangeLineItem.java index 39f4cddf..bc9facdd 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ExchangeLineItem.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ExchangeLineItem.java @@ -4,6 +4,7 @@ import java.lang.Object; import java.lang.Override; import java.lang.String; +import java.util.List; import java.util.Objects; /** @@ -19,10 +20,42 @@ public class ExchangeLineItem implements com.shopify.admin.types.Node { private String id; /** - * The order line item for the exchange. + * The order line item for the exchange. If the exchange line has been processed + * multiple times, this will be the first associated line item and won't reflect + * all processed values. */ private LineItem lineItem; + /** + * The order line items for the exchange. + */ + private List lineItems; + + /** + * The quantity of the exchange item that can be processed. + */ + private int processableQuantity; + + /** + * The quantity of the exchange item that have been processed. + */ + private int processedQuantity; + + /** + * The number of units ordered, including refunded and removed units. + */ + private int quantity; + + /** + * The quantity of the exchange item that haven't been processed. + */ + private int unprocessedQuantity; + + /** + * The ID of the variant at time of return creation. + */ + private String variantId; + public ExchangeLineItem() { } @@ -38,7 +71,9 @@ public void setId(String id) { } /** - * The order line item for the exchange. + * The order line item for the exchange. If the exchange line has been processed + * multiple times, this will be the first associated line item and won't reflect + * all processed values. */ public LineItem getLineItem() { return lineItem; @@ -48,9 +83,75 @@ public void setLineItem(LineItem lineItem) { this.lineItem = lineItem; } + /** + * The order line items for the exchange. + */ + public List getLineItems() { + return lineItems; + } + + public void setLineItems(List lineItems) { + this.lineItems = lineItems; + } + + /** + * The quantity of the exchange item that can be processed. + */ + public int getProcessableQuantity() { + return processableQuantity; + } + + public void setProcessableQuantity(int processableQuantity) { + this.processableQuantity = processableQuantity; + } + + /** + * The quantity of the exchange item that have been processed. + */ + public int getProcessedQuantity() { + return processedQuantity; + } + + public void setProcessedQuantity(int processedQuantity) { + this.processedQuantity = processedQuantity; + } + + /** + * The number of units ordered, including refunded and removed units. + */ + public int getQuantity() { + return quantity; + } + + public void setQuantity(int quantity) { + this.quantity = quantity; + } + + /** + * The quantity of the exchange item that haven't been processed. + */ + public int getUnprocessedQuantity() { + return unprocessedQuantity; + } + + public void setUnprocessedQuantity(int unprocessedQuantity) { + this.unprocessedQuantity = unprocessedQuantity; + } + + /** + * The ID of the variant at time of return creation. + */ + public String getVariantId() { + return variantId; + } + + public void setVariantId(String variantId) { + this.variantId = variantId; + } + @Override public String toString() { - return "ExchangeLineItem{id='" + id + "', lineItem='" + lineItem + "'}"; + return "ExchangeLineItem{id='" + id + "', lineItem='" + lineItem + "', lineItems='" + lineItems + "', processableQuantity='" + processableQuantity + "', processedQuantity='" + processedQuantity + "', quantity='" + quantity + "', unprocessedQuantity='" + unprocessedQuantity + "', variantId='" + variantId + "'}"; } @Override @@ -59,12 +160,18 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) return false; ExchangeLineItem that = (ExchangeLineItem) o; return Objects.equals(id, that.id) && - Objects.equals(lineItem, that.lineItem); + Objects.equals(lineItem, that.lineItem) && + Objects.equals(lineItems, that.lineItems) && + processableQuantity == that.processableQuantity && + processedQuantity == that.processedQuantity && + quantity == that.quantity && + unprocessedQuantity == that.unprocessedQuantity && + Objects.equals(variantId, that.variantId); } @Override public int hashCode() { - return Objects.hash(id, lineItem); + return Objects.hash(id, lineItem, lineItems, processableQuantity, processedQuantity, quantity, unprocessedQuantity, variantId); } public static Builder newBuilder() { @@ -78,14 +185,52 @@ public static class Builder { private String id; /** - * The order line item for the exchange. + * The order line item for the exchange. If the exchange line has been processed + * multiple times, this will be the first associated line item and won't reflect + * all processed values. */ private LineItem lineItem; + /** + * The order line items for the exchange. + */ + private List lineItems; + + /** + * The quantity of the exchange item that can be processed. + */ + private int processableQuantity; + + /** + * The quantity of the exchange item that have been processed. + */ + private int processedQuantity; + + /** + * The number of units ordered, including refunded and removed units. + */ + private int quantity; + + /** + * The quantity of the exchange item that haven't been processed. + */ + private int unprocessedQuantity; + + /** + * The ID of the variant at time of return creation. + */ + private String variantId; + public ExchangeLineItem build() { ExchangeLineItem result = new ExchangeLineItem(); result.id = this.id; result.lineItem = this.lineItem; + result.lineItems = this.lineItems; + result.processableQuantity = this.processableQuantity; + result.processedQuantity = this.processedQuantity; + result.quantity = this.quantity; + result.unprocessedQuantity = this.unprocessedQuantity; + result.variantId = this.variantId; return result; } @@ -98,11 +243,61 @@ public Builder id(String id) { } /** - * The order line item for the exchange. + * The order line item for the exchange. If the exchange line has been processed + * multiple times, this will be the first associated line item and won't reflect + * all processed values. */ public Builder lineItem(LineItem lineItem) { this.lineItem = lineItem; return this; } + + /** + * The order line items for the exchange. + */ + public Builder lineItems(List lineItems) { + this.lineItems = lineItems; + return this; + } + + /** + * The quantity of the exchange item that can be processed. + */ + public Builder processableQuantity(int processableQuantity) { + this.processableQuantity = processableQuantity; + return this; + } + + /** + * The quantity of the exchange item that have been processed. + */ + public Builder processedQuantity(int processedQuantity) { + this.processedQuantity = processedQuantity; + return this; + } + + /** + * The number of units ordered, including refunded and removed units. + */ + public Builder quantity(int quantity) { + this.quantity = quantity; + return this; + } + + /** + * The quantity of the exchange item that haven't been processed. + */ + public Builder unprocessedQuantity(int unprocessedQuantity) { + this.unprocessedQuantity = unprocessedQuantity; + return this; + } + + /** + * The ID of the variant at time of return creation. + */ + public Builder variantId(String variantId) { + this.variantId = variantId; + return this; + } } } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ExchangeLineItemRemoveFromReturnInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ExchangeLineItemRemoveFromReturnInput.java new file mode 100644 index 00000000..fe7f897e --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ExchangeLineItemRemoveFromReturnInput.java @@ -0,0 +1,104 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * The input fields for removing an exchange line item from a return. + */ +public class ExchangeLineItemRemoveFromReturnInput { + /** + * The ID of the exchange line item to remove. + */ + private String exchangeLineItemId; + + /** + * The quantity of the associated exchange line item to be removed. + */ + private int quantity; + + public ExchangeLineItemRemoveFromReturnInput() { + } + + /** + * The ID of the exchange line item to remove. + */ + public String getExchangeLineItemId() { + return exchangeLineItemId; + } + + public void setExchangeLineItemId(String exchangeLineItemId) { + this.exchangeLineItemId = exchangeLineItemId; + } + + /** + * The quantity of the associated exchange line item to be removed. + */ + public int getQuantity() { + return quantity; + } + + public void setQuantity(int quantity) { + this.quantity = quantity; + } + + @Override + public String toString() { + return "ExchangeLineItemRemoveFromReturnInput{exchangeLineItemId='" + exchangeLineItemId + "', quantity='" + quantity + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ExchangeLineItemRemoveFromReturnInput that = (ExchangeLineItemRemoveFromReturnInput) o; + return Objects.equals(exchangeLineItemId, that.exchangeLineItemId) && + quantity == that.quantity; + } + + @Override + public int hashCode() { + return Objects.hash(exchangeLineItemId, quantity); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The ID of the exchange line item to remove. + */ + private String exchangeLineItemId; + + /** + * The quantity of the associated exchange line item to be removed. + */ + private int quantity; + + public ExchangeLineItemRemoveFromReturnInput build() { + ExchangeLineItemRemoveFromReturnInput result = new ExchangeLineItemRemoveFromReturnInput(); + result.exchangeLineItemId = this.exchangeLineItemId; + result.quantity = this.quantity; + return result; + } + + /** + * The ID of the exchange line item to remove. + */ + public Builder exchangeLineItemId(String exchangeLineItemId) { + this.exchangeLineItemId = exchangeLineItemId; + return this; + } + + /** + * The quantity of the associated exchange line item to be removed. + */ + public Builder quantity(int quantity) { + this.quantity = quantity; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FeeSale.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FeeSale.java index e918f3ea..81e066fa 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FeeSale.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FeeSale.java @@ -21,7 +21,7 @@ public class FeeSale implements com.shopify.admin.types.Sale { private SaleActionType actionType; /** - * The fee associated with the sale. + * The fee associated with the sale. It can be null if the fee was deleted. */ private Fee fee; @@ -80,7 +80,7 @@ public void setActionType(SaleActionType actionType) { } /** - * The fee associated with the sale. + * The fee associated with the sale. It can be null if the fee was deleted. */ public Fee getFee() { return fee; @@ -216,7 +216,7 @@ public static class Builder { private SaleActionType actionType; /** - * The fee associated with the sale. + * The fee associated with the sale. It can be null if the fee was deleted. */ private Fee fee; @@ -284,7 +284,7 @@ public Builder actionType(SaleActionType actionType) { } /** - * The fee associated with the sale. + * The fee associated with the sale. It can be null if the fee was deleted. */ public Builder fee(Fee fee) { this.fee = fee; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FileCreateInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FileCreateInput.java index 4003bdf2..ec5d9758 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FileCreateInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FileCreateInput.java @@ -10,8 +10,8 @@ */ public class FileCreateInput { /** - * When provided, the file will be created with the given filename, - * otherwise the filename in the originalSource will be used. + * The name of the file. If provided, then the file is created with the specified filename. + * If not provided, then the filename from the `originalSource` is used. */ private String filename; @@ -21,7 +21,7 @@ public class FileCreateInput { private FileContentType contentType; /** - * The alternative text description of the file. + * The alt text description of the file for screen readers and accessibility. */ private String alt; @@ -40,8 +40,8 @@ public FileCreateInput() { } /** - * When provided, the file will be created with the given filename, - * otherwise the filename in the originalSource will be used. + * The name of the file. If provided, then the file is created with the specified filename. + * If not provided, then the filename from the `originalSource` is used. */ public String getFilename() { return filename; @@ -63,7 +63,7 @@ public void setContentType(FileContentType contentType) { } /** - * The alternative text description of the file. + * The alt text description of the file for screen readers and accessibility. */ public String getAlt() { return alt; @@ -125,8 +125,8 @@ public static Builder newBuilder() { public static class Builder { /** - * When provided, the file will be created with the given filename, - * otherwise the filename in the originalSource will be used. + * The name of the file. If provided, then the file is created with the specified filename. + * If not provided, then the filename from the `originalSource` is used. */ private String filename; @@ -136,7 +136,7 @@ public static class Builder { private FileContentType contentType; /** - * The alternative text description of the file. + * The alt text description of the file for screen readers and accessibility. */ private String alt; @@ -162,8 +162,8 @@ public FileCreateInput build() { } /** - * When provided, the file will be created with the given filename, - * otherwise the filename in the originalSource will be used. + * The name of the file. If provided, then the file is created with the specified filename. + * If not provided, then the filename from the `originalSource` is used. */ public Builder filename(String filename) { this.filename = filename; @@ -179,7 +179,7 @@ public Builder contentType(FileContentType contentType) { } /** - * The alternative text description of the file. + * The alt text description of the file for screen readers and accessibility. */ public Builder alt(String alt) { this.alt = alt; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FileSetInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FileSetInput.java index 00174e8b..4d02ebc2 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FileSetInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FileSetInput.java @@ -10,8 +10,8 @@ */ public class FileSetInput { /** - * When provided, the file will be created with the given filename, - * otherwise the filename in the originalSource will be used. + * The name of the file. If provided, then the file is created with the specified filename. + * If not provided, then the filename from the `originalSource` is used. */ private String filename; @@ -21,7 +21,7 @@ public class FileSetInput { private FileContentType contentType; /** - * The alternative text description of the file. + * The alt text description of the file for screen readers and accessibility. */ private String alt; @@ -45,8 +45,8 @@ public FileSetInput() { } /** - * When provided, the file will be created with the given filename, - * otherwise the filename in the originalSource will be used. + * The name of the file. If provided, then the file is created with the specified filename. + * If not provided, then the filename from the `originalSource` is used. */ public String getFilename() { return filename; @@ -68,7 +68,7 @@ public void setContentType(FileContentType contentType) { } /** - * The alternative text description of the file. + * The alt text description of the file for screen readers and accessibility. */ public String getAlt() { return alt; @@ -142,8 +142,8 @@ public static Builder newBuilder() { public static class Builder { /** - * When provided, the file will be created with the given filename, - * otherwise the filename in the originalSource will be used. + * The name of the file. If provided, then the file is created with the specified filename. + * If not provided, then the filename from the `originalSource` is used. */ private String filename; @@ -153,7 +153,7 @@ public static class Builder { private FileContentType contentType; /** - * The alternative text description of the file. + * The alt text description of the file for screen readers and accessibility. */ private String alt; @@ -185,8 +185,8 @@ public FileSetInput build() { } /** - * When provided, the file will be created with the given filename, - * otherwise the filename in the originalSource will be used. + * The name of the file. If provided, then the file is created with the specified filename. + * If not provided, then the filename from the `originalSource` is used. */ public Builder filename(String filename) { this.filename = filename; @@ -202,7 +202,7 @@ public Builder contentType(FileContentType contentType) { } /** - * The alternative text description of the file. + * The alt text description of the file for screen readers and accessibility. */ public Builder alt(String alt) { this.alt = alt; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FileUpdateInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FileUpdateInput.java index 0ca07b3d..a1b3d7d4 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FileUpdateInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FileUpdateInput.java @@ -16,7 +16,7 @@ public class FileUpdateInput { private String id; /** - * The alternative text description of the file. + * The alt text description of the file for screen readers and accessibility. */ private String alt; @@ -64,7 +64,7 @@ public void setId(String id) { } /** - * The alternative text description of the file. + * The alt text description of the file for screen readers and accessibility. */ public String getAlt() { return alt; @@ -168,7 +168,7 @@ public static class Builder { private String id; /** - * The alternative text description of the file. + * The alt text description of the file for screen readers and accessibility. */ private String alt; @@ -222,7 +222,7 @@ public Builder id(String id) { } /** - * The alternative text description of the file. + * The alt text description of the file for screen readers and accessibility. */ public Builder alt(String alt) { this.alt = alt; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FilesErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FilesErrorCode.java index af0e93bb..bf6e51dd 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FilesErrorCode.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FilesErrorCode.java @@ -38,6 +38,8 @@ public enum FilesErrorCode { NON_READY_STATE, + INVALID_FAILED_MEDIA_STATE, + NON_IMAGE_MEDIA_PER_SHOP_LIMIT_EXCEEDED, MISMATCHED_FILENAME_AND_ORIGINAL_SOURCE, @@ -54,5 +56,7 @@ public enum FilesErrorCode { REFERENCE_TARGET_DOES_NOT_EXIST, - TOO_MANY_FILE_REFERENCE + TOO_MANY_FILE_REFERENCE, + + INVALID_DUPLICATE_RESOLUTION_MODE } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Fulfillment.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Fulfillment.java index d7fd85de..eea28779 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Fulfillment.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Fulfillment.java @@ -9,11 +9,17 @@ import java.util.Objects; /** - * Represents a fulfillment. - * In Shopify, a fulfillment represents a shipment of one or more items in an order. - * When an order has been completely fulfilled, it means that all the items that are included - * in the order have been sent to the customer. - * There can be more than one fulfillment for an order. + * A shipment of one or more items from an + * [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order). Tracks which + * [`LineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItem) + * objects ship, their quantities, and the shipment's tracking information. + * + * Includes tracking details such as the carrier, tracking numbers, and URLs. The + * fulfillment connects to both the original order and any associated [`FulfillmentOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder) objects. [`FulfillmentEvent`](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentEvent) + * objects record milestones throughout the shipment lifecycle, from creation + * through delivery. + * + * Multiple fulfillments can exist for a single order when items either ship separately or from different locations. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FulfillmentConstraintRuleCreateUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FulfillmentConstraintRuleCreateUserErrorCode.java index c42720c5..e5758d75 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FulfillmentConstraintRuleCreateUserErrorCode.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FulfillmentConstraintRuleCreateUserErrorCode.java @@ -16,5 +16,9 @@ public enum FulfillmentConstraintRuleCreateUserErrorCode { FUNCTION_PENDING_DELETION, + MULTIPLE_FUNCTION_IDENTIFIERS, + + MISSING_FUNCTION_IDENTIFIER, + MAXIMUM_FULFILLMENT_CONSTRAINT_RULES_REACHED } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FulfillmentDisplayStatus.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FulfillmentDisplayStatus.java index 6e41cf6f..b6795bca 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FulfillmentDisplayStatus.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FulfillmentDisplayStatus.java @@ -18,6 +18,8 @@ public enum FulfillmentDisplayStatus { FULFILLED, + CARRIER_PICKED_UP, + IN_TRANSIT, LABEL_PRINTED, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FulfillmentEvent.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FulfillmentEvent.java index 4c3ac9b9..2912b3dd 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FulfillmentEvent.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FulfillmentEvent.java @@ -9,7 +9,14 @@ import java.util.Objects; /** - * The fulfillment event that describes the fulfilllment status at a particular time. + * A tracking event that records the status and location of a fulfillment at a + * specific point in time. Each event captures details such as the [status](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentEvent#field-FulfillmentEvent.fields.status) + * (for example, in transit, out for delivery, delivered) and any [messages](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentEvent#field-FulfillmentEvent.fields.message) + * associated with the event. + * + * Fulfillment events provide a chronological history of a package's journey from + * shipment to delivery. They include timestamps, geographic coordinates, and + * estimated delivery dates to track fulfillment progress. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FulfillmentEventStatus.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FulfillmentEventStatus.java index aa7e7b82..c0ab4b90 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FulfillmentEventStatus.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FulfillmentEventStatus.java @@ -22,5 +22,7 @@ public enum FulfillmentEventStatus { DELIVERED, - FAILURE + FAILURE, + + CARRIER_PICKED_UP } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FulfillmentLineItem.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FulfillmentLineItem.java index 02424d02..4eaf09c7 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FulfillmentLineItem.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FulfillmentLineItem.java @@ -8,7 +8,13 @@ import java.util.Objects; /** - * Represents a line item from an order that's included in a fulfillment. + * A line item from an + * [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) + * that's included in a [`Fulfillment`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Fulfillment). + * Links the fulfillment to specific items from the original order, tracking how + * many units were fulfilled. + * + * > Note: The discounted total excludes order-level discounts, showing only line-item specific discount amounts. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FulfillmentOrderLineItem.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FulfillmentOrderLineItem.java index c89d7894..50ea7a2f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FulfillmentOrderLineItem.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FulfillmentOrderLineItem.java @@ -8,7 +8,14 @@ import java.util.Objects; /** - * Associates an order line item with quantities requiring fulfillment from the respective fulfillment order. + * Associates an order line item with the quantities that require fulfillment as + * part of a fulfillment order. Each Fulfillment Order Line Item object tracks the + * total quantity to fulfill and the remaining quantity yet to be fulfilled, along + * with details about the line item being fulfilled and pricing information. + * + * The line item provides additional fulfillment data including whether the item + * requires shipping. Financial summaries show pricing details with discounts + * applied, while warning messages alert merchants to any issues that might affect fulfillment. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FulfillmentOrderLineItemsInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FulfillmentOrderLineItemsInput.java index 4cb39dc2..240b0c7a 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FulfillmentOrderLineItemsInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FulfillmentOrderLineItemsInput.java @@ -18,6 +18,7 @@ public class FulfillmentOrderLineItemsInput { /** * The fulfillment order line items to be fulfilled. * If left blank, all line items of the fulfillment order will be fulfilled. + * Accepts a maximum of 512 line items. */ private List fulfillmentOrderLineItems; @@ -38,6 +39,7 @@ public void setFulfillmentOrderId(String fulfillmentOrderId) { /** * The fulfillment order line items to be fulfilled. * If left blank, all line items of the fulfillment order will be fulfilled. + * Accepts a maximum of 512 line items. */ public List getFulfillmentOrderLineItems() { return fulfillmentOrderLineItems; @@ -80,6 +82,7 @@ public static class Builder { /** * The fulfillment order line items to be fulfilled. * If left blank, all line items of the fulfillment order will be fulfilled. + * Accepts a maximum of 512 line items. */ private List fulfillmentOrderLineItems; @@ -101,6 +104,7 @@ public Builder fulfillmentOrderId(String fulfillmentOrderId) { /** * The fulfillment order line items to be fulfilled. * If left blank, all line items of the fulfillment order will be fulfilled. + * Accepts a maximum of 512 line items. */ public Builder fulfillmentOrderLineItems( List fulfillmentOrderLineItems) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FulfillmentOrdersReroutePayload.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FulfillmentOrdersReroutePayload.java new file mode 100644 index 00000000..8ec0e6dd --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FulfillmentOrdersReroutePayload.java @@ -0,0 +1,105 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * Return type for `fulfillmentOrdersReroute` mutation. + */ +public class FulfillmentOrdersReroutePayload { + /** + * The fulfillment orders which contains the moved line items. + */ + private List movedFulfillmentOrders; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public FulfillmentOrdersReroutePayload() { + } + + /** + * The fulfillment orders which contains the moved line items. + */ + public List getMovedFulfillmentOrders() { + return movedFulfillmentOrders; + } + + public void setMovedFulfillmentOrders(List movedFulfillmentOrders) { + this.movedFulfillmentOrders = movedFulfillmentOrders; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public List getUserErrors() { + return userErrors; + } + + public void setUserErrors(List userErrors) { + this.userErrors = userErrors; + } + + @Override + public String toString() { + return "FulfillmentOrdersReroutePayload{movedFulfillmentOrders='" + movedFulfillmentOrders + "', userErrors='" + userErrors + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + FulfillmentOrdersReroutePayload that = (FulfillmentOrdersReroutePayload) o; + return Objects.equals(movedFulfillmentOrders, that.movedFulfillmentOrders) && + Objects.equals(userErrors, that.userErrors); + } + + @Override + public int hashCode() { + return Objects.hash(movedFulfillmentOrders, userErrors); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The fulfillment orders which contains the moved line items. + */ + private List movedFulfillmentOrders; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public FulfillmentOrdersReroutePayload build() { + FulfillmentOrdersReroutePayload result = new FulfillmentOrdersReroutePayload(); + result.movedFulfillmentOrders = this.movedFulfillmentOrders; + result.userErrors = this.userErrors; + return result; + } + + /** + * The fulfillment orders which contains the moved line items. + */ + public Builder movedFulfillmentOrders(List movedFulfillmentOrders) { + this.movedFulfillmentOrders = movedFulfillmentOrders; + return this; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public Builder userErrors(List userErrors) { + this.userErrors = userErrors; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FulfillmentOrdersRerouteUserError.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FulfillmentOrdersRerouteUserError.java new file mode 100644 index 00000000..ccdf42c6 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FulfillmentOrdersRerouteUserError.java @@ -0,0 +1,140 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * An error that occurs during the execution of `FulfillmentOrdersReroute`. + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NONE +) +public class FulfillmentOrdersRerouteUserError implements com.shopify.admin.types.DisplayableError { + /** + * The error code. + */ + private FulfillmentOrdersRerouteUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public FulfillmentOrdersRerouteUserError() { + } + + /** + * The error code. + */ + public FulfillmentOrdersRerouteUserErrorCode getCode() { + return code; + } + + public void setCode(FulfillmentOrdersRerouteUserErrorCode code) { + this.code = code; + } + + /** + * The path to the input field that caused the error. + */ + public List getField() { + return field; + } + + public void setField(List field) { + this.field = field; + } + + /** + * The error message. + */ + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + @Override + public String toString() { + return "FulfillmentOrdersRerouteUserError{code='" + code + "', field='" + field + "', message='" + message + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + FulfillmentOrdersRerouteUserError that = (FulfillmentOrdersRerouteUserError) o; + return Objects.equals(code, that.code) && + Objects.equals(field, that.field) && + Objects.equals(message, that.message); + } + + @Override + public int hashCode() { + return Objects.hash(code, field, message); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The error code. + */ + private FulfillmentOrdersRerouteUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public FulfillmentOrdersRerouteUserError build() { + FulfillmentOrdersRerouteUserError result = new FulfillmentOrdersRerouteUserError(); + result.code = this.code; + result.field = this.field; + result.message = this.message; + return result; + } + + /** + * The error code. + */ + public Builder code(FulfillmentOrdersRerouteUserErrorCode code) { + this.code = code; + return this; + } + + /** + * The path to the input field that caused the error. + */ + public Builder field(List field) { + this.field = field; + return this; + } + + /** + * The error message. + */ + public Builder message(String message) { + this.message = message; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FulfillmentOrdersRerouteUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FulfillmentOrdersRerouteUserErrorCode.java new file mode 100644 index 00000000..fb5224a2 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FulfillmentOrdersRerouteUserErrorCode.java @@ -0,0 +1,24 @@ +package com.shopify.admin.types; + +/** + * Possible error codes that can be returned by `FulfillmentOrdersRerouteUserError`. + */ +public enum FulfillmentOrdersRerouteUserErrorCode { + NO_FULFILLMENT_ORDER_IDS, + + FULFILLMENT_ORDER_NOT_FOUND, + + FULFILLMENT_ORDERS_NOT_FROM_THE_SAME_ORDER, + + FULFILLMENT_ORDERS_STATE_NOT_SUPPORTED, + + CANNOT_REASSIGN_LOCATION_FOR_FULFILLMENT_ORDERS, + + DELIVERY_METHOD_TYPE_NOT_SUPPORTED, + + SINGLE_LOCATION_SHOP_NOT_SUPPORTED, + + FULFILLMENT_ORDERS_MUST_BELONG_TO_SAME_LOCATION, + + CANNOT_MOVE_FULFILLMENT_ORDER_WITH_REPORTED_PROGRESS +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FulfillmentTrackingInfo.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FulfillmentTrackingInfo.java index 20658f4f..77731bc9 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FulfillmentTrackingInfo.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/FulfillmentTrackingInfo.java @@ -76,7 +76,8 @@ public class FulfillmentTrackingInfo { * * Israel Post * * Japan Post (EN) * * Japan Post (JA) - * * La Poste + * * La Poste Colissimo + * * La Poste Burkina Faso * * Lasership * * Latvia Post * * Lietuvos Paštas @@ -261,7 +262,8 @@ public FulfillmentTrackingInfo() { * * Israel Post * * Japan Post (EN) * * Japan Post (JA) - * * La Poste + * * La Poste Colissimo + * * La Poste Burkina Faso * * Lasership * * Latvia Post * * Lietuvos Paštas @@ -486,7 +488,8 @@ public static class Builder { * * Israel Post * * Japan Post (EN) * * Japan Post (JA) - * * La Poste + * * La Poste Colissimo + * * La Poste Burkina Faso * * Lasership * * Latvia Post * * Lietuvos Paštas @@ -676,7 +679,8 @@ public FulfillmentTrackingInfo build() { * * Israel Post * * Japan Post (EN) * * Japan Post (JA) - * * La Poste + * * La Poste Colissimo + * * La Poste Burkina Faso * * Lasership * * Latvia Post * * Lietuvos Paštas diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/GiftCard.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/GiftCard.java index 5a77a0bc..2df05963 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/GiftCard.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/GiftCard.java @@ -9,7 +9,16 @@ import java.util.Objects; /** - * Represents an issued gift card. + * A gift card that customers use as a payment method. Stores the initial value, current balance, and expiration date. + * + * You can issue gift cards to a specific + * [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer) + * or send them to a [`GiftCardRecipient`](https://shopify.dev/docs/api/admin-graphql/latest/objects/GiftCardRecipient) + * with a personalized message. The card tracks its transaction history through [`GiftCardCreditTransaction`](https://shopify.dev/docs/api/admin-graphql/latest/objects/GiftCardCreditTransaction) and [`GiftCardDebitTransaction`](https://shopify.dev/docs/api/admin-graphql/latest/objects/GiftCardDebitTransaction) + * records. You can create and deactivate gift cards using the [`GiftCardCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/giftCardCreate) and [`GiftCardDeactivate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/giftCardDeactivate) + * mutations, respectively. + * + * > Note: After a gift card is deactivated, it can't be used for further purchases or re-enabled. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/HasEvents.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/HasEvents.java index 35e19367..5cd08e18 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/HasEvents.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/HasEvents.java @@ -24,6 +24,7 @@ @JsonSubTypes.Type(value = DiscountCodeNode.class, name = "DiscountCodeNode"), @JsonSubTypes.Type(value = DiscountNode.class, name = "DiscountNode"), @JsonSubTypes.Type(value = DraftOrder.class, name = "DraftOrder"), + @JsonSubTypes.Type(value = InventoryTransfer.class, name = "InventoryTransfer"), @JsonSubTypes.Type(value = Order.class, name = "Order"), @JsonSubTypes.Type(value = Page.class, name = "Page"), @JsonSubTypes.Type(value = PriceRule.class, name = "PriceRule"), diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/HasMetafieldDefinitions.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/HasMetafieldDefinitions.java index 4769932f..d18b7879 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/HasMetafieldDefinitions.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/HasMetafieldDefinitions.java @@ -22,6 +22,7 @@ @JsonSubTypes.Type(value = DiscountAutomaticNode.class, name = "DiscountAutomaticNode"), @JsonSubTypes.Type(value = DiscountCodeNode.class, name = "DiscountCodeNode"), @JsonSubTypes.Type(value = DiscountNode.class, name = "DiscountNode"), + @JsonSubTypes.Type(value = InventoryTransfer.class, name = "InventoryTransfer"), @JsonSubTypes.Type(value = Location.class, name = "Location"), @JsonSubTypes.Type(value = Market.class, name = "Market"), @JsonSubTypes.Type(value = Order.class, name = "Order"), @@ -30,6 +31,7 @@ @JsonSubTypes.Type(value = Product.class, name = "Product"), @JsonSubTypes.Type(value = ProductVariant.class, name = "ProductVariant"), @JsonSubTypes.Type(value = SellingPlan.class, name = "SellingPlan"), + @JsonSubTypes.Type(value = Shop.class, name = "Shop"), @JsonSubTypes.Type(value = Validation.class, name = "Validation") }) public interface HasMetafieldDefinitions { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/HasMetafields.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/HasMetafields.java index 5ef5d115..c422e724 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/HasMetafields.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/HasMetafields.java @@ -30,6 +30,7 @@ @JsonSubTypes.Type(value = GiftCardCreditTransaction.class, name = "GiftCardCreditTransaction"), @JsonSubTypes.Type(value = GiftCardDebitTransaction.class, name = "GiftCardDebitTransaction"), @JsonSubTypes.Type(value = Image.class, name = "Image"), + @JsonSubTypes.Type(value = InventoryTransfer.class, name = "InventoryTransfer"), @JsonSubTypes.Type(value = Location.class, name = "Location"), @JsonSubTypes.Type(value = Market.class, name = "Market"), @JsonSubTypes.Type(value = MediaImage.class, name = "MediaImage"), diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/HasPublishedTranslations.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/HasPublishedTranslations.java index d3910078..50fd341e 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/HasPublishedTranslations.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/HasPublishedTranslations.java @@ -17,7 +17,9 @@ @JsonSubTypes.Type(value = Blog.class, name = "Blog"), @JsonSubTypes.Type(value = Collection.class, name = "Collection"), @JsonSubTypes.Type(value = CookieBanner.class, name = "CookieBanner"), + @JsonSubTypes.Type(value = Image.class, name = "Image"), @JsonSubTypes.Type(value = Link.class, name = "Link"), + @JsonSubTypes.Type(value = MediaImage.class, name = "MediaImage"), @JsonSubTypes.Type(value = Menu.class, name = "Menu"), @JsonSubTypes.Type(value = OnlineStoreTheme.class, name = "OnlineStoreTheme"), @JsonSubTypes.Type(value = Page.class, name = "Page"), diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/HasStoreCreditAccounts.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/HasStoreCreditAccounts.java index b0630dde..b47ce580 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/HasStoreCreditAccounts.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/HasStoreCreditAccounts.java @@ -11,7 +11,10 @@ include = JsonTypeInfo.As.PROPERTY, property = "__typename" ) -@JsonSubTypes(@JsonSubTypes.Type(value = Customer.class, name = "Customer")) +@JsonSubTypes({ + @JsonSubTypes.Type(value = CompanyLocation.class, name = "CompanyLocation"), + @JsonSubTypes.Type(value = Customer.class, name = "Customer") +}) public interface HasStoreCreditAccounts { /** * Returns a list of store credit accounts that belong to the owner resource. diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Image.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Image.java index e8ffa8de..45fca31e 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Image.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Image.java @@ -5,6 +5,7 @@ import java.lang.Object; import java.lang.Override; import java.lang.String; +import java.util.List; import java.util.Objects; /** @@ -13,7 +14,7 @@ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE ) -public class Image implements com.shopify.admin.types.HasMetafields { +public class Image implements com.shopify.admin.types.HasMetafields, com.shopify.admin.types.HasPublishedTranslations { /** * A word or phrase to share the nature or contents of an image. */ @@ -54,6 +55,13 @@ public class Image implements com.shopify.admin.types.HasMetafields { */ private String src; + /** + * The ThumbHash of the image. + * + * Useful to display placeholder images while the original image is loading. + */ + private String thumbhash; + /** * The location of the transformed image as a URL. * @@ -62,6 +70,11 @@ public class Image implements com.shopify.admin.types.HasMetafields { */ private String transformedSrc; + /** + * The published translations associated with the resource. + */ + private List translations; + /** * The location of the image as a URL. * @@ -165,6 +178,19 @@ public void setSrc(String src) { this.src = src; } + /** + * The ThumbHash of the image. + * + * Useful to display placeholder images while the original image is loading. + */ + public String getThumbhash() { + return thumbhash; + } + + public void setThumbhash(String thumbhash) { + this.thumbhash = thumbhash; + } + /** * The location of the transformed image as a URL. * @@ -179,6 +205,17 @@ public void setTransformedSrc(String transformedSrc) { this.transformedSrc = transformedSrc; } + /** + * The published translations associated with the resource. + */ + public List getTranslations() { + return translations; + } + + public void setTranslations(List translations) { + this.translations = translations; + } + /** * The location of the image as a URL. * @@ -211,7 +248,7 @@ public void setWidth(Integer width) { @Override public String toString() { - return "Image{altText='" + altText + "', height='" + height + "', id='" + id + "', metafield='" + metafield + "', metafields='" + metafields + "', originalSrc='" + originalSrc + "', src='" + src + "', transformedSrc='" + transformedSrc + "', url='" + url + "', width='" + width + "'}"; + return "Image{altText='" + altText + "', height='" + height + "', id='" + id + "', metafield='" + metafield + "', metafields='" + metafields + "', originalSrc='" + originalSrc + "', src='" + src + "', thumbhash='" + thumbhash + "', transformedSrc='" + transformedSrc + "', translations='" + translations + "', url='" + url + "', width='" + width + "'}"; } @Override @@ -226,14 +263,16 @@ public boolean equals(Object o) { Objects.equals(metafields, that.metafields) && Objects.equals(originalSrc, that.originalSrc) && Objects.equals(src, that.src) && + Objects.equals(thumbhash, that.thumbhash) && Objects.equals(transformedSrc, that.transformedSrc) && + Objects.equals(translations, that.translations) && Objects.equals(url, that.url) && Objects.equals(width, that.width); } @Override public int hashCode() { - return Objects.hash(altText, height, id, metafield, metafields, originalSrc, src, transformedSrc, url, width); + return Objects.hash(altText, height, id, metafield, metafields, originalSrc, src, thumbhash, transformedSrc, translations, url, width); } public static Builder newBuilder() { @@ -281,6 +320,13 @@ public static class Builder { */ private String src; + /** + * The ThumbHash of the image. + * + * Useful to display placeholder images while the original image is loading. + */ + private String thumbhash; + /** * The location of the transformed image as a URL. * @@ -289,6 +335,11 @@ public static class Builder { */ private String transformedSrc; + /** + * The published translations associated with the resource. + */ + private List translations; + /** * The location of the image as a URL. * @@ -316,7 +367,9 @@ public Image build() { result.metafields = this.metafields; result.originalSrc = this.originalSrc; result.src = this.src; + result.thumbhash = this.thumbhash; result.transformedSrc = this.transformedSrc; + result.translations = this.translations; result.url = this.url; result.width = this.width; return result; @@ -383,6 +436,16 @@ public Builder src(String src) { return this; } + /** + * The ThumbHash of the image. + * + * Useful to display placeholder images while the original image is loading. + */ + public Builder thumbhash(String thumbhash) { + this.thumbhash = thumbhash; + return this; + } + /** * The location of the transformed image as a URL. * @@ -394,6 +457,14 @@ public Builder transformedSrc(String transformedSrc) { return this; } + /** + * The published translations associated with the resource. + */ + public Builder translations(List translations) { + this.translations = translations; + return this; + } + /** * The location of the image as a URL. * diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryAdjustQuantitiesInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryAdjustQuantitiesInput.java index b48669ec..4b1e8a9a 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryAdjustQuantitiesInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryAdjustQuantitiesInput.java @@ -23,10 +23,25 @@ public class InventoryAdjustQuantitiesInput { private String name; /** - * A freeform URI that represents why the inventory change happened. This can be the entity adjusting inventory - * quantities or the Shopify resource that's associated with the inventory adjustment. For example, a unit in a - * draft order might have been previously reserved, and a merchant later creates an order from the draft order. - * In this case, the `referenceDocumentUri` for the inventory adjustment is a URI referencing the order ID. + * A URI that represents why the inventory change happened, identifying the + * source system and document that caused this adjustment. Enables complete audit + * trails and brand visibility in Shopify admin inventory history. + * + * Preferred format - Global ID (GID): gid://[your-app-name]/[entity-type]/[id] + * + * Examples: + * - gid://warehouse-app/PurchaseOrder/PO-2024-001 (stock received) + * - gid://3pl-system/CycleCount/CC-2024-0125 (cycle count adjustment) + * - gid://pos-app/Transaction/TXN-98765 (in-store sale) + * - gid://erp-connector/SyncJob/SYNC-2024-11-21-001 (ERP sync) + * - gid://shopify/Order/1234567890 (Shopify order reference) + * + * Benefits: Your app name appears directly in merchant inventory history, + * reducing support tickets and providing clear audit trails for compliance. + * + * Alternative formats (also supported): https://myapp.com/documents/12345, custom-scheme://identifier + * + * Requirements: Valid URI with scheme and content. For GID format, all components (app, entity, id) must be present. */ private String referenceDocumentUri; @@ -63,10 +78,25 @@ public void setName(String name) { } /** - * A freeform URI that represents why the inventory change happened. This can be the entity adjusting inventory - * quantities or the Shopify resource that's associated with the inventory adjustment. For example, a unit in a - * draft order might have been previously reserved, and a merchant later creates an order from the draft order. - * In this case, the `referenceDocumentUri` for the inventory adjustment is a URI referencing the order ID. + * A URI that represents why the inventory change happened, identifying the + * source system and document that caused this adjustment. Enables complete audit + * trails and brand visibility in Shopify admin inventory history. + * + * Preferred format - Global ID (GID): gid://[your-app-name]/[entity-type]/[id] + * + * Examples: + * - gid://warehouse-app/PurchaseOrder/PO-2024-001 (stock received) + * - gid://3pl-system/CycleCount/CC-2024-0125 (cycle count adjustment) + * - gid://pos-app/Transaction/TXN-98765 (in-store sale) + * - gid://erp-connector/SyncJob/SYNC-2024-11-21-001 (ERP sync) + * - gid://shopify/Order/1234567890 (Shopify order reference) + * + * Benefits: Your app name appears directly in merchant inventory history, + * reducing support tickets and providing clear audit trails for compliance. + * + * Alternative formats (also supported): https://myapp.com/documents/12345, custom-scheme://identifier + * + * Requirements: Valid URI with scheme and content. For GID format, all components (app, entity, id) must be present. */ public String getReferenceDocumentUri() { return referenceDocumentUri; @@ -126,10 +156,25 @@ public static class Builder { private String name; /** - * A freeform URI that represents why the inventory change happened. This can be the entity adjusting inventory - * quantities or the Shopify resource that's associated with the inventory adjustment. For example, a unit in a - * draft order might have been previously reserved, and a merchant later creates an order from the draft order. - * In this case, the `referenceDocumentUri` for the inventory adjustment is a URI referencing the order ID. + * A URI that represents why the inventory change happened, identifying the + * source system and document that caused this adjustment. Enables complete audit + * trails and brand visibility in Shopify admin inventory history. + * + * Preferred format - Global ID (GID): gid://[your-app-name]/[entity-type]/[id] + * + * Examples: + * - gid://warehouse-app/PurchaseOrder/PO-2024-001 (stock received) + * - gid://3pl-system/CycleCount/CC-2024-0125 (cycle count adjustment) + * - gid://pos-app/Transaction/TXN-98765 (in-store sale) + * - gid://erp-connector/SyncJob/SYNC-2024-11-21-001 (ERP sync) + * - gid://shopify/Order/1234567890 (Shopify order reference) + * + * Benefits: Your app name appears directly in merchant inventory history, + * reducing support tickets and providing clear audit trails for compliance. + * + * Alternative formats (also supported): https://myapp.com/documents/12345, custom-scheme://identifier + * + * Requirements: Valid URI with scheme and content. For GID format, all components (app, entity, id) must be present. */ private String referenceDocumentUri; @@ -166,10 +211,25 @@ public Builder name(String name) { } /** - * A freeform URI that represents why the inventory change happened. This can be the entity adjusting inventory - * quantities or the Shopify resource that's associated with the inventory adjustment. For example, a unit in a - * draft order might have been previously reserved, and a merchant later creates an order from the draft order. - * In this case, the `referenceDocumentUri` for the inventory adjustment is a URI referencing the order ID. + * A URI that represents why the inventory change happened, identifying the + * source system and document that caused this adjustment. Enables complete audit + * trails and brand visibility in Shopify admin inventory history. + * + * Preferred format - Global ID (GID): gid://[your-app-name]/[entity-type]/[id] + * + * Examples: + * - gid://warehouse-app/PurchaseOrder/PO-2024-001 (stock received) + * - gid://3pl-system/CycleCount/CC-2024-0125 (cycle count adjustment) + * - gid://pos-app/Transaction/TXN-98765 (in-store sale) + * - gid://erp-connector/SyncJob/SYNC-2024-11-21-001 (ERP sync) + * - gid://shopify/Order/1234567890 (Shopify order reference) + * + * Benefits: Your app name appears directly in merchant inventory history, + * reducing support tickets and providing clear audit trails for compliance. + * + * Alternative formats (also supported): https://myapp.com/documents/12345, custom-scheme://identifier + * + * Requirements: Valid URI with scheme and content. For GID format, all components (app, entity, id) must be present. */ public Builder referenceDocumentUri(String referenceDocumentUri) { this.referenceDocumentUri = referenceDocumentUri; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryAdjustQuantitiesUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryAdjustQuantitiesUserErrorCode.java index e022367c..b03a41cb 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryAdjustQuantitiesUserErrorCode.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryAdjustQuantitiesUserErrorCode.java @@ -26,11 +26,19 @@ public enum InventoryAdjustQuantitiesUserErrorCode { INVALID_REFERENCE_DOCUMENT, + SERVICE_UNAVAILABLE, + + CHANGE_FROM_QUANTITY_STALE, + ADJUST_QUANTITIES_FAILED, MAX_ONE_LEDGER_DOCUMENT, ITEM_NOT_STOCKED_AT_LOCATION, - NON_MUTABLE_INVENTORY_ITEM + NON_MUTABLE_INVENTORY_ITEM, + + IDEMPOTENCY_CONCURRENT_REQUEST, + + IDEMPOTENCY_KEY_PARAMETER_MISMATCH } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryAdjustmentGroup.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryAdjustmentGroup.java index 6d940c06..31d2029c 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryAdjustmentGroup.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryAdjustmentGroup.java @@ -9,7 +9,16 @@ import java.util.Objects; /** - * Represents a group of adjustments made as part of the same operation. + * Records a batch of inventory changes made together in a single operation. Tracks + * which [`App`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App) or [`StaffMember`](https://shopify.dev/docs/api/admin-graphql/latest/objects/StaffMember) + * initiated the changes, when they occurred, and why they were made. + * + * Provides an audit trail through its reason and reference document URI. The + * reference document URI links to the source that triggered the adjustment, such as + * an [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order), [`InventoryTransfer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryTransfer), + * or external system event. Use the [`changes`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryAdjustmentGroup#field-InventoryAdjustmentGroup.fields.changes) + * field to retrieve the specific quantity adjustments for each inventory state at affected + * [locations](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryAdjustmentInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryAdjustmentInput.java new file mode 100644 index 00000000..cb6f2c2f --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryAdjustmentInput.java @@ -0,0 +1,140 @@ +package com.shopify.admin.types; + +import java.lang.Integer; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * The input fields required to adjust the available quantity of a product variant at a location. + */ +public class InventoryAdjustmentInput { + /** + * The ID of the location where the available quantity should be adjusted. + */ + private String locationId; + + /** + * The adjustment of the available quantity at the location. If the value is + * `null`, then the product variant is no longer stocked at the location. + */ + private Integer adjustment; + + /** + * The quantity to compare against before applying the delta. + */ + private Integer changeFromQuantity; + + public InventoryAdjustmentInput() { + } + + /** + * The ID of the location where the available quantity should be adjusted. + */ + public String getLocationId() { + return locationId; + } + + public void setLocationId(String locationId) { + this.locationId = locationId; + } + + /** + * The adjustment of the available quantity at the location. If the value is + * `null`, then the product variant is no longer stocked at the location. + */ + public Integer getAdjustment() { + return adjustment; + } + + public void setAdjustment(Integer adjustment) { + this.adjustment = adjustment; + } + + /** + * The quantity to compare against before applying the delta. + */ + public Integer getChangeFromQuantity() { + return changeFromQuantity; + } + + public void setChangeFromQuantity(Integer changeFromQuantity) { + this.changeFromQuantity = changeFromQuantity; + } + + @Override + public String toString() { + return "InventoryAdjustmentInput{locationId='" + locationId + "', adjustment='" + adjustment + "', changeFromQuantity='" + changeFromQuantity + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryAdjustmentInput that = (InventoryAdjustmentInput) o; + return Objects.equals(locationId, that.locationId) && + Objects.equals(adjustment, that.adjustment) && + Objects.equals(changeFromQuantity, that.changeFromQuantity); + } + + @Override + public int hashCode() { + return Objects.hash(locationId, adjustment, changeFromQuantity); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The ID of the location where the available quantity should be adjusted. + */ + private String locationId; + + /** + * The adjustment of the available quantity at the location. If the value is + * `null`, then the product variant is no longer stocked at the location. + */ + private Integer adjustment; + + /** + * The quantity to compare against before applying the delta. + */ + private Integer changeFromQuantity; + + public InventoryAdjustmentInput build() { + InventoryAdjustmentInput result = new InventoryAdjustmentInput(); + result.locationId = this.locationId; + result.adjustment = this.adjustment; + result.changeFromQuantity = this.changeFromQuantity; + return result; + } + + /** + * The ID of the location where the available quantity should be adjusted. + */ + public Builder locationId(String locationId) { + this.locationId = locationId; + return this; + } + + /** + * The adjustment of the available quantity at the location. If the value is + * `null`, then the product variant is no longer stocked at the location. + */ + public Builder adjustment(Integer adjustment) { + this.adjustment = adjustment; + return this; + } + + /** + * The quantity to compare against before applying the delta. + */ + public Builder changeFromQuantity(Integer changeFromQuantity) { + this.changeFromQuantity = changeFromQuantity; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryChange.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryChange.java index 1ac2c7b2..f3eaf29f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryChange.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryChange.java @@ -7,7 +7,17 @@ import java.util.Objects; /** - * Represents a change in an inventory quantity of an inventory item at a location. + * A change in an inventory quantity of an inventory item at a location. Each + * change tracks how inventory moves between different states like available, + * committed, reserved, or damaged. + * + * The change captures the [amount changed](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryChange#field-InventoryChange.fields.delta), the resulting [quantity](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryChange#field-InventoryChange.fields.quantityAfterChange), + * and links to the associated [`InventoryItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryItem) and [`Location`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location). + * + * The [`name`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryChange#field-InventoryChange.fields.name) field indicates which inventory state changed, such as `available`, `reserved`, + * or `damaged`. The [`ledgerDocumentUri`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryChange#field-InventoryChange.fields.ledgerDocumentUri) + * field provides an audit trail by referencing the source document or system that + * triggered the change. */ public class InventoryChange { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryChangeInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryChangeInput.java index dfaadd0a..669650eb 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryChangeInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryChangeInput.java @@ -1,5 +1,6 @@ package com.shopify.admin.types; +import java.lang.Integer; import java.lang.Object; import java.lang.Override; import java.lang.String; @@ -14,6 +15,12 @@ public class InventoryChangeInput { */ private int delta; + /** + * The quantity to compare against before applying the delta. For more + * information, refer to the [Compare and Swap documentation](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states#compare-and-swap). + */ + private Integer changeFromQuantity; + /** * Specifies the inventory item to which the change will be applied. */ @@ -25,10 +32,20 @@ public class InventoryChangeInput { private String locationId; /** - * A freeform URI that represents what changed the inventory quantities. A Shopify global ID isn't an accepted - * value. For example, specifying "gid://shopify/Order/123" would return an error. This field is required for all - * quantity names except `available`. The field `ledgerDocumentUri` isn't supported for use with an `available` - * quantity name. + * A non-Shopify URI that identifies what specific inventory transaction or + * ledger entry was changed. Represents the exact inventory movement being + * referenced, distinct from the business reason for the change. + * + * Preferred format - Global ID (GID): gid://[your-app-name]/[transaction-type]/[id] + * + * Examples: + * - gid://warehouse-app/InventoryTransaction/TXN-2024-001 (specific transaction) + * - gid://3pl-system/StockMovement/SM-2024-0125 (stock movement record) + * - gid://pos-app/InventoryUpdate/UPD-98765 (POS inventory update) + * - gid://erp-connector/LedgerEntry/LE-2024-11-21-001 (ledger entry) + * + * Requirements: Valid non-Shopify URI with scheme and content. Required for all + * quantity names except `available`. Cannot use gid://shopify/* format. */ private String ledgerDocumentUri; @@ -46,6 +63,18 @@ public void setDelta(int delta) { this.delta = delta; } + /** + * The quantity to compare against before applying the delta. For more + * information, refer to the [Compare and Swap documentation](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states#compare-and-swap). + */ + public Integer getChangeFromQuantity() { + return changeFromQuantity; + } + + public void setChangeFromQuantity(Integer changeFromQuantity) { + this.changeFromQuantity = changeFromQuantity; + } + /** * Specifies the inventory item to which the change will be applied. */ @@ -69,10 +98,20 @@ public void setLocationId(String locationId) { } /** - * A freeform URI that represents what changed the inventory quantities. A Shopify global ID isn't an accepted - * value. For example, specifying "gid://shopify/Order/123" would return an error. This field is required for all - * quantity names except `available`. The field `ledgerDocumentUri` isn't supported for use with an `available` - * quantity name. + * A non-Shopify URI that identifies what specific inventory transaction or + * ledger entry was changed. Represents the exact inventory movement being + * referenced, distinct from the business reason for the change. + * + * Preferred format - Global ID (GID): gid://[your-app-name]/[transaction-type]/[id] + * + * Examples: + * - gid://warehouse-app/InventoryTransaction/TXN-2024-001 (specific transaction) + * - gid://3pl-system/StockMovement/SM-2024-0125 (stock movement record) + * - gid://pos-app/InventoryUpdate/UPD-98765 (POS inventory update) + * - gid://erp-connector/LedgerEntry/LE-2024-11-21-001 (ledger entry) + * + * Requirements: Valid non-Shopify URI with scheme and content. Required for all + * quantity names except `available`. Cannot use gid://shopify/* format. */ public String getLedgerDocumentUri() { return ledgerDocumentUri; @@ -84,7 +123,7 @@ public void setLedgerDocumentUri(String ledgerDocumentUri) { @Override public String toString() { - return "InventoryChangeInput{delta='" + delta + "', inventoryItemId='" + inventoryItemId + "', locationId='" + locationId + "', ledgerDocumentUri='" + ledgerDocumentUri + "'}"; + return "InventoryChangeInput{delta='" + delta + "', changeFromQuantity='" + changeFromQuantity + "', inventoryItemId='" + inventoryItemId + "', locationId='" + locationId + "', ledgerDocumentUri='" + ledgerDocumentUri + "'}"; } @Override @@ -93,6 +132,7 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) return false; InventoryChangeInput that = (InventoryChangeInput) o; return delta == that.delta && + Objects.equals(changeFromQuantity, that.changeFromQuantity) && Objects.equals(inventoryItemId, that.inventoryItemId) && Objects.equals(locationId, that.locationId) && Objects.equals(ledgerDocumentUri, that.ledgerDocumentUri); @@ -100,7 +140,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(delta, inventoryItemId, locationId, ledgerDocumentUri); + return Objects.hash(delta, changeFromQuantity, inventoryItemId, locationId, ledgerDocumentUri); } public static Builder newBuilder() { @@ -113,6 +153,12 @@ public static class Builder { */ private int delta; + /** + * The quantity to compare against before applying the delta. For more + * information, refer to the [Compare and Swap documentation](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states#compare-and-swap). + */ + private Integer changeFromQuantity; + /** * Specifies the inventory item to which the change will be applied. */ @@ -124,16 +170,27 @@ public static class Builder { private String locationId; /** - * A freeform URI that represents what changed the inventory quantities. A Shopify global ID isn't an accepted - * value. For example, specifying "gid://shopify/Order/123" would return an error. This field is required for all - * quantity names except `available`. The field `ledgerDocumentUri` isn't supported for use with an `available` - * quantity name. + * A non-Shopify URI that identifies what specific inventory transaction or + * ledger entry was changed. Represents the exact inventory movement being + * referenced, distinct from the business reason for the change. + * + * Preferred format - Global ID (GID): gid://[your-app-name]/[transaction-type]/[id] + * + * Examples: + * - gid://warehouse-app/InventoryTransaction/TXN-2024-001 (specific transaction) + * - gid://3pl-system/StockMovement/SM-2024-0125 (stock movement record) + * - gid://pos-app/InventoryUpdate/UPD-98765 (POS inventory update) + * - gid://erp-connector/LedgerEntry/LE-2024-11-21-001 (ledger entry) + * + * Requirements: Valid non-Shopify URI with scheme and content. Required for all + * quantity names except `available`. Cannot use gid://shopify/* format. */ private String ledgerDocumentUri; public InventoryChangeInput build() { InventoryChangeInput result = new InventoryChangeInput(); result.delta = this.delta; + result.changeFromQuantity = this.changeFromQuantity; result.inventoryItemId = this.inventoryItemId; result.locationId = this.locationId; result.ledgerDocumentUri = this.ledgerDocumentUri; @@ -148,6 +205,15 @@ public Builder delta(int delta) { return this; } + /** + * The quantity to compare against before applying the delta. For more + * information, refer to the [Compare and Swap documentation](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states#compare-and-swap). + */ + public Builder changeFromQuantity(Integer changeFromQuantity) { + this.changeFromQuantity = changeFromQuantity; + return this; + } + /** * Specifies the inventory item to which the change will be applied. */ @@ -165,10 +231,20 @@ public Builder locationId(String locationId) { } /** - * A freeform URI that represents what changed the inventory quantities. A Shopify global ID isn't an accepted - * value. For example, specifying "gid://shopify/Order/123" would return an error. This field is required for all - * quantity names except `available`. The field `ledgerDocumentUri` isn't supported for use with an `available` - * quantity name. + * A non-Shopify URI that identifies what specific inventory transaction or + * ledger entry was changed. Represents the exact inventory movement being + * referenced, distinct from the business reason for the change. + * + * Preferred format - Global ID (GID): gid://[your-app-name]/[transaction-type]/[id] + * + * Examples: + * - gid://warehouse-app/InventoryTransaction/TXN-2024-001 (specific transaction) + * - gid://3pl-system/StockMovement/SM-2024-0125 (stock movement record) + * - gid://pos-app/InventoryUpdate/UPD-98765 (POS inventory update) + * - gid://erp-connector/LedgerEntry/LE-2024-11-21-001 (ledger entry) + * + * Requirements: Valid non-Shopify URI with scheme and content. Required for all + * quantity names except `available`. Cannot use gid://shopify/* format. */ public Builder ledgerDocumentUri(String ledgerDocumentUri) { this.ledgerDocumentUri = ledgerDocumentUri; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryItem.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryItem.java index 84bae25b..a351bd46 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryItem.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryItem.java @@ -8,9 +8,12 @@ import java.util.Objects; /** - * Represents the goods available to be shipped to a customer. - * It holds essential information about the goods, including SKU and whether it is tracked. - * Learn [more about the relationships between inventory objects](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states#inventory-object-relationships). + * A [product variant's](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) inventory information across all locations. The inventory item connects the + * product variant to its [inventory levels](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryLevel) + * at different locations, tracking stock keeping unit (SKU), whether quantities + * are tracked, shipping requirements, and customs information for the product. + * + * Learn more about [inventory object relationships](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states#inventory-object-relationships). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE @@ -118,6 +121,11 @@ public class InventoryItem implements com.shopify.admin.types.LegacyInteroperabi */ private ProductVariant variant; + /** + * A paginated list of the variants that reference this inventory item. + */ + private ProductVariantConnection variants; + public InventoryItem() { } @@ -344,9 +352,20 @@ public void setVariant(ProductVariant variant) { this.variant = variant; } + /** + * A paginated list of the variants that reference this inventory item. + */ + public ProductVariantConnection getVariants() { + return variants; + } + + public void setVariants(ProductVariantConnection variants) { + this.variants = variants; + } + @Override public String toString() { - return "InventoryItem{countryCodeOfOrigin='" + countryCodeOfOrigin + "', countryHarmonizedSystemCodes='" + countryHarmonizedSystemCodes + "', createdAt='" + createdAt + "', duplicateSkuCount='" + duplicateSkuCount + "', harmonizedSystemCode='" + harmonizedSystemCode + "', id='" + id + "', inventoryHistoryUrl='" + inventoryHistoryUrl + "', inventoryLevel='" + inventoryLevel + "', inventoryLevels='" + inventoryLevels + "', legacyResourceId='" + legacyResourceId + "', locationsCount='" + locationsCount + "', measurement='" + measurement + "', provinceCodeOfOrigin='" + provinceCodeOfOrigin + "', requiresShipping='" + requiresShipping + "', sku='" + sku + "', tracked='" + tracked + "', trackedEditable='" + trackedEditable + "', unitCost='" + unitCost + "', updatedAt='" + updatedAt + "', variant='" + variant + "'}"; + return "InventoryItem{countryCodeOfOrigin='" + countryCodeOfOrigin + "', countryHarmonizedSystemCodes='" + countryHarmonizedSystemCodes + "', createdAt='" + createdAt + "', duplicateSkuCount='" + duplicateSkuCount + "', harmonizedSystemCode='" + harmonizedSystemCode + "', id='" + id + "', inventoryHistoryUrl='" + inventoryHistoryUrl + "', inventoryLevel='" + inventoryLevel + "', inventoryLevels='" + inventoryLevels + "', legacyResourceId='" + legacyResourceId + "', locationsCount='" + locationsCount + "', measurement='" + measurement + "', provinceCodeOfOrigin='" + provinceCodeOfOrigin + "', requiresShipping='" + requiresShipping + "', sku='" + sku + "', tracked='" + tracked + "', trackedEditable='" + trackedEditable + "', unitCost='" + unitCost + "', updatedAt='" + updatedAt + "', variant='" + variant + "', variants='" + variants + "'}"; } @Override @@ -373,12 +392,13 @@ public boolean equals(Object o) { Objects.equals(trackedEditable, that.trackedEditable) && Objects.equals(unitCost, that.unitCost) && Objects.equals(updatedAt, that.updatedAt) && - Objects.equals(variant, that.variant); + Objects.equals(variant, that.variant) && + Objects.equals(variants, that.variants); } @Override public int hashCode() { - return Objects.hash(countryCodeOfOrigin, countryHarmonizedSystemCodes, createdAt, duplicateSkuCount, harmonizedSystemCode, id, inventoryHistoryUrl, inventoryLevel, inventoryLevels, legacyResourceId, locationsCount, measurement, provinceCodeOfOrigin, requiresShipping, sku, tracked, trackedEditable, unitCost, updatedAt, variant); + return Objects.hash(countryCodeOfOrigin, countryHarmonizedSystemCodes, createdAt, duplicateSkuCount, harmonizedSystemCode, id, inventoryHistoryUrl, inventoryLevel, inventoryLevels, legacyResourceId, locationsCount, measurement, provinceCodeOfOrigin, requiresShipping, sku, tracked, trackedEditable, unitCost, updatedAt, variant, variants); } public static Builder newBuilder() { @@ -488,6 +508,11 @@ public static class Builder { */ private ProductVariant variant; + /** + * A paginated list of the variants that reference this inventory item. + */ + private ProductVariantConnection variants; + public InventoryItem build() { InventoryItem result = new InventoryItem(); result.countryCodeOfOrigin = this.countryCodeOfOrigin; @@ -510,6 +535,7 @@ public InventoryItem build() { result.unitCost = this.unitCost; result.updatedAt = this.updatedAt; result.variant = this.variant; + result.variants = this.variants; return result; } @@ -675,5 +701,13 @@ public Builder variant(ProductVariant variant) { this.variant = variant; return this; } + + /** + * A paginated list of the variants that reference this inventory item. + */ + public Builder variants(ProductVariantConnection variants) { + this.variants = variants; + return this; + } } } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryItemInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryItemInput.java index 918b1de6..6f149b49 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryItemInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryItemInput.java @@ -27,7 +27,9 @@ public class InventoryItemInput { private Boolean tracked; /** - * The ISO 3166-1 alpha-2 country code of where the item originated from. + * The country where the item was manufactured or produced, specified using the + * standard two-letter [ISO 3166-1 + * alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code. */ private CountryCode countryCodeOfOrigin; @@ -42,7 +44,9 @@ public class InventoryItemInput { private List countryHarmonizedSystemCodes; /** - * The ISO 3166-2 alpha-2 province code of where the item originated from. + * The province where the item was manufactured or produced, specified using the + * standard two-letter [ISO 3166-2 + * alpha-2](https://en.wikipedia.org/wiki/ISO_3166-2) province code. */ private String provinceCodeOfOrigin; @@ -51,6 +55,11 @@ public class InventoryItemInput { */ private InventoryItemMeasurementInput measurement; + /** + * Whether the inventory item needs to be physically shipped to the customer. + * Items that require shipping are physical products, while digital goods and + * services typically don't require shipping and can be fulfilled electronically. + */ private Boolean requiresShipping; public InventoryItemInput() { @@ -90,7 +99,9 @@ public void setTracked(Boolean tracked) { } /** - * The ISO 3166-1 alpha-2 country code of where the item originated from. + * The country where the item was manufactured or produced, specified using the + * standard two-letter [ISO 3166-1 + * alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code. */ public CountryCode getCountryCodeOfOrigin() { return countryCodeOfOrigin; @@ -124,7 +135,9 @@ public void setCountryHarmonizedSystemCodes( } /** - * The ISO 3166-2 alpha-2 province code of where the item originated from. + * The province where the item was manufactured or produced, specified using the + * standard two-letter [ISO 3166-2 + * alpha-2](https://en.wikipedia.org/wiki/ISO_3166-2) province code. */ public String getProvinceCodeOfOrigin() { return provinceCodeOfOrigin; @@ -145,6 +158,11 @@ public void setMeasurement(InventoryItemMeasurementInput measurement) { this.measurement = measurement; } + /** + * Whether the inventory item needs to be physically shipped to the customer. + * Items that require shipping are physical products, while digital goods and + * services typically don't require shipping and can be fulfilled electronically. + */ public Boolean getRequiresShipping() { return requiresShipping; } @@ -200,7 +218,9 @@ public static class Builder { private Boolean tracked; /** - * The ISO 3166-1 alpha-2 country code of where the item originated from. + * The country where the item was manufactured or produced, specified using the + * standard two-letter [ISO 3166-1 + * alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code. */ private CountryCode countryCodeOfOrigin; @@ -215,7 +235,9 @@ public static class Builder { private List countryHarmonizedSystemCodes; /** - * The ISO 3166-2 alpha-2 province code of where the item originated from. + * The province where the item was manufactured or produced, specified using the + * standard two-letter [ISO 3166-2 + * alpha-2](https://en.wikipedia.org/wiki/ISO_3166-2) province code. */ private String provinceCodeOfOrigin; @@ -224,6 +246,11 @@ public static class Builder { */ private InventoryItemMeasurementInput measurement; + /** + * Whether the inventory item needs to be physically shipped to the customer. + * Items that require shipping are physical products, while digital goods and + * services typically don't require shipping and can be fulfilled electronically. + */ private Boolean requiresShipping; public InventoryItemInput build() { @@ -265,7 +292,9 @@ public Builder tracked(Boolean tracked) { } /** - * The ISO 3166-1 alpha-2 country code of where the item originated from. + * The country where the item was manufactured or produced, specified using the + * standard two-letter [ISO 3166-1 + * alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code. */ public Builder countryCodeOfOrigin(CountryCode countryCodeOfOrigin) { this.countryCodeOfOrigin = countryCodeOfOrigin; @@ -290,7 +319,9 @@ public Builder countryHarmonizedSystemCodes( } /** - * The ISO 3166-2 alpha-2 province code of where the item originated from. + * The province where the item was manufactured or produced, specified using the + * standard two-letter [ISO 3166-2 + * alpha-2](https://en.wikipedia.org/wiki/ISO_3166-2) province code. */ public Builder provinceCodeOfOrigin(String provinceCodeOfOrigin) { this.provinceCodeOfOrigin = provinceCodeOfOrigin; @@ -305,6 +336,11 @@ public Builder measurement(InventoryItemMeasurementInput measurement) { return this; } + /** + * Whether the inventory item needs to be physically shipped to the customer. + * Items that require shipping are physical products, while digital goods and + * services typically don't require shipping and can be fulfilled electronically. + */ public Builder requiresShipping(Boolean requiresShipping) { this.requiresShipping = requiresShipping; return this; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryItemMeasurement.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryItemMeasurement.java index e8e026ed..e98d12cb 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryItemMeasurement.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryItemMeasurement.java @@ -7,7 +7,9 @@ import java.util.Objects; /** - * Represents the packaged dimension for an inventory item. + * Weight information for an [`InventoryItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryItem) + * when packaged. Provides the weight specification used for inventory management + * and shipping calculations. Learn more about [managing inventory](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryItemMeasurementInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryItemMeasurementInput.java index 85450459..c7c30bf7 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryItemMeasurementInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryItemMeasurementInput.java @@ -14,6 +14,11 @@ public class InventoryItemMeasurementInput { */ private WeightInput weight; + /** + * Shipping package associated with inventory item. + */ + private String shippingPackageId; + public InventoryItemMeasurementInput() { } @@ -28,9 +33,20 @@ public void setWeight(WeightInput weight) { this.weight = weight; } + /** + * Shipping package associated with inventory item. + */ + public String getShippingPackageId() { + return shippingPackageId; + } + + public void setShippingPackageId(String shippingPackageId) { + this.shippingPackageId = shippingPackageId; + } + @Override public String toString() { - return "InventoryItemMeasurementInput{weight='" + weight + "'}"; + return "InventoryItemMeasurementInput{weight='" + weight + "', shippingPackageId='" + shippingPackageId + "'}"; } @Override @@ -38,12 +54,13 @@ public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; InventoryItemMeasurementInput that = (InventoryItemMeasurementInput) o; - return Objects.equals(weight, that.weight); + return Objects.equals(weight, that.weight) && + Objects.equals(shippingPackageId, that.shippingPackageId); } @Override public int hashCode() { - return Objects.hash(weight); + return Objects.hash(weight, shippingPackageId); } public static Builder newBuilder() { @@ -56,9 +73,15 @@ public static class Builder { */ private WeightInput weight; + /** + * Shipping package associated with inventory item. + */ + private String shippingPackageId; + public InventoryItemMeasurementInput build() { InventoryItemMeasurementInput result = new InventoryItemMeasurementInput(); result.weight = this.weight; + result.shippingPackageId = this.shippingPackageId; return result; } @@ -69,5 +92,13 @@ public Builder weight(WeightInput weight) { this.weight = weight; return this; } + + /** + * Shipping package associated with inventory item. + */ + public Builder shippingPackageId(String shippingPackageId) { + this.shippingPackageId = shippingPackageId; + return this; + } } } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryLevel.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryLevel.java index 2f99b310..bb22ab7f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryLevel.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryLevel.java @@ -9,8 +9,10 @@ import java.util.Objects; /** - * The quantities of an inventory item that are related to a specific location. - * Learn [more about the relationships between inventory objects](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states#inventory-object-relationships). + * The quantities of an inventory item at a specific location. Each inventory level connects one [`InventoryItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryItem) to one [`Location`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location), + * tracking multiple quantity states like available, on-hand, incoming, and committed. + * + * The [`quantities`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryLevel#field-InventoryLevel.fields.quantities) field provides access to different inventory states. Learn [more about inventory states and relationships](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states#inventory-object-relationships). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE @@ -47,7 +49,8 @@ public class InventoryLevel implements com.shopify.admin.types.Node { private Location location; /** - * Quantities for the requested names. + * The quantity of an inventory item at a specific location, for a quantity + * [name](https://shopify.dev/docs/apps/fulfillment/inventory-management-apps#inventory-states). */ private List quantities; @@ -131,7 +134,8 @@ public void setLocation(Location location) { } /** - * Quantities for the requested names. + * The quantity of an inventory item at a specific location, for a quantity + * [name](https://shopify.dev/docs/apps/fulfillment/inventory-management-apps#inventory-states). */ public List getQuantities() { return quantities; @@ -225,7 +229,8 @@ public static class Builder { private Location location; /** - * Quantities for the requested names. + * The quantity of an inventory item at a specific location, for a quantity + * [name](https://shopify.dev/docs/apps/fulfillment/inventory-management-apps#inventory-states). */ private List quantities; @@ -302,7 +307,8 @@ public Builder location(Location location) { } /** - * Quantities for the requested names. + * The quantity of an inventory item at a specific location, for a quantity + * [name](https://shopify.dev/docs/apps/fulfillment/inventory-management-apps#inventory-states). */ public Builder quantities(List quantities) { this.quantities = quantities; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryMoveQuantitiesInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryMoveQuantitiesInput.java index da23edec..eb100f13 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryMoveQuantitiesInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryMoveQuantitiesInput.java @@ -17,10 +17,25 @@ public class InventoryMoveQuantitiesInput { private String reason; /** - * A freeform URI that represents why the inventory change happened. This can be the entity adjusting inventory - * quantities or the Shopify resource that's associated with the inventory adjustment. For example, a unit in a - * draft order might have been previously reserved, and a merchant later creates an order from the draft order. - * In this case, the `referenceDocumentUri` for the inventory adjustment is a URI referencing the order ID. + * A URI that represents why the inventory change happened, identifying the + * source system and document that caused this adjustment. Enables complete audit + * trails and brand visibility in Shopify admin inventory history. + * + * Preferred format - Global ID (GID): gid://[your-app-name]/[entity-type]/[id] + * + * Examples: + * - gid://warehouse-app/PurchaseOrder/PO-2024-001 (stock received) + * - gid://3pl-system/CycleCount/CC-2024-0125 (cycle count adjustment) + * - gid://pos-app/Transaction/TXN-98765 (in-store sale) + * - gid://erp-connector/SyncJob/SYNC-2024-11-21-001 (ERP sync) + * - gid://shopify/Order/1234567890 (Shopify order reference) + * + * Benefits: Your app name appears directly in merchant inventory history, + * reducing support tickets and providing clear audit trails for compliance. + * + * Alternative formats (also supported): https://myapp.com/documents/12345, custom-scheme://identifier + * + * Requirements: Valid URI with scheme and content. For GID format, all components (app, entity, id) must be present. */ private String referenceDocumentUri; @@ -45,10 +60,25 @@ public void setReason(String reason) { } /** - * A freeform URI that represents why the inventory change happened. This can be the entity adjusting inventory - * quantities or the Shopify resource that's associated with the inventory adjustment. For example, a unit in a - * draft order might have been previously reserved, and a merchant later creates an order from the draft order. - * In this case, the `referenceDocumentUri` for the inventory adjustment is a URI referencing the order ID. + * A URI that represents why the inventory change happened, identifying the + * source system and document that caused this adjustment. Enables complete audit + * trails and brand visibility in Shopify admin inventory history. + * + * Preferred format - Global ID (GID): gid://[your-app-name]/[entity-type]/[id] + * + * Examples: + * - gid://warehouse-app/PurchaseOrder/PO-2024-001 (stock received) + * - gid://3pl-system/CycleCount/CC-2024-0125 (cycle count adjustment) + * - gid://pos-app/Transaction/TXN-98765 (in-store sale) + * - gid://erp-connector/SyncJob/SYNC-2024-11-21-001 (ERP sync) + * - gid://shopify/Order/1234567890 (Shopify order reference) + * + * Benefits: Your app name appears directly in merchant inventory history, + * reducing support tickets and providing clear audit trails for compliance. + * + * Alternative formats (also supported): https://myapp.com/documents/12345, custom-scheme://identifier + * + * Requirements: Valid URI with scheme and content. For GID format, all components (app, entity, id) must be present. */ public String getReferenceDocumentUri() { return referenceDocumentUri; @@ -101,10 +131,25 @@ public static class Builder { private String reason; /** - * A freeform URI that represents why the inventory change happened. This can be the entity adjusting inventory - * quantities or the Shopify resource that's associated with the inventory adjustment. For example, a unit in a - * draft order might have been previously reserved, and a merchant later creates an order from the draft order. - * In this case, the `referenceDocumentUri` for the inventory adjustment is a URI referencing the order ID. + * A URI that represents why the inventory change happened, identifying the + * source system and document that caused this adjustment. Enables complete audit + * trails and brand visibility in Shopify admin inventory history. + * + * Preferred format - Global ID (GID): gid://[your-app-name]/[entity-type]/[id] + * + * Examples: + * - gid://warehouse-app/PurchaseOrder/PO-2024-001 (stock received) + * - gid://3pl-system/CycleCount/CC-2024-0125 (cycle count adjustment) + * - gid://pos-app/Transaction/TXN-98765 (in-store sale) + * - gid://erp-connector/SyncJob/SYNC-2024-11-21-001 (ERP sync) + * - gid://shopify/Order/1234567890 (Shopify order reference) + * + * Benefits: Your app name appears directly in merchant inventory history, + * reducing support tickets and providing clear audit trails for compliance. + * + * Alternative formats (also supported): https://myapp.com/documents/12345, custom-scheme://identifier + * + * Requirements: Valid URI with scheme and content. For GID format, all components (app, entity, id) must be present. */ private String referenceDocumentUri; @@ -131,10 +176,25 @@ public Builder reason(String reason) { } /** - * A freeform URI that represents why the inventory change happened. This can be the entity adjusting inventory - * quantities or the Shopify resource that's associated with the inventory adjustment. For example, a unit in a - * draft order might have been previously reserved, and a merchant later creates an order from the draft order. - * In this case, the `referenceDocumentUri` for the inventory adjustment is a URI referencing the order ID. + * A URI that represents why the inventory change happened, identifying the + * source system and document that caused this adjustment. Enables complete audit + * trails and brand visibility in Shopify admin inventory history. + * + * Preferred format - Global ID (GID): gid://[your-app-name]/[entity-type]/[id] + * + * Examples: + * - gid://warehouse-app/PurchaseOrder/PO-2024-001 (stock received) + * - gid://3pl-system/CycleCount/CC-2024-0125 (cycle count adjustment) + * - gid://pos-app/Transaction/TXN-98765 (in-store sale) + * - gid://erp-connector/SyncJob/SYNC-2024-11-21-001 (ERP sync) + * - gid://shopify/Order/1234567890 (Shopify order reference) + * + * Benefits: Your app name appears directly in merchant inventory history, + * reducing support tickets and providing clear audit trails for compliance. + * + * Alternative formats (also supported): https://myapp.com/documents/12345, custom-scheme://identifier + * + * Requirements: Valid URI with scheme and content. For GID format, all components (app, entity, id) must be present. */ public Builder referenceDocumentUri(String referenceDocumentUri) { this.referenceDocumentUri = referenceDocumentUri; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryMoveQuantitiesUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryMoveQuantitiesUserErrorCode.java index 246a83ed..aff83800 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryMoveQuantitiesUserErrorCode.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryMoveQuantitiesUserErrorCode.java @@ -26,6 +26,10 @@ public enum InventoryMoveQuantitiesUserErrorCode { INVALID_REFERENCE_DOCUMENT, + SERVICE_UNAVAILABLE, + + CHANGE_FROM_QUANTITY_STALE, + MOVE_QUANTITIES_FAILED, DIFFERENT_LOCATIONS, @@ -36,5 +40,9 @@ public enum InventoryMoveQuantitiesUserErrorCode { ITEM_NOT_STOCKED_AT_LOCATION, - NON_MUTABLE_INVENTORY_ITEM + NON_MUTABLE_INVENTORY_ITEM, + + IDEMPOTENCY_CONCURRENT_REQUEST, + + IDEMPOTENCY_KEY_PARAMETER_MISMATCH } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryMoveQuantityTerminalInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryMoveQuantityTerminalInput.java index da73333c..2175f1f9 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryMoveQuantityTerminalInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryMoveQuantityTerminalInput.java @@ -1,5 +1,6 @@ package com.shopify.admin.types; +import java.lang.Integer; import java.lang.Object; import java.lang.Override; import java.lang.String; @@ -22,13 +23,29 @@ public class InventoryMoveQuantityTerminalInput { private String name; /** - * A freeform URI that represents what changed the inventory quantities. A Shopify global ID isn't an accepted - * value. For example, specifying "gid://shopify/Order/123" would return an error. This field is required for a move of - * all quantity names except `available`. The field `ledgerDocumentUri` isn't supported for use with an - * `available` quantity name. + * A non-Shopify URI that identifies what specific inventory transaction or + * ledger entry was changed. Represents the exact inventory movement being + * referenced, distinct from the business reason for the change. + * + * Preferred format - Global ID (GID): gid://[your-app-name]/[transaction-type]/[id] + * + * Examples: + * - gid://warehouse-app/InventoryTransaction/TXN-2024-001 (specific transaction) + * - gid://3pl-system/StockMovement/SM-2024-0125 (stock movement record) + * - gid://pos-app/InventoryUpdate/UPD-98765 (POS inventory update) + * - gid://erp-connector/LedgerEntry/LE-2024-11-21-001 (ledger entry) + * + * Requirements: Valid non-Shopify URI with scheme and content. Required for all + * quantity names except `available`. Cannot use gid://shopify/* format. */ private String ledgerDocumentUri; + /** + * The quantity to compare against before applying the move. For more + * information, refer to the [Compare and Swap documentation](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states#compare-and-swap). + */ + private Integer changeFromQuantity; + public InventoryMoveQuantityTerminalInput() { } @@ -57,10 +74,20 @@ public void setName(String name) { } /** - * A freeform URI that represents what changed the inventory quantities. A Shopify global ID isn't an accepted - * value. For example, specifying "gid://shopify/Order/123" would return an error. This field is required for a move of - * all quantity names except `available`. The field `ledgerDocumentUri` isn't supported for use with an - * `available` quantity name. + * A non-Shopify URI that identifies what specific inventory transaction or + * ledger entry was changed. Represents the exact inventory movement being + * referenced, distinct from the business reason for the change. + * + * Preferred format - Global ID (GID): gid://[your-app-name]/[transaction-type]/[id] + * + * Examples: + * - gid://warehouse-app/InventoryTransaction/TXN-2024-001 (specific transaction) + * - gid://3pl-system/StockMovement/SM-2024-0125 (stock movement record) + * - gid://pos-app/InventoryUpdate/UPD-98765 (POS inventory update) + * - gid://erp-connector/LedgerEntry/LE-2024-11-21-001 (ledger entry) + * + * Requirements: Valid non-Shopify URI with scheme and content. Required for all + * quantity names except `available`. Cannot use gid://shopify/* format. */ public String getLedgerDocumentUri() { return ledgerDocumentUri; @@ -70,9 +97,21 @@ public void setLedgerDocumentUri(String ledgerDocumentUri) { this.ledgerDocumentUri = ledgerDocumentUri; } + /** + * The quantity to compare against before applying the move. For more + * information, refer to the [Compare and Swap documentation](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states#compare-and-swap). + */ + public Integer getChangeFromQuantity() { + return changeFromQuantity; + } + + public void setChangeFromQuantity(Integer changeFromQuantity) { + this.changeFromQuantity = changeFromQuantity; + } + @Override public String toString() { - return "InventoryMoveQuantityTerminalInput{locationId='" + locationId + "', name='" + name + "', ledgerDocumentUri='" + ledgerDocumentUri + "'}"; + return "InventoryMoveQuantityTerminalInput{locationId='" + locationId + "', name='" + name + "', ledgerDocumentUri='" + ledgerDocumentUri + "', changeFromQuantity='" + changeFromQuantity + "'}"; } @Override @@ -82,12 +121,13 @@ public boolean equals(Object o) { InventoryMoveQuantityTerminalInput that = (InventoryMoveQuantityTerminalInput) o; return Objects.equals(locationId, that.locationId) && Objects.equals(name, that.name) && - Objects.equals(ledgerDocumentUri, that.ledgerDocumentUri); + Objects.equals(ledgerDocumentUri, that.ledgerDocumentUri) && + Objects.equals(changeFromQuantity, that.changeFromQuantity); } @Override public int hashCode() { - return Objects.hash(locationId, name, ledgerDocumentUri); + return Objects.hash(locationId, name, ledgerDocumentUri, changeFromQuantity); } public static Builder newBuilder() { @@ -108,18 +148,35 @@ public static class Builder { private String name; /** - * A freeform URI that represents what changed the inventory quantities. A Shopify global ID isn't an accepted - * value. For example, specifying "gid://shopify/Order/123" would return an error. This field is required for a move of - * all quantity names except `available`. The field `ledgerDocumentUri` isn't supported for use with an - * `available` quantity name. + * A non-Shopify URI that identifies what specific inventory transaction or + * ledger entry was changed. Represents the exact inventory movement being + * referenced, distinct from the business reason for the change. + * + * Preferred format - Global ID (GID): gid://[your-app-name]/[transaction-type]/[id] + * + * Examples: + * - gid://warehouse-app/InventoryTransaction/TXN-2024-001 (specific transaction) + * - gid://3pl-system/StockMovement/SM-2024-0125 (stock movement record) + * - gid://pos-app/InventoryUpdate/UPD-98765 (POS inventory update) + * - gid://erp-connector/LedgerEntry/LE-2024-11-21-001 (ledger entry) + * + * Requirements: Valid non-Shopify URI with scheme and content. Required for all + * quantity names except `available`. Cannot use gid://shopify/* format. */ private String ledgerDocumentUri; + /** + * The quantity to compare against before applying the move. For more + * information, refer to the [Compare and Swap documentation](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states#compare-and-swap). + */ + private Integer changeFromQuantity; + public InventoryMoveQuantityTerminalInput build() { InventoryMoveQuantityTerminalInput result = new InventoryMoveQuantityTerminalInput(); result.locationId = this.locationId; result.name = this.name; result.ledgerDocumentUri = this.ledgerDocumentUri; + result.changeFromQuantity = this.changeFromQuantity; return result; } @@ -142,14 +199,33 @@ public Builder name(String name) { } /** - * A freeform URI that represents what changed the inventory quantities. A Shopify global ID isn't an accepted - * value. For example, specifying "gid://shopify/Order/123" would return an error. This field is required for a move of - * all quantity names except `available`. The field `ledgerDocumentUri` isn't supported for use with an - * `available` quantity name. + * A non-Shopify URI that identifies what specific inventory transaction or + * ledger entry was changed. Represents the exact inventory movement being + * referenced, distinct from the business reason for the change. + * + * Preferred format - Global ID (GID): gid://[your-app-name]/[transaction-type]/[id] + * + * Examples: + * - gid://warehouse-app/InventoryTransaction/TXN-2024-001 (specific transaction) + * - gid://3pl-system/StockMovement/SM-2024-0125 (stock movement record) + * - gid://pos-app/InventoryUpdate/UPD-98765 (POS inventory update) + * - gid://erp-connector/LedgerEntry/LE-2024-11-21-001 (ledger entry) + * + * Requirements: Valid non-Shopify URI with scheme and content. Required for all + * quantity names except `available`. Cannot use gid://shopify/* format. */ public Builder ledgerDocumentUri(String ledgerDocumentUri) { this.ledgerDocumentUri = ledgerDocumentUri; return this; } + + /** + * The quantity to compare against before applying the move. For more + * information, refer to the [Compare and Swap documentation](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states#compare-and-swap). + */ + public Builder changeFromQuantity(Integer changeFromQuantity) { + this.changeFromQuantity = changeFromQuantity; + return this; + } } } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryQuantity.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryQuantity.java index 2f4ea8ea..5a592a74 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryQuantity.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryQuantity.java @@ -8,7 +8,19 @@ import java.util.Objects; /** - * Represents a quantity of an inventory item at a specific location, for a specific name. + * The `InventoryQuantity` object lets you manage and track inventory quantities for specific [states](https://shopify.dev/docs/apps/fulfillment/inventory-management-apps#inventory-states). + * Inventory quantities represent different states of items such as available for + * purchase, committed to orders, reserved for drafts, incoming from suppliers, or + * set aside for quality control or safety stock. + * + * You can use [inventory levels](https://shopify.dev/docs/api/admin-graphql/latest/objects/inventorylevel) + * to manage where inventory items are stocked. You can also [make inventory adjustments](https://shopify.dev/docs/api/admin-graphql/latest/mutations/inventoryAdjustQuantities) + * to apply changes to inventory quantities. + * + * Inventory quantities can be managed by a merchant or by [fulfillment services](https://shopify.dev/docs/api/admin-graphql/latest/objects/fulfillmentservice) + * that handle inventory tracking. + * Learn more about working with [Shopify's inventory management + * system](https://shopify.dev/docs/apps/fulfillment/inventory-management-apps). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE @@ -20,18 +32,19 @@ public class InventoryQuantity implements com.shopify.admin.types.Node { private String id; /** - * The [name](https://shopify.dev/docs/apps/fulfillment/inventory-management-apps#inventory-states) + * The inventory state [name](https://shopify.dev/docs/apps/fulfillment/inventory-management-apps#inventory-states) * that identifies the inventory quantity. */ private String name; /** - * The quantity for the quantity name. + * The quantity of an inventory item at a specific location, for a quantity + * [name](https://shopify.dev/docs/apps/fulfillment/inventory-management-apps#inventory-states). */ private int quantity; /** - * When the quantity was last updated. + * When the inventory quantity was last updated. */ private OffsetDateTime updatedAt; @@ -50,7 +63,7 @@ public void setId(String id) { } /** - * The [name](https://shopify.dev/docs/apps/fulfillment/inventory-management-apps#inventory-states) + * The inventory state [name](https://shopify.dev/docs/apps/fulfillment/inventory-management-apps#inventory-states) * that identifies the inventory quantity. */ public String getName() { @@ -62,7 +75,8 @@ public void setName(String name) { } /** - * The quantity for the quantity name. + * The quantity of an inventory item at a specific location, for a quantity + * [name](https://shopify.dev/docs/apps/fulfillment/inventory-management-apps#inventory-states). */ public int getQuantity() { return quantity; @@ -73,7 +87,7 @@ public void setQuantity(int quantity) { } /** - * When the quantity was last updated. + * When the inventory quantity was last updated. */ public OffsetDateTime getUpdatedAt() { return updatedAt; @@ -115,18 +129,19 @@ public static class Builder { private String id; /** - * The [name](https://shopify.dev/docs/apps/fulfillment/inventory-management-apps#inventory-states) + * The inventory state [name](https://shopify.dev/docs/apps/fulfillment/inventory-management-apps#inventory-states) * that identifies the inventory quantity. */ private String name; /** - * The quantity for the quantity name. + * The quantity of an inventory item at a specific location, for a quantity + * [name](https://shopify.dev/docs/apps/fulfillment/inventory-management-apps#inventory-states). */ private int quantity; /** - * When the quantity was last updated. + * When the inventory quantity was last updated. */ private OffsetDateTime updatedAt; @@ -148,7 +163,7 @@ public Builder id(String id) { } /** - * The [name](https://shopify.dev/docs/apps/fulfillment/inventory-management-apps#inventory-states) + * The inventory state [name](https://shopify.dev/docs/apps/fulfillment/inventory-management-apps#inventory-states) * that identifies the inventory quantity. */ public Builder name(String name) { @@ -157,7 +172,8 @@ public Builder name(String name) { } /** - * The quantity for the quantity name. + * The quantity of an inventory item at a specific location, for a quantity + * [name](https://shopify.dev/docs/apps/fulfillment/inventory-management-apps#inventory-states). */ public Builder quantity(int quantity) { this.quantity = quantity; @@ -165,7 +181,7 @@ public Builder quantity(int quantity) { } /** - * When the quantity was last updated. + * When the inventory quantity was last updated. */ public Builder updatedAt(OffsetDateTime updatedAt) { this.updatedAt = updatedAt; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryQuantityInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryQuantityInput.java index 8954226c..c430eba0 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryQuantityInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryQuantityInput.java @@ -27,8 +27,13 @@ public class InventoryQuantityInput { /** * The current quantity to be compared against the persisted quantity. + * Explicitly passing in `null` to this field opts out of the quantity comparison check. + * Explicitly passing in any value (be it `null` or an integer) to `changeFromQuantity` will cause the values + * passed into the `compareQuantity` and `InventorySetQuantitiesInput.ignoreCompareQuantity` fields to be + * ignored in favour of the `changeFromQuantity` value. For more information, + * refer to the [Compare and Swap documentation](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states#compare-and-swap). */ - private Integer compareQuantity; + private Integer changeFromQuantity; public InventoryQuantityInput() { } @@ -68,18 +73,23 @@ public void setQuantity(int quantity) { /** * The current quantity to be compared against the persisted quantity. + * Explicitly passing in `null` to this field opts out of the quantity comparison check. + * Explicitly passing in any value (be it `null` or an integer) to `changeFromQuantity` will cause the values + * passed into the `compareQuantity` and `InventorySetQuantitiesInput.ignoreCompareQuantity` fields to be + * ignored in favour of the `changeFromQuantity` value. For more information, + * refer to the [Compare and Swap documentation](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states#compare-and-swap). */ - public Integer getCompareQuantity() { - return compareQuantity; + public Integer getChangeFromQuantity() { + return changeFromQuantity; } - public void setCompareQuantity(Integer compareQuantity) { - this.compareQuantity = compareQuantity; + public void setChangeFromQuantity(Integer changeFromQuantity) { + this.changeFromQuantity = changeFromQuantity; } @Override public String toString() { - return "InventoryQuantityInput{inventoryItemId='" + inventoryItemId + "', locationId='" + locationId + "', quantity='" + quantity + "', compareQuantity='" + compareQuantity + "'}"; + return "InventoryQuantityInput{inventoryItemId='" + inventoryItemId + "', locationId='" + locationId + "', quantity='" + quantity + "', changeFromQuantity='" + changeFromQuantity + "'}"; } @Override @@ -90,12 +100,12 @@ public boolean equals(Object o) { return Objects.equals(inventoryItemId, that.inventoryItemId) && Objects.equals(locationId, that.locationId) && quantity == that.quantity && - Objects.equals(compareQuantity, that.compareQuantity); + Objects.equals(changeFromQuantity, that.changeFromQuantity); } @Override public int hashCode() { - return Objects.hash(inventoryItemId, locationId, quantity, compareQuantity); + return Objects.hash(inventoryItemId, locationId, quantity, changeFromQuantity); } public static Builder newBuilder() { @@ -120,15 +130,20 @@ public static class Builder { /** * The current quantity to be compared against the persisted quantity. + * Explicitly passing in `null` to this field opts out of the quantity comparison check. + * Explicitly passing in any value (be it `null` or an integer) to `changeFromQuantity` will cause the values + * passed into the `compareQuantity` and `InventorySetQuantitiesInput.ignoreCompareQuantity` fields to be + * ignored in favour of the `changeFromQuantity` value. For more information, + * refer to the [Compare and Swap documentation](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states#compare-and-swap). */ - private Integer compareQuantity; + private Integer changeFromQuantity; public InventoryQuantityInput build() { InventoryQuantityInput result = new InventoryQuantityInput(); result.inventoryItemId = this.inventoryItemId; result.locationId = this.locationId; result.quantity = this.quantity; - result.compareQuantity = this.compareQuantity; + result.changeFromQuantity = this.changeFromQuantity; return result; } @@ -158,9 +173,14 @@ public Builder quantity(int quantity) { /** * The current quantity to be compared against the persisted quantity. + * Explicitly passing in `null` to this field opts out of the quantity comparison check. + * Explicitly passing in any value (be it `null` or an integer) to `changeFromQuantity` will cause the values + * passed into the `compareQuantity` and `InventorySetQuantitiesInput.ignoreCompareQuantity` fields to be + * ignored in favour of the `changeFromQuantity` value. For more information, + * refer to the [Compare and Swap documentation](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states#compare-and-swap). */ - public Builder compareQuantity(Integer compareQuantity) { - this.compareQuantity = compareQuantity; + public Builder changeFromQuantity(Integer changeFromQuantity) { + this.changeFromQuantity = changeFromQuantity; return this; } } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryScheduledChangeItemInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryScheduledChangeItemInput.java index d90f9ba7..459c5206 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryScheduledChangeItemInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryScheduledChangeItemInput.java @@ -21,7 +21,19 @@ public class InventoryScheduledChangeItemInput { private String locationId; /** - * A freeform URI that represents what changed the inventory quantities. + * A non-Shopify URI that identifies what specific inventory transaction or + * ledger entry was changed. Represents the exact inventory movement being + * referenced, distinct from the business reason for the change. + * + * Preferred format - Global ID (GID): gid://[your-app-name]/[transaction-type]/[id] + * + * Examples: + * - gid://warehouse-app/InventoryTransaction/TXN-2024-001 (specific transaction) + * - gid://3pl-system/StockMovement/SM-2024-0125 (stock movement record) + * - gid://pos-app/InventoryUpdate/UPD-98765 (POS inventory update) + * - gid://erp-connector/LedgerEntry/LE-2024-11-21-001 (ledger entry) + * + * Requirements: Valid non-Shopify URI with scheme and content. Cannot use gid://shopify/* format. */ private String ledgerDocumentUri; @@ -56,7 +68,19 @@ public void setLocationId(String locationId) { } /** - * A freeform URI that represents what changed the inventory quantities. + * A non-Shopify URI that identifies what specific inventory transaction or + * ledger entry was changed. Represents the exact inventory movement being + * referenced, distinct from the business reason for the change. + * + * Preferred format - Global ID (GID): gid://[your-app-name]/[transaction-type]/[id] + * + * Examples: + * - gid://warehouse-app/InventoryTransaction/TXN-2024-001 (specific transaction) + * - gid://3pl-system/StockMovement/SM-2024-0125 (stock movement record) + * - gid://pos-app/InventoryUpdate/UPD-98765 (POS inventory update) + * - gid://erp-connector/LedgerEntry/LE-2024-11-21-001 (ledger entry) + * + * Requirements: Valid non-Shopify URI with scheme and content. Cannot use gid://shopify/* format. */ public String getLedgerDocumentUri() { return ledgerDocumentUri; @@ -114,7 +138,19 @@ public static class Builder { private String locationId; /** - * A freeform URI that represents what changed the inventory quantities. + * A non-Shopify URI that identifies what specific inventory transaction or + * ledger entry was changed. Represents the exact inventory movement being + * referenced, distinct from the business reason for the change. + * + * Preferred format - Global ID (GID): gid://[your-app-name]/[transaction-type]/[id] + * + * Examples: + * - gid://warehouse-app/InventoryTransaction/TXN-2024-001 (specific transaction) + * - gid://3pl-system/StockMovement/SM-2024-0125 (stock movement record) + * - gid://pos-app/InventoryUpdate/UPD-98765 (POS inventory update) + * - gid://erp-connector/LedgerEntry/LE-2024-11-21-001 (ledger entry) + * + * Requirements: Valid non-Shopify URI with scheme and content. Cannot use gid://shopify/* format. */ private String ledgerDocumentUri; @@ -149,7 +185,19 @@ public Builder locationId(String locationId) { } /** - * A freeform URI that represents what changed the inventory quantities. + * A non-Shopify URI that identifies what specific inventory transaction or + * ledger entry was changed. Represents the exact inventory movement being + * referenced, distinct from the business reason for the change. + * + * Preferred format - Global ID (GID): gid://[your-app-name]/[transaction-type]/[id] + * + * Examples: + * - gid://warehouse-app/InventoryTransaction/TXN-2024-001 (specific transaction) + * - gid://3pl-system/StockMovement/SM-2024-0125 (stock movement record) + * - gid://pos-app/InventoryUpdate/UPD-98765 (POS inventory update) + * - gid://erp-connector/LedgerEntry/LE-2024-11-21-001 (ledger entry) + * + * Requirements: Valid non-Shopify URI with scheme and content. Cannot use gid://shopify/* format. */ public Builder ledgerDocumentUri(String ledgerDocumentUri) { this.ledgerDocumentUri = ledgerDocumentUri; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventorySetOnHandQuantitiesInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventorySetOnHandQuantitiesInput.java index 66178dde..dc4973da 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventorySetOnHandQuantitiesInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventorySetOnHandQuantitiesInput.java @@ -17,10 +17,25 @@ public class InventorySetOnHandQuantitiesInput { private String reason; /** - * A freeform URI that represents why the inventory change happened. This can be the entity adjusting inventory - * quantities or the Shopify resource that's associated with the inventory adjustment. For example, a unit in a - * draft order might have been previously reserved, and a merchant later creates an order from the draft order. - * In this case, the `referenceDocumentUri` for the inventory adjustment is a URI referencing the order ID. + * A URI that represents why the inventory change happened, identifying the + * source system and document that caused this adjustment. Enables complete audit + * trails and brand visibility in Shopify admin inventory history. + * + * Preferred format - Global ID (GID): gid://[your-app-name]/[entity-type]/[id] + * + * Examples: + * - gid://warehouse-app/PurchaseOrder/PO-2024-001 (stock received) + * - gid://3pl-system/CycleCount/CC-2024-0125 (cycle count adjustment) + * - gid://pos-app/Transaction/TXN-98765 (in-store sale) + * - gid://erp-connector/SyncJob/SYNC-2024-11-21-001 (ERP sync) + * - gid://shopify/Order/1234567890 (Shopify order reference) + * + * Benefits: Your app name appears directly in merchant inventory history, + * reducing support tickets and providing clear audit trails for compliance. + * + * Alternative formats (also supported): https://myapp.com/documents/12345, custom-scheme://identifier + * + * Requirements: Valid URI with scheme and content. For GID format, all components (app, entity, id) must be present. */ private String referenceDocumentUri; @@ -45,10 +60,25 @@ public void setReason(String reason) { } /** - * A freeform URI that represents why the inventory change happened. This can be the entity adjusting inventory - * quantities or the Shopify resource that's associated with the inventory adjustment. For example, a unit in a - * draft order might have been previously reserved, and a merchant later creates an order from the draft order. - * In this case, the `referenceDocumentUri` for the inventory adjustment is a URI referencing the order ID. + * A URI that represents why the inventory change happened, identifying the + * source system and document that caused this adjustment. Enables complete audit + * trails and brand visibility in Shopify admin inventory history. + * + * Preferred format - Global ID (GID): gid://[your-app-name]/[entity-type]/[id] + * + * Examples: + * - gid://warehouse-app/PurchaseOrder/PO-2024-001 (stock received) + * - gid://3pl-system/CycleCount/CC-2024-0125 (cycle count adjustment) + * - gid://pos-app/Transaction/TXN-98765 (in-store sale) + * - gid://erp-connector/SyncJob/SYNC-2024-11-21-001 (ERP sync) + * - gid://shopify/Order/1234567890 (Shopify order reference) + * + * Benefits: Your app name appears directly in merchant inventory history, + * reducing support tickets and providing clear audit trails for compliance. + * + * Alternative formats (also supported): https://myapp.com/documents/12345, custom-scheme://identifier + * + * Requirements: Valid URI with scheme and content. For GID format, all components (app, entity, id) must be present. */ public String getReferenceDocumentUri() { return referenceDocumentUri; @@ -101,10 +131,25 @@ public static class Builder { private String reason; /** - * A freeform URI that represents why the inventory change happened. This can be the entity adjusting inventory - * quantities or the Shopify resource that's associated with the inventory adjustment. For example, a unit in a - * draft order might have been previously reserved, and a merchant later creates an order from the draft order. - * In this case, the `referenceDocumentUri` for the inventory adjustment is a URI referencing the order ID. + * A URI that represents why the inventory change happened, identifying the + * source system and document that caused this adjustment. Enables complete audit + * trails and brand visibility in Shopify admin inventory history. + * + * Preferred format - Global ID (GID): gid://[your-app-name]/[entity-type]/[id] + * + * Examples: + * - gid://warehouse-app/PurchaseOrder/PO-2024-001 (stock received) + * - gid://3pl-system/CycleCount/CC-2024-0125 (cycle count adjustment) + * - gid://pos-app/Transaction/TXN-98765 (in-store sale) + * - gid://erp-connector/SyncJob/SYNC-2024-11-21-001 (ERP sync) + * - gid://shopify/Order/1234567890 (Shopify order reference) + * + * Benefits: Your app name appears directly in merchant inventory history, + * reducing support tickets and providing clear audit trails for compliance. + * + * Alternative formats (also supported): https://myapp.com/documents/12345, custom-scheme://identifier + * + * Requirements: Valid URI with scheme and content. For GID format, all components (app, entity, id) must be present. */ private String referenceDocumentUri; @@ -131,10 +176,25 @@ public Builder reason(String reason) { } /** - * A freeform URI that represents why the inventory change happened. This can be the entity adjusting inventory - * quantities or the Shopify resource that's associated with the inventory adjustment. For example, a unit in a - * draft order might have been previously reserved, and a merchant later creates an order from the draft order. - * In this case, the `referenceDocumentUri` for the inventory adjustment is a URI referencing the order ID. + * A URI that represents why the inventory change happened, identifying the + * source system and document that caused this adjustment. Enables complete audit + * trails and brand visibility in Shopify admin inventory history. + * + * Preferred format - Global ID (GID): gid://[your-app-name]/[entity-type]/[id] + * + * Examples: + * - gid://warehouse-app/PurchaseOrder/PO-2024-001 (stock received) + * - gid://3pl-system/CycleCount/CC-2024-0125 (cycle count adjustment) + * - gid://pos-app/Transaction/TXN-98765 (in-store sale) + * - gid://erp-connector/SyncJob/SYNC-2024-11-21-001 (ERP sync) + * - gid://shopify/Order/1234567890 (Shopify order reference) + * + * Benefits: Your app name appears directly in merchant inventory history, + * reducing support tickets and providing clear audit trails for compliance. + * + * Alternative formats (also supported): https://myapp.com/documents/12345, custom-scheme://identifier + * + * Requirements: Valid URI with scheme and content. For GID format, all components (app, entity, id) must be present. */ public Builder referenceDocumentUri(String referenceDocumentUri) { this.referenceDocumentUri = referenceDocumentUri; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventorySetOnHandQuantitiesUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventorySetOnHandQuantitiesUserErrorCode.java index 4dbcc268..85ec6be3 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventorySetOnHandQuantitiesUserErrorCode.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventorySetOnHandQuantitiesUserErrorCode.java @@ -14,11 +14,21 @@ public enum InventorySetOnHandQuantitiesUserErrorCode { INVALID_REFERENCE_DOCUMENT, + CHANGE_FROM_QUANTITY_STALE, + SET_ON_HAND_QUANTITIES_FAILED, ITEM_NOT_STOCKED_AT_LOCATION, NON_MUTABLE_INVENTORY_ITEM, - INVALID_QUANTITY_TOO_HIGH + INVALID_QUANTITY_TOO_HIGH, + + COMPARE_QUANTITY_STALE, + + SERVICE_UNAVAILABLE, + + IDEMPOTENCY_CONCURRENT_REQUEST, + + IDEMPOTENCY_KEY_PARAMETER_MISMATCH } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventorySetQuantitiesInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventorySetQuantitiesInput.java index 33599b7f..8cd1dfc4 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventorySetQuantitiesInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventorySetQuantitiesInput.java @@ -1,6 +1,5 @@ package com.shopify.admin.types; -import java.lang.Boolean; import java.lang.Object; import java.lang.Override; import java.lang.String; @@ -23,10 +22,25 @@ public class InventorySetQuantitiesInput { private String name; /** - * A freeform URI that represents why the inventory change happened. This can be the entity adjusting inventory - * quantities or the Shopify resource that's associated with the inventory adjustment. For example, a unit in a - * draft order might have been previously reserved, and a merchant later creates an order from the draft order. - * In this case, the `referenceDocumentUri` for the inventory adjustment is a URI referencing the order ID. + * A URI that represents why the inventory change happened, identifying the + * source system and document that caused this adjustment. Enables complete audit + * trails and brand visibility in Shopify admin inventory history. + * + * Preferred format - Global ID (GID): gid://[your-app-name]/[entity-type]/[id] + * + * Examples: + * - gid://warehouse-app/PurchaseOrder/PO-2024-001 (stock received) + * - gid://3pl-system/CycleCount/CC-2024-0125 (cycle count adjustment) + * - gid://pos-app/Transaction/TXN-98765 (in-store sale) + * - gid://erp-connector/SyncJob/SYNC-2024-11-21-001 (ERP sync) + * - gid://shopify/Order/1234567890 (Shopify order reference) + * + * Benefits: Your app name appears directly in merchant inventory history, + * reducing support tickets and providing clear audit trails for compliance. + * + * Alternative formats (also supported): https://myapp.com/documents/12345, custom-scheme://identifier + * + * Requirements: Valid URI with scheme and content. For GID format, all components (app, entity, id) must be present. */ private String referenceDocumentUri; @@ -35,11 +49,6 @@ public class InventorySetQuantitiesInput { */ private List quantities; - /** - * Skip the compare quantity check in the quantities field. - */ - private Boolean ignoreCompareQuantity = false; - public InventorySetQuantitiesInput() { } @@ -67,10 +76,25 @@ public void setName(String name) { } /** - * A freeform URI that represents why the inventory change happened. This can be the entity adjusting inventory - * quantities or the Shopify resource that's associated with the inventory adjustment. For example, a unit in a - * draft order might have been previously reserved, and a merchant later creates an order from the draft order. - * In this case, the `referenceDocumentUri` for the inventory adjustment is a URI referencing the order ID. + * A URI that represents why the inventory change happened, identifying the + * source system and document that caused this adjustment. Enables complete audit + * trails and brand visibility in Shopify admin inventory history. + * + * Preferred format - Global ID (GID): gid://[your-app-name]/[entity-type]/[id] + * + * Examples: + * - gid://warehouse-app/PurchaseOrder/PO-2024-001 (stock received) + * - gid://3pl-system/CycleCount/CC-2024-0125 (cycle count adjustment) + * - gid://pos-app/Transaction/TXN-98765 (in-store sale) + * - gid://erp-connector/SyncJob/SYNC-2024-11-21-001 (ERP sync) + * - gid://shopify/Order/1234567890 (Shopify order reference) + * + * Benefits: Your app name appears directly in merchant inventory history, + * reducing support tickets and providing clear audit trails for compliance. + * + * Alternative formats (also supported): https://myapp.com/documents/12345, custom-scheme://identifier + * + * Requirements: Valid URI with scheme and content. For GID format, all components (app, entity, id) must be present. */ public String getReferenceDocumentUri() { return referenceDocumentUri; @@ -91,20 +115,9 @@ public void setQuantities(List quantities) { this.quantities = quantities; } - /** - * Skip the compare quantity check in the quantities field. - */ - public Boolean getIgnoreCompareQuantity() { - return ignoreCompareQuantity; - } - - public void setIgnoreCompareQuantity(Boolean ignoreCompareQuantity) { - this.ignoreCompareQuantity = ignoreCompareQuantity; - } - @Override public String toString() { - return "InventorySetQuantitiesInput{reason='" + reason + "', name='" + name + "', referenceDocumentUri='" + referenceDocumentUri + "', quantities='" + quantities + "', ignoreCompareQuantity='" + ignoreCompareQuantity + "'}"; + return "InventorySetQuantitiesInput{reason='" + reason + "', name='" + name + "', referenceDocumentUri='" + referenceDocumentUri + "', quantities='" + quantities + "'}"; } @Override @@ -115,13 +128,12 @@ public boolean equals(Object o) { return Objects.equals(reason, that.reason) && Objects.equals(name, that.name) && Objects.equals(referenceDocumentUri, that.referenceDocumentUri) && - Objects.equals(quantities, that.quantities) && - Objects.equals(ignoreCompareQuantity, that.ignoreCompareQuantity); + Objects.equals(quantities, that.quantities); } @Override public int hashCode() { - return Objects.hash(reason, name, referenceDocumentUri, quantities, ignoreCompareQuantity); + return Objects.hash(reason, name, referenceDocumentUri, quantities); } public static Builder newBuilder() { @@ -141,10 +153,25 @@ public static class Builder { private String name; /** - * A freeform URI that represents why the inventory change happened. This can be the entity adjusting inventory - * quantities or the Shopify resource that's associated with the inventory adjustment. For example, a unit in a - * draft order might have been previously reserved, and a merchant later creates an order from the draft order. - * In this case, the `referenceDocumentUri` for the inventory adjustment is a URI referencing the order ID. + * A URI that represents why the inventory change happened, identifying the + * source system and document that caused this adjustment. Enables complete audit + * trails and brand visibility in Shopify admin inventory history. + * + * Preferred format - Global ID (GID): gid://[your-app-name]/[entity-type]/[id] + * + * Examples: + * - gid://warehouse-app/PurchaseOrder/PO-2024-001 (stock received) + * - gid://3pl-system/CycleCount/CC-2024-0125 (cycle count adjustment) + * - gid://pos-app/Transaction/TXN-98765 (in-store sale) + * - gid://erp-connector/SyncJob/SYNC-2024-11-21-001 (ERP sync) + * - gid://shopify/Order/1234567890 (Shopify order reference) + * + * Benefits: Your app name appears directly in merchant inventory history, + * reducing support tickets and providing clear audit trails for compliance. + * + * Alternative formats (also supported): https://myapp.com/documents/12345, custom-scheme://identifier + * + * Requirements: Valid URI with scheme and content. For GID format, all components (app, entity, id) must be present. */ private String referenceDocumentUri; @@ -153,18 +180,12 @@ public static class Builder { */ private List quantities; - /** - * Skip the compare quantity check in the quantities field. - */ - private Boolean ignoreCompareQuantity = false; - public InventorySetQuantitiesInput build() { InventorySetQuantitiesInput result = new InventorySetQuantitiesInput(); result.reason = this.reason; result.name = this.name; result.referenceDocumentUri = this.referenceDocumentUri; result.quantities = this.quantities; - result.ignoreCompareQuantity = this.ignoreCompareQuantity; return result; } @@ -186,10 +207,25 @@ public Builder name(String name) { } /** - * A freeform URI that represents why the inventory change happened. This can be the entity adjusting inventory - * quantities or the Shopify resource that's associated with the inventory adjustment. For example, a unit in a - * draft order might have been previously reserved, and a merchant later creates an order from the draft order. - * In this case, the `referenceDocumentUri` for the inventory adjustment is a URI referencing the order ID. + * A URI that represents why the inventory change happened, identifying the + * source system and document that caused this adjustment. Enables complete audit + * trails and brand visibility in Shopify admin inventory history. + * + * Preferred format - Global ID (GID): gid://[your-app-name]/[entity-type]/[id] + * + * Examples: + * - gid://warehouse-app/PurchaseOrder/PO-2024-001 (stock received) + * - gid://3pl-system/CycleCount/CC-2024-0125 (cycle count adjustment) + * - gid://pos-app/Transaction/TXN-98765 (in-store sale) + * - gid://erp-connector/SyncJob/SYNC-2024-11-21-001 (ERP sync) + * - gid://shopify/Order/1234567890 (Shopify order reference) + * + * Benefits: Your app name appears directly in merchant inventory history, + * reducing support tickets and providing clear audit trails for compliance. + * + * Alternative formats (also supported): https://myapp.com/documents/12345, custom-scheme://identifier + * + * Requirements: Valid URI with scheme and content. For GID format, all components (app, entity, id) must be present. */ public Builder referenceDocumentUri(String referenceDocumentUri) { this.referenceDocumentUri = referenceDocumentUri; @@ -203,13 +239,5 @@ public Builder quantities(List quantities) { this.quantities = quantities; return this; } - - /** - * Skip the compare quantity check in the quantities field. - */ - public Builder ignoreCompareQuantity(Boolean ignoreCompareQuantity) { - this.ignoreCompareQuantity = ignoreCompareQuantity; - return this; - } } } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventorySetQuantitiesUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventorySetQuantitiesUserErrorCode.java index a8f87a09..8eb2bb9e 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventorySetQuantitiesUserErrorCode.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventorySetQuantitiesUserErrorCode.java @@ -24,9 +24,15 @@ public enum InventorySetQuantitiesUserErrorCode { COMPARE_QUANTITY_STALE, + CHANGE_FROM_QUANTITY_STALE, + INVALID_NAME, NO_DUPLICATE_INVENTORY_ITEM_ID_GROUP_ID_PAIR, - NON_MUTABLE_INVENTORY_ITEM + NON_MUTABLE_INVENTORY_ITEM, + + IDEMPOTENCY_CONCURRENT_REQUEST, + + IDEMPOTENCY_KEY_PARAMETER_MISMATCH } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventorySetQuantityInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventorySetQuantityInput.java index 56b5eca6..268ec7ee 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventorySetQuantityInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventorySetQuantityInput.java @@ -1,5 +1,6 @@ package com.shopify.admin.types; +import java.lang.Integer; import java.lang.Object; import java.lang.Override; import java.lang.String; @@ -24,6 +25,12 @@ public class InventorySetQuantityInput { */ private int quantity; + /** + * The current quantity to be compared against the persisted quantity. For more + * information, refer to the [Compare and Swap documentation](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states#compare-and-swap). + */ + private Integer changeFromQuantity; + public InventorySetQuantityInput() { } @@ -60,9 +67,21 @@ public void setQuantity(int quantity) { this.quantity = quantity; } + /** + * The current quantity to be compared against the persisted quantity. For more + * information, refer to the [Compare and Swap documentation](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states#compare-and-swap). + */ + public Integer getChangeFromQuantity() { + return changeFromQuantity; + } + + public void setChangeFromQuantity(Integer changeFromQuantity) { + this.changeFromQuantity = changeFromQuantity; + } + @Override public String toString() { - return "InventorySetQuantityInput{inventoryItemId='" + inventoryItemId + "', locationId='" + locationId + "', quantity='" + quantity + "'}"; + return "InventorySetQuantityInput{inventoryItemId='" + inventoryItemId + "', locationId='" + locationId + "', quantity='" + quantity + "', changeFromQuantity='" + changeFromQuantity + "'}"; } @Override @@ -72,12 +91,13 @@ public boolean equals(Object o) { InventorySetQuantityInput that = (InventorySetQuantityInput) o; return Objects.equals(inventoryItemId, that.inventoryItemId) && Objects.equals(locationId, that.locationId) && - quantity == that.quantity; + quantity == that.quantity && + Objects.equals(changeFromQuantity, that.changeFromQuantity); } @Override public int hashCode() { - return Objects.hash(inventoryItemId, locationId, quantity); + return Objects.hash(inventoryItemId, locationId, quantity, changeFromQuantity); } public static Builder newBuilder() { @@ -100,11 +120,18 @@ public static class Builder { */ private int quantity; + /** + * The current quantity to be compared against the persisted quantity. For more + * information, refer to the [Compare and Swap documentation](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states#compare-and-swap). + */ + private Integer changeFromQuantity; + public InventorySetQuantityInput build() { InventorySetQuantityInput result = new InventorySetQuantityInput(); result.inventoryItemId = this.inventoryItemId; result.locationId = this.locationId; result.quantity = this.quantity; + result.changeFromQuantity = this.changeFromQuantity; return result; } @@ -131,5 +158,14 @@ public Builder quantity(int quantity) { this.quantity = quantity; return this; } + + /** + * The current quantity to be compared against the persisted quantity. For more + * information, refer to the [Compare and Swap documentation](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states#compare-and-swap). + */ + public Builder changeFromQuantity(Integer changeFromQuantity) { + this.changeFromQuantity = changeFromQuantity; + return this; + } } } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventorySetScheduledChangesInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventorySetScheduledChangesInput.java index 1e19955f..2c73ee38 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventorySetScheduledChangesInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventorySetScheduledChangesInput.java @@ -21,10 +21,25 @@ public class InventorySetScheduledChangesInput { private List items; /** - * A freeform URI that represents why the inventory change happened. This can be the entity adjusting inventory - * quantities or the Shopify resource that's associated with the inventory adjustment. For example, a unit in a - * draft order might have been previously reserved, and a merchant later creates an order from the draft order. - * In this case, the `referenceDocumentUri` for the inventory adjustment is a URI referencing the order ID. + * A URI that represents why the inventory change happened, identifying the + * source system and document that caused this adjustment. Enables complete audit + * trails and brand visibility in Shopify admin inventory history. + * + * Preferred format - Global ID (GID): gid://[your-app-name]/[entity-type]/[id] + * + * Examples: + * - gid://warehouse-app/PurchaseOrder/PO-2024-001 (stock received) + * - gid://3pl-system/CycleCount/CC-2024-0125 (cycle count adjustment) + * - gid://pos-app/Transaction/TXN-98765 (in-store sale) + * - gid://erp-connector/SyncJob/SYNC-2024-11-21-001 (ERP sync) + * - gid://shopify/Order/1234567890 (Shopify order reference) + * + * Benefits: Your app name appears directly in merchant inventory history, + * reducing support tickets and providing clear audit trails for compliance. + * + * Alternative formats (also supported): https://myapp.com/documents/12345, custom-scheme://identifier + * + * Requirements: Valid URI with scheme and content. For GID format, all components (app, entity, id) must be present. */ private String referenceDocumentUri; @@ -54,10 +69,25 @@ public void setItems(List items) { } /** - * A freeform URI that represents why the inventory change happened. This can be the entity adjusting inventory - * quantities or the Shopify resource that's associated with the inventory adjustment. For example, a unit in a - * draft order might have been previously reserved, and a merchant later creates an order from the draft order. - * In this case, the `referenceDocumentUri` for the inventory adjustment is a URI referencing the order ID. + * A URI that represents why the inventory change happened, identifying the + * source system and document that caused this adjustment. Enables complete audit + * trails and brand visibility in Shopify admin inventory history. + * + * Preferred format - Global ID (GID): gid://[your-app-name]/[entity-type]/[id] + * + * Examples: + * - gid://warehouse-app/PurchaseOrder/PO-2024-001 (stock received) + * - gid://3pl-system/CycleCount/CC-2024-0125 (cycle count adjustment) + * - gid://pos-app/Transaction/TXN-98765 (in-store sale) + * - gid://erp-connector/SyncJob/SYNC-2024-11-21-001 (ERP sync) + * - gid://shopify/Order/1234567890 (Shopify order reference) + * + * Benefits: Your app name appears directly in merchant inventory history, + * reducing support tickets and providing clear audit trails for compliance. + * + * Alternative formats (also supported): https://myapp.com/documents/12345, custom-scheme://identifier + * + * Requirements: Valid URI with scheme and content. For GID format, all components (app, entity, id) must be present. */ public String getReferenceDocumentUri() { return referenceDocumentUri; @@ -103,10 +133,25 @@ public static class Builder { private List items; /** - * A freeform URI that represents why the inventory change happened. This can be the entity adjusting inventory - * quantities or the Shopify resource that's associated with the inventory adjustment. For example, a unit in a - * draft order might have been previously reserved, and a merchant later creates an order from the draft order. - * In this case, the `referenceDocumentUri` for the inventory adjustment is a URI referencing the order ID. + * A URI that represents why the inventory change happened, identifying the + * source system and document that caused this adjustment. Enables complete audit + * trails and brand visibility in Shopify admin inventory history. + * + * Preferred format - Global ID (GID): gid://[your-app-name]/[entity-type]/[id] + * + * Examples: + * - gid://warehouse-app/PurchaseOrder/PO-2024-001 (stock received) + * - gid://3pl-system/CycleCount/CC-2024-0125 (cycle count adjustment) + * - gid://pos-app/Transaction/TXN-98765 (in-store sale) + * - gid://erp-connector/SyncJob/SYNC-2024-11-21-001 (ERP sync) + * - gid://shopify/Order/1234567890 (Shopify order reference) + * + * Benefits: Your app name appears directly in merchant inventory history, + * reducing support tickets and providing clear audit trails for compliance. + * + * Alternative formats (also supported): https://myapp.com/documents/12345, custom-scheme://identifier + * + * Requirements: Valid URI with scheme and content. For GID format, all components (app, entity, id) must be present. */ private String referenceDocumentUri; @@ -135,10 +180,25 @@ public Builder items(List items) { } /** - * A freeform URI that represents why the inventory change happened. This can be the entity adjusting inventory - * quantities or the Shopify resource that's associated with the inventory adjustment. For example, a unit in a - * draft order might have been previously reserved, and a merchant later creates an order from the draft order. - * In this case, the `referenceDocumentUri` for the inventory adjustment is a URI referencing the order ID. + * A URI that represents why the inventory change happened, identifying the + * source system and document that caused this adjustment. Enables complete audit + * trails and brand visibility in Shopify admin inventory history. + * + * Preferred format - Global ID (GID): gid://[your-app-name]/[entity-type]/[id] + * + * Examples: + * - gid://warehouse-app/PurchaseOrder/PO-2024-001 (stock received) + * - gid://3pl-system/CycleCount/CC-2024-0125 (cycle count adjustment) + * - gid://pos-app/Transaction/TXN-98765 (in-store sale) + * - gid://erp-connector/SyncJob/SYNC-2024-11-21-001 (ERP sync) + * - gid://shopify/Order/1234567890 (Shopify order reference) + * + * Benefits: Your app name appears directly in merchant inventory history, + * reducing support tickets and providing clear audit trails for compliance. + * + * Alternative formats (also supported): https://myapp.com/documents/12345, custom-scheme://identifier + * + * Requirements: Valid URI with scheme and content. For GID format, all components (app, entity, id) must be present. */ public Builder referenceDocumentUri(String referenceDocumentUri) { this.referenceDocumentUri = referenceDocumentUri; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventorySetScheduledChangesUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventorySetScheduledChangesUserErrorCode.java index 2366d2a1..4c94ed57 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventorySetScheduledChangesUserErrorCode.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventorySetScheduledChangesUserErrorCode.java @@ -28,5 +28,9 @@ public enum InventorySetScheduledChangesUserErrorCode { INCLUSION, - LEDGER_DOCUMENT_INVALID + LEDGER_DOCUMENT_INVALID, + + IDEMPOTENCY_CONCURRENT_REQUEST, + + IDEMPOTENCY_KEY_PARAMETER_MISMATCH } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipment.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipment.java new file mode 100644 index 00000000..1214c88c --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipment.java @@ -0,0 +1,450 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.time.OffsetDateTime; +import java.util.Objects; + +/** + * Represents an inventory shipment. + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NONE +) +public class InventoryShipment implements com.shopify.admin.types.Node { + /** + * The date the shipment was created in UTC. + */ + private OffsetDateTime dateCreated; + + /** + * The date the shipment was initially received in UTC. + */ + private OffsetDateTime dateReceived; + + /** + * The date the shipment was shipped in UTC. + */ + private OffsetDateTime dateShipped; + + /** + * A globally-unique ID. + */ + private String id; + + /** + * The total quantity of all items in the shipment. + */ + private int lineItemTotalQuantity; + + /** + * The line items included in this shipment. + */ + private InventoryShipmentLineItemConnection lineItems; + + /** + * The number of line items associated with the inventory shipment. Limited to a maximum of 10000 by default. + */ + private Count lineItemsCount; + + /** + * The name of the inventory shipment. + */ + private String name; + + /** + * The current status of the shipment. + */ + private InventoryShipmentStatus status; + + /** + * The total quantity of items accepted across all line items in this shipment. + */ + private int totalAcceptedQuantity; + + /** + * The total quantity of items received (both accepted and rejected) across all line items in this shipment. + */ + private int totalReceivedQuantity; + + /** + * The total quantity of items rejected across all line items in this shipment. + */ + private int totalRejectedQuantity; + + /** + * The tracking information for the shipment. + */ + private InventoryShipmentTracking tracking; + + public InventoryShipment() { + } + + /** + * The date the shipment was created in UTC. + */ + public OffsetDateTime getDateCreated() { + return dateCreated; + } + + public void setDateCreated(OffsetDateTime dateCreated) { + this.dateCreated = dateCreated; + } + + /** + * The date the shipment was initially received in UTC. + */ + public OffsetDateTime getDateReceived() { + return dateReceived; + } + + public void setDateReceived(OffsetDateTime dateReceived) { + this.dateReceived = dateReceived; + } + + /** + * The date the shipment was shipped in UTC. + */ + public OffsetDateTime getDateShipped() { + return dateShipped; + } + + public void setDateShipped(OffsetDateTime dateShipped) { + this.dateShipped = dateShipped; + } + + /** + * A globally-unique ID. + */ + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + /** + * The total quantity of all items in the shipment. + */ + public int getLineItemTotalQuantity() { + return lineItemTotalQuantity; + } + + public void setLineItemTotalQuantity(int lineItemTotalQuantity) { + this.lineItemTotalQuantity = lineItemTotalQuantity; + } + + /** + * The line items included in this shipment. + */ + public InventoryShipmentLineItemConnection getLineItems() { + return lineItems; + } + + public void setLineItems(InventoryShipmentLineItemConnection lineItems) { + this.lineItems = lineItems; + } + + /** + * The number of line items associated with the inventory shipment. Limited to a maximum of 10000 by default. + */ + public Count getLineItemsCount() { + return lineItemsCount; + } + + public void setLineItemsCount(Count lineItemsCount) { + this.lineItemsCount = lineItemsCount; + } + + /** + * The name of the inventory shipment. + */ + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + /** + * The current status of the shipment. + */ + public InventoryShipmentStatus getStatus() { + return status; + } + + public void setStatus(InventoryShipmentStatus status) { + this.status = status; + } + + /** + * The total quantity of items accepted across all line items in this shipment. + */ + public int getTotalAcceptedQuantity() { + return totalAcceptedQuantity; + } + + public void setTotalAcceptedQuantity(int totalAcceptedQuantity) { + this.totalAcceptedQuantity = totalAcceptedQuantity; + } + + /** + * The total quantity of items received (both accepted and rejected) across all line items in this shipment. + */ + public int getTotalReceivedQuantity() { + return totalReceivedQuantity; + } + + public void setTotalReceivedQuantity(int totalReceivedQuantity) { + this.totalReceivedQuantity = totalReceivedQuantity; + } + + /** + * The total quantity of items rejected across all line items in this shipment. + */ + public int getTotalRejectedQuantity() { + return totalRejectedQuantity; + } + + public void setTotalRejectedQuantity(int totalRejectedQuantity) { + this.totalRejectedQuantity = totalRejectedQuantity; + } + + /** + * The tracking information for the shipment. + */ + public InventoryShipmentTracking getTracking() { + return tracking; + } + + public void setTracking(InventoryShipmentTracking tracking) { + this.tracking = tracking; + } + + @Override + public String toString() { + return "InventoryShipment{dateCreated='" + dateCreated + "', dateReceived='" + dateReceived + "', dateShipped='" + dateShipped + "', id='" + id + "', lineItemTotalQuantity='" + lineItemTotalQuantity + "', lineItems='" + lineItems + "', lineItemsCount='" + lineItemsCount + "', name='" + name + "', status='" + status + "', totalAcceptedQuantity='" + totalAcceptedQuantity + "', totalReceivedQuantity='" + totalReceivedQuantity + "', totalRejectedQuantity='" + totalRejectedQuantity + "', tracking='" + tracking + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryShipment that = (InventoryShipment) o; + return Objects.equals(dateCreated, that.dateCreated) && + Objects.equals(dateReceived, that.dateReceived) && + Objects.equals(dateShipped, that.dateShipped) && + Objects.equals(id, that.id) && + lineItemTotalQuantity == that.lineItemTotalQuantity && + Objects.equals(lineItems, that.lineItems) && + Objects.equals(lineItemsCount, that.lineItemsCount) && + Objects.equals(name, that.name) && + Objects.equals(status, that.status) && + totalAcceptedQuantity == that.totalAcceptedQuantity && + totalReceivedQuantity == that.totalReceivedQuantity && + totalRejectedQuantity == that.totalRejectedQuantity && + Objects.equals(tracking, that.tracking); + } + + @Override + public int hashCode() { + return Objects.hash(dateCreated, dateReceived, dateShipped, id, lineItemTotalQuantity, lineItems, lineItemsCount, name, status, totalAcceptedQuantity, totalReceivedQuantity, totalRejectedQuantity, tracking); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The date the shipment was created in UTC. + */ + private OffsetDateTime dateCreated; + + /** + * The date the shipment was initially received in UTC. + */ + private OffsetDateTime dateReceived; + + /** + * The date the shipment was shipped in UTC. + */ + private OffsetDateTime dateShipped; + + /** + * A globally-unique ID. + */ + private String id; + + /** + * The total quantity of all items in the shipment. + */ + private int lineItemTotalQuantity; + + /** + * The line items included in this shipment. + */ + private InventoryShipmentLineItemConnection lineItems; + + /** + * The number of line items associated with the inventory shipment. Limited to a maximum of 10000 by default. + */ + private Count lineItemsCount; + + /** + * The name of the inventory shipment. + */ + private String name; + + /** + * The current status of the shipment. + */ + private InventoryShipmentStatus status; + + /** + * The total quantity of items accepted across all line items in this shipment. + */ + private int totalAcceptedQuantity; + + /** + * The total quantity of items received (both accepted and rejected) across all line items in this shipment. + */ + private int totalReceivedQuantity; + + /** + * The total quantity of items rejected across all line items in this shipment. + */ + private int totalRejectedQuantity; + + /** + * The tracking information for the shipment. + */ + private InventoryShipmentTracking tracking; + + public InventoryShipment build() { + InventoryShipment result = new InventoryShipment(); + result.dateCreated = this.dateCreated; + result.dateReceived = this.dateReceived; + result.dateShipped = this.dateShipped; + result.id = this.id; + result.lineItemTotalQuantity = this.lineItemTotalQuantity; + result.lineItems = this.lineItems; + result.lineItemsCount = this.lineItemsCount; + result.name = this.name; + result.status = this.status; + result.totalAcceptedQuantity = this.totalAcceptedQuantity; + result.totalReceivedQuantity = this.totalReceivedQuantity; + result.totalRejectedQuantity = this.totalRejectedQuantity; + result.tracking = this.tracking; + return result; + } + + /** + * The date the shipment was created in UTC. + */ + public Builder dateCreated(OffsetDateTime dateCreated) { + this.dateCreated = dateCreated; + return this; + } + + /** + * The date the shipment was initially received in UTC. + */ + public Builder dateReceived(OffsetDateTime dateReceived) { + this.dateReceived = dateReceived; + return this; + } + + /** + * The date the shipment was shipped in UTC. + */ + public Builder dateShipped(OffsetDateTime dateShipped) { + this.dateShipped = dateShipped; + return this; + } + + /** + * A globally-unique ID. + */ + public Builder id(String id) { + this.id = id; + return this; + } + + /** + * The total quantity of all items in the shipment. + */ + public Builder lineItemTotalQuantity(int lineItemTotalQuantity) { + this.lineItemTotalQuantity = lineItemTotalQuantity; + return this; + } + + /** + * The line items included in this shipment. + */ + public Builder lineItems(InventoryShipmentLineItemConnection lineItems) { + this.lineItems = lineItems; + return this; + } + + /** + * The number of line items associated with the inventory shipment. Limited to a maximum of 10000 by default. + */ + public Builder lineItemsCount(Count lineItemsCount) { + this.lineItemsCount = lineItemsCount; + return this; + } + + /** + * The name of the inventory shipment. + */ + public Builder name(String name) { + this.name = name; + return this; + } + + /** + * The current status of the shipment. + */ + public Builder status(InventoryShipmentStatus status) { + this.status = status; + return this; + } + + /** + * The total quantity of items accepted across all line items in this shipment. + */ + public Builder totalAcceptedQuantity(int totalAcceptedQuantity) { + this.totalAcceptedQuantity = totalAcceptedQuantity; + return this; + } + + /** + * The total quantity of items received (both accepted and rejected) across all line items in this shipment. + */ + public Builder totalReceivedQuantity(int totalReceivedQuantity) { + this.totalReceivedQuantity = totalReceivedQuantity; + return this; + } + + /** + * The total quantity of items rejected across all line items in this shipment. + */ + public Builder totalRejectedQuantity(int totalRejectedQuantity) { + this.totalRejectedQuantity = totalRejectedQuantity; + return this; + } + + /** + * The tracking information for the shipment. + */ + public Builder tracking(InventoryShipmentTracking tracking) { + this.tracking = tracking; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentAddItemsPayload.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentAddItemsPayload.java new file mode 100644 index 00000000..b09d8afe --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentAddItemsPayload.java @@ -0,0 +1,136 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * Return type for `inventoryShipmentAddItems` mutation. + */ +public class InventoryShipmentAddItemsPayload { + /** + * The list of added line items. + */ + private List addedItems; + + /** + * The inventory shipment with the added items. + */ + private InventoryShipment inventoryShipment; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public InventoryShipmentAddItemsPayload() { + } + + /** + * The list of added line items. + */ + public List getAddedItems() { + return addedItems; + } + + public void setAddedItems(List addedItems) { + this.addedItems = addedItems; + } + + /** + * The inventory shipment with the added items. + */ + public InventoryShipment getInventoryShipment() { + return inventoryShipment; + } + + public void setInventoryShipment(InventoryShipment inventoryShipment) { + this.inventoryShipment = inventoryShipment; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public List getUserErrors() { + return userErrors; + } + + public void setUserErrors(List userErrors) { + this.userErrors = userErrors; + } + + @Override + public String toString() { + return "InventoryShipmentAddItemsPayload{addedItems='" + addedItems + "', inventoryShipment='" + inventoryShipment + "', userErrors='" + userErrors + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryShipmentAddItemsPayload that = (InventoryShipmentAddItemsPayload) o; + return Objects.equals(addedItems, that.addedItems) && + Objects.equals(inventoryShipment, that.inventoryShipment) && + Objects.equals(userErrors, that.userErrors); + } + + @Override + public int hashCode() { + return Objects.hash(addedItems, inventoryShipment, userErrors); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The list of added line items. + */ + private List addedItems; + + /** + * The inventory shipment with the added items. + */ + private InventoryShipment inventoryShipment; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public InventoryShipmentAddItemsPayload build() { + InventoryShipmentAddItemsPayload result = new InventoryShipmentAddItemsPayload(); + result.addedItems = this.addedItems; + result.inventoryShipment = this.inventoryShipment; + result.userErrors = this.userErrors; + return result; + } + + /** + * The list of added line items. + */ + public Builder addedItems(List addedItems) { + this.addedItems = addedItems; + return this; + } + + /** + * The inventory shipment with the added items. + */ + public Builder inventoryShipment(InventoryShipment inventoryShipment) { + this.inventoryShipment = inventoryShipment; + return this; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public Builder userErrors(List userErrors) { + this.userErrors = userErrors; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentAddItemsUserError.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentAddItemsUserError.java new file mode 100644 index 00000000..6caf8edf --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentAddItemsUserError.java @@ -0,0 +1,140 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * An error that occurs during the execution of `InventoryShipmentAddItems`. + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NONE +) +public class InventoryShipmentAddItemsUserError implements com.shopify.admin.types.DisplayableError { + /** + * The error code. + */ + private InventoryShipmentAddItemsUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public InventoryShipmentAddItemsUserError() { + } + + /** + * The error code. + */ + public InventoryShipmentAddItemsUserErrorCode getCode() { + return code; + } + + public void setCode(InventoryShipmentAddItemsUserErrorCode code) { + this.code = code; + } + + /** + * The path to the input field that caused the error. + */ + public List getField() { + return field; + } + + public void setField(List field) { + this.field = field; + } + + /** + * The error message. + */ + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + @Override + public String toString() { + return "InventoryShipmentAddItemsUserError{code='" + code + "', field='" + field + "', message='" + message + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryShipmentAddItemsUserError that = (InventoryShipmentAddItemsUserError) o; + return Objects.equals(code, that.code) && + Objects.equals(field, that.field) && + Objects.equals(message, that.message); + } + + @Override + public int hashCode() { + return Objects.hash(code, field, message); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The error code. + */ + private InventoryShipmentAddItemsUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public InventoryShipmentAddItemsUserError build() { + InventoryShipmentAddItemsUserError result = new InventoryShipmentAddItemsUserError(); + result.code = this.code; + result.field = this.field; + result.message = this.message; + return result; + } + + /** + * The error code. + */ + public Builder code(InventoryShipmentAddItemsUserErrorCode code) { + this.code = code; + return this; + } + + /** + * The path to the input field that caused the error. + */ + public Builder field(List field) { + this.field = field; + return this; + } + + /** + * The error message. + */ + public Builder message(String message) { + this.message = message; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentAddItemsUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentAddItemsUserErrorCode.java new file mode 100644 index 00000000..2bf72ec5 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentAddItemsUserErrorCode.java @@ -0,0 +1,30 @@ +package com.shopify.admin.types; + +/** + * Possible error codes that can be returned by `InventoryShipmentAddItemsUserError`. + */ +public enum InventoryShipmentAddItemsUserErrorCode { + LOCATION_NOT_FOUND, + + INVALID_SHIPMENT_STATUS, + + DUPLICATE_ITEM, + + INVALID_QUANTITY, + + ITEM_NOT_FOUND, + + INVENTORY_STATE_NOT_ACTIVE, + + UNTRACKED_ITEM, + + SHIPMENT_NOT_FOUND, + + LOCATION_NOT_ACTIVE, + + ACTIVATION_FAILED, + + IDEMPOTENCY_CONCURRENT_REQUEST, + + IDEMPOTENCY_KEY_PARAMETER_MISMATCH +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentConnection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentConnection.java new file mode 100644 index 00000000..ee3f1895 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentConnection.java @@ -0,0 +1,152 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * An auto-generated type for paginating through multiple InventoryShipments. + */ +public class InventoryShipmentConnection { + /** + * The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + */ + private List edges; + + /** + * A list of nodes that are contained in InventoryShipmentEdge. You can fetch + * data about an individual node, or you can follow the edges to fetch data about + * a collection of related nodes. At each node, you specify the fields that you + * want to retrieve. + */ + private List nodes; + + /** + * An object that’s used to retrieve [cursor + * information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + */ + private PageInfo pageInfo; + + public InventoryShipmentConnection() { + } + + /** + * The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + */ + public List getEdges() { + return edges; + } + + public void setEdges(List edges) { + this.edges = edges; + } + + /** + * A list of nodes that are contained in InventoryShipmentEdge. You can fetch + * data about an individual node, or you can follow the edges to fetch data about + * a collection of related nodes. At each node, you specify the fields that you + * want to retrieve. + */ + public List getNodes() { + return nodes; + } + + public void setNodes(List nodes) { + this.nodes = nodes; + } + + /** + * An object that’s used to retrieve [cursor + * information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + */ + public PageInfo getPageInfo() { + return pageInfo; + } + + public void setPageInfo(PageInfo pageInfo) { + this.pageInfo = pageInfo; + } + + @Override + public String toString() { + return "InventoryShipmentConnection{edges='" + edges + "', nodes='" + nodes + "', pageInfo='" + pageInfo + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryShipmentConnection that = (InventoryShipmentConnection) o; + return Objects.equals(edges, that.edges) && + Objects.equals(nodes, that.nodes) && + Objects.equals(pageInfo, that.pageInfo); + } + + @Override + public int hashCode() { + return Objects.hash(edges, nodes, pageInfo); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + */ + private List edges; + + /** + * A list of nodes that are contained in InventoryShipmentEdge. You can fetch + * data about an individual node, or you can follow the edges to fetch data about + * a collection of related nodes. At each node, you specify the fields that you + * want to retrieve. + */ + private List nodes; + + /** + * An object that’s used to retrieve [cursor + * information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + */ + private PageInfo pageInfo; + + public InventoryShipmentConnection build() { + InventoryShipmentConnection result = new InventoryShipmentConnection(); + result.edges = this.edges; + result.nodes = this.nodes; + result.pageInfo = this.pageInfo; + return result; + } + + /** + * The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + */ + public Builder edges(List edges) { + this.edges = edges; + return this; + } + + /** + * A list of nodes that are contained in InventoryShipmentEdge. You can fetch + * data about an individual node, or you can follow the edges to fetch data about + * a collection of related nodes. At each node, you specify the fields that you + * want to retrieve. + */ + public Builder nodes(List nodes) { + this.nodes = nodes; + return this; + } + + /** + * An object that’s used to retrieve [cursor + * information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + */ + public Builder pageInfo(PageInfo pageInfo) { + this.pageInfo = pageInfo; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentCreateInTransitPayload.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentCreateInTransitPayload.java new file mode 100644 index 00000000..cfef5fe9 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentCreateInTransitPayload.java @@ -0,0 +1,105 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * Return type for `inventoryShipmentCreateInTransit` mutation. + */ +public class InventoryShipmentCreateInTransitPayload { + /** + * The created inventory shipment. + */ + private InventoryShipment inventoryShipment; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public InventoryShipmentCreateInTransitPayload() { + } + + /** + * The created inventory shipment. + */ + public InventoryShipment getInventoryShipment() { + return inventoryShipment; + } + + public void setInventoryShipment(InventoryShipment inventoryShipment) { + this.inventoryShipment = inventoryShipment; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public List getUserErrors() { + return userErrors; + } + + public void setUserErrors(List userErrors) { + this.userErrors = userErrors; + } + + @Override + public String toString() { + return "InventoryShipmentCreateInTransitPayload{inventoryShipment='" + inventoryShipment + "', userErrors='" + userErrors + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryShipmentCreateInTransitPayload that = (InventoryShipmentCreateInTransitPayload) o; + return Objects.equals(inventoryShipment, that.inventoryShipment) && + Objects.equals(userErrors, that.userErrors); + } + + @Override + public int hashCode() { + return Objects.hash(inventoryShipment, userErrors); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The created inventory shipment. + */ + private InventoryShipment inventoryShipment; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public InventoryShipmentCreateInTransitPayload build() { + InventoryShipmentCreateInTransitPayload result = new InventoryShipmentCreateInTransitPayload(); + result.inventoryShipment = this.inventoryShipment; + result.userErrors = this.userErrors; + return result; + } + + /** + * The created inventory shipment. + */ + public Builder inventoryShipment(InventoryShipment inventoryShipment) { + this.inventoryShipment = inventoryShipment; + return this; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public Builder userErrors(List userErrors) { + this.userErrors = userErrors; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentCreateInTransitUserError.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentCreateInTransitUserError.java new file mode 100644 index 00000000..916aa747 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentCreateInTransitUserError.java @@ -0,0 +1,140 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * An error that occurs during the execution of `InventoryShipmentCreateInTransit`. + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NONE +) +public class InventoryShipmentCreateInTransitUserError implements com.shopify.admin.types.DisplayableError { + /** + * The error code. + */ + private InventoryShipmentCreateInTransitUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public InventoryShipmentCreateInTransitUserError() { + } + + /** + * The error code. + */ + public InventoryShipmentCreateInTransitUserErrorCode getCode() { + return code; + } + + public void setCode(InventoryShipmentCreateInTransitUserErrorCode code) { + this.code = code; + } + + /** + * The path to the input field that caused the error. + */ + public List getField() { + return field; + } + + public void setField(List field) { + this.field = field; + } + + /** + * The error message. + */ + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + @Override + public String toString() { + return "InventoryShipmentCreateInTransitUserError{code='" + code + "', field='" + field + "', message='" + message + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryShipmentCreateInTransitUserError that = (InventoryShipmentCreateInTransitUserError) o; + return Objects.equals(code, that.code) && + Objects.equals(field, that.field) && + Objects.equals(message, that.message); + } + + @Override + public int hashCode() { + return Objects.hash(code, field, message); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The error code. + */ + private InventoryShipmentCreateInTransitUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public InventoryShipmentCreateInTransitUserError build() { + InventoryShipmentCreateInTransitUserError result = new InventoryShipmentCreateInTransitUserError(); + result.code = this.code; + result.field = this.field; + result.message = this.message; + return result; + } + + /** + * The error code. + */ + public Builder code(InventoryShipmentCreateInTransitUserErrorCode code) { + this.code = code; + return this; + } + + /** + * The path to the input field that caused the error. + */ + public Builder field(List field) { + this.field = field; + return this; + } + + /** + * The error message. + */ + public Builder message(String message) { + this.message = message; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentCreateInTransitUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentCreateInTransitUserErrorCode.java new file mode 100644 index 00000000..1e3f8ced --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentCreateInTransitUserErrorCode.java @@ -0,0 +1,38 @@ +package com.shopify.admin.types; + +/** + * Possible error codes that can be returned by `InventoryShipmentCreateInTransitUserError`. + */ +public enum InventoryShipmentCreateInTransitUserErrorCode { + DUPLICATE_ITEM, + + INVALID_QUANTITY, + + ITEM_NOT_FOUND, + + INVALID_TRANSFER_STATUS, + + UNTRACKED_ITEM, + + EMPTY_SHIPMENT_INPUT, + + ITEMS_EMPTY, + + TRANSFER_NOT_FOUND, + + INVALID_URL, + + INVALID_SHIPMENT_INPUT, + + INVALID_ITEM, + + INVENTORY_STATE_NOT_ACTIVE, + + LOCATION_NOT_ACTIVE, + + SHIPMENT_NOT_FOUND, + + IDEMPOTENCY_CONCURRENT_REQUEST, + + IDEMPOTENCY_KEY_PARAMETER_MISMATCH +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentCreateInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentCreateInput.java new file mode 100644 index 00000000..7c5e144c --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentCreateInput.java @@ -0,0 +1,168 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.time.OffsetDateTime; +import java.util.List; +import java.util.Objects; + +/** + * The input fields to add a shipment. + */ +public class InventoryShipmentCreateInput { + /** + * The ID of the inventory movement (transfer or purchase order) this shipment belongs to. + */ + private String movementId; + + /** + * The tracking information for the shipment. + */ + private InventoryShipmentTrackingInput trackingInput; + + /** + * The list of line items for the inventory shipment. + */ + private List lineItems; + + /** + * The date the shipment was created. + */ + private OffsetDateTime dateCreated; + + public InventoryShipmentCreateInput() { + } + + /** + * The ID of the inventory movement (transfer or purchase order) this shipment belongs to. + */ + public String getMovementId() { + return movementId; + } + + public void setMovementId(String movementId) { + this.movementId = movementId; + } + + /** + * The tracking information for the shipment. + */ + public InventoryShipmentTrackingInput getTrackingInput() { + return trackingInput; + } + + public void setTrackingInput(InventoryShipmentTrackingInput trackingInput) { + this.trackingInput = trackingInput; + } + + /** + * The list of line items for the inventory shipment. + */ + public List getLineItems() { + return lineItems; + } + + public void setLineItems(List lineItems) { + this.lineItems = lineItems; + } + + /** + * The date the shipment was created. + */ + public OffsetDateTime getDateCreated() { + return dateCreated; + } + + public void setDateCreated(OffsetDateTime dateCreated) { + this.dateCreated = dateCreated; + } + + @Override + public String toString() { + return "InventoryShipmentCreateInput{movementId='" + movementId + "', trackingInput='" + trackingInput + "', lineItems='" + lineItems + "', dateCreated='" + dateCreated + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryShipmentCreateInput that = (InventoryShipmentCreateInput) o; + return Objects.equals(movementId, that.movementId) && + Objects.equals(trackingInput, that.trackingInput) && + Objects.equals(lineItems, that.lineItems) && + Objects.equals(dateCreated, that.dateCreated); + } + + @Override + public int hashCode() { + return Objects.hash(movementId, trackingInput, lineItems, dateCreated); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The ID of the inventory movement (transfer or purchase order) this shipment belongs to. + */ + private String movementId; + + /** + * The tracking information for the shipment. + */ + private InventoryShipmentTrackingInput trackingInput; + + /** + * The list of line items for the inventory shipment. + */ + private List lineItems; + + /** + * The date the shipment was created. + */ + private OffsetDateTime dateCreated; + + public InventoryShipmentCreateInput build() { + InventoryShipmentCreateInput result = new InventoryShipmentCreateInput(); + result.movementId = this.movementId; + result.trackingInput = this.trackingInput; + result.lineItems = this.lineItems; + result.dateCreated = this.dateCreated; + return result; + } + + /** + * The ID of the inventory movement (transfer or purchase order) this shipment belongs to. + */ + public Builder movementId(String movementId) { + this.movementId = movementId; + return this; + } + + /** + * The tracking information for the shipment. + */ + public Builder trackingInput(InventoryShipmentTrackingInput trackingInput) { + this.trackingInput = trackingInput; + return this; + } + + /** + * The list of line items for the inventory shipment. + */ + public Builder lineItems(List lineItems) { + this.lineItems = lineItems; + return this; + } + + /** + * The date the shipment was created. + */ + public Builder dateCreated(OffsetDateTime dateCreated) { + this.dateCreated = dateCreated; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentCreatePayload.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentCreatePayload.java new file mode 100644 index 00000000..263eeb7f --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentCreatePayload.java @@ -0,0 +1,105 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * Return type for `inventoryShipmentCreate` mutation. + */ +public class InventoryShipmentCreatePayload { + /** + * The created inventory shipment. + */ + private InventoryShipment inventoryShipment; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public InventoryShipmentCreatePayload() { + } + + /** + * The created inventory shipment. + */ + public InventoryShipment getInventoryShipment() { + return inventoryShipment; + } + + public void setInventoryShipment(InventoryShipment inventoryShipment) { + this.inventoryShipment = inventoryShipment; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public List getUserErrors() { + return userErrors; + } + + public void setUserErrors(List userErrors) { + this.userErrors = userErrors; + } + + @Override + public String toString() { + return "InventoryShipmentCreatePayload{inventoryShipment='" + inventoryShipment + "', userErrors='" + userErrors + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryShipmentCreatePayload that = (InventoryShipmentCreatePayload) o; + return Objects.equals(inventoryShipment, that.inventoryShipment) && + Objects.equals(userErrors, that.userErrors); + } + + @Override + public int hashCode() { + return Objects.hash(inventoryShipment, userErrors); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The created inventory shipment. + */ + private InventoryShipment inventoryShipment; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public InventoryShipmentCreatePayload build() { + InventoryShipmentCreatePayload result = new InventoryShipmentCreatePayload(); + result.inventoryShipment = this.inventoryShipment; + result.userErrors = this.userErrors; + return result; + } + + /** + * The created inventory shipment. + */ + public Builder inventoryShipment(InventoryShipment inventoryShipment) { + this.inventoryShipment = inventoryShipment; + return this; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public Builder userErrors(List userErrors) { + this.userErrors = userErrors; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentCreateUserError.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentCreateUserError.java new file mode 100644 index 00000000..e4d2a1c0 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentCreateUserError.java @@ -0,0 +1,140 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * An error that occurs during the execution of `InventoryShipmentCreate`. + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NONE +) +public class InventoryShipmentCreateUserError implements com.shopify.admin.types.DisplayableError { + /** + * The error code. + */ + private InventoryShipmentCreateUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public InventoryShipmentCreateUserError() { + } + + /** + * The error code. + */ + public InventoryShipmentCreateUserErrorCode getCode() { + return code; + } + + public void setCode(InventoryShipmentCreateUserErrorCode code) { + this.code = code; + } + + /** + * The path to the input field that caused the error. + */ + public List getField() { + return field; + } + + public void setField(List field) { + this.field = field; + } + + /** + * The error message. + */ + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + @Override + public String toString() { + return "InventoryShipmentCreateUserError{code='" + code + "', field='" + field + "', message='" + message + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryShipmentCreateUserError that = (InventoryShipmentCreateUserError) o; + return Objects.equals(code, that.code) && + Objects.equals(field, that.field) && + Objects.equals(message, that.message); + } + + @Override + public int hashCode() { + return Objects.hash(code, field, message); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The error code. + */ + private InventoryShipmentCreateUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public InventoryShipmentCreateUserError build() { + InventoryShipmentCreateUserError result = new InventoryShipmentCreateUserError(); + result.code = this.code; + result.field = this.field; + result.message = this.message; + return result; + } + + /** + * The error code. + */ + public Builder code(InventoryShipmentCreateUserErrorCode code) { + this.code = code; + return this; + } + + /** + * The path to the input field that caused the error. + */ + public Builder field(List field) { + this.field = field; + return this; + } + + /** + * The error message. + */ + public Builder message(String message) { + this.message = message; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentCreateUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentCreateUserErrorCode.java new file mode 100644 index 00000000..ec95cbe3 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentCreateUserErrorCode.java @@ -0,0 +1,40 @@ +package com.shopify.admin.types; + +/** + * Possible error codes that can be returned by `InventoryShipmentCreateUserError`. + */ +public enum InventoryShipmentCreateUserErrorCode { + BARCODE_DUPLICATE, + + BARCODE_TOO_LONG, + + EMPTY_SHIPMENT_INPUT, + + ITEM_NOT_FOUND, + + TRANSFER_NOT_FOUND, + + INVALID_TRANSFER_STATUS, + + BUNDLED_ITEM, + + INVALID_QUANTITY, + + UNTRACKED_ITEM, + + DUPLICATE_ITEM, + + INVALID_SHIPMENT_INPUT, + + INVALID_ITEM, + + INVALID_URL, + + LOCATION_NOT_ACTIVE, + + IDEMPOTENCY_CONCURRENT_REQUEST, + + IDEMPOTENCY_KEY_PARAMETER_MISMATCH, + + IDEMPOTENCY_RECORD_NOT_FOUND +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentDeletePayload.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentDeletePayload.java new file mode 100644 index 00000000..ec06b4f6 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentDeletePayload.java @@ -0,0 +1,105 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * Return type for `inventoryShipmentDelete` mutation. + */ +public class InventoryShipmentDeletePayload { + /** + * The ID of the inventory shipment that was deleted. + */ + private String id; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public InventoryShipmentDeletePayload() { + } + + /** + * The ID of the inventory shipment that was deleted. + */ + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public List getUserErrors() { + return userErrors; + } + + public void setUserErrors(List userErrors) { + this.userErrors = userErrors; + } + + @Override + public String toString() { + return "InventoryShipmentDeletePayload{id='" + id + "', userErrors='" + userErrors + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryShipmentDeletePayload that = (InventoryShipmentDeletePayload) o; + return Objects.equals(id, that.id) && + Objects.equals(userErrors, that.userErrors); + } + + @Override + public int hashCode() { + return Objects.hash(id, userErrors); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The ID of the inventory shipment that was deleted. + */ + private String id; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public InventoryShipmentDeletePayload build() { + InventoryShipmentDeletePayload result = new InventoryShipmentDeletePayload(); + result.id = this.id; + result.userErrors = this.userErrors; + return result; + } + + /** + * The ID of the inventory shipment that was deleted. + */ + public Builder id(String id) { + this.id = id; + return this; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public Builder userErrors(List userErrors) { + this.userErrors = userErrors; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentDeleteUserError.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentDeleteUserError.java new file mode 100644 index 00000000..bd5801fb --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentDeleteUserError.java @@ -0,0 +1,140 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * An error that occurs during the execution of `InventoryShipmentDelete`. + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NONE +) +public class InventoryShipmentDeleteUserError implements com.shopify.admin.types.DisplayableError { + /** + * The error code. + */ + private InventoryShipmentDeleteUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public InventoryShipmentDeleteUserError() { + } + + /** + * The error code. + */ + public InventoryShipmentDeleteUserErrorCode getCode() { + return code; + } + + public void setCode(InventoryShipmentDeleteUserErrorCode code) { + this.code = code; + } + + /** + * The path to the input field that caused the error. + */ + public List getField() { + return field; + } + + public void setField(List field) { + this.field = field; + } + + /** + * The error message. + */ + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + @Override + public String toString() { + return "InventoryShipmentDeleteUserError{code='" + code + "', field='" + field + "', message='" + message + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryShipmentDeleteUserError that = (InventoryShipmentDeleteUserError) o; + return Objects.equals(code, that.code) && + Objects.equals(field, that.field) && + Objects.equals(message, that.message); + } + + @Override + public int hashCode() { + return Objects.hash(code, field, message); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The error code. + */ + private InventoryShipmentDeleteUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public InventoryShipmentDeleteUserError build() { + InventoryShipmentDeleteUserError result = new InventoryShipmentDeleteUserError(); + result.code = this.code; + result.field = this.field; + result.message = this.message; + return result; + } + + /** + * The error code. + */ + public Builder code(InventoryShipmentDeleteUserErrorCode code) { + this.code = code; + return this; + } + + /** + * The path to the input field that caused the error. + */ + public Builder field(List field) { + this.field = field; + return this; + } + + /** + * The error message. + */ + public Builder message(String message) { + this.message = message; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentDeleteUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentDeleteUserErrorCode.java new file mode 100644 index 00000000..8d1b551b --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentDeleteUserErrorCode.java @@ -0,0 +1,10 @@ +package com.shopify.admin.types; + +/** + * Possible error codes that can be returned by `InventoryShipmentDeleteUserError`. + */ +public enum InventoryShipmentDeleteUserErrorCode { + SHIPMENT_NOT_FOUND, + + INVALID_SHIPMENT_STATUS +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentEdge.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentEdge.java new file mode 100644 index 00000000..559d2b65 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentEdge.java @@ -0,0 +1,104 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * An auto-generated type which holds one InventoryShipment and a cursor during pagination. + */ +public class InventoryShipmentEdge { + /** + * The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + */ + private String cursor; + + /** + * The item at the end of InventoryShipmentEdge. + */ + private InventoryShipment node; + + public InventoryShipmentEdge() { + } + + /** + * The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + */ + public String getCursor() { + return cursor; + } + + public void setCursor(String cursor) { + this.cursor = cursor; + } + + /** + * The item at the end of InventoryShipmentEdge. + */ + public InventoryShipment getNode() { + return node; + } + + public void setNode(InventoryShipment node) { + this.node = node; + } + + @Override + public String toString() { + return "InventoryShipmentEdge{cursor='" + cursor + "', node='" + node + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryShipmentEdge that = (InventoryShipmentEdge) o; + return Objects.equals(cursor, that.cursor) && + Objects.equals(node, that.node); + } + + @Override + public int hashCode() { + return Objects.hash(cursor, node); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + */ + private String cursor; + + /** + * The item at the end of InventoryShipmentEdge. + */ + private InventoryShipment node; + + public InventoryShipmentEdge build() { + InventoryShipmentEdge result = new InventoryShipmentEdge(); + result.cursor = this.cursor; + result.node = this.node; + return result; + } + + /** + * The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + */ + public Builder cursor(String cursor) { + this.cursor = cursor; + return this; + } + + /** + * The item at the end of InventoryShipmentEdge. + */ + public Builder node(InventoryShipment node) { + this.node = node; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentLineItem.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentLineItem.java new file mode 100644 index 00000000..e7b83794 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentLineItem.java @@ -0,0 +1,232 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * Represents a single line item within an inventory shipment. + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NONE +) +public class InventoryShipmentLineItem implements com.shopify.admin.types.Node { + /** + * The quantity of items that were accepted in this shipment line item. + */ + private int acceptedQuantity; + + /** + * A globally-unique ID. + */ + private String id; + + /** + * The inventory item associated with this line item. + */ + private InventoryItem inventoryItem; + + /** + * The quantity of items in this shipment line item. + */ + private int quantity; + + /** + * The quantity of items that were rejected in this shipment line item. + */ + private int rejectedQuantity; + + /** + * The total quantity of units that haven't been received (neither accepted or rejected) in this shipment line item. + */ + private int unreceivedQuantity; + + public InventoryShipmentLineItem() { + } + + /** + * The quantity of items that were accepted in this shipment line item. + */ + public int getAcceptedQuantity() { + return acceptedQuantity; + } + + public void setAcceptedQuantity(int acceptedQuantity) { + this.acceptedQuantity = acceptedQuantity; + } + + /** + * A globally-unique ID. + */ + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + /** + * The inventory item associated with this line item. + */ + public InventoryItem getInventoryItem() { + return inventoryItem; + } + + public void setInventoryItem(InventoryItem inventoryItem) { + this.inventoryItem = inventoryItem; + } + + /** + * The quantity of items in this shipment line item. + */ + public int getQuantity() { + return quantity; + } + + public void setQuantity(int quantity) { + this.quantity = quantity; + } + + /** + * The quantity of items that were rejected in this shipment line item. + */ + public int getRejectedQuantity() { + return rejectedQuantity; + } + + public void setRejectedQuantity(int rejectedQuantity) { + this.rejectedQuantity = rejectedQuantity; + } + + /** + * The total quantity of units that haven't been received (neither accepted or rejected) in this shipment line item. + */ + public int getUnreceivedQuantity() { + return unreceivedQuantity; + } + + public void setUnreceivedQuantity(int unreceivedQuantity) { + this.unreceivedQuantity = unreceivedQuantity; + } + + @Override + public String toString() { + return "InventoryShipmentLineItem{acceptedQuantity='" + acceptedQuantity + "', id='" + id + "', inventoryItem='" + inventoryItem + "', quantity='" + quantity + "', rejectedQuantity='" + rejectedQuantity + "', unreceivedQuantity='" + unreceivedQuantity + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryShipmentLineItem that = (InventoryShipmentLineItem) o; + return acceptedQuantity == that.acceptedQuantity && + Objects.equals(id, that.id) && + Objects.equals(inventoryItem, that.inventoryItem) && + quantity == that.quantity && + rejectedQuantity == that.rejectedQuantity && + unreceivedQuantity == that.unreceivedQuantity; + } + + @Override + public int hashCode() { + return Objects.hash(acceptedQuantity, id, inventoryItem, quantity, rejectedQuantity, unreceivedQuantity); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The quantity of items that were accepted in this shipment line item. + */ + private int acceptedQuantity; + + /** + * A globally-unique ID. + */ + private String id; + + /** + * The inventory item associated with this line item. + */ + private InventoryItem inventoryItem; + + /** + * The quantity of items in this shipment line item. + */ + private int quantity; + + /** + * The quantity of items that were rejected in this shipment line item. + */ + private int rejectedQuantity; + + /** + * The total quantity of units that haven't been received (neither accepted or rejected) in this shipment line item. + */ + private int unreceivedQuantity; + + public InventoryShipmentLineItem build() { + InventoryShipmentLineItem result = new InventoryShipmentLineItem(); + result.acceptedQuantity = this.acceptedQuantity; + result.id = this.id; + result.inventoryItem = this.inventoryItem; + result.quantity = this.quantity; + result.rejectedQuantity = this.rejectedQuantity; + result.unreceivedQuantity = this.unreceivedQuantity; + return result; + } + + /** + * The quantity of items that were accepted in this shipment line item. + */ + public Builder acceptedQuantity(int acceptedQuantity) { + this.acceptedQuantity = acceptedQuantity; + return this; + } + + /** + * A globally-unique ID. + */ + public Builder id(String id) { + this.id = id; + return this; + } + + /** + * The inventory item associated with this line item. + */ + public Builder inventoryItem(InventoryItem inventoryItem) { + this.inventoryItem = inventoryItem; + return this; + } + + /** + * The quantity of items in this shipment line item. + */ + public Builder quantity(int quantity) { + this.quantity = quantity; + return this; + } + + /** + * The quantity of items that were rejected in this shipment line item. + */ + public Builder rejectedQuantity(int rejectedQuantity) { + this.rejectedQuantity = rejectedQuantity; + return this; + } + + /** + * The total quantity of units that haven't been received (neither accepted or rejected) in this shipment line item. + */ + public Builder unreceivedQuantity(int unreceivedQuantity) { + this.unreceivedQuantity = unreceivedQuantity; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentLineItemConnection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentLineItemConnection.java new file mode 100644 index 00000000..07103189 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentLineItemConnection.java @@ -0,0 +1,152 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * An auto-generated type for paginating through multiple InventoryShipmentLineItems. + */ +public class InventoryShipmentLineItemConnection { + /** + * The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + */ + private List edges; + + /** + * A list of nodes that are contained in InventoryShipmentLineItemEdge. You can + * fetch data about an individual node, or you can follow the edges to fetch data + * about a collection of related nodes. At each node, you specify the fields that + * you want to retrieve. + */ + private List nodes; + + /** + * An object that’s used to retrieve [cursor + * information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + */ + private PageInfo pageInfo; + + public InventoryShipmentLineItemConnection() { + } + + /** + * The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + */ + public List getEdges() { + return edges; + } + + public void setEdges(List edges) { + this.edges = edges; + } + + /** + * A list of nodes that are contained in InventoryShipmentLineItemEdge. You can + * fetch data about an individual node, or you can follow the edges to fetch data + * about a collection of related nodes. At each node, you specify the fields that + * you want to retrieve. + */ + public List getNodes() { + return nodes; + } + + public void setNodes(List nodes) { + this.nodes = nodes; + } + + /** + * An object that’s used to retrieve [cursor + * information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + */ + public PageInfo getPageInfo() { + return pageInfo; + } + + public void setPageInfo(PageInfo pageInfo) { + this.pageInfo = pageInfo; + } + + @Override + public String toString() { + return "InventoryShipmentLineItemConnection{edges='" + edges + "', nodes='" + nodes + "', pageInfo='" + pageInfo + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryShipmentLineItemConnection that = (InventoryShipmentLineItemConnection) o; + return Objects.equals(edges, that.edges) && + Objects.equals(nodes, that.nodes) && + Objects.equals(pageInfo, that.pageInfo); + } + + @Override + public int hashCode() { + return Objects.hash(edges, nodes, pageInfo); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + */ + private List edges; + + /** + * A list of nodes that are contained in InventoryShipmentLineItemEdge. You can + * fetch data about an individual node, or you can follow the edges to fetch data + * about a collection of related nodes. At each node, you specify the fields that + * you want to retrieve. + */ + private List nodes; + + /** + * An object that’s used to retrieve [cursor + * information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + */ + private PageInfo pageInfo; + + public InventoryShipmentLineItemConnection build() { + InventoryShipmentLineItemConnection result = new InventoryShipmentLineItemConnection(); + result.edges = this.edges; + result.nodes = this.nodes; + result.pageInfo = this.pageInfo; + return result; + } + + /** + * The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + */ + public Builder edges(List edges) { + this.edges = edges; + return this; + } + + /** + * A list of nodes that are contained in InventoryShipmentLineItemEdge. You can + * fetch data about an individual node, or you can follow the edges to fetch data + * about a collection of related nodes. At each node, you specify the fields that + * you want to retrieve. + */ + public Builder nodes(List nodes) { + this.nodes = nodes; + return this; + } + + /** + * An object that’s used to retrieve [cursor + * information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + */ + public Builder pageInfo(PageInfo pageInfo) { + this.pageInfo = pageInfo; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentLineItemEdge.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentLineItemEdge.java new file mode 100644 index 00000000..bd7a7a14 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentLineItemEdge.java @@ -0,0 +1,104 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * An auto-generated type which holds one InventoryShipmentLineItem and a cursor during pagination. + */ +public class InventoryShipmentLineItemEdge { + /** + * The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + */ + private String cursor; + + /** + * The item at the end of InventoryShipmentLineItemEdge. + */ + private InventoryShipmentLineItem node; + + public InventoryShipmentLineItemEdge() { + } + + /** + * The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + */ + public String getCursor() { + return cursor; + } + + public void setCursor(String cursor) { + this.cursor = cursor; + } + + /** + * The item at the end of InventoryShipmentLineItemEdge. + */ + public InventoryShipmentLineItem getNode() { + return node; + } + + public void setNode(InventoryShipmentLineItem node) { + this.node = node; + } + + @Override + public String toString() { + return "InventoryShipmentLineItemEdge{cursor='" + cursor + "', node='" + node + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryShipmentLineItemEdge that = (InventoryShipmentLineItemEdge) o; + return Objects.equals(cursor, that.cursor) && + Objects.equals(node, that.node); + } + + @Override + public int hashCode() { + return Objects.hash(cursor, node); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + */ + private String cursor; + + /** + * The item at the end of InventoryShipmentLineItemEdge. + */ + private InventoryShipmentLineItem node; + + public InventoryShipmentLineItemEdge build() { + InventoryShipmentLineItemEdge result = new InventoryShipmentLineItemEdge(); + result.cursor = this.cursor; + result.node = this.node; + return result; + } + + /** + * The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + */ + public Builder cursor(String cursor) { + this.cursor = cursor; + return this; + } + + /** + * The item at the end of InventoryShipmentLineItemEdge. + */ + public Builder node(InventoryShipmentLineItem node) { + this.node = node; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentLineItemInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentLineItemInput.java new file mode 100644 index 00000000..bc9fdb30 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentLineItemInput.java @@ -0,0 +1,104 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * The input fields for a line item on an inventory shipment. + */ +public class InventoryShipmentLineItemInput { + /** + * The inventory item ID for the shipment line item. + */ + private String inventoryItemId; + + /** + * The quantity for the shipment line item. + */ + private int quantity; + + public InventoryShipmentLineItemInput() { + } + + /** + * The inventory item ID for the shipment line item. + */ + public String getInventoryItemId() { + return inventoryItemId; + } + + public void setInventoryItemId(String inventoryItemId) { + this.inventoryItemId = inventoryItemId; + } + + /** + * The quantity for the shipment line item. + */ + public int getQuantity() { + return quantity; + } + + public void setQuantity(int quantity) { + this.quantity = quantity; + } + + @Override + public String toString() { + return "InventoryShipmentLineItemInput{inventoryItemId='" + inventoryItemId + "', quantity='" + quantity + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryShipmentLineItemInput that = (InventoryShipmentLineItemInput) o; + return Objects.equals(inventoryItemId, that.inventoryItemId) && + quantity == that.quantity; + } + + @Override + public int hashCode() { + return Objects.hash(inventoryItemId, quantity); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The inventory item ID for the shipment line item. + */ + private String inventoryItemId; + + /** + * The quantity for the shipment line item. + */ + private int quantity; + + public InventoryShipmentLineItemInput build() { + InventoryShipmentLineItemInput result = new InventoryShipmentLineItemInput(); + result.inventoryItemId = this.inventoryItemId; + result.quantity = this.quantity; + return result; + } + + /** + * The inventory item ID for the shipment line item. + */ + public Builder inventoryItemId(String inventoryItemId) { + this.inventoryItemId = inventoryItemId; + return this; + } + + /** + * The quantity for the shipment line item. + */ + public Builder quantity(int quantity) { + this.quantity = quantity; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentMarkInTransitPayload.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentMarkInTransitPayload.java new file mode 100644 index 00000000..2a0751f8 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentMarkInTransitPayload.java @@ -0,0 +1,105 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * Return type for `inventoryShipmentMarkInTransit` mutation. + */ +public class InventoryShipmentMarkInTransitPayload { + /** + * The marked in transit inventory shipment. + */ + private InventoryShipment inventoryShipment; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public InventoryShipmentMarkInTransitPayload() { + } + + /** + * The marked in transit inventory shipment. + */ + public InventoryShipment getInventoryShipment() { + return inventoryShipment; + } + + public void setInventoryShipment(InventoryShipment inventoryShipment) { + this.inventoryShipment = inventoryShipment; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public List getUserErrors() { + return userErrors; + } + + public void setUserErrors(List userErrors) { + this.userErrors = userErrors; + } + + @Override + public String toString() { + return "InventoryShipmentMarkInTransitPayload{inventoryShipment='" + inventoryShipment + "', userErrors='" + userErrors + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryShipmentMarkInTransitPayload that = (InventoryShipmentMarkInTransitPayload) o; + return Objects.equals(inventoryShipment, that.inventoryShipment) && + Objects.equals(userErrors, that.userErrors); + } + + @Override + public int hashCode() { + return Objects.hash(inventoryShipment, userErrors); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The marked in transit inventory shipment. + */ + private InventoryShipment inventoryShipment; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public InventoryShipmentMarkInTransitPayload build() { + InventoryShipmentMarkInTransitPayload result = new InventoryShipmentMarkInTransitPayload(); + result.inventoryShipment = this.inventoryShipment; + result.userErrors = this.userErrors; + return result; + } + + /** + * The marked in transit inventory shipment. + */ + public Builder inventoryShipment(InventoryShipment inventoryShipment) { + this.inventoryShipment = inventoryShipment; + return this; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public Builder userErrors(List userErrors) { + this.userErrors = userErrors; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentMarkInTransitUserError.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentMarkInTransitUserError.java new file mode 100644 index 00000000..aeaf03e7 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentMarkInTransitUserError.java @@ -0,0 +1,140 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * An error that occurs during the execution of `InventoryShipmentMarkInTransit`. + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NONE +) +public class InventoryShipmentMarkInTransitUserError implements com.shopify.admin.types.DisplayableError { + /** + * The error code. + */ + private InventoryShipmentMarkInTransitUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public InventoryShipmentMarkInTransitUserError() { + } + + /** + * The error code. + */ + public InventoryShipmentMarkInTransitUserErrorCode getCode() { + return code; + } + + public void setCode(InventoryShipmentMarkInTransitUserErrorCode code) { + this.code = code; + } + + /** + * The path to the input field that caused the error. + */ + public List getField() { + return field; + } + + public void setField(List field) { + this.field = field; + } + + /** + * The error message. + */ + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + @Override + public String toString() { + return "InventoryShipmentMarkInTransitUserError{code='" + code + "', field='" + field + "', message='" + message + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryShipmentMarkInTransitUserError that = (InventoryShipmentMarkInTransitUserError) o; + return Objects.equals(code, that.code) && + Objects.equals(field, that.field) && + Objects.equals(message, that.message); + } + + @Override + public int hashCode() { + return Objects.hash(code, field, message); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The error code. + */ + private InventoryShipmentMarkInTransitUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public InventoryShipmentMarkInTransitUserError build() { + InventoryShipmentMarkInTransitUserError result = new InventoryShipmentMarkInTransitUserError(); + result.code = this.code; + result.field = this.field; + result.message = this.message; + return result; + } + + /** + * The error code. + */ + public Builder code(InventoryShipmentMarkInTransitUserErrorCode code) { + this.code = code; + return this; + } + + /** + * The path to the input field that caused the error. + */ + public Builder field(List field) { + this.field = field; + return this; + } + + /** + * The error message. + */ + public Builder message(String message) { + this.message = message; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentMarkInTransitUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentMarkInTransitUserErrorCode.java new file mode 100644 index 00000000..07ef444e --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentMarkInTransitUserErrorCode.java @@ -0,0 +1,24 @@ +package com.shopify.admin.types; + +/** + * Possible error codes that can be returned by `InventoryShipmentMarkInTransitUserError`. + */ +public enum InventoryShipmentMarkInTransitUserErrorCode { + SHIPMENT_NOT_FOUND, + + INVALID_SHIPMENT_STATUS, + + ITEM_NOT_FOUND, + + INVENTORY_STATE_NOT_ACTIVE, + + UNTRACKED_ITEM, + + INVALID_QUANTITY, + + ITEMS_EMPTY, + + LOCATION_NOT_ACTIVE, + + ACTIVATION_FAILED +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentReceiveItemInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentReceiveItemInput.java new file mode 100644 index 00000000..fa3bf9a3 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentReceiveItemInput.java @@ -0,0 +1,135 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * The input fields to receive an item on an inventory shipment. + */ +public class InventoryShipmentReceiveItemInput { + /** + * The shipment line item ID to be received. + */ + private String shipmentLineItemId; + + /** + * The quantity for the item to be received. + */ + private int quantity; + + /** + * The reason for received item. + */ + private InventoryShipmentReceiveLineItemReason reason; + + public InventoryShipmentReceiveItemInput() { + } + + /** + * The shipment line item ID to be received. + */ + public String getShipmentLineItemId() { + return shipmentLineItemId; + } + + public void setShipmentLineItemId(String shipmentLineItemId) { + this.shipmentLineItemId = shipmentLineItemId; + } + + /** + * The quantity for the item to be received. + */ + public int getQuantity() { + return quantity; + } + + public void setQuantity(int quantity) { + this.quantity = quantity; + } + + /** + * The reason for received item. + */ + public InventoryShipmentReceiveLineItemReason getReason() { + return reason; + } + + public void setReason(InventoryShipmentReceiveLineItemReason reason) { + this.reason = reason; + } + + @Override + public String toString() { + return "InventoryShipmentReceiveItemInput{shipmentLineItemId='" + shipmentLineItemId + "', quantity='" + quantity + "', reason='" + reason + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryShipmentReceiveItemInput that = (InventoryShipmentReceiveItemInput) o; + return Objects.equals(shipmentLineItemId, that.shipmentLineItemId) && + quantity == that.quantity && + Objects.equals(reason, that.reason); + } + + @Override + public int hashCode() { + return Objects.hash(shipmentLineItemId, quantity, reason); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The shipment line item ID to be received. + */ + private String shipmentLineItemId; + + /** + * The quantity for the item to be received. + */ + private int quantity; + + /** + * The reason for received item. + */ + private InventoryShipmentReceiveLineItemReason reason; + + public InventoryShipmentReceiveItemInput build() { + InventoryShipmentReceiveItemInput result = new InventoryShipmentReceiveItemInput(); + result.shipmentLineItemId = this.shipmentLineItemId; + result.quantity = this.quantity; + result.reason = this.reason; + return result; + } + + /** + * The shipment line item ID to be received. + */ + public Builder shipmentLineItemId(String shipmentLineItemId) { + this.shipmentLineItemId = shipmentLineItemId; + return this; + } + + /** + * The quantity for the item to be received. + */ + public Builder quantity(int quantity) { + this.quantity = quantity; + return this; + } + + /** + * The reason for received item. + */ + public Builder reason(InventoryShipmentReceiveLineItemReason reason) { + this.reason = reason; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentReceiveLineItemReason.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentReceiveLineItemReason.java new file mode 100644 index 00000000..b62169df --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentReceiveLineItemReason.java @@ -0,0 +1,10 @@ +package com.shopify.admin.types; + +/** + * The reason for receiving a line item on an inventory shipment. + */ +public enum InventoryShipmentReceiveLineItemReason { + ACCEPTED, + + REJECTED +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentReceivePayload.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentReceivePayload.java new file mode 100644 index 00000000..832908f1 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentReceivePayload.java @@ -0,0 +1,105 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * Return type for `inventoryShipmentReceive` mutation. + */ +public class InventoryShipmentReceivePayload { + /** + * The inventory shipment with received items. + */ + private InventoryShipment inventoryShipment; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public InventoryShipmentReceivePayload() { + } + + /** + * The inventory shipment with received items. + */ + public InventoryShipment getInventoryShipment() { + return inventoryShipment; + } + + public void setInventoryShipment(InventoryShipment inventoryShipment) { + this.inventoryShipment = inventoryShipment; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public List getUserErrors() { + return userErrors; + } + + public void setUserErrors(List userErrors) { + this.userErrors = userErrors; + } + + @Override + public String toString() { + return "InventoryShipmentReceivePayload{inventoryShipment='" + inventoryShipment + "', userErrors='" + userErrors + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryShipmentReceivePayload that = (InventoryShipmentReceivePayload) o; + return Objects.equals(inventoryShipment, that.inventoryShipment) && + Objects.equals(userErrors, that.userErrors); + } + + @Override + public int hashCode() { + return Objects.hash(inventoryShipment, userErrors); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The inventory shipment with received items. + */ + private InventoryShipment inventoryShipment; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public InventoryShipmentReceivePayload build() { + InventoryShipmentReceivePayload result = new InventoryShipmentReceivePayload(); + result.inventoryShipment = this.inventoryShipment; + result.userErrors = this.userErrors; + return result; + } + + /** + * The inventory shipment with received items. + */ + public Builder inventoryShipment(InventoryShipment inventoryShipment) { + this.inventoryShipment = inventoryShipment; + return this; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public Builder userErrors(List userErrors) { + this.userErrors = userErrors; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentReceiveUserError.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentReceiveUserError.java new file mode 100644 index 00000000..695dff8a --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentReceiveUserError.java @@ -0,0 +1,140 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * An error that occurs during the execution of `InventoryShipmentReceive`. + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NONE +) +public class InventoryShipmentReceiveUserError implements com.shopify.admin.types.DisplayableError { + /** + * The error code. + */ + private InventoryShipmentReceiveUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public InventoryShipmentReceiveUserError() { + } + + /** + * The error code. + */ + public InventoryShipmentReceiveUserErrorCode getCode() { + return code; + } + + public void setCode(InventoryShipmentReceiveUserErrorCode code) { + this.code = code; + } + + /** + * The path to the input field that caused the error. + */ + public List getField() { + return field; + } + + public void setField(List field) { + this.field = field; + } + + /** + * The error message. + */ + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + @Override + public String toString() { + return "InventoryShipmentReceiveUserError{code='" + code + "', field='" + field + "', message='" + message + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryShipmentReceiveUserError that = (InventoryShipmentReceiveUserError) o; + return Objects.equals(code, that.code) && + Objects.equals(field, that.field) && + Objects.equals(message, that.message); + } + + @Override + public int hashCode() { + return Objects.hash(code, field, message); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The error code. + */ + private InventoryShipmentReceiveUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public InventoryShipmentReceiveUserError build() { + InventoryShipmentReceiveUserError result = new InventoryShipmentReceiveUserError(); + result.code = this.code; + result.field = this.field; + result.message = this.message; + return result; + } + + /** + * The error code. + */ + public Builder code(InventoryShipmentReceiveUserErrorCode code) { + this.code = code; + return this; + } + + /** + * The path to the input field that caused the error. + */ + public Builder field(List field) { + this.field = field; + return this; + } + + /** + * The error message. + */ + public Builder message(String message) { + this.message = message; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentReceiveUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentReceiveUserErrorCode.java new file mode 100644 index 00000000..af2571d2 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentReceiveUserErrorCode.java @@ -0,0 +1,26 @@ +package com.shopify.admin.types; + +/** + * Possible error codes that can be returned by `InventoryShipmentReceiveUserError`. + */ +public enum InventoryShipmentReceiveUserErrorCode { + LOCATION_NOT_FOUND, + + IDEMPOTENCY_CONCURRENT_REQUEST, + + IDEMPOTENCY_KEY_PARAMETER_MISMATCH, + + INTERNAL_ERROR, + + INVALID_SHIPMENT_STATUS, + + INVENTORY_STATE_NOT_ACTIVE, + + SHIPMENT_NOT_FOUND, + + INVALID_QUANTITY, + + ITEM_NOT_FOUND, + + LOCATION_NOT_ACTIVE +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentRemoveItemsPayload.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentRemoveItemsPayload.java new file mode 100644 index 00000000..6b44f8de --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentRemoveItemsPayload.java @@ -0,0 +1,105 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * Return type for `inventoryShipmentRemoveItems` mutation. + */ +public class InventoryShipmentRemoveItemsPayload { + /** + * The inventory shipment with items removed. + */ + private InventoryShipment inventoryShipment; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public InventoryShipmentRemoveItemsPayload() { + } + + /** + * The inventory shipment with items removed. + */ + public InventoryShipment getInventoryShipment() { + return inventoryShipment; + } + + public void setInventoryShipment(InventoryShipment inventoryShipment) { + this.inventoryShipment = inventoryShipment; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public List getUserErrors() { + return userErrors; + } + + public void setUserErrors(List userErrors) { + this.userErrors = userErrors; + } + + @Override + public String toString() { + return "InventoryShipmentRemoveItemsPayload{inventoryShipment='" + inventoryShipment + "', userErrors='" + userErrors + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryShipmentRemoveItemsPayload that = (InventoryShipmentRemoveItemsPayload) o; + return Objects.equals(inventoryShipment, that.inventoryShipment) && + Objects.equals(userErrors, that.userErrors); + } + + @Override + public int hashCode() { + return Objects.hash(inventoryShipment, userErrors); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The inventory shipment with items removed. + */ + private InventoryShipment inventoryShipment; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public InventoryShipmentRemoveItemsPayload build() { + InventoryShipmentRemoveItemsPayload result = new InventoryShipmentRemoveItemsPayload(); + result.inventoryShipment = this.inventoryShipment; + result.userErrors = this.userErrors; + return result; + } + + /** + * The inventory shipment with items removed. + */ + public Builder inventoryShipment(InventoryShipment inventoryShipment) { + this.inventoryShipment = inventoryShipment; + return this; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public Builder userErrors(List userErrors) { + this.userErrors = userErrors; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentRemoveItemsUserError.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentRemoveItemsUserError.java new file mode 100644 index 00000000..9b893e42 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentRemoveItemsUserError.java @@ -0,0 +1,140 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * An error that occurs during the execution of `InventoryShipmentRemoveItems`. + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NONE +) +public class InventoryShipmentRemoveItemsUserError implements com.shopify.admin.types.DisplayableError { + /** + * The error code. + */ + private InventoryShipmentRemoveItemsUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public InventoryShipmentRemoveItemsUserError() { + } + + /** + * The error code. + */ + public InventoryShipmentRemoveItemsUserErrorCode getCode() { + return code; + } + + public void setCode(InventoryShipmentRemoveItemsUserErrorCode code) { + this.code = code; + } + + /** + * The path to the input field that caused the error. + */ + public List getField() { + return field; + } + + public void setField(List field) { + this.field = field; + } + + /** + * The error message. + */ + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + @Override + public String toString() { + return "InventoryShipmentRemoveItemsUserError{code='" + code + "', field='" + field + "', message='" + message + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryShipmentRemoveItemsUserError that = (InventoryShipmentRemoveItemsUserError) o; + return Objects.equals(code, that.code) && + Objects.equals(field, that.field) && + Objects.equals(message, that.message); + } + + @Override + public int hashCode() { + return Objects.hash(code, field, message); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The error code. + */ + private InventoryShipmentRemoveItemsUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public InventoryShipmentRemoveItemsUserError build() { + InventoryShipmentRemoveItemsUserError result = new InventoryShipmentRemoveItemsUserError(); + result.code = this.code; + result.field = this.field; + result.message = this.message; + return result; + } + + /** + * The error code. + */ + public Builder code(InventoryShipmentRemoveItemsUserErrorCode code) { + this.code = code; + return this; + } + + /** + * The path to the input field that caused the error. + */ + public Builder field(List field) { + this.field = field; + return this; + } + + /** + * The error message. + */ + public Builder message(String message) { + this.message = message; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentRemoveItemsUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentRemoveItemsUserErrorCode.java new file mode 100644 index 00000000..11e93861 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentRemoveItemsUserErrorCode.java @@ -0,0 +1,18 @@ +package com.shopify.admin.types; + +/** + * Possible error codes that can be returned by `InventoryShipmentRemoveItemsUserError`. + */ +public enum InventoryShipmentRemoveItemsUserErrorCode { + LOCATION_NOT_FOUND, + + INTERNAL_ERROR, + + SHIPMENT_NOT_FOUND, + + ITEM_NOT_FOUND, + + INVALID_SHIPMENT_STATUS, + + LOCATION_NOT_ACTIVE +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentSetTrackingPayload.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentSetTrackingPayload.java new file mode 100644 index 00000000..d5ea46a9 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentSetTrackingPayload.java @@ -0,0 +1,105 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * Return type for `inventoryShipmentSetTracking` mutation. + */ +public class InventoryShipmentSetTrackingPayload { + /** + * The inventory shipment with the edited tracking info. + */ + private InventoryShipment inventoryShipment; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public InventoryShipmentSetTrackingPayload() { + } + + /** + * The inventory shipment with the edited tracking info. + */ + public InventoryShipment getInventoryShipment() { + return inventoryShipment; + } + + public void setInventoryShipment(InventoryShipment inventoryShipment) { + this.inventoryShipment = inventoryShipment; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public List getUserErrors() { + return userErrors; + } + + public void setUserErrors(List userErrors) { + this.userErrors = userErrors; + } + + @Override + public String toString() { + return "InventoryShipmentSetTrackingPayload{inventoryShipment='" + inventoryShipment + "', userErrors='" + userErrors + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryShipmentSetTrackingPayload that = (InventoryShipmentSetTrackingPayload) o; + return Objects.equals(inventoryShipment, that.inventoryShipment) && + Objects.equals(userErrors, that.userErrors); + } + + @Override + public int hashCode() { + return Objects.hash(inventoryShipment, userErrors); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The inventory shipment with the edited tracking info. + */ + private InventoryShipment inventoryShipment; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public InventoryShipmentSetTrackingPayload build() { + InventoryShipmentSetTrackingPayload result = new InventoryShipmentSetTrackingPayload(); + result.inventoryShipment = this.inventoryShipment; + result.userErrors = this.userErrors; + return result; + } + + /** + * The inventory shipment with the edited tracking info. + */ + public Builder inventoryShipment(InventoryShipment inventoryShipment) { + this.inventoryShipment = inventoryShipment; + return this; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public Builder userErrors(List userErrors) { + this.userErrors = userErrors; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentSetTrackingUserError.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentSetTrackingUserError.java new file mode 100644 index 00000000..81267dbe --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentSetTrackingUserError.java @@ -0,0 +1,140 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * An error that occurs during the execution of `InventoryShipmentSetTracking`. + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NONE +) +public class InventoryShipmentSetTrackingUserError implements com.shopify.admin.types.DisplayableError { + /** + * The error code. + */ + private InventoryShipmentSetTrackingUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public InventoryShipmentSetTrackingUserError() { + } + + /** + * The error code. + */ + public InventoryShipmentSetTrackingUserErrorCode getCode() { + return code; + } + + public void setCode(InventoryShipmentSetTrackingUserErrorCode code) { + this.code = code; + } + + /** + * The path to the input field that caused the error. + */ + public List getField() { + return field; + } + + public void setField(List field) { + this.field = field; + } + + /** + * The error message. + */ + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + @Override + public String toString() { + return "InventoryShipmentSetTrackingUserError{code='" + code + "', field='" + field + "', message='" + message + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryShipmentSetTrackingUserError that = (InventoryShipmentSetTrackingUserError) o; + return Objects.equals(code, that.code) && + Objects.equals(field, that.field) && + Objects.equals(message, that.message); + } + + @Override + public int hashCode() { + return Objects.hash(code, field, message); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The error code. + */ + private InventoryShipmentSetTrackingUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public InventoryShipmentSetTrackingUserError build() { + InventoryShipmentSetTrackingUserError result = new InventoryShipmentSetTrackingUserError(); + result.code = this.code; + result.field = this.field; + result.message = this.message; + return result; + } + + /** + * The error code. + */ + public Builder code(InventoryShipmentSetTrackingUserErrorCode code) { + this.code = code; + return this; + } + + /** + * The path to the input field that caused the error. + */ + public Builder field(List field) { + this.field = field; + return this; + } + + /** + * The error message. + */ + public Builder message(String message) { + this.message = message; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentSetTrackingUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentSetTrackingUserErrorCode.java new file mode 100644 index 00000000..2d476fcb --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentSetTrackingUserErrorCode.java @@ -0,0 +1,10 @@ +package com.shopify.admin.types; + +/** + * Possible error codes that can be returned by `InventoryShipmentSetTrackingUserError`. + */ +public enum InventoryShipmentSetTrackingUserErrorCode { + SHIPMENT_NOT_FOUND, + + INVALID_URL +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentStatus.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentStatus.java new file mode 100644 index 00000000..4c579781 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentStatus.java @@ -0,0 +1,16 @@ +package com.shopify.admin.types; + +/** + * The status of an inventory shipment. + */ +public enum InventoryShipmentStatus { + DRAFT, + + IN_TRANSIT, + + PARTIALLY_RECEIVED, + + RECEIVED, + + OTHER +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentTracking.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentTracking.java new file mode 100644 index 00000000..4ccb4b0e --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentTracking.java @@ -0,0 +1,183 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.time.OffsetDateTime; +import java.util.Objects; + +/** + * Represents the tracking information for an inventory shipment. + */ +public class InventoryShipmentTracking { + /** + * The estimated date and time that the shipment will arrive. + */ + private OffsetDateTime arrivesAt; + + /** + * The name of the shipping carrier company. + */ + private String company; + + /** + * The tracking number used by the carrier to identify the shipment. + */ + private String trackingNumber; + + /** + * The URL to track the shipment. + * + * Given a tracking number and a shipping carrier company name from + * [the list](https://shopify.dev/api/admin-graphql/latest/objects/FulfillmentTrackingInfo#field-company), + * Shopify will return a generated tracking URL if no tracking URL was set manually. + */ + private String trackingUrl; + + public InventoryShipmentTracking() { + } + + /** + * The estimated date and time that the shipment will arrive. + */ + public OffsetDateTime getArrivesAt() { + return arrivesAt; + } + + public void setArrivesAt(OffsetDateTime arrivesAt) { + this.arrivesAt = arrivesAt; + } + + /** + * The name of the shipping carrier company. + */ + public String getCompany() { + return company; + } + + public void setCompany(String company) { + this.company = company; + } + + /** + * The tracking number used by the carrier to identify the shipment. + */ + public String getTrackingNumber() { + return trackingNumber; + } + + public void setTrackingNumber(String trackingNumber) { + this.trackingNumber = trackingNumber; + } + + /** + * The URL to track the shipment. + * + * Given a tracking number and a shipping carrier company name from + * [the list](https://shopify.dev/api/admin-graphql/latest/objects/FulfillmentTrackingInfo#field-company), + * Shopify will return a generated tracking URL if no tracking URL was set manually. + */ + public String getTrackingUrl() { + return trackingUrl; + } + + public void setTrackingUrl(String trackingUrl) { + this.trackingUrl = trackingUrl; + } + + @Override + public String toString() { + return "InventoryShipmentTracking{arrivesAt='" + arrivesAt + "', company='" + company + "', trackingNumber='" + trackingNumber + "', trackingUrl='" + trackingUrl + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryShipmentTracking that = (InventoryShipmentTracking) o; + return Objects.equals(arrivesAt, that.arrivesAt) && + Objects.equals(company, that.company) && + Objects.equals(trackingNumber, that.trackingNumber) && + Objects.equals(trackingUrl, that.trackingUrl); + } + + @Override + public int hashCode() { + return Objects.hash(arrivesAt, company, trackingNumber, trackingUrl); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The estimated date and time that the shipment will arrive. + */ + private OffsetDateTime arrivesAt; + + /** + * The name of the shipping carrier company. + */ + private String company; + + /** + * The tracking number used by the carrier to identify the shipment. + */ + private String trackingNumber; + + /** + * The URL to track the shipment. + * + * Given a tracking number and a shipping carrier company name from + * [the list](https://shopify.dev/api/admin-graphql/latest/objects/FulfillmentTrackingInfo#field-company), + * Shopify will return a generated tracking URL if no tracking URL was set manually. + */ + private String trackingUrl; + + public InventoryShipmentTracking build() { + InventoryShipmentTracking result = new InventoryShipmentTracking(); + result.arrivesAt = this.arrivesAt; + result.company = this.company; + result.trackingNumber = this.trackingNumber; + result.trackingUrl = this.trackingUrl; + return result; + } + + /** + * The estimated date and time that the shipment will arrive. + */ + public Builder arrivesAt(OffsetDateTime arrivesAt) { + this.arrivesAt = arrivesAt; + return this; + } + + /** + * The name of the shipping carrier company. + */ + public Builder company(String company) { + this.company = company; + return this; + } + + /** + * The tracking number used by the carrier to identify the shipment. + */ + public Builder trackingNumber(String trackingNumber) { + this.trackingNumber = trackingNumber; + return this; + } + + /** + * The URL to track the shipment. + * + * Given a tracking number and a shipping carrier company name from + * [the list](https://shopify.dev/api/admin-graphql/latest/objects/FulfillmentTrackingInfo#field-company), + * Shopify will return a generated tracking URL if no tracking URL was set manually. + */ + public Builder trackingUrl(String trackingUrl) { + this.trackingUrl = trackingUrl; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentTrackingInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentTrackingInput.java new file mode 100644 index 00000000..30dad9a1 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentTrackingInput.java @@ -0,0 +1,199 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.time.OffsetDateTime; +import java.util.Objects; + +/** + * The input fields for an inventory shipment's tracking information. + */ +public class InventoryShipmentTrackingInput { + /** + * The tracking number for the shipment. + */ + private String trackingNumber; + + /** + * The name of the shipping carrier company. + * + * Given a shipping carrier company name from + * [the list](https://shopify.dev/api/admin-graphql/latest/objects/FulfillmentTrackingInfo#field-company), + * Shopify can build a tracking URL for a provided tracking number. + */ + private String company; + + /** + * The URL to track the shipment. + * + * Use this field to specify a custom tracking URL. If no custom tracking URL is set, Shopify will automatically provide + * this field on query for a tracking number and a supported shipping carrier company from + * [the list](https://shopify.dev/api/admin-graphql/latest/objects/FulfillmentTrackingInfo#field-company). + */ + private String trackingUrl; + + /** + * The estimated date and time that the shipment will arrive. + */ + private OffsetDateTime arrivesAt; + + public InventoryShipmentTrackingInput() { + } + + /** + * The tracking number for the shipment. + */ + public String getTrackingNumber() { + return trackingNumber; + } + + public void setTrackingNumber(String trackingNumber) { + this.trackingNumber = trackingNumber; + } + + /** + * The name of the shipping carrier company. + * + * Given a shipping carrier company name from + * [the list](https://shopify.dev/api/admin-graphql/latest/objects/FulfillmentTrackingInfo#field-company), + * Shopify can build a tracking URL for a provided tracking number. + */ + public String getCompany() { + return company; + } + + public void setCompany(String company) { + this.company = company; + } + + /** + * The URL to track the shipment. + * + * Use this field to specify a custom tracking URL. If no custom tracking URL is set, Shopify will automatically provide + * this field on query for a tracking number and a supported shipping carrier company from + * [the list](https://shopify.dev/api/admin-graphql/latest/objects/FulfillmentTrackingInfo#field-company). + */ + public String getTrackingUrl() { + return trackingUrl; + } + + public void setTrackingUrl(String trackingUrl) { + this.trackingUrl = trackingUrl; + } + + /** + * The estimated date and time that the shipment will arrive. + */ + public OffsetDateTime getArrivesAt() { + return arrivesAt; + } + + public void setArrivesAt(OffsetDateTime arrivesAt) { + this.arrivesAt = arrivesAt; + } + + @Override + public String toString() { + return "InventoryShipmentTrackingInput{trackingNumber='" + trackingNumber + "', company='" + company + "', trackingUrl='" + trackingUrl + "', arrivesAt='" + arrivesAt + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryShipmentTrackingInput that = (InventoryShipmentTrackingInput) o; + return Objects.equals(trackingNumber, that.trackingNumber) && + Objects.equals(company, that.company) && + Objects.equals(trackingUrl, that.trackingUrl) && + Objects.equals(arrivesAt, that.arrivesAt); + } + + @Override + public int hashCode() { + return Objects.hash(trackingNumber, company, trackingUrl, arrivesAt); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The tracking number for the shipment. + */ + private String trackingNumber; + + /** + * The name of the shipping carrier company. + * + * Given a shipping carrier company name from + * [the list](https://shopify.dev/api/admin-graphql/latest/objects/FulfillmentTrackingInfo#field-company), + * Shopify can build a tracking URL for a provided tracking number. + */ + private String company; + + /** + * The URL to track the shipment. + * + * Use this field to specify a custom tracking URL. If no custom tracking URL is set, Shopify will automatically provide + * this field on query for a tracking number and a supported shipping carrier company from + * [the list](https://shopify.dev/api/admin-graphql/latest/objects/FulfillmentTrackingInfo#field-company). + */ + private String trackingUrl; + + /** + * The estimated date and time that the shipment will arrive. + */ + private OffsetDateTime arrivesAt; + + public InventoryShipmentTrackingInput build() { + InventoryShipmentTrackingInput result = new InventoryShipmentTrackingInput(); + result.trackingNumber = this.trackingNumber; + result.company = this.company; + result.trackingUrl = this.trackingUrl; + result.arrivesAt = this.arrivesAt; + return result; + } + + /** + * The tracking number for the shipment. + */ + public Builder trackingNumber(String trackingNumber) { + this.trackingNumber = trackingNumber; + return this; + } + + /** + * The name of the shipping carrier company. + * + * Given a shipping carrier company name from + * [the list](https://shopify.dev/api/admin-graphql/latest/objects/FulfillmentTrackingInfo#field-company), + * Shopify can build a tracking URL for a provided tracking number. + */ + public Builder company(String company) { + this.company = company; + return this; + } + + /** + * The URL to track the shipment. + * + * Use this field to specify a custom tracking URL. If no custom tracking URL is set, Shopify will automatically provide + * this field on query for a tracking number and a supported shipping carrier company from + * [the list](https://shopify.dev/api/admin-graphql/latest/objects/FulfillmentTrackingInfo#field-company). + */ + public Builder trackingUrl(String trackingUrl) { + this.trackingUrl = trackingUrl; + return this; + } + + /** + * The estimated date and time that the shipment will arrive. + */ + public Builder arrivesAt(OffsetDateTime arrivesAt) { + this.arrivesAt = arrivesAt; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentUpdateItemQuantitiesInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentUpdateItemQuantitiesInput.java new file mode 100644 index 00000000..699dda37 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentUpdateItemQuantitiesInput.java @@ -0,0 +1,104 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * The input fields for a line item on an inventory shipment. + */ +public class InventoryShipmentUpdateItemQuantitiesInput { + /** + * The ID for the inventory shipment line item. + */ + private String shipmentLineItemId; + + /** + * The quantity for the shipment line item. + */ + private int quantity; + + public InventoryShipmentUpdateItemQuantitiesInput() { + } + + /** + * The ID for the inventory shipment line item. + */ + public String getShipmentLineItemId() { + return shipmentLineItemId; + } + + public void setShipmentLineItemId(String shipmentLineItemId) { + this.shipmentLineItemId = shipmentLineItemId; + } + + /** + * The quantity for the shipment line item. + */ + public int getQuantity() { + return quantity; + } + + public void setQuantity(int quantity) { + this.quantity = quantity; + } + + @Override + public String toString() { + return "InventoryShipmentUpdateItemQuantitiesInput{shipmentLineItemId='" + shipmentLineItemId + "', quantity='" + quantity + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryShipmentUpdateItemQuantitiesInput that = (InventoryShipmentUpdateItemQuantitiesInput) o; + return Objects.equals(shipmentLineItemId, that.shipmentLineItemId) && + quantity == that.quantity; + } + + @Override + public int hashCode() { + return Objects.hash(shipmentLineItemId, quantity); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The ID for the inventory shipment line item. + */ + private String shipmentLineItemId; + + /** + * The quantity for the shipment line item. + */ + private int quantity; + + public InventoryShipmentUpdateItemQuantitiesInput build() { + InventoryShipmentUpdateItemQuantitiesInput result = new InventoryShipmentUpdateItemQuantitiesInput(); + result.shipmentLineItemId = this.shipmentLineItemId; + result.quantity = this.quantity; + return result; + } + + /** + * The ID for the inventory shipment line item. + */ + public Builder shipmentLineItemId(String shipmentLineItemId) { + this.shipmentLineItemId = shipmentLineItemId; + return this; + } + + /** + * The quantity for the shipment line item. + */ + public Builder quantity(int quantity) { + this.quantity = quantity; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentUpdateItemQuantitiesPayload.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentUpdateItemQuantitiesPayload.java new file mode 100644 index 00000000..183f0f3a --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentUpdateItemQuantitiesPayload.java @@ -0,0 +1,136 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * Return type for `inventoryShipmentUpdateItemQuantities` mutation. + */ +public class InventoryShipmentUpdateItemQuantitiesPayload { + /** + * The inventory shipment with updated item quantities. + */ + private InventoryShipment shipment; + + /** + * The updated item quantities. + */ + private List updatedLineItems; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public InventoryShipmentUpdateItemQuantitiesPayload() { + } + + /** + * The inventory shipment with updated item quantities. + */ + public InventoryShipment getShipment() { + return shipment; + } + + public void setShipment(InventoryShipment shipment) { + this.shipment = shipment; + } + + /** + * The updated item quantities. + */ + public List getUpdatedLineItems() { + return updatedLineItems; + } + + public void setUpdatedLineItems(List updatedLineItems) { + this.updatedLineItems = updatedLineItems; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public List getUserErrors() { + return userErrors; + } + + public void setUserErrors(List userErrors) { + this.userErrors = userErrors; + } + + @Override + public String toString() { + return "InventoryShipmentUpdateItemQuantitiesPayload{shipment='" + shipment + "', updatedLineItems='" + updatedLineItems + "', userErrors='" + userErrors + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryShipmentUpdateItemQuantitiesPayload that = (InventoryShipmentUpdateItemQuantitiesPayload) o; + return Objects.equals(shipment, that.shipment) && + Objects.equals(updatedLineItems, that.updatedLineItems) && + Objects.equals(userErrors, that.userErrors); + } + + @Override + public int hashCode() { + return Objects.hash(shipment, updatedLineItems, userErrors); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The inventory shipment with updated item quantities. + */ + private InventoryShipment shipment; + + /** + * The updated item quantities. + */ + private List updatedLineItems; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public InventoryShipmentUpdateItemQuantitiesPayload build() { + InventoryShipmentUpdateItemQuantitiesPayload result = new InventoryShipmentUpdateItemQuantitiesPayload(); + result.shipment = this.shipment; + result.updatedLineItems = this.updatedLineItems; + result.userErrors = this.userErrors; + return result; + } + + /** + * The inventory shipment with updated item quantities. + */ + public Builder shipment(InventoryShipment shipment) { + this.shipment = shipment; + return this; + } + + /** + * The updated item quantities. + */ + public Builder updatedLineItems(List updatedLineItems) { + this.updatedLineItems = updatedLineItems; + return this; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public Builder userErrors(List userErrors) { + this.userErrors = userErrors; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentUpdateItemQuantitiesUserError.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentUpdateItemQuantitiesUserError.java new file mode 100644 index 00000000..e044618f --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentUpdateItemQuantitiesUserError.java @@ -0,0 +1,140 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * An error that occurs during the execution of `InventoryShipmentUpdateItemQuantities`. + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NONE +) +public class InventoryShipmentUpdateItemQuantitiesUserError implements com.shopify.admin.types.DisplayableError { + /** + * The error code. + */ + private InventoryShipmentUpdateItemQuantitiesUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public InventoryShipmentUpdateItemQuantitiesUserError() { + } + + /** + * The error code. + */ + public InventoryShipmentUpdateItemQuantitiesUserErrorCode getCode() { + return code; + } + + public void setCode(InventoryShipmentUpdateItemQuantitiesUserErrorCode code) { + this.code = code; + } + + /** + * The path to the input field that caused the error. + */ + public List getField() { + return field; + } + + public void setField(List field) { + this.field = field; + } + + /** + * The error message. + */ + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + @Override + public String toString() { + return "InventoryShipmentUpdateItemQuantitiesUserError{code='" + code + "', field='" + field + "', message='" + message + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryShipmentUpdateItemQuantitiesUserError that = (InventoryShipmentUpdateItemQuantitiesUserError) o; + return Objects.equals(code, that.code) && + Objects.equals(field, that.field) && + Objects.equals(message, that.message); + } + + @Override + public int hashCode() { + return Objects.hash(code, field, message); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The error code. + */ + private InventoryShipmentUpdateItemQuantitiesUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public InventoryShipmentUpdateItemQuantitiesUserError build() { + InventoryShipmentUpdateItemQuantitiesUserError result = new InventoryShipmentUpdateItemQuantitiesUserError(); + result.code = this.code; + result.field = this.field; + result.message = this.message; + return result; + } + + /** + * The error code. + */ + public Builder code(InventoryShipmentUpdateItemQuantitiesUserErrorCode code) { + this.code = code; + return this; + } + + /** + * The path to the input field that caused the error. + */ + public Builder field(List field) { + this.field = field; + return this; + } + + /** + * The error message. + */ + public Builder message(String message) { + this.message = message; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentUpdateItemQuantitiesUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentUpdateItemQuantitiesUserErrorCode.java new file mode 100644 index 00000000..cae2b114 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryShipmentUpdateItemQuantitiesUserErrorCode.java @@ -0,0 +1,18 @@ +package com.shopify.admin.types; + +/** + * Possible error codes that can be returned by `InventoryShipmentUpdateItemQuantitiesUserError`. + */ +public enum InventoryShipmentUpdateItemQuantitiesUserErrorCode { + LOCATION_NOT_FOUND, + + SHIPMENT_NOT_FOUND, + + ITEM_NOT_FOUND, + + INVALID_QUANTITY, + + INVALID_SHIPMENT_STATUS, + + LOCATION_NOT_ACTIVE +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransfer.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransfer.java new file mode 100644 index 00000000..cd129f35 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransfer.java @@ -0,0 +1,674 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.time.OffsetDateTime; +import java.util.List; +import java.util.Objects; + +/** + * Tracks the movement of [`InventoryItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryItem) + * objects between + * [`Location`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location) + * objects. A transfer includes origin and destination information, [`InventoryTransferLineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryTransferLineItem) + * objects with quantities, and shipment details. + * + * Transfers progress through multiple [`statuses`](https://shopify.dev/docs/api/admin-graphql/latest/enums/InventoryTransferStatus). + * The transfer maintains [`LocationSnapshot`](https://shopify.dev/docs/api/admin-graphql/latest/objects/LocationSnapshot) + * objects of location details to preserve historical data even if locations change + * or are deleted later. + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NONE +) +public class InventoryTransfer implements CommentEventEmbed, com.shopify.admin.types.CommentEventSubject, com.shopify.admin.types.HasEvents, com.shopify.admin.types.HasMetafieldDefinitions, com.shopify.admin.types.HasMetafields, com.shopify.admin.types.Node { + /** + * The date and time the inventory transfer was created in UTC format. + */ + private OffsetDateTime dateCreated; + + /** + * Snapshot of the destination location (name, address, when snapped) with an + * optional link to the live Location object. If the original location is + * deleted, the snapshot data will still be available but the location link will be nil. + */ + private LocationSnapshot destination; + + /** + * The list of events associated with the inventory transfer. + */ + private EventConnection events; + + /** + * Whether the merchant has added timeline comments to the inventory transfer. + */ + private boolean hasTimelineComment; + + /** + * A globally-unique ID. + */ + private String id; + + /** + * The line items associated with the inventory transfer. + */ + private InventoryTransferLineItemConnection lineItems; + + /** + * The number of line items associated with the inventory transfer. Limited to a maximum of 10000 by default. + */ + private Count lineItemsCount; + + /** + * A [custom field](https://shopify.dev/docs/apps/build/custom-data), + * including its `namespace` and `key`, that's associated with a Shopify resource + * for the purposes of adding and storing additional information. + */ + private Metafield metafield; + + /** + * List of metafield definitions. + */ + private MetafieldDefinitionConnection metafieldDefinitions; + + /** + * A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) + * that a merchant associates with a Shopify resource. + */ + private MetafieldConnection metafields; + + /** + * The name of the inventory transfer. + */ + private String name; + + /** + * Additional note attached to the inventory transfer. + */ + private String note; + + /** + * Snapshot of the origin location (name, address, when snapped) with an optional + * link to the live Location object. If the original location is deleted, the + * snapshot data will still be available but the location link will be nil. + */ + private LocationSnapshot origin; + + /** + * The total quantity of items received in the transfer. + */ + private int receivedQuantity; + + /** + * The reference name of the inventory transfer. + */ + private String referenceName; + + /** + * The shipments associated with the inventory transfer. + */ + private InventoryShipmentConnection shipments; + + /** + * The current status of the transfer. + */ + private InventoryTransferStatus status; + + /** + * A list of tags that have been added to the inventory transfer. + */ + private List tags; + + /** + * The total quantity of items being transferred. + */ + private int totalQuantity; + + public InventoryTransfer() { + } + + /** + * The date and time the inventory transfer was created in UTC format. + */ + public OffsetDateTime getDateCreated() { + return dateCreated; + } + + public void setDateCreated(OffsetDateTime dateCreated) { + this.dateCreated = dateCreated; + } + + /** + * Snapshot of the destination location (name, address, when snapped) with an + * optional link to the live Location object. If the original location is + * deleted, the snapshot data will still be available but the location link will be nil. + */ + public LocationSnapshot getDestination() { + return destination; + } + + public void setDestination(LocationSnapshot destination) { + this.destination = destination; + } + + /** + * The list of events associated with the inventory transfer. + */ + public EventConnection getEvents() { + return events; + } + + public void setEvents(EventConnection events) { + this.events = events; + } + + /** + * Whether the merchant has added timeline comments to the inventory transfer. + */ + public boolean getHasTimelineComment() { + return hasTimelineComment; + } + + public void setHasTimelineComment(boolean hasTimelineComment) { + this.hasTimelineComment = hasTimelineComment; + } + + /** + * A globally-unique ID. + */ + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + /** + * The line items associated with the inventory transfer. + */ + public InventoryTransferLineItemConnection getLineItems() { + return lineItems; + } + + public void setLineItems(InventoryTransferLineItemConnection lineItems) { + this.lineItems = lineItems; + } + + /** + * The number of line items associated with the inventory transfer. Limited to a maximum of 10000 by default. + */ + public Count getLineItemsCount() { + return lineItemsCount; + } + + public void setLineItemsCount(Count lineItemsCount) { + this.lineItemsCount = lineItemsCount; + } + + /** + * A [custom field](https://shopify.dev/docs/apps/build/custom-data), + * including its `namespace` and `key`, that's associated with a Shopify resource + * for the purposes of adding and storing additional information. + */ + public Metafield getMetafield() { + return metafield; + } + + public void setMetafield(Metafield metafield) { + this.metafield = metafield; + } + + /** + * List of metafield definitions. + */ + public MetafieldDefinitionConnection getMetafieldDefinitions() { + return metafieldDefinitions; + } + + public void setMetafieldDefinitions(MetafieldDefinitionConnection metafieldDefinitions) { + this.metafieldDefinitions = metafieldDefinitions; + } + + /** + * A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) + * that a merchant associates with a Shopify resource. + */ + public MetafieldConnection getMetafields() { + return metafields; + } + + public void setMetafields(MetafieldConnection metafields) { + this.metafields = metafields; + } + + /** + * The name of the inventory transfer. + */ + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + /** + * Additional note attached to the inventory transfer. + */ + public String getNote() { + return note; + } + + public void setNote(String note) { + this.note = note; + } + + /** + * Snapshot of the origin location (name, address, when snapped) with an optional + * link to the live Location object. If the original location is deleted, the + * snapshot data will still be available but the location link will be nil. + */ + public LocationSnapshot getOrigin() { + return origin; + } + + public void setOrigin(LocationSnapshot origin) { + this.origin = origin; + } + + /** + * The total quantity of items received in the transfer. + */ + public int getReceivedQuantity() { + return receivedQuantity; + } + + public void setReceivedQuantity(int receivedQuantity) { + this.receivedQuantity = receivedQuantity; + } + + /** + * The reference name of the inventory transfer. + */ + public String getReferenceName() { + return referenceName; + } + + public void setReferenceName(String referenceName) { + this.referenceName = referenceName; + } + + /** + * The shipments associated with the inventory transfer. + */ + public InventoryShipmentConnection getShipments() { + return shipments; + } + + public void setShipments(InventoryShipmentConnection shipments) { + this.shipments = shipments; + } + + /** + * The current status of the transfer. + */ + public InventoryTransferStatus getStatus() { + return status; + } + + public void setStatus(InventoryTransferStatus status) { + this.status = status; + } + + /** + * A list of tags that have been added to the inventory transfer. + */ + public List getTags() { + return tags; + } + + public void setTags(List tags) { + this.tags = tags; + } + + /** + * The total quantity of items being transferred. + */ + public int getTotalQuantity() { + return totalQuantity; + } + + public void setTotalQuantity(int totalQuantity) { + this.totalQuantity = totalQuantity; + } + + @Override + public String toString() { + return "InventoryTransfer{dateCreated='" + dateCreated + "', destination='" + destination + "', events='" + events + "', hasTimelineComment='" + hasTimelineComment + "', id='" + id + "', lineItems='" + lineItems + "', lineItemsCount='" + lineItemsCount + "', metafield='" + metafield + "', metafieldDefinitions='" + metafieldDefinitions + "', metafields='" + metafields + "', name='" + name + "', note='" + note + "', origin='" + origin + "', receivedQuantity='" + receivedQuantity + "', referenceName='" + referenceName + "', shipments='" + shipments + "', status='" + status + "', tags='" + tags + "', totalQuantity='" + totalQuantity + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryTransfer that = (InventoryTransfer) o; + return Objects.equals(dateCreated, that.dateCreated) && + Objects.equals(destination, that.destination) && + Objects.equals(events, that.events) && + hasTimelineComment == that.hasTimelineComment && + Objects.equals(id, that.id) && + Objects.equals(lineItems, that.lineItems) && + Objects.equals(lineItemsCount, that.lineItemsCount) && + Objects.equals(metafield, that.metafield) && + Objects.equals(metafieldDefinitions, that.metafieldDefinitions) && + Objects.equals(metafields, that.metafields) && + Objects.equals(name, that.name) && + Objects.equals(note, that.note) && + Objects.equals(origin, that.origin) && + receivedQuantity == that.receivedQuantity && + Objects.equals(referenceName, that.referenceName) && + Objects.equals(shipments, that.shipments) && + Objects.equals(status, that.status) && + Objects.equals(tags, that.tags) && + totalQuantity == that.totalQuantity; + } + + @Override + public int hashCode() { + return Objects.hash(dateCreated, destination, events, hasTimelineComment, id, lineItems, lineItemsCount, metafield, metafieldDefinitions, metafields, name, note, origin, receivedQuantity, referenceName, shipments, status, tags, totalQuantity); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The date and time the inventory transfer was created in UTC format. + */ + private OffsetDateTime dateCreated; + + /** + * Snapshot of the destination location (name, address, when snapped) with an + * optional link to the live Location object. If the original location is + * deleted, the snapshot data will still be available but the location link will be nil. + */ + private LocationSnapshot destination; + + /** + * The list of events associated with the inventory transfer. + */ + private EventConnection events; + + /** + * Whether the merchant has added timeline comments to the inventory transfer. + */ + private boolean hasTimelineComment; + + /** + * A globally-unique ID. + */ + private String id; + + /** + * The line items associated with the inventory transfer. + */ + private InventoryTransferLineItemConnection lineItems; + + /** + * The number of line items associated with the inventory transfer. Limited to a maximum of 10000 by default. + */ + private Count lineItemsCount; + + /** + * A [custom field](https://shopify.dev/docs/apps/build/custom-data), + * including its `namespace` and `key`, that's associated with a Shopify resource + * for the purposes of adding and storing additional information. + */ + private Metafield metafield; + + /** + * List of metafield definitions. + */ + private MetafieldDefinitionConnection metafieldDefinitions; + + /** + * A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) + * that a merchant associates with a Shopify resource. + */ + private MetafieldConnection metafields; + + /** + * The name of the inventory transfer. + */ + private String name; + + /** + * Additional note attached to the inventory transfer. + */ + private String note; + + /** + * Snapshot of the origin location (name, address, when snapped) with an optional + * link to the live Location object. If the original location is deleted, the + * snapshot data will still be available but the location link will be nil. + */ + private LocationSnapshot origin; + + /** + * The total quantity of items received in the transfer. + */ + private int receivedQuantity; + + /** + * The reference name of the inventory transfer. + */ + private String referenceName; + + /** + * The shipments associated with the inventory transfer. + */ + private InventoryShipmentConnection shipments; + + /** + * The current status of the transfer. + */ + private InventoryTransferStatus status; + + /** + * A list of tags that have been added to the inventory transfer. + */ + private List tags; + + /** + * The total quantity of items being transferred. + */ + private int totalQuantity; + + public InventoryTransfer build() { + InventoryTransfer result = new InventoryTransfer(); + result.dateCreated = this.dateCreated; + result.destination = this.destination; + result.events = this.events; + result.hasTimelineComment = this.hasTimelineComment; + result.id = this.id; + result.lineItems = this.lineItems; + result.lineItemsCount = this.lineItemsCount; + result.metafield = this.metafield; + result.metafieldDefinitions = this.metafieldDefinitions; + result.metafields = this.metafields; + result.name = this.name; + result.note = this.note; + result.origin = this.origin; + result.receivedQuantity = this.receivedQuantity; + result.referenceName = this.referenceName; + result.shipments = this.shipments; + result.status = this.status; + result.tags = this.tags; + result.totalQuantity = this.totalQuantity; + return result; + } + + /** + * The date and time the inventory transfer was created in UTC format. + */ + public Builder dateCreated(OffsetDateTime dateCreated) { + this.dateCreated = dateCreated; + return this; + } + + /** + * Snapshot of the destination location (name, address, when snapped) with an + * optional link to the live Location object. If the original location is + * deleted, the snapshot data will still be available but the location link will be nil. + */ + public Builder destination(LocationSnapshot destination) { + this.destination = destination; + return this; + } + + /** + * The list of events associated with the inventory transfer. + */ + public Builder events(EventConnection events) { + this.events = events; + return this; + } + + /** + * Whether the merchant has added timeline comments to the inventory transfer. + */ + public Builder hasTimelineComment(boolean hasTimelineComment) { + this.hasTimelineComment = hasTimelineComment; + return this; + } + + /** + * A globally-unique ID. + */ + public Builder id(String id) { + this.id = id; + return this; + } + + /** + * The line items associated with the inventory transfer. + */ + public Builder lineItems(InventoryTransferLineItemConnection lineItems) { + this.lineItems = lineItems; + return this; + } + + /** + * The number of line items associated with the inventory transfer. Limited to a maximum of 10000 by default. + */ + public Builder lineItemsCount(Count lineItemsCount) { + this.lineItemsCount = lineItemsCount; + return this; + } + + /** + * A [custom field](https://shopify.dev/docs/apps/build/custom-data), + * including its `namespace` and `key`, that's associated with a Shopify resource + * for the purposes of adding and storing additional information. + */ + public Builder metafield(Metafield metafield) { + this.metafield = metafield; + return this; + } + + /** + * List of metafield definitions. + */ + public Builder metafieldDefinitions(MetafieldDefinitionConnection metafieldDefinitions) { + this.metafieldDefinitions = metafieldDefinitions; + return this; + } + + /** + * A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) + * that a merchant associates with a Shopify resource. + */ + public Builder metafields(MetafieldConnection metafields) { + this.metafields = metafields; + return this; + } + + /** + * The name of the inventory transfer. + */ + public Builder name(String name) { + this.name = name; + return this; + } + + /** + * Additional note attached to the inventory transfer. + */ + public Builder note(String note) { + this.note = note; + return this; + } + + /** + * Snapshot of the origin location (name, address, when snapped) with an optional + * link to the live Location object. If the original location is deleted, the + * snapshot data will still be available but the location link will be nil. + */ + public Builder origin(LocationSnapshot origin) { + this.origin = origin; + return this; + } + + /** + * The total quantity of items received in the transfer. + */ + public Builder receivedQuantity(int receivedQuantity) { + this.receivedQuantity = receivedQuantity; + return this; + } + + /** + * The reference name of the inventory transfer. + */ + public Builder referenceName(String referenceName) { + this.referenceName = referenceName; + return this; + } + + /** + * The shipments associated with the inventory transfer. + */ + public Builder shipments(InventoryShipmentConnection shipments) { + this.shipments = shipments; + return this; + } + + /** + * The current status of the transfer. + */ + public Builder status(InventoryTransferStatus status) { + this.status = status; + return this; + } + + /** + * A list of tags that have been added to the inventory transfer. + */ + public Builder tags(List tags) { + this.tags = tags; + return this; + } + + /** + * The total quantity of items being transferred. + */ + public Builder totalQuantity(int totalQuantity) { + this.totalQuantity = totalQuantity; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferCancelPayload.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferCancelPayload.java new file mode 100644 index 00000000..0a571091 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferCancelPayload.java @@ -0,0 +1,105 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * Return type for `inventoryTransferCancel` mutation. + */ +public class InventoryTransferCancelPayload { + /** + * The cancelled inventory transfer. + */ + private InventoryTransfer inventoryTransfer; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public InventoryTransferCancelPayload() { + } + + /** + * The cancelled inventory transfer. + */ + public InventoryTransfer getInventoryTransfer() { + return inventoryTransfer; + } + + public void setInventoryTransfer(InventoryTransfer inventoryTransfer) { + this.inventoryTransfer = inventoryTransfer; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public List getUserErrors() { + return userErrors; + } + + public void setUserErrors(List userErrors) { + this.userErrors = userErrors; + } + + @Override + public String toString() { + return "InventoryTransferCancelPayload{inventoryTransfer='" + inventoryTransfer + "', userErrors='" + userErrors + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryTransferCancelPayload that = (InventoryTransferCancelPayload) o; + return Objects.equals(inventoryTransfer, that.inventoryTransfer) && + Objects.equals(userErrors, that.userErrors); + } + + @Override + public int hashCode() { + return Objects.hash(inventoryTransfer, userErrors); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The cancelled inventory transfer. + */ + private InventoryTransfer inventoryTransfer; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public InventoryTransferCancelPayload build() { + InventoryTransferCancelPayload result = new InventoryTransferCancelPayload(); + result.inventoryTransfer = this.inventoryTransfer; + result.userErrors = this.userErrors; + return result; + } + + /** + * The cancelled inventory transfer. + */ + public Builder inventoryTransfer(InventoryTransfer inventoryTransfer) { + this.inventoryTransfer = inventoryTransfer; + return this; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public Builder userErrors(List userErrors) { + this.userErrors = userErrors; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferCancelUserError.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferCancelUserError.java new file mode 100644 index 00000000..0e435167 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferCancelUserError.java @@ -0,0 +1,140 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * An error that occurs during the execution of `InventoryTransferCancel`. + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NONE +) +public class InventoryTransferCancelUserError implements com.shopify.admin.types.DisplayableError { + /** + * The error code. + */ + private InventoryTransferCancelUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public InventoryTransferCancelUserError() { + } + + /** + * The error code. + */ + public InventoryTransferCancelUserErrorCode getCode() { + return code; + } + + public void setCode(InventoryTransferCancelUserErrorCode code) { + this.code = code; + } + + /** + * The path to the input field that caused the error. + */ + public List getField() { + return field; + } + + public void setField(List field) { + this.field = field; + } + + /** + * The error message. + */ + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + @Override + public String toString() { + return "InventoryTransferCancelUserError{code='" + code + "', field='" + field + "', message='" + message + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryTransferCancelUserError that = (InventoryTransferCancelUserError) o; + return Objects.equals(code, that.code) && + Objects.equals(field, that.field) && + Objects.equals(message, that.message); + } + + @Override + public int hashCode() { + return Objects.hash(code, field, message); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The error code. + */ + private InventoryTransferCancelUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public InventoryTransferCancelUserError build() { + InventoryTransferCancelUserError result = new InventoryTransferCancelUserError(); + result.code = this.code; + result.field = this.field; + result.message = this.message; + return result; + } + + /** + * The error code. + */ + public Builder code(InventoryTransferCancelUserErrorCode code) { + this.code = code; + return this; + } + + /** + * The path to the input field that caused the error. + */ + public Builder field(List field) { + this.field = field; + return this; + } + + /** + * The error message. + */ + public Builder message(String message) { + this.message = message; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferCancelUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferCancelUserErrorCode.java new file mode 100644 index 00000000..f089308e --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferCancelUserErrorCode.java @@ -0,0 +1,12 @@ +package com.shopify.admin.types; + +/** + * Possible error codes that can be returned by `InventoryTransferCancelUserError`. + */ +public enum InventoryTransferCancelUserErrorCode { + TRANSFER_NOT_FOUND, + + INVALID_TRANSFER_STATUS, + + SHIPMENT_EXISTS +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferConnection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferConnection.java new file mode 100644 index 00000000..9735cd12 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferConnection.java @@ -0,0 +1,152 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * An auto-generated type for paginating through multiple InventoryTransfers. + */ +public class InventoryTransferConnection { + /** + * The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + */ + private List edges; + + /** + * A list of nodes that are contained in InventoryTransferEdge. You can fetch + * data about an individual node, or you can follow the edges to fetch data about + * a collection of related nodes. At each node, you specify the fields that you + * want to retrieve. + */ + private List nodes; + + /** + * An object that’s used to retrieve [cursor + * information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + */ + private PageInfo pageInfo; + + public InventoryTransferConnection() { + } + + /** + * The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + */ + public List getEdges() { + return edges; + } + + public void setEdges(List edges) { + this.edges = edges; + } + + /** + * A list of nodes that are contained in InventoryTransferEdge. You can fetch + * data about an individual node, or you can follow the edges to fetch data about + * a collection of related nodes. At each node, you specify the fields that you + * want to retrieve. + */ + public List getNodes() { + return nodes; + } + + public void setNodes(List nodes) { + this.nodes = nodes; + } + + /** + * An object that’s used to retrieve [cursor + * information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + */ + public PageInfo getPageInfo() { + return pageInfo; + } + + public void setPageInfo(PageInfo pageInfo) { + this.pageInfo = pageInfo; + } + + @Override + public String toString() { + return "InventoryTransferConnection{edges='" + edges + "', nodes='" + nodes + "', pageInfo='" + pageInfo + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryTransferConnection that = (InventoryTransferConnection) o; + return Objects.equals(edges, that.edges) && + Objects.equals(nodes, that.nodes) && + Objects.equals(pageInfo, that.pageInfo); + } + + @Override + public int hashCode() { + return Objects.hash(edges, nodes, pageInfo); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + */ + private List edges; + + /** + * A list of nodes that are contained in InventoryTransferEdge. You can fetch + * data about an individual node, or you can follow the edges to fetch data about + * a collection of related nodes. At each node, you specify the fields that you + * want to retrieve. + */ + private List nodes; + + /** + * An object that’s used to retrieve [cursor + * information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + */ + private PageInfo pageInfo; + + public InventoryTransferConnection build() { + InventoryTransferConnection result = new InventoryTransferConnection(); + result.edges = this.edges; + result.nodes = this.nodes; + result.pageInfo = this.pageInfo; + return result; + } + + /** + * The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + */ + public Builder edges(List edges) { + this.edges = edges; + return this; + } + + /** + * A list of nodes that are contained in InventoryTransferEdge. You can fetch + * data about an individual node, or you can follow the edges to fetch data about + * a collection of related nodes. At each node, you specify the fields that you + * want to retrieve. + */ + public Builder nodes(List nodes) { + this.nodes = nodes; + return this; + } + + /** + * An object that’s used to retrieve [cursor + * information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + */ + public Builder pageInfo(PageInfo pageInfo) { + this.pageInfo = pageInfo; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferCreateAsReadyToShipInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferCreateAsReadyToShipInput.java new file mode 100644 index 00000000..850b11f9 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferCreateAsReadyToShipInput.java @@ -0,0 +1,262 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.time.OffsetDateTime; +import java.util.Collections; +import java.util.List; +import java.util.Objects; + +/** + * The input fields to create an inventory transfer. + */ +public class InventoryTransferCreateAsReadyToShipInput { + /** + * The origin location for the inventory transfer. + */ + private String originLocationId; + + /** + * The destination location for the inventory transfer. + */ + private String destinationLocationId; + + /** + * The list of line items for the inventory transfer. + */ + private List lineItems = Collections.emptyList(); + + /** + * The date and time the inventory transfer was created. If left blank, defaults to the current date and time in UTC format. + */ + private OffsetDateTime dateCreated; + + /** + * A note to add to the Inventory Transfer. + */ + private String note; + + /** + * The tags to add to the inventory transfer. + */ + private List tags; + + /** + * The reference name to add to the inventory transfer. + */ + private String referenceName; + + public InventoryTransferCreateAsReadyToShipInput() { + } + + /** + * The origin location for the inventory transfer. + */ + public String getOriginLocationId() { + return originLocationId; + } + + public void setOriginLocationId(String originLocationId) { + this.originLocationId = originLocationId; + } + + /** + * The destination location for the inventory transfer. + */ + public String getDestinationLocationId() { + return destinationLocationId; + } + + public void setDestinationLocationId(String destinationLocationId) { + this.destinationLocationId = destinationLocationId; + } + + /** + * The list of line items for the inventory transfer. + */ + public List getLineItems() { + return lineItems; + } + + public void setLineItems(List lineItems) { + this.lineItems = lineItems; + } + + /** + * The date and time the inventory transfer was created. If left blank, defaults to the current date and time in UTC format. + */ + public OffsetDateTime getDateCreated() { + return dateCreated; + } + + public void setDateCreated(OffsetDateTime dateCreated) { + this.dateCreated = dateCreated; + } + + /** + * A note to add to the Inventory Transfer. + */ + public String getNote() { + return note; + } + + public void setNote(String note) { + this.note = note; + } + + /** + * The tags to add to the inventory transfer. + */ + public List getTags() { + return tags; + } + + public void setTags(List tags) { + this.tags = tags; + } + + /** + * The reference name to add to the inventory transfer. + */ + public String getReferenceName() { + return referenceName; + } + + public void setReferenceName(String referenceName) { + this.referenceName = referenceName; + } + + @Override + public String toString() { + return "InventoryTransferCreateAsReadyToShipInput{originLocationId='" + originLocationId + "', destinationLocationId='" + destinationLocationId + "', lineItems='" + lineItems + "', dateCreated='" + dateCreated + "', note='" + note + "', tags='" + tags + "', referenceName='" + referenceName + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryTransferCreateAsReadyToShipInput that = (InventoryTransferCreateAsReadyToShipInput) o; + return Objects.equals(originLocationId, that.originLocationId) && + Objects.equals(destinationLocationId, that.destinationLocationId) && + Objects.equals(lineItems, that.lineItems) && + Objects.equals(dateCreated, that.dateCreated) && + Objects.equals(note, that.note) && + Objects.equals(tags, that.tags) && + Objects.equals(referenceName, that.referenceName); + } + + @Override + public int hashCode() { + return Objects.hash(originLocationId, destinationLocationId, lineItems, dateCreated, note, tags, referenceName); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The origin location for the inventory transfer. + */ + private String originLocationId; + + /** + * The destination location for the inventory transfer. + */ + private String destinationLocationId; + + /** + * The list of line items for the inventory transfer. + */ + private List lineItems = Collections.emptyList(); + + /** + * The date and time the inventory transfer was created. If left blank, defaults to the current date and time in UTC format. + */ + private OffsetDateTime dateCreated; + + /** + * A note to add to the Inventory Transfer. + */ + private String note; + + /** + * The tags to add to the inventory transfer. + */ + private List tags; + + /** + * The reference name to add to the inventory transfer. + */ + private String referenceName; + + public InventoryTransferCreateAsReadyToShipInput build() { + InventoryTransferCreateAsReadyToShipInput result = new InventoryTransferCreateAsReadyToShipInput(); + result.originLocationId = this.originLocationId; + result.destinationLocationId = this.destinationLocationId; + result.lineItems = this.lineItems; + result.dateCreated = this.dateCreated; + result.note = this.note; + result.tags = this.tags; + result.referenceName = this.referenceName; + return result; + } + + /** + * The origin location for the inventory transfer. + */ + public Builder originLocationId(String originLocationId) { + this.originLocationId = originLocationId; + return this; + } + + /** + * The destination location for the inventory transfer. + */ + public Builder destinationLocationId(String destinationLocationId) { + this.destinationLocationId = destinationLocationId; + return this; + } + + /** + * The list of line items for the inventory transfer. + */ + public Builder lineItems(List lineItems) { + this.lineItems = lineItems; + return this; + } + + /** + * The date and time the inventory transfer was created. If left blank, defaults to the current date and time in UTC format. + */ + public Builder dateCreated(OffsetDateTime dateCreated) { + this.dateCreated = dateCreated; + return this; + } + + /** + * A note to add to the Inventory Transfer. + */ + public Builder note(String note) { + this.note = note; + return this; + } + + /** + * The tags to add to the inventory transfer. + */ + public Builder tags(List tags) { + this.tags = tags; + return this; + } + + /** + * The reference name to add to the inventory transfer. + */ + public Builder referenceName(String referenceName) { + this.referenceName = referenceName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferCreateAsReadyToShipPayload.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferCreateAsReadyToShipPayload.java new file mode 100644 index 00000000..421fca9a --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferCreateAsReadyToShipPayload.java @@ -0,0 +1,105 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * Return type for `inventoryTransferCreateAsReadyToShip` mutation. + */ +public class InventoryTransferCreateAsReadyToShipPayload { + /** + * The created inventory transfer. + */ + private InventoryTransfer inventoryTransfer; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public InventoryTransferCreateAsReadyToShipPayload() { + } + + /** + * The created inventory transfer. + */ + public InventoryTransfer getInventoryTransfer() { + return inventoryTransfer; + } + + public void setInventoryTransfer(InventoryTransfer inventoryTransfer) { + this.inventoryTransfer = inventoryTransfer; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public List getUserErrors() { + return userErrors; + } + + public void setUserErrors(List userErrors) { + this.userErrors = userErrors; + } + + @Override + public String toString() { + return "InventoryTransferCreateAsReadyToShipPayload{inventoryTransfer='" + inventoryTransfer + "', userErrors='" + userErrors + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryTransferCreateAsReadyToShipPayload that = (InventoryTransferCreateAsReadyToShipPayload) o; + return Objects.equals(inventoryTransfer, that.inventoryTransfer) && + Objects.equals(userErrors, that.userErrors); + } + + @Override + public int hashCode() { + return Objects.hash(inventoryTransfer, userErrors); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The created inventory transfer. + */ + private InventoryTransfer inventoryTransfer; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public InventoryTransferCreateAsReadyToShipPayload build() { + InventoryTransferCreateAsReadyToShipPayload result = new InventoryTransferCreateAsReadyToShipPayload(); + result.inventoryTransfer = this.inventoryTransfer; + result.userErrors = this.userErrors; + return result; + } + + /** + * The created inventory transfer. + */ + public Builder inventoryTransfer(InventoryTransfer inventoryTransfer) { + this.inventoryTransfer = inventoryTransfer; + return this; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public Builder userErrors(List userErrors) { + this.userErrors = userErrors; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferCreateAsReadyToShipUserError.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferCreateAsReadyToShipUserError.java new file mode 100644 index 00000000..eb0b04e1 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferCreateAsReadyToShipUserError.java @@ -0,0 +1,140 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * An error that occurs during the execution of `InventoryTransferCreateAsReadyToShip`. + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NONE +) +public class InventoryTransferCreateAsReadyToShipUserError implements com.shopify.admin.types.DisplayableError { + /** + * The error code. + */ + private InventoryTransferCreateAsReadyToShipUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public InventoryTransferCreateAsReadyToShipUserError() { + } + + /** + * The error code. + */ + public InventoryTransferCreateAsReadyToShipUserErrorCode getCode() { + return code; + } + + public void setCode(InventoryTransferCreateAsReadyToShipUserErrorCode code) { + this.code = code; + } + + /** + * The path to the input field that caused the error. + */ + public List getField() { + return field; + } + + public void setField(List field) { + this.field = field; + } + + /** + * The error message. + */ + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + @Override + public String toString() { + return "InventoryTransferCreateAsReadyToShipUserError{code='" + code + "', field='" + field + "', message='" + message + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryTransferCreateAsReadyToShipUserError that = (InventoryTransferCreateAsReadyToShipUserError) o; + return Objects.equals(code, that.code) && + Objects.equals(field, that.field) && + Objects.equals(message, that.message); + } + + @Override + public int hashCode() { + return Objects.hash(code, field, message); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The error code. + */ + private InventoryTransferCreateAsReadyToShipUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public InventoryTransferCreateAsReadyToShipUserError build() { + InventoryTransferCreateAsReadyToShipUserError result = new InventoryTransferCreateAsReadyToShipUserError(); + result.code = this.code; + result.field = this.field; + result.message = this.message; + return result; + } + + /** + * The error code. + */ + public Builder code(InventoryTransferCreateAsReadyToShipUserErrorCode code) { + this.code = code; + return this; + } + + /** + * The path to the input field that caused the error. + */ + public Builder field(List field) { + this.field = field; + return this; + } + + /** + * The error message. + */ + public Builder message(String message) { + this.message = message; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferCreateAsReadyToShipUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferCreateAsReadyToShipUserErrorCode.java new file mode 100644 index 00000000..0964d5b3 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferCreateAsReadyToShipUserErrorCode.java @@ -0,0 +1,38 @@ +package com.shopify.admin.types; + +/** + * Possible error codes that can be returned by `InventoryTransferCreateAsReadyToShipUserError`. + */ +public enum InventoryTransferCreateAsReadyToShipUserErrorCode { + TRANSFER_NOT_FOUND, + + ITEMS_EMPTY, + + INVALID_TRANSFER_STATUS, + + LOCATION_NOT_ACTIVE, + + LOCATION_NOT_FOUND, + + TRANSFER_ORIGIN_CANNOT_BE_THE_SAME_AS_DESTINATION, + + TAG_EXCEEDS_MAX_LENGTH, + + LOCATION_REQUIRED, + + IDEMPOTENCY_CONCURRENT_REQUEST, + + IDEMPOTENCY_KEY_PARAMETER_MISMATCH, + + BUNDLED_ITEM, + + UNTRACKED_ITEM, + + ITEM_NOT_FOUND, + + INVALID_QUANTITY, + + DUPLICATE_ITEM, + + INVENTORY_STATE_NOT_ACTIVE +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferCreateInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferCreateInput.java new file mode 100644 index 00000000..deae2d52 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferCreateInput.java @@ -0,0 +1,262 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.time.OffsetDateTime; +import java.util.Collections; +import java.util.List; +import java.util.Objects; + +/** + * The input fields to create an inventory transfer. + */ +public class InventoryTransferCreateInput { + /** + * The origin location for the inventory transfer. + */ + private String originLocationId; + + /** + * The destination location for the inventory transfer. + */ + private String destinationLocationId; + + /** + * The list of line items for the inventory transfer. + */ + private List lineItems = Collections.emptyList(); + + /** + * The date and time the inventory transfer was created. If left blank, defaults to the current date and time in UTC format. + */ + private OffsetDateTime dateCreated; + + /** + * A note to add to the Inventory Transfer. + */ + private String note; + + /** + * The tags to add to the inventory transfer. + */ + private List tags; + + /** + * The reference name to add to the inventory transfer. + */ + private String referenceName; + + public InventoryTransferCreateInput() { + } + + /** + * The origin location for the inventory transfer. + */ + public String getOriginLocationId() { + return originLocationId; + } + + public void setOriginLocationId(String originLocationId) { + this.originLocationId = originLocationId; + } + + /** + * The destination location for the inventory transfer. + */ + public String getDestinationLocationId() { + return destinationLocationId; + } + + public void setDestinationLocationId(String destinationLocationId) { + this.destinationLocationId = destinationLocationId; + } + + /** + * The list of line items for the inventory transfer. + */ + public List getLineItems() { + return lineItems; + } + + public void setLineItems(List lineItems) { + this.lineItems = lineItems; + } + + /** + * The date and time the inventory transfer was created. If left blank, defaults to the current date and time in UTC format. + */ + public OffsetDateTime getDateCreated() { + return dateCreated; + } + + public void setDateCreated(OffsetDateTime dateCreated) { + this.dateCreated = dateCreated; + } + + /** + * A note to add to the Inventory Transfer. + */ + public String getNote() { + return note; + } + + public void setNote(String note) { + this.note = note; + } + + /** + * The tags to add to the inventory transfer. + */ + public List getTags() { + return tags; + } + + public void setTags(List tags) { + this.tags = tags; + } + + /** + * The reference name to add to the inventory transfer. + */ + public String getReferenceName() { + return referenceName; + } + + public void setReferenceName(String referenceName) { + this.referenceName = referenceName; + } + + @Override + public String toString() { + return "InventoryTransferCreateInput{originLocationId='" + originLocationId + "', destinationLocationId='" + destinationLocationId + "', lineItems='" + lineItems + "', dateCreated='" + dateCreated + "', note='" + note + "', tags='" + tags + "', referenceName='" + referenceName + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryTransferCreateInput that = (InventoryTransferCreateInput) o; + return Objects.equals(originLocationId, that.originLocationId) && + Objects.equals(destinationLocationId, that.destinationLocationId) && + Objects.equals(lineItems, that.lineItems) && + Objects.equals(dateCreated, that.dateCreated) && + Objects.equals(note, that.note) && + Objects.equals(tags, that.tags) && + Objects.equals(referenceName, that.referenceName); + } + + @Override + public int hashCode() { + return Objects.hash(originLocationId, destinationLocationId, lineItems, dateCreated, note, tags, referenceName); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The origin location for the inventory transfer. + */ + private String originLocationId; + + /** + * The destination location for the inventory transfer. + */ + private String destinationLocationId; + + /** + * The list of line items for the inventory transfer. + */ + private List lineItems = Collections.emptyList(); + + /** + * The date and time the inventory transfer was created. If left blank, defaults to the current date and time in UTC format. + */ + private OffsetDateTime dateCreated; + + /** + * A note to add to the Inventory Transfer. + */ + private String note; + + /** + * The tags to add to the inventory transfer. + */ + private List tags; + + /** + * The reference name to add to the inventory transfer. + */ + private String referenceName; + + public InventoryTransferCreateInput build() { + InventoryTransferCreateInput result = new InventoryTransferCreateInput(); + result.originLocationId = this.originLocationId; + result.destinationLocationId = this.destinationLocationId; + result.lineItems = this.lineItems; + result.dateCreated = this.dateCreated; + result.note = this.note; + result.tags = this.tags; + result.referenceName = this.referenceName; + return result; + } + + /** + * The origin location for the inventory transfer. + */ + public Builder originLocationId(String originLocationId) { + this.originLocationId = originLocationId; + return this; + } + + /** + * The destination location for the inventory transfer. + */ + public Builder destinationLocationId(String destinationLocationId) { + this.destinationLocationId = destinationLocationId; + return this; + } + + /** + * The list of line items for the inventory transfer. + */ + public Builder lineItems(List lineItems) { + this.lineItems = lineItems; + return this; + } + + /** + * The date and time the inventory transfer was created. If left blank, defaults to the current date and time in UTC format. + */ + public Builder dateCreated(OffsetDateTime dateCreated) { + this.dateCreated = dateCreated; + return this; + } + + /** + * A note to add to the Inventory Transfer. + */ + public Builder note(String note) { + this.note = note; + return this; + } + + /** + * The tags to add to the inventory transfer. + */ + public Builder tags(List tags) { + this.tags = tags; + return this; + } + + /** + * The reference name to add to the inventory transfer. + */ + public Builder referenceName(String referenceName) { + this.referenceName = referenceName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferCreatePayload.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferCreatePayload.java new file mode 100644 index 00000000..1fc35325 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferCreatePayload.java @@ -0,0 +1,105 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * Return type for `inventoryTransferCreate` mutation. + */ +public class InventoryTransferCreatePayload { + /** + * The created inventory transfer. + */ + private InventoryTransfer inventoryTransfer; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public InventoryTransferCreatePayload() { + } + + /** + * The created inventory transfer. + */ + public InventoryTransfer getInventoryTransfer() { + return inventoryTransfer; + } + + public void setInventoryTransfer(InventoryTransfer inventoryTransfer) { + this.inventoryTransfer = inventoryTransfer; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public List getUserErrors() { + return userErrors; + } + + public void setUserErrors(List userErrors) { + this.userErrors = userErrors; + } + + @Override + public String toString() { + return "InventoryTransferCreatePayload{inventoryTransfer='" + inventoryTransfer + "', userErrors='" + userErrors + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryTransferCreatePayload that = (InventoryTransferCreatePayload) o; + return Objects.equals(inventoryTransfer, that.inventoryTransfer) && + Objects.equals(userErrors, that.userErrors); + } + + @Override + public int hashCode() { + return Objects.hash(inventoryTransfer, userErrors); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The created inventory transfer. + */ + private InventoryTransfer inventoryTransfer; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public InventoryTransferCreatePayload build() { + InventoryTransferCreatePayload result = new InventoryTransferCreatePayload(); + result.inventoryTransfer = this.inventoryTransfer; + result.userErrors = this.userErrors; + return result; + } + + /** + * The created inventory transfer. + */ + public Builder inventoryTransfer(InventoryTransfer inventoryTransfer) { + this.inventoryTransfer = inventoryTransfer; + return this; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public Builder userErrors(List userErrors) { + this.userErrors = userErrors; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferCreateUserError.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferCreateUserError.java new file mode 100644 index 00000000..f152e02f --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferCreateUserError.java @@ -0,0 +1,140 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * An error that occurs during the execution of `InventoryTransferCreate`. + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NONE +) +public class InventoryTransferCreateUserError implements com.shopify.admin.types.DisplayableError { + /** + * The error code. + */ + private InventoryTransferCreateUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public InventoryTransferCreateUserError() { + } + + /** + * The error code. + */ + public InventoryTransferCreateUserErrorCode getCode() { + return code; + } + + public void setCode(InventoryTransferCreateUserErrorCode code) { + this.code = code; + } + + /** + * The path to the input field that caused the error. + */ + public List getField() { + return field; + } + + public void setField(List field) { + this.field = field; + } + + /** + * The error message. + */ + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + @Override + public String toString() { + return "InventoryTransferCreateUserError{code='" + code + "', field='" + field + "', message='" + message + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryTransferCreateUserError that = (InventoryTransferCreateUserError) o; + return Objects.equals(code, that.code) && + Objects.equals(field, that.field) && + Objects.equals(message, that.message); + } + + @Override + public int hashCode() { + return Objects.hash(code, field, message); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The error code. + */ + private InventoryTransferCreateUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public InventoryTransferCreateUserError build() { + InventoryTransferCreateUserError result = new InventoryTransferCreateUserError(); + result.code = this.code; + result.field = this.field; + result.message = this.message; + return result; + } + + /** + * The error code. + */ + public Builder code(InventoryTransferCreateUserErrorCode code) { + this.code = code; + return this; + } + + /** + * The path to the input field that caused the error. + */ + public Builder field(List field) { + this.field = field; + return this; + } + + /** + * The error message. + */ + public Builder message(String message) { + this.message = message; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferCreateUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferCreateUserErrorCode.java new file mode 100644 index 00000000..9213a4f8 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferCreateUserErrorCode.java @@ -0,0 +1,32 @@ +package com.shopify.admin.types; + +/** + * Possible error codes that can be returned by `InventoryTransferCreateUserError`. + */ +public enum InventoryTransferCreateUserErrorCode { + TRANSFER_NOT_FOUND, + + LOCATION_NOT_FOUND, + + LOCATION_NOT_ACTIVE, + + TRANSFER_ORIGIN_CANNOT_BE_THE_SAME_AS_DESTINATION, + + TAG_EXCEEDS_MAX_LENGTH, + + IDEMPOTENCY_CONCURRENT_REQUEST, + + IDEMPOTENCY_KEY_PARAMETER_MISMATCH, + + BUNDLED_ITEM, + + UNTRACKED_ITEM, + + ITEM_NOT_FOUND, + + INVALID_QUANTITY, + + DUPLICATE_ITEM, + + INVENTORY_STATE_NOT_ACTIVE +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferDeletePayload.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferDeletePayload.java new file mode 100644 index 00000000..d5b42a88 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferDeletePayload.java @@ -0,0 +1,105 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * Return type for `inventoryTransferDelete` mutation. + */ +public class InventoryTransferDeletePayload { + /** + * The ID of the deleted inventory transfer. + */ + private String deletedId; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public InventoryTransferDeletePayload() { + } + + /** + * The ID of the deleted inventory transfer. + */ + public String getDeletedId() { + return deletedId; + } + + public void setDeletedId(String deletedId) { + this.deletedId = deletedId; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public List getUserErrors() { + return userErrors; + } + + public void setUserErrors(List userErrors) { + this.userErrors = userErrors; + } + + @Override + public String toString() { + return "InventoryTransferDeletePayload{deletedId='" + deletedId + "', userErrors='" + userErrors + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryTransferDeletePayload that = (InventoryTransferDeletePayload) o; + return Objects.equals(deletedId, that.deletedId) && + Objects.equals(userErrors, that.userErrors); + } + + @Override + public int hashCode() { + return Objects.hash(deletedId, userErrors); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The ID of the deleted inventory transfer. + */ + private String deletedId; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public InventoryTransferDeletePayload build() { + InventoryTransferDeletePayload result = new InventoryTransferDeletePayload(); + result.deletedId = this.deletedId; + result.userErrors = this.userErrors; + return result; + } + + /** + * The ID of the deleted inventory transfer. + */ + public Builder deletedId(String deletedId) { + this.deletedId = deletedId; + return this; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public Builder userErrors(List userErrors) { + this.userErrors = userErrors; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferDeleteUserError.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferDeleteUserError.java new file mode 100644 index 00000000..21f120f7 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferDeleteUserError.java @@ -0,0 +1,140 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * An error that occurs during the execution of `InventoryTransferDelete`. + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NONE +) +public class InventoryTransferDeleteUserError implements com.shopify.admin.types.DisplayableError { + /** + * The error code. + */ + private InventoryTransferDeleteUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public InventoryTransferDeleteUserError() { + } + + /** + * The error code. + */ + public InventoryTransferDeleteUserErrorCode getCode() { + return code; + } + + public void setCode(InventoryTransferDeleteUserErrorCode code) { + this.code = code; + } + + /** + * The path to the input field that caused the error. + */ + public List getField() { + return field; + } + + public void setField(List field) { + this.field = field; + } + + /** + * The error message. + */ + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + @Override + public String toString() { + return "InventoryTransferDeleteUserError{code='" + code + "', field='" + field + "', message='" + message + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryTransferDeleteUserError that = (InventoryTransferDeleteUserError) o; + return Objects.equals(code, that.code) && + Objects.equals(field, that.field) && + Objects.equals(message, that.message); + } + + @Override + public int hashCode() { + return Objects.hash(code, field, message); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The error code. + */ + private InventoryTransferDeleteUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public InventoryTransferDeleteUserError build() { + InventoryTransferDeleteUserError result = new InventoryTransferDeleteUserError(); + result.code = this.code; + result.field = this.field; + result.message = this.message; + return result; + } + + /** + * The error code. + */ + public Builder code(InventoryTransferDeleteUserErrorCode code) { + this.code = code; + return this; + } + + /** + * The path to the input field that caused the error. + */ + public Builder field(List field) { + this.field = field; + return this; + } + + /** + * The error message. + */ + public Builder message(String message) { + this.message = message; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferDeleteUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferDeleteUserErrorCode.java new file mode 100644 index 00000000..a4d27400 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferDeleteUserErrorCode.java @@ -0,0 +1,10 @@ +package com.shopify.admin.types; + +/** + * Possible error codes that can be returned by `InventoryTransferDeleteUserError`. + */ +public enum InventoryTransferDeleteUserErrorCode { + TRANSFER_NOT_FOUND, + + INVALID_TRANSFER_STATUS +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferDuplicatePayload.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferDuplicatePayload.java new file mode 100644 index 00000000..41e43b66 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferDuplicatePayload.java @@ -0,0 +1,105 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * Return type for `inventoryTransferDuplicate` mutation. + */ +public class InventoryTransferDuplicatePayload { + /** + * The duplicated inventory transfer. + */ + private InventoryTransfer inventoryTransfer; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public InventoryTransferDuplicatePayload() { + } + + /** + * The duplicated inventory transfer. + */ + public InventoryTransfer getInventoryTransfer() { + return inventoryTransfer; + } + + public void setInventoryTransfer(InventoryTransfer inventoryTransfer) { + this.inventoryTransfer = inventoryTransfer; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public List getUserErrors() { + return userErrors; + } + + public void setUserErrors(List userErrors) { + this.userErrors = userErrors; + } + + @Override + public String toString() { + return "InventoryTransferDuplicatePayload{inventoryTransfer='" + inventoryTransfer + "', userErrors='" + userErrors + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryTransferDuplicatePayload that = (InventoryTransferDuplicatePayload) o; + return Objects.equals(inventoryTransfer, that.inventoryTransfer) && + Objects.equals(userErrors, that.userErrors); + } + + @Override + public int hashCode() { + return Objects.hash(inventoryTransfer, userErrors); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The duplicated inventory transfer. + */ + private InventoryTransfer inventoryTransfer; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public InventoryTransferDuplicatePayload build() { + InventoryTransferDuplicatePayload result = new InventoryTransferDuplicatePayload(); + result.inventoryTransfer = this.inventoryTransfer; + result.userErrors = this.userErrors; + return result; + } + + /** + * The duplicated inventory transfer. + */ + public Builder inventoryTransfer(InventoryTransfer inventoryTransfer) { + this.inventoryTransfer = inventoryTransfer; + return this; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public Builder userErrors(List userErrors) { + this.userErrors = userErrors; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferDuplicateUserError.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferDuplicateUserError.java new file mode 100644 index 00000000..56ebd50a --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferDuplicateUserError.java @@ -0,0 +1,140 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * An error that occurs during the execution of `InventoryTransferDuplicate`. + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NONE +) +public class InventoryTransferDuplicateUserError implements com.shopify.admin.types.DisplayableError { + /** + * The error code. + */ + private InventoryTransferDuplicateUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public InventoryTransferDuplicateUserError() { + } + + /** + * The error code. + */ + public InventoryTransferDuplicateUserErrorCode getCode() { + return code; + } + + public void setCode(InventoryTransferDuplicateUserErrorCode code) { + this.code = code; + } + + /** + * The path to the input field that caused the error. + */ + public List getField() { + return field; + } + + public void setField(List field) { + this.field = field; + } + + /** + * The error message. + */ + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + @Override + public String toString() { + return "InventoryTransferDuplicateUserError{code='" + code + "', field='" + field + "', message='" + message + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryTransferDuplicateUserError that = (InventoryTransferDuplicateUserError) o; + return Objects.equals(code, that.code) && + Objects.equals(field, that.field) && + Objects.equals(message, that.message); + } + + @Override + public int hashCode() { + return Objects.hash(code, field, message); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The error code. + */ + private InventoryTransferDuplicateUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public InventoryTransferDuplicateUserError build() { + InventoryTransferDuplicateUserError result = new InventoryTransferDuplicateUserError(); + result.code = this.code; + result.field = this.field; + result.message = this.message; + return result; + } + + /** + * The error code. + */ + public Builder code(InventoryTransferDuplicateUserErrorCode code) { + this.code = code; + return this; + } + + /** + * The path to the input field that caused the error. + */ + public Builder field(List field) { + this.field = field; + return this; + } + + /** + * The error message. + */ + public Builder message(String message) { + this.message = message; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferDuplicateUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferDuplicateUserErrorCode.java new file mode 100644 index 00000000..e6ff6e55 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferDuplicateUserErrorCode.java @@ -0,0 +1,12 @@ +package com.shopify.admin.types; + +/** + * Possible error codes that can be returned by `InventoryTransferDuplicateUserError`. + */ +public enum InventoryTransferDuplicateUserErrorCode { + TRANSFER_NOT_FOUND, + + IDEMPOTENCY_CONCURRENT_REQUEST, + + IDEMPOTENCY_KEY_PARAMETER_MISMATCH +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferEdge.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferEdge.java new file mode 100644 index 00000000..66c14f3e --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferEdge.java @@ -0,0 +1,104 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * An auto-generated type which holds one InventoryTransfer and a cursor during pagination. + */ +public class InventoryTransferEdge { + /** + * The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + */ + private String cursor; + + /** + * The item at the end of InventoryTransferEdge. + */ + private InventoryTransfer node; + + public InventoryTransferEdge() { + } + + /** + * The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + */ + public String getCursor() { + return cursor; + } + + public void setCursor(String cursor) { + this.cursor = cursor; + } + + /** + * The item at the end of InventoryTransferEdge. + */ + public InventoryTransfer getNode() { + return node; + } + + public void setNode(InventoryTransfer node) { + this.node = node; + } + + @Override + public String toString() { + return "InventoryTransferEdge{cursor='" + cursor + "', node='" + node + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryTransferEdge that = (InventoryTransferEdge) o; + return Objects.equals(cursor, that.cursor) && + Objects.equals(node, that.node); + } + + @Override + public int hashCode() { + return Objects.hash(cursor, node); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + */ + private String cursor; + + /** + * The item at the end of InventoryTransferEdge. + */ + private InventoryTransfer node; + + public InventoryTransferEdge build() { + InventoryTransferEdge result = new InventoryTransferEdge(); + result.cursor = this.cursor; + result.node = this.node; + return result; + } + + /** + * The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + */ + public Builder cursor(String cursor) { + this.cursor = cursor; + return this; + } + + /** + * The item at the end of InventoryTransferEdge. + */ + public Builder node(InventoryTransfer node) { + this.node = node; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferEditInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferEditInput.java new file mode 100644 index 00000000..4cf37465 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferEditInput.java @@ -0,0 +1,238 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.time.LocalDate; +import java.util.List; +import java.util.Objects; + +/** + * The input fields to edit an inventory transfer. + */ +public class InventoryTransferEditInput { + /** + * The origin location for the inventory transfer. The origin location can only be changed + * for draft transfers. + */ + private String originId; + + /** + * The destination location for the inventory transfer. The destination location can only be + * changed for draft transfers. + */ + private String destinationId; + + /** + * The date the inventory transfer was created. + */ + private LocalDate dateCreated; + + /** + * A note to add to the Inventory Transfer. + */ + private String note; + + /** + * The tags to add to the inventory transfer. + */ + private List tags; + + /** + * The reference name to add to the inventory transfer. + */ + private String referenceName; + + public InventoryTransferEditInput() { + } + + /** + * The origin location for the inventory transfer. The origin location can only be changed + * for draft transfers. + */ + public String getOriginId() { + return originId; + } + + public void setOriginId(String originId) { + this.originId = originId; + } + + /** + * The destination location for the inventory transfer. The destination location can only be + * changed for draft transfers. + */ + public String getDestinationId() { + return destinationId; + } + + public void setDestinationId(String destinationId) { + this.destinationId = destinationId; + } + + /** + * The date the inventory transfer was created. + */ + public LocalDate getDateCreated() { + return dateCreated; + } + + public void setDateCreated(LocalDate dateCreated) { + this.dateCreated = dateCreated; + } + + /** + * A note to add to the Inventory Transfer. + */ + public String getNote() { + return note; + } + + public void setNote(String note) { + this.note = note; + } + + /** + * The tags to add to the inventory transfer. + */ + public List getTags() { + return tags; + } + + public void setTags(List tags) { + this.tags = tags; + } + + /** + * The reference name to add to the inventory transfer. + */ + public String getReferenceName() { + return referenceName; + } + + public void setReferenceName(String referenceName) { + this.referenceName = referenceName; + } + + @Override + public String toString() { + return "InventoryTransferEditInput{originId='" + originId + "', destinationId='" + destinationId + "', dateCreated='" + dateCreated + "', note='" + note + "', tags='" + tags + "', referenceName='" + referenceName + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryTransferEditInput that = (InventoryTransferEditInput) o; + return Objects.equals(originId, that.originId) && + Objects.equals(destinationId, that.destinationId) && + Objects.equals(dateCreated, that.dateCreated) && + Objects.equals(note, that.note) && + Objects.equals(tags, that.tags) && + Objects.equals(referenceName, that.referenceName); + } + + @Override + public int hashCode() { + return Objects.hash(originId, destinationId, dateCreated, note, tags, referenceName); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The origin location for the inventory transfer. The origin location can only be changed + * for draft transfers. + */ + private String originId; + + /** + * The destination location for the inventory transfer. The destination location can only be + * changed for draft transfers. + */ + private String destinationId; + + /** + * The date the inventory transfer was created. + */ + private LocalDate dateCreated; + + /** + * A note to add to the Inventory Transfer. + */ + private String note; + + /** + * The tags to add to the inventory transfer. + */ + private List tags; + + /** + * The reference name to add to the inventory transfer. + */ + private String referenceName; + + public InventoryTransferEditInput build() { + InventoryTransferEditInput result = new InventoryTransferEditInput(); + result.originId = this.originId; + result.destinationId = this.destinationId; + result.dateCreated = this.dateCreated; + result.note = this.note; + result.tags = this.tags; + result.referenceName = this.referenceName; + return result; + } + + /** + * The origin location for the inventory transfer. The origin location can only be changed + * for draft transfers. + */ + public Builder originId(String originId) { + this.originId = originId; + return this; + } + + /** + * The destination location for the inventory transfer. The destination location can only be + * changed for draft transfers. + */ + public Builder destinationId(String destinationId) { + this.destinationId = destinationId; + return this; + } + + /** + * The date the inventory transfer was created. + */ + public Builder dateCreated(LocalDate dateCreated) { + this.dateCreated = dateCreated; + return this; + } + + /** + * A note to add to the Inventory Transfer. + */ + public Builder note(String note) { + this.note = note; + return this; + } + + /** + * The tags to add to the inventory transfer. + */ + public Builder tags(List tags) { + this.tags = tags; + return this; + } + + /** + * The reference name to add to the inventory transfer. + */ + public Builder referenceName(String referenceName) { + this.referenceName = referenceName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferEditPayload.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferEditPayload.java new file mode 100644 index 00000000..1c5c8e48 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferEditPayload.java @@ -0,0 +1,105 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * Return type for `inventoryTransferEdit` mutation. + */ +public class InventoryTransferEditPayload { + /** + * The edited inventory transfer. + */ + private InventoryTransfer inventoryTransfer; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public InventoryTransferEditPayload() { + } + + /** + * The edited inventory transfer. + */ + public InventoryTransfer getInventoryTransfer() { + return inventoryTransfer; + } + + public void setInventoryTransfer(InventoryTransfer inventoryTransfer) { + this.inventoryTransfer = inventoryTransfer; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public List getUserErrors() { + return userErrors; + } + + public void setUserErrors(List userErrors) { + this.userErrors = userErrors; + } + + @Override + public String toString() { + return "InventoryTransferEditPayload{inventoryTransfer='" + inventoryTransfer + "', userErrors='" + userErrors + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryTransferEditPayload that = (InventoryTransferEditPayload) o; + return Objects.equals(inventoryTransfer, that.inventoryTransfer) && + Objects.equals(userErrors, that.userErrors); + } + + @Override + public int hashCode() { + return Objects.hash(inventoryTransfer, userErrors); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The edited inventory transfer. + */ + private InventoryTransfer inventoryTransfer; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public InventoryTransferEditPayload build() { + InventoryTransferEditPayload result = new InventoryTransferEditPayload(); + result.inventoryTransfer = this.inventoryTransfer; + result.userErrors = this.userErrors; + return result; + } + + /** + * The edited inventory transfer. + */ + public Builder inventoryTransfer(InventoryTransfer inventoryTransfer) { + this.inventoryTransfer = inventoryTransfer; + return this; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public Builder userErrors(List userErrors) { + this.userErrors = userErrors; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferEditUserError.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferEditUserError.java new file mode 100644 index 00000000..75f40f62 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferEditUserError.java @@ -0,0 +1,140 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * An error that occurs during the execution of `InventoryTransferEdit`. + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NONE +) +public class InventoryTransferEditUserError implements com.shopify.admin.types.DisplayableError { + /** + * The error code. + */ + private InventoryTransferEditUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public InventoryTransferEditUserError() { + } + + /** + * The error code. + */ + public InventoryTransferEditUserErrorCode getCode() { + return code; + } + + public void setCode(InventoryTransferEditUserErrorCode code) { + this.code = code; + } + + /** + * The path to the input field that caused the error. + */ + public List getField() { + return field; + } + + public void setField(List field) { + this.field = field; + } + + /** + * The error message. + */ + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + @Override + public String toString() { + return "InventoryTransferEditUserError{code='" + code + "', field='" + field + "', message='" + message + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryTransferEditUserError that = (InventoryTransferEditUserError) o; + return Objects.equals(code, that.code) && + Objects.equals(field, that.field) && + Objects.equals(message, that.message); + } + + @Override + public int hashCode() { + return Objects.hash(code, field, message); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The error code. + */ + private InventoryTransferEditUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public InventoryTransferEditUserError build() { + InventoryTransferEditUserError result = new InventoryTransferEditUserError(); + result.code = this.code; + result.field = this.field; + result.message = this.message; + return result; + } + + /** + * The error code. + */ + public Builder code(InventoryTransferEditUserErrorCode code) { + this.code = code; + return this; + } + + /** + * The path to the input field that caused the error. + */ + public Builder field(List field) { + this.field = field; + return this; + } + + /** + * The error message. + */ + public Builder message(String message) { + this.message = message; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferEditUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferEditUserErrorCode.java new file mode 100644 index 00000000..a0d84dd0 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferEditUserErrorCode.java @@ -0,0 +1,22 @@ +package com.shopify.admin.types; + +/** + * Possible error codes that can be returned by `InventoryTransferEditUserError`. + */ +public enum InventoryTransferEditUserErrorCode { + INTERNAL_ERROR, + + TRANSFER_NOT_FOUND, + + TRANSFER_LOCATION_IMMUTABLE, + + TRANSFER_ORIGIN_CANNOT_BE_THE_SAME_AS_DESTINATION, + + LOCATION_NOT_ACTIVE, + + LOCATION_NOT_FOUND, + + INVENTORY_STATE_NOT_ACTIVE, + + TAG_EXCEEDS_MAX_LENGTH +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferLineItem.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferLineItem.java new file mode 100644 index 00000000..1eb554db --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferLineItem.java @@ -0,0 +1,298 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * Represents a line item belonging to an inventory transfer. + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NONE +) +public class InventoryTransferLineItem implements com.shopify.admin.types.Node { + /** + * A globally-unique ID. + */ + private String id; + + /** + * The inventory item associated with this line item. + */ + private InventoryItem inventoryItem; + + /** + * The quantity of the item that has been picked for a draft shipment but not yet shipped. + */ + private int pickedForShipmentQuantity; + + /** + * The quantity of the item that can be actioned upon, such as editing the item + * quantity on the transfer or adding to a shipment. + */ + private int processableQuantity; + + /** + * The quantity of the item that can be shipped. + */ + private int shippableQuantity; + + /** + * The quantity of the item that has been shipped. + */ + private int shippedQuantity; + + /** + * The title of the product associated with this line item. + */ + private String title; + + /** + * The total quantity of items being transferred. + */ + private int totalQuantity; + + public InventoryTransferLineItem() { + } + + /** + * A globally-unique ID. + */ + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + /** + * The inventory item associated with this line item. + */ + public InventoryItem getInventoryItem() { + return inventoryItem; + } + + public void setInventoryItem(InventoryItem inventoryItem) { + this.inventoryItem = inventoryItem; + } + + /** + * The quantity of the item that has been picked for a draft shipment but not yet shipped. + */ + public int getPickedForShipmentQuantity() { + return pickedForShipmentQuantity; + } + + public void setPickedForShipmentQuantity(int pickedForShipmentQuantity) { + this.pickedForShipmentQuantity = pickedForShipmentQuantity; + } + + /** + * The quantity of the item that can be actioned upon, such as editing the item + * quantity on the transfer or adding to a shipment. + */ + public int getProcessableQuantity() { + return processableQuantity; + } + + public void setProcessableQuantity(int processableQuantity) { + this.processableQuantity = processableQuantity; + } + + /** + * The quantity of the item that can be shipped. + */ + public int getShippableQuantity() { + return shippableQuantity; + } + + public void setShippableQuantity(int shippableQuantity) { + this.shippableQuantity = shippableQuantity; + } + + /** + * The quantity of the item that has been shipped. + */ + public int getShippedQuantity() { + return shippedQuantity; + } + + public void setShippedQuantity(int shippedQuantity) { + this.shippedQuantity = shippedQuantity; + } + + /** + * The title of the product associated with this line item. + */ + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + /** + * The total quantity of items being transferred. + */ + public int getTotalQuantity() { + return totalQuantity; + } + + public void setTotalQuantity(int totalQuantity) { + this.totalQuantity = totalQuantity; + } + + @Override + public String toString() { + return "InventoryTransferLineItem{id='" + id + "', inventoryItem='" + inventoryItem + "', pickedForShipmentQuantity='" + pickedForShipmentQuantity + "', processableQuantity='" + processableQuantity + "', shippableQuantity='" + shippableQuantity + "', shippedQuantity='" + shippedQuantity + "', title='" + title + "', totalQuantity='" + totalQuantity + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryTransferLineItem that = (InventoryTransferLineItem) o; + return Objects.equals(id, that.id) && + Objects.equals(inventoryItem, that.inventoryItem) && + pickedForShipmentQuantity == that.pickedForShipmentQuantity && + processableQuantity == that.processableQuantity && + shippableQuantity == that.shippableQuantity && + shippedQuantity == that.shippedQuantity && + Objects.equals(title, that.title) && + totalQuantity == that.totalQuantity; + } + + @Override + public int hashCode() { + return Objects.hash(id, inventoryItem, pickedForShipmentQuantity, processableQuantity, shippableQuantity, shippedQuantity, title, totalQuantity); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * A globally-unique ID. + */ + private String id; + + /** + * The inventory item associated with this line item. + */ + private InventoryItem inventoryItem; + + /** + * The quantity of the item that has been picked for a draft shipment but not yet shipped. + */ + private int pickedForShipmentQuantity; + + /** + * The quantity of the item that can be actioned upon, such as editing the item + * quantity on the transfer or adding to a shipment. + */ + private int processableQuantity; + + /** + * The quantity of the item that can be shipped. + */ + private int shippableQuantity; + + /** + * The quantity of the item that has been shipped. + */ + private int shippedQuantity; + + /** + * The title of the product associated with this line item. + */ + private String title; + + /** + * The total quantity of items being transferred. + */ + private int totalQuantity; + + public InventoryTransferLineItem build() { + InventoryTransferLineItem result = new InventoryTransferLineItem(); + result.id = this.id; + result.inventoryItem = this.inventoryItem; + result.pickedForShipmentQuantity = this.pickedForShipmentQuantity; + result.processableQuantity = this.processableQuantity; + result.shippableQuantity = this.shippableQuantity; + result.shippedQuantity = this.shippedQuantity; + result.title = this.title; + result.totalQuantity = this.totalQuantity; + return result; + } + + /** + * A globally-unique ID. + */ + public Builder id(String id) { + this.id = id; + return this; + } + + /** + * The inventory item associated with this line item. + */ + public Builder inventoryItem(InventoryItem inventoryItem) { + this.inventoryItem = inventoryItem; + return this; + } + + /** + * The quantity of the item that has been picked for a draft shipment but not yet shipped. + */ + public Builder pickedForShipmentQuantity(int pickedForShipmentQuantity) { + this.pickedForShipmentQuantity = pickedForShipmentQuantity; + return this; + } + + /** + * The quantity of the item that can be actioned upon, such as editing the item + * quantity on the transfer or adding to a shipment. + */ + public Builder processableQuantity(int processableQuantity) { + this.processableQuantity = processableQuantity; + return this; + } + + /** + * The quantity of the item that can be shipped. + */ + public Builder shippableQuantity(int shippableQuantity) { + this.shippableQuantity = shippableQuantity; + return this; + } + + /** + * The quantity of the item that has been shipped. + */ + public Builder shippedQuantity(int shippedQuantity) { + this.shippedQuantity = shippedQuantity; + return this; + } + + /** + * The title of the product associated with this line item. + */ + public Builder title(String title) { + this.title = title; + return this; + } + + /** + * The total quantity of items being transferred. + */ + public Builder totalQuantity(int totalQuantity) { + this.totalQuantity = totalQuantity; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferLineItemConnection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferLineItemConnection.java new file mode 100644 index 00000000..b4540f8c --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferLineItemConnection.java @@ -0,0 +1,152 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * An auto-generated type for paginating through multiple InventoryTransferLineItems. + */ +public class InventoryTransferLineItemConnection { + /** + * The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + */ + private List edges; + + /** + * A list of nodes that are contained in InventoryTransferLineItemEdge. You can + * fetch data about an individual node, or you can follow the edges to fetch data + * about a collection of related nodes. At each node, you specify the fields that + * you want to retrieve. + */ + private List nodes; + + /** + * An object that’s used to retrieve [cursor + * information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + */ + private PageInfo pageInfo; + + public InventoryTransferLineItemConnection() { + } + + /** + * The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + */ + public List getEdges() { + return edges; + } + + public void setEdges(List edges) { + this.edges = edges; + } + + /** + * A list of nodes that are contained in InventoryTransferLineItemEdge. You can + * fetch data about an individual node, or you can follow the edges to fetch data + * about a collection of related nodes. At each node, you specify the fields that + * you want to retrieve. + */ + public List getNodes() { + return nodes; + } + + public void setNodes(List nodes) { + this.nodes = nodes; + } + + /** + * An object that’s used to retrieve [cursor + * information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + */ + public PageInfo getPageInfo() { + return pageInfo; + } + + public void setPageInfo(PageInfo pageInfo) { + this.pageInfo = pageInfo; + } + + @Override + public String toString() { + return "InventoryTransferLineItemConnection{edges='" + edges + "', nodes='" + nodes + "', pageInfo='" + pageInfo + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryTransferLineItemConnection that = (InventoryTransferLineItemConnection) o; + return Objects.equals(edges, that.edges) && + Objects.equals(nodes, that.nodes) && + Objects.equals(pageInfo, that.pageInfo); + } + + @Override + public int hashCode() { + return Objects.hash(edges, nodes, pageInfo); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + */ + private List edges; + + /** + * A list of nodes that are contained in InventoryTransferLineItemEdge. You can + * fetch data about an individual node, or you can follow the edges to fetch data + * about a collection of related nodes. At each node, you specify the fields that + * you want to retrieve. + */ + private List nodes; + + /** + * An object that’s used to retrieve [cursor + * information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + */ + private PageInfo pageInfo; + + public InventoryTransferLineItemConnection build() { + InventoryTransferLineItemConnection result = new InventoryTransferLineItemConnection(); + result.edges = this.edges; + result.nodes = this.nodes; + result.pageInfo = this.pageInfo; + return result; + } + + /** + * The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + */ + public Builder edges(List edges) { + this.edges = edges; + return this; + } + + /** + * A list of nodes that are contained in InventoryTransferLineItemEdge. You can + * fetch data about an individual node, or you can follow the edges to fetch data + * about a collection of related nodes. At each node, you specify the fields that + * you want to retrieve. + */ + public Builder nodes(List nodes) { + this.nodes = nodes; + return this; + } + + /** + * An object that’s used to retrieve [cursor + * information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + */ + public Builder pageInfo(PageInfo pageInfo) { + this.pageInfo = pageInfo; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferLineItemEdge.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferLineItemEdge.java new file mode 100644 index 00000000..4f4366ec --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferLineItemEdge.java @@ -0,0 +1,104 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * An auto-generated type which holds one InventoryTransferLineItem and a cursor during pagination. + */ +public class InventoryTransferLineItemEdge { + /** + * The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + */ + private String cursor; + + /** + * The item at the end of InventoryTransferLineItemEdge. + */ + private InventoryTransferLineItem node; + + public InventoryTransferLineItemEdge() { + } + + /** + * The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + */ + public String getCursor() { + return cursor; + } + + public void setCursor(String cursor) { + this.cursor = cursor; + } + + /** + * The item at the end of InventoryTransferLineItemEdge. + */ + public InventoryTransferLineItem getNode() { + return node; + } + + public void setNode(InventoryTransferLineItem node) { + this.node = node; + } + + @Override + public String toString() { + return "InventoryTransferLineItemEdge{cursor='" + cursor + "', node='" + node + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryTransferLineItemEdge that = (InventoryTransferLineItemEdge) o; + return Objects.equals(cursor, that.cursor) && + Objects.equals(node, that.node); + } + + @Override + public int hashCode() { + return Objects.hash(cursor, node); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + */ + private String cursor; + + /** + * The item at the end of InventoryTransferLineItemEdge. + */ + private InventoryTransferLineItem node; + + public InventoryTransferLineItemEdge build() { + InventoryTransferLineItemEdge result = new InventoryTransferLineItemEdge(); + result.cursor = this.cursor; + result.node = this.node; + return result; + } + + /** + * The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + */ + public Builder cursor(String cursor) { + this.cursor = cursor; + return this; + } + + /** + * The item at the end of InventoryTransferLineItemEdge. + */ + public Builder node(InventoryTransferLineItem node) { + this.node = node; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferLineItemInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferLineItemInput.java new file mode 100644 index 00000000..b77dda6f --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferLineItemInput.java @@ -0,0 +1,104 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * The input fields for a line item on an inventory transfer. + */ +public class InventoryTransferLineItemInput { + /** + * The inventory item ID for the transfer line item. + */ + private String inventoryItemId; + + /** + * The quantity for the transfer line item. + */ + private int quantity; + + public InventoryTransferLineItemInput() { + } + + /** + * The inventory item ID for the transfer line item. + */ + public String getInventoryItemId() { + return inventoryItemId; + } + + public void setInventoryItemId(String inventoryItemId) { + this.inventoryItemId = inventoryItemId; + } + + /** + * The quantity for the transfer line item. + */ + public int getQuantity() { + return quantity; + } + + public void setQuantity(int quantity) { + this.quantity = quantity; + } + + @Override + public String toString() { + return "InventoryTransferLineItemInput{inventoryItemId='" + inventoryItemId + "', quantity='" + quantity + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryTransferLineItemInput that = (InventoryTransferLineItemInput) o; + return Objects.equals(inventoryItemId, that.inventoryItemId) && + quantity == that.quantity; + } + + @Override + public int hashCode() { + return Objects.hash(inventoryItemId, quantity); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The inventory item ID for the transfer line item. + */ + private String inventoryItemId; + + /** + * The quantity for the transfer line item. + */ + private int quantity; + + public InventoryTransferLineItemInput build() { + InventoryTransferLineItemInput result = new InventoryTransferLineItemInput(); + result.inventoryItemId = this.inventoryItemId; + result.quantity = this.quantity; + return result; + } + + /** + * The inventory item ID for the transfer line item. + */ + public Builder inventoryItemId(String inventoryItemId) { + this.inventoryItemId = inventoryItemId; + return this; + } + + /** + * The quantity for the transfer line item. + */ + public Builder quantity(int quantity) { + this.quantity = quantity; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferLineItemUpdate.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferLineItemUpdate.java new file mode 100644 index 00000000..0a57ad14 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferLineItemUpdate.java @@ -0,0 +1,136 @@ +package com.shopify.admin.types; + +import java.lang.Integer; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * Represents an update to a single transfer line item. + */ +public class InventoryTransferLineItemUpdate { + /** + * The delta quantity for the transfer line item. + */ + private Integer deltaQuantity; + + /** + * The inventory item ID for the transfer line item. + */ + private String inventoryItemId; + + /** + * The new quantity for the transfer line item. + */ + private Integer newQuantity; + + public InventoryTransferLineItemUpdate() { + } + + /** + * The delta quantity for the transfer line item. + */ + public Integer getDeltaQuantity() { + return deltaQuantity; + } + + public void setDeltaQuantity(Integer deltaQuantity) { + this.deltaQuantity = deltaQuantity; + } + + /** + * The inventory item ID for the transfer line item. + */ + public String getInventoryItemId() { + return inventoryItemId; + } + + public void setInventoryItemId(String inventoryItemId) { + this.inventoryItemId = inventoryItemId; + } + + /** + * The new quantity for the transfer line item. + */ + public Integer getNewQuantity() { + return newQuantity; + } + + public void setNewQuantity(Integer newQuantity) { + this.newQuantity = newQuantity; + } + + @Override + public String toString() { + return "InventoryTransferLineItemUpdate{deltaQuantity='" + deltaQuantity + "', inventoryItemId='" + inventoryItemId + "', newQuantity='" + newQuantity + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryTransferLineItemUpdate that = (InventoryTransferLineItemUpdate) o; + return Objects.equals(deltaQuantity, that.deltaQuantity) && + Objects.equals(inventoryItemId, that.inventoryItemId) && + Objects.equals(newQuantity, that.newQuantity); + } + + @Override + public int hashCode() { + return Objects.hash(deltaQuantity, inventoryItemId, newQuantity); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The delta quantity for the transfer line item. + */ + private Integer deltaQuantity; + + /** + * The inventory item ID for the transfer line item. + */ + private String inventoryItemId; + + /** + * The new quantity for the transfer line item. + */ + private Integer newQuantity; + + public InventoryTransferLineItemUpdate build() { + InventoryTransferLineItemUpdate result = new InventoryTransferLineItemUpdate(); + result.deltaQuantity = this.deltaQuantity; + result.inventoryItemId = this.inventoryItemId; + result.newQuantity = this.newQuantity; + return result; + } + + /** + * The delta quantity for the transfer line item. + */ + public Builder deltaQuantity(Integer deltaQuantity) { + this.deltaQuantity = deltaQuantity; + return this; + } + + /** + * The inventory item ID for the transfer line item. + */ + public Builder inventoryItemId(String inventoryItemId) { + this.inventoryItemId = inventoryItemId; + return this; + } + + /** + * The new quantity for the transfer line item. + */ + public Builder newQuantity(Integer newQuantity) { + this.newQuantity = newQuantity; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferMarkAsReadyToShipPayload.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferMarkAsReadyToShipPayload.java new file mode 100644 index 00000000..9e5e98c1 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferMarkAsReadyToShipPayload.java @@ -0,0 +1,105 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * Return type for `inventoryTransferMarkAsReadyToShip` mutation. + */ +public class InventoryTransferMarkAsReadyToShipPayload { + /** + * The ready to ship inventory transfer. + */ + private InventoryTransfer inventoryTransfer; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public InventoryTransferMarkAsReadyToShipPayload() { + } + + /** + * The ready to ship inventory transfer. + */ + public InventoryTransfer getInventoryTransfer() { + return inventoryTransfer; + } + + public void setInventoryTransfer(InventoryTransfer inventoryTransfer) { + this.inventoryTransfer = inventoryTransfer; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public List getUserErrors() { + return userErrors; + } + + public void setUserErrors(List userErrors) { + this.userErrors = userErrors; + } + + @Override + public String toString() { + return "InventoryTransferMarkAsReadyToShipPayload{inventoryTransfer='" + inventoryTransfer + "', userErrors='" + userErrors + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryTransferMarkAsReadyToShipPayload that = (InventoryTransferMarkAsReadyToShipPayload) o; + return Objects.equals(inventoryTransfer, that.inventoryTransfer) && + Objects.equals(userErrors, that.userErrors); + } + + @Override + public int hashCode() { + return Objects.hash(inventoryTransfer, userErrors); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The ready to ship inventory transfer. + */ + private InventoryTransfer inventoryTransfer; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public InventoryTransferMarkAsReadyToShipPayload build() { + InventoryTransferMarkAsReadyToShipPayload result = new InventoryTransferMarkAsReadyToShipPayload(); + result.inventoryTransfer = this.inventoryTransfer; + result.userErrors = this.userErrors; + return result; + } + + /** + * The ready to ship inventory transfer. + */ + public Builder inventoryTransfer(InventoryTransfer inventoryTransfer) { + this.inventoryTransfer = inventoryTransfer; + return this; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public Builder userErrors(List userErrors) { + this.userErrors = userErrors; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferMarkAsReadyToShipUserError.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferMarkAsReadyToShipUserError.java new file mode 100644 index 00000000..87fbda68 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferMarkAsReadyToShipUserError.java @@ -0,0 +1,140 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * An error that occurs during the execution of `InventoryTransferMarkAsReadyToShip`. + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NONE +) +public class InventoryTransferMarkAsReadyToShipUserError implements com.shopify.admin.types.DisplayableError { + /** + * The error code. + */ + private InventoryTransferMarkAsReadyToShipUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public InventoryTransferMarkAsReadyToShipUserError() { + } + + /** + * The error code. + */ + public InventoryTransferMarkAsReadyToShipUserErrorCode getCode() { + return code; + } + + public void setCode(InventoryTransferMarkAsReadyToShipUserErrorCode code) { + this.code = code; + } + + /** + * The path to the input field that caused the error. + */ + public List getField() { + return field; + } + + public void setField(List field) { + this.field = field; + } + + /** + * The error message. + */ + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + @Override + public String toString() { + return "InventoryTransferMarkAsReadyToShipUserError{code='" + code + "', field='" + field + "', message='" + message + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryTransferMarkAsReadyToShipUserError that = (InventoryTransferMarkAsReadyToShipUserError) o; + return Objects.equals(code, that.code) && + Objects.equals(field, that.field) && + Objects.equals(message, that.message); + } + + @Override + public int hashCode() { + return Objects.hash(code, field, message); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The error code. + */ + private InventoryTransferMarkAsReadyToShipUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public InventoryTransferMarkAsReadyToShipUserError build() { + InventoryTransferMarkAsReadyToShipUserError result = new InventoryTransferMarkAsReadyToShipUserError(); + result.code = this.code; + result.field = this.field; + result.message = this.message; + return result; + } + + /** + * The error code. + */ + public Builder code(InventoryTransferMarkAsReadyToShipUserErrorCode code) { + this.code = code; + return this; + } + + /** + * The path to the input field that caused the error. + */ + public Builder field(List field) { + this.field = field; + return this; + } + + /** + * The error message. + */ + public Builder message(String message) { + this.message = message; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferMarkAsReadyToShipUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferMarkAsReadyToShipUserErrorCode.java new file mode 100644 index 00000000..e2d99baf --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferMarkAsReadyToShipUserErrorCode.java @@ -0,0 +1,20 @@ +package com.shopify.admin.types; + +/** + * Possible error codes that can be returned by `InventoryTransferMarkAsReadyToShipUserError`. + */ +public enum InventoryTransferMarkAsReadyToShipUserErrorCode { + TRANSFER_NOT_FOUND, + + ITEMS_EMPTY, + + INVALID_TRANSFER_STATUS, + + LOCATION_REQUIRED, + + INVALID_ITEM, + + LOCATION_NOT_ACTIVE, + + LOCATION_NOT_FOUND +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferRemoveItemsInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferRemoveItemsInput.java new file mode 100644 index 00000000..5e934e4f --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferRemoveItemsInput.java @@ -0,0 +1,105 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * The input fields to remove inventory items from a transfer. + */ +public class InventoryTransferRemoveItemsInput { + /** + * The ID of the inventory transfer where the items will be removed. + */ + private String id; + + /** + * The IDs of the transfer line items to be removed from the transfer. + */ + private List transferLineItemIds; + + public InventoryTransferRemoveItemsInput() { + } + + /** + * The ID of the inventory transfer where the items will be removed. + */ + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + /** + * The IDs of the transfer line items to be removed from the transfer. + */ + public List getTransferLineItemIds() { + return transferLineItemIds; + } + + public void setTransferLineItemIds(List transferLineItemIds) { + this.transferLineItemIds = transferLineItemIds; + } + + @Override + public String toString() { + return "InventoryTransferRemoveItemsInput{id='" + id + "', transferLineItemIds='" + transferLineItemIds + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryTransferRemoveItemsInput that = (InventoryTransferRemoveItemsInput) o; + return Objects.equals(id, that.id) && + Objects.equals(transferLineItemIds, that.transferLineItemIds); + } + + @Override + public int hashCode() { + return Objects.hash(id, transferLineItemIds); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The ID of the inventory transfer where the items will be removed. + */ + private String id; + + /** + * The IDs of the transfer line items to be removed from the transfer. + */ + private List transferLineItemIds; + + public InventoryTransferRemoveItemsInput build() { + InventoryTransferRemoveItemsInput result = new InventoryTransferRemoveItemsInput(); + result.id = this.id; + result.transferLineItemIds = this.transferLineItemIds; + return result; + } + + /** + * The ID of the inventory transfer where the items will be removed. + */ + public Builder id(String id) { + this.id = id; + return this; + } + + /** + * The IDs of the transfer line items to be removed from the transfer. + */ + public Builder transferLineItemIds(List transferLineItemIds) { + this.transferLineItemIds = transferLineItemIds; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferRemoveItemsPayload.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferRemoveItemsPayload.java new file mode 100644 index 00000000..c2ee5abb --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferRemoveItemsPayload.java @@ -0,0 +1,136 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * Return type for `inventoryTransferRemoveItems` mutation. + */ +public class InventoryTransferRemoveItemsPayload { + /** + * The transfer with line items removed. + */ + private InventoryTransfer inventoryTransfer; + + /** + * The line items that have had their shippable quantity removed. + */ + private List removedQuantities; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public InventoryTransferRemoveItemsPayload() { + } + + /** + * The transfer with line items removed. + */ + public InventoryTransfer getInventoryTransfer() { + return inventoryTransfer; + } + + public void setInventoryTransfer(InventoryTransfer inventoryTransfer) { + this.inventoryTransfer = inventoryTransfer; + } + + /** + * The line items that have had their shippable quantity removed. + */ + public List getRemovedQuantities() { + return removedQuantities; + } + + public void setRemovedQuantities(List removedQuantities) { + this.removedQuantities = removedQuantities; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public List getUserErrors() { + return userErrors; + } + + public void setUserErrors(List userErrors) { + this.userErrors = userErrors; + } + + @Override + public String toString() { + return "InventoryTransferRemoveItemsPayload{inventoryTransfer='" + inventoryTransfer + "', removedQuantities='" + removedQuantities + "', userErrors='" + userErrors + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryTransferRemoveItemsPayload that = (InventoryTransferRemoveItemsPayload) o; + return Objects.equals(inventoryTransfer, that.inventoryTransfer) && + Objects.equals(removedQuantities, that.removedQuantities) && + Objects.equals(userErrors, that.userErrors); + } + + @Override + public int hashCode() { + return Objects.hash(inventoryTransfer, removedQuantities, userErrors); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The transfer with line items removed. + */ + private InventoryTransfer inventoryTransfer; + + /** + * The line items that have had their shippable quantity removed. + */ + private List removedQuantities; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public InventoryTransferRemoveItemsPayload build() { + InventoryTransferRemoveItemsPayload result = new InventoryTransferRemoveItemsPayload(); + result.inventoryTransfer = this.inventoryTransfer; + result.removedQuantities = this.removedQuantities; + result.userErrors = this.userErrors; + return result; + } + + /** + * The transfer with line items removed. + */ + public Builder inventoryTransfer(InventoryTransfer inventoryTransfer) { + this.inventoryTransfer = inventoryTransfer; + return this; + } + + /** + * The line items that have had their shippable quantity removed. + */ + public Builder removedQuantities(List removedQuantities) { + this.removedQuantities = removedQuantities; + return this; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public Builder userErrors(List userErrors) { + this.userErrors = userErrors; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferRemoveItemsUserError.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferRemoveItemsUserError.java new file mode 100644 index 00000000..d7df7b1a --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferRemoveItemsUserError.java @@ -0,0 +1,140 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * An error that occurs during the execution of `InventoryTransferRemoveItems`. + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NONE +) +public class InventoryTransferRemoveItemsUserError implements com.shopify.admin.types.DisplayableError { + /** + * The error code. + */ + private InventoryTransferRemoveItemsUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public InventoryTransferRemoveItemsUserError() { + } + + /** + * The error code. + */ + public InventoryTransferRemoveItemsUserErrorCode getCode() { + return code; + } + + public void setCode(InventoryTransferRemoveItemsUserErrorCode code) { + this.code = code; + } + + /** + * The path to the input field that caused the error. + */ + public List getField() { + return field; + } + + public void setField(List field) { + this.field = field; + } + + /** + * The error message. + */ + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + @Override + public String toString() { + return "InventoryTransferRemoveItemsUserError{code='" + code + "', field='" + field + "', message='" + message + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryTransferRemoveItemsUserError that = (InventoryTransferRemoveItemsUserError) o; + return Objects.equals(code, that.code) && + Objects.equals(field, that.field) && + Objects.equals(message, that.message); + } + + @Override + public int hashCode() { + return Objects.hash(code, field, message); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The error code. + */ + private InventoryTransferRemoveItemsUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public InventoryTransferRemoveItemsUserError build() { + InventoryTransferRemoveItemsUserError result = new InventoryTransferRemoveItemsUserError(); + result.code = this.code; + result.field = this.field; + result.message = this.message; + return result; + } + + /** + * The error code. + */ + public Builder code(InventoryTransferRemoveItemsUserErrorCode code) { + this.code = code; + return this; + } + + /** + * The path to the input field that caused the error. + */ + public Builder field(List field) { + this.field = field; + return this; + } + + /** + * The error message. + */ + public Builder message(String message) { + this.message = message; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferRemoveItemsUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferRemoveItemsUserErrorCode.java new file mode 100644 index 00000000..5ce0d46b --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferRemoveItemsUserErrorCode.java @@ -0,0 +1,20 @@ +package com.shopify.admin.types; + +/** + * Possible error codes that can be returned by `InventoryTransferRemoveItemsUserError`. + */ +public enum InventoryTransferRemoveItemsUserErrorCode { + TRANSFER_NOT_FOUND, + + CANT_REMOVE_ALL_ITEMS_FROM_READY_TO_SHIP_TRANSFER, + + ITEM_NOT_FOUND, + + ALL_QUANTITY_SHIPPED, + + ITEM_PRESENT_ON_DRAFT_SHIPMENT_WITH_ZERO_QUANTITY, + + INVALID_TRANSFER_STATUS, + + LOCATION_NOT_FOUND +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferSetItemsInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferSetItemsInput.java new file mode 100644 index 00000000..e5c24f09 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferSetItemsInput.java @@ -0,0 +1,105 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * The input fields to the InventoryTransferSetItems mutation. + */ +public class InventoryTransferSetItemsInput { + /** + * The ID of the inventory transfer where the items will be set. + */ + private String id; + + /** + * The line items to be set on the Transfer. + */ + private List lineItems; + + public InventoryTransferSetItemsInput() { + } + + /** + * The ID of the inventory transfer where the items will be set. + */ + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + /** + * The line items to be set on the Transfer. + */ + public List getLineItems() { + return lineItems; + } + + public void setLineItems(List lineItems) { + this.lineItems = lineItems; + } + + @Override + public String toString() { + return "InventoryTransferSetItemsInput{id='" + id + "', lineItems='" + lineItems + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryTransferSetItemsInput that = (InventoryTransferSetItemsInput) o; + return Objects.equals(id, that.id) && + Objects.equals(lineItems, that.lineItems); + } + + @Override + public int hashCode() { + return Objects.hash(id, lineItems); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The ID of the inventory transfer where the items will be set. + */ + private String id; + + /** + * The line items to be set on the Transfer. + */ + private List lineItems; + + public InventoryTransferSetItemsInput build() { + InventoryTransferSetItemsInput result = new InventoryTransferSetItemsInput(); + result.id = this.id; + result.lineItems = this.lineItems; + return result; + } + + /** + * The ID of the inventory transfer where the items will be set. + */ + public Builder id(String id) { + this.id = id; + return this; + } + + /** + * The line items to be set on the Transfer. + */ + public Builder lineItems(List lineItems) { + this.lineItems = lineItems; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferSetItemsPayload.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferSetItemsPayload.java new file mode 100644 index 00000000..ed5fcd95 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferSetItemsPayload.java @@ -0,0 +1,136 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * Return type for `inventoryTransferSetItems` mutation. + */ +public class InventoryTransferSetItemsPayload { + /** + * The Transfer with its line items updated. + */ + private InventoryTransfer inventoryTransfer; + + /** + * The updated line items. + */ + private List updatedLineItems; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public InventoryTransferSetItemsPayload() { + } + + /** + * The Transfer with its line items updated. + */ + public InventoryTransfer getInventoryTransfer() { + return inventoryTransfer; + } + + public void setInventoryTransfer(InventoryTransfer inventoryTransfer) { + this.inventoryTransfer = inventoryTransfer; + } + + /** + * The updated line items. + */ + public List getUpdatedLineItems() { + return updatedLineItems; + } + + public void setUpdatedLineItems(List updatedLineItems) { + this.updatedLineItems = updatedLineItems; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public List getUserErrors() { + return userErrors; + } + + public void setUserErrors(List userErrors) { + this.userErrors = userErrors; + } + + @Override + public String toString() { + return "InventoryTransferSetItemsPayload{inventoryTransfer='" + inventoryTransfer + "', updatedLineItems='" + updatedLineItems + "', userErrors='" + userErrors + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryTransferSetItemsPayload that = (InventoryTransferSetItemsPayload) o; + return Objects.equals(inventoryTransfer, that.inventoryTransfer) && + Objects.equals(updatedLineItems, that.updatedLineItems) && + Objects.equals(userErrors, that.userErrors); + } + + @Override + public int hashCode() { + return Objects.hash(inventoryTransfer, updatedLineItems, userErrors); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The Transfer with its line items updated. + */ + private InventoryTransfer inventoryTransfer; + + /** + * The updated line items. + */ + private List updatedLineItems; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public InventoryTransferSetItemsPayload build() { + InventoryTransferSetItemsPayload result = new InventoryTransferSetItemsPayload(); + result.inventoryTransfer = this.inventoryTransfer; + result.updatedLineItems = this.updatedLineItems; + result.userErrors = this.userErrors; + return result; + } + + /** + * The Transfer with its line items updated. + */ + public Builder inventoryTransfer(InventoryTransfer inventoryTransfer) { + this.inventoryTransfer = inventoryTransfer; + return this; + } + + /** + * The updated line items. + */ + public Builder updatedLineItems(List updatedLineItems) { + this.updatedLineItems = updatedLineItems; + return this; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public Builder userErrors(List userErrors) { + this.userErrors = userErrors; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferSetItemsUserError.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferSetItemsUserError.java new file mode 100644 index 00000000..e4773a7e --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferSetItemsUserError.java @@ -0,0 +1,140 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * An error that occurs during the execution of `InventoryTransferSetItems`. + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NONE +) +public class InventoryTransferSetItemsUserError implements com.shopify.admin.types.DisplayableError { + /** + * The error code. + */ + private InventoryTransferSetItemsUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public InventoryTransferSetItemsUserError() { + } + + /** + * The error code. + */ + public InventoryTransferSetItemsUserErrorCode getCode() { + return code; + } + + public void setCode(InventoryTransferSetItemsUserErrorCode code) { + this.code = code; + } + + /** + * The path to the input field that caused the error. + */ + public List getField() { + return field; + } + + public void setField(List field) { + this.field = field; + } + + /** + * The error message. + */ + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + @Override + public String toString() { + return "InventoryTransferSetItemsUserError{code='" + code + "', field='" + field + "', message='" + message + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InventoryTransferSetItemsUserError that = (InventoryTransferSetItemsUserError) o; + return Objects.equals(code, that.code) && + Objects.equals(field, that.field) && + Objects.equals(message, that.message); + } + + @Override + public int hashCode() { + return Objects.hash(code, field, message); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The error code. + */ + private InventoryTransferSetItemsUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public InventoryTransferSetItemsUserError build() { + InventoryTransferSetItemsUserError result = new InventoryTransferSetItemsUserError(); + result.code = this.code; + result.field = this.field; + result.message = this.message; + return result; + } + + /** + * The error code. + */ + public Builder code(InventoryTransferSetItemsUserErrorCode code) { + this.code = code; + return this; + } + + /** + * The path to the input field that caused the error. + */ + public Builder field(List field) { + this.field = field; + return this; + } + + /** + * The error message. + */ + public Builder message(String message) { + this.message = message; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferSetItemsUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferSetItemsUserErrorCode.java new file mode 100644 index 00000000..ee6ce4ba --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferSetItemsUserErrorCode.java @@ -0,0 +1,30 @@ +package com.shopify.admin.types; + +/** + * Possible error codes that can be returned by `InventoryTransferSetItemsUserError`. + */ +public enum InventoryTransferSetItemsUserErrorCode { + TRANSFER_NOT_FOUND, + + INVALID_TRANSFER_STATUS, + + LOCATION_NOT_FOUND, + + LOCATION_NOT_ACTIVE, + + IDEMPOTENCY_CONCURRENT_REQUEST, + + IDEMPOTENCY_KEY_PARAMETER_MISMATCH, + + BUNDLED_ITEM, + + UNTRACKED_ITEM, + + ITEM_NOT_FOUND, + + INVALID_QUANTITY, + + DUPLICATE_ITEM, + + INVENTORY_STATE_NOT_ACTIVE +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferStatus.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferStatus.java new file mode 100644 index 00000000..a862b69c --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InventoryTransferStatus.java @@ -0,0 +1,18 @@ +package com.shopify.admin.types; + +/** + * The status of a transfer. + */ +public enum InventoryTransferStatus { + DRAFT, + + READY_TO_SHIP, + + IN_PROGRESS, + + TRANSFERRED, + + CANCELED, + + OTHER +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InvoiceReturnOutcome.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InvoiceReturnOutcome.java new file mode 100644 index 00000000..3033b078 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/InvoiceReturnOutcome.java @@ -0,0 +1,77 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * The financial transfer details for a return outcome that results in an invoice. + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NONE +) +public class InvoiceReturnOutcome implements ReturnOutcomeFinancialTransfer { + /** + * The total monetary value to be invoiced in shop and presentment currencies. + */ + private MoneyBag amount; + + public InvoiceReturnOutcome() { + } + + /** + * The total monetary value to be invoiced in shop and presentment currencies. + */ + public MoneyBag getAmount() { + return amount; + } + + public void setAmount(MoneyBag amount) { + this.amount = amount; + } + + @Override + public String toString() { + return "InvoiceReturnOutcome{amount='" + amount + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + InvoiceReturnOutcome that = (InvoiceReturnOutcome) o; + return Objects.equals(amount, that.amount); + } + + @Override + public int hashCode() { + return Objects.hash(amount); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The total monetary value to be invoiced in shop and presentment currencies. + */ + private MoneyBag amount; + + public InvoiceReturnOutcome build() { + InvoiceReturnOutcome result = new InvoiceReturnOutcome(); + result.amount = this.amount; + return result; + } + + /** + * The total monetary value to be invoiced in shop and presentment currencies. + */ + public Builder amount(MoneyBag amount) { + this.amount = amount; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/LineItem.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/LineItem.java index 0783adee..818f3aeb 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/LineItem.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/LineItem.java @@ -8,7 +8,26 @@ import java.util.Objects; /** - * Represents individual products and quantities purchased in the associated order. + * The `LineItem` object represents a single product or service that a customer purchased in an + * [order](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order). + * Each line item is associated with a + * [product variant](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) + * and can have multiple [discount allocations](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountAllocation). + * Line items contain details about what was purchased, including the product variant, quantity, pricing, + * and fulfillment status. + * + * Use the `LineItem` object to manage the following processes: + * + * - [Track the quantity of items](https://shopify.dev/docs/apps/build/orders-fulfillment/order-management-apps/build-fulfillment-solutions) + * ordered, fulfilled, and unfulfilled. + * - [Calculate prices](https://shopify.dev/docs/apps/build/orders-fulfillment/order-management-apps/edit-orders), including discounts and taxes. + * - Manage fulfillment through [fulfillment services](https://shopify.dev/docs/apps/build/orders-fulfillment/fulfillment-service-apps). + * - Manage [returns](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/build-return-management) and [exchanges](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/manage-exchanges). + * - Handle [subscriptions](https://shopify.dev/docs/apps/build/purchase-options/subscriptions) and recurring orders. + * + * Line items can also include custom attributes and properties, allowing merchants to add specific details + * about each item in an order. Learn more about + * [managing orders and fulfillment](https://shopify.dev/docs/apps/build/orders-fulfillment). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE @@ -181,7 +200,7 @@ public class LineItem implements com.shopify.admin.types.Node { private int quantity; /** - * The number of units ordered, excluding refunded units. + * The number of units ordered, excluding refunded units and removed units. */ private int refundableQuantity; @@ -210,6 +229,13 @@ public class LineItem implements com.shopify.admin.types.Node { */ private StaffMember staffMember; + /** + * Return reasons suggested based on the line item's product category in + * Shopify's product taxonomy. Use [`returnReasonDefinitions`](https://shopify.dev/docs/api/admin-graphql/latest/queries/returnReasonDefinitions) + * to access the full library of available reasons. + */ + private ReturnReasonDefinitionConnection suggestedReturnReasonDefinitions; + /** * The taxes charged for the line item, including taxes charged for refunded and removed quantities. */ @@ -613,7 +639,7 @@ public void setQuantity(int quantity) { } /** - * The number of units ordered, excluding refunded units. + * The number of units ordered, excluding refunded units and removed units. */ public int getRefundableQuantity() { return refundableQuantity; @@ -678,6 +704,20 @@ public void setStaffMember(StaffMember staffMember) { this.staffMember = staffMember; } + /** + * Return reasons suggested based on the line item's product category in + * Shopify's product taxonomy. Use [`returnReasonDefinitions`](https://shopify.dev/docs/api/admin-graphql/latest/queries/returnReasonDefinitions) + * to access the full library of available reasons. + */ + public ReturnReasonDefinitionConnection getSuggestedReturnReasonDefinitions() { + return suggestedReturnReasonDefinitions; + } + + public void setSuggestedReturnReasonDefinitions( + ReturnReasonDefinitionConnection suggestedReturnReasonDefinitions) { + this.suggestedReturnReasonDefinitions = suggestedReturnReasonDefinitions; + } + /** * The taxes charged for the line item, including taxes charged for refunded and removed quantities. */ @@ -828,7 +868,7 @@ public void setVendor(String vendor) { @Override public String toString() { - return "LineItem{canRestock='" + canRestock + "', contract='" + contract + "', currentQuantity='" + currentQuantity + "', customAttributes='" + customAttributes + "', discountAllocations='" + discountAllocations + "', discountedTotal='" + discountedTotal + "', discountedTotalSet='" + discountedTotalSet + "', discountedUnitPrice='" + discountedUnitPrice + "', discountedUnitPriceAfterAllDiscountsSet='" + discountedUnitPriceAfterAllDiscountsSet + "', discountedUnitPriceSet='" + discountedUnitPriceSet + "', duties='" + duties + "', fulfillableQuantity='" + fulfillableQuantity + "', fulfillmentService='" + fulfillmentService + "', fulfillmentStatus='" + fulfillmentStatus + "', id='" + id + "', image='" + image + "', isGiftCard='" + isGiftCard + "', lineItemGroup='" + lineItemGroup + "', merchantEditable='" + merchantEditable + "', name='" + name + "', nonFulfillableQuantity='" + nonFulfillableQuantity + "', originalTotal='" + originalTotal + "', originalTotalSet='" + originalTotalSet + "', originalUnitPrice='" + originalUnitPrice + "', originalUnitPriceSet='" + originalUnitPriceSet + "', product='" + product + "', quantity='" + quantity + "', refundableQuantity='" + refundableQuantity + "', requiresShipping='" + requiresShipping + "', restockable='" + restockable + "', sellingPlan='" + sellingPlan + "', sku='" + sku + "', staffMember='" + staffMember + "', taxLines='" + taxLines + "', taxable='" + taxable + "', title='" + title + "', totalDiscount='" + totalDiscount + "', totalDiscountSet='" + totalDiscountSet + "', unfulfilledDiscountedTotal='" + unfulfilledDiscountedTotal + "', unfulfilledDiscountedTotalSet='" + unfulfilledDiscountedTotalSet + "', unfulfilledOriginalTotal='" + unfulfilledOriginalTotal + "', unfulfilledOriginalTotalSet='" + unfulfilledOriginalTotalSet + "', unfulfilledQuantity='" + unfulfilledQuantity + "', variant='" + variant + "', variantTitle='" + variantTitle + "', vendor='" + vendor + "'}"; + return "LineItem{canRestock='" + canRestock + "', contract='" + contract + "', currentQuantity='" + currentQuantity + "', customAttributes='" + customAttributes + "', discountAllocations='" + discountAllocations + "', discountedTotal='" + discountedTotal + "', discountedTotalSet='" + discountedTotalSet + "', discountedUnitPrice='" + discountedUnitPrice + "', discountedUnitPriceAfterAllDiscountsSet='" + discountedUnitPriceAfterAllDiscountsSet + "', discountedUnitPriceSet='" + discountedUnitPriceSet + "', duties='" + duties + "', fulfillableQuantity='" + fulfillableQuantity + "', fulfillmentService='" + fulfillmentService + "', fulfillmentStatus='" + fulfillmentStatus + "', id='" + id + "', image='" + image + "', isGiftCard='" + isGiftCard + "', lineItemGroup='" + lineItemGroup + "', merchantEditable='" + merchantEditable + "', name='" + name + "', nonFulfillableQuantity='" + nonFulfillableQuantity + "', originalTotal='" + originalTotal + "', originalTotalSet='" + originalTotalSet + "', originalUnitPrice='" + originalUnitPrice + "', originalUnitPriceSet='" + originalUnitPriceSet + "', product='" + product + "', quantity='" + quantity + "', refundableQuantity='" + refundableQuantity + "', requiresShipping='" + requiresShipping + "', restockable='" + restockable + "', sellingPlan='" + sellingPlan + "', sku='" + sku + "', staffMember='" + staffMember + "', suggestedReturnReasonDefinitions='" + suggestedReturnReasonDefinitions + "', taxLines='" + taxLines + "', taxable='" + taxable + "', title='" + title + "', totalDiscount='" + totalDiscount + "', totalDiscountSet='" + totalDiscountSet + "', unfulfilledDiscountedTotal='" + unfulfilledDiscountedTotal + "', unfulfilledDiscountedTotalSet='" + unfulfilledDiscountedTotalSet + "', unfulfilledOriginalTotal='" + unfulfilledOriginalTotal + "', unfulfilledOriginalTotalSet='" + unfulfilledOriginalTotalSet + "', unfulfilledQuantity='" + unfulfilledQuantity + "', variant='" + variant + "', variantTitle='" + variantTitle + "', vendor='" + vendor + "'}"; } @Override @@ -869,6 +909,7 @@ public boolean equals(Object o) { Objects.equals(sellingPlan, that.sellingPlan) && Objects.equals(sku, that.sku) && Objects.equals(staffMember, that.staffMember) && + Objects.equals(suggestedReturnReasonDefinitions, that.suggestedReturnReasonDefinitions) && Objects.equals(taxLines, that.taxLines) && taxable == that.taxable && Objects.equals(title, that.title) && @@ -886,7 +927,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(canRestock, contract, currentQuantity, customAttributes, discountAllocations, discountedTotal, discountedTotalSet, discountedUnitPrice, discountedUnitPriceAfterAllDiscountsSet, discountedUnitPriceSet, duties, fulfillableQuantity, fulfillmentService, fulfillmentStatus, id, image, isGiftCard, lineItemGroup, merchantEditable, name, nonFulfillableQuantity, originalTotal, originalTotalSet, originalUnitPrice, originalUnitPriceSet, product, quantity, refundableQuantity, requiresShipping, restockable, sellingPlan, sku, staffMember, taxLines, taxable, title, totalDiscount, totalDiscountSet, unfulfilledDiscountedTotal, unfulfilledDiscountedTotalSet, unfulfilledOriginalTotal, unfulfilledOriginalTotalSet, unfulfilledQuantity, variant, variantTitle, vendor); + return Objects.hash(canRestock, contract, currentQuantity, customAttributes, discountAllocations, discountedTotal, discountedTotalSet, discountedUnitPrice, discountedUnitPriceAfterAllDiscountsSet, discountedUnitPriceSet, duties, fulfillableQuantity, fulfillmentService, fulfillmentStatus, id, image, isGiftCard, lineItemGroup, merchantEditable, name, nonFulfillableQuantity, originalTotal, originalTotalSet, originalUnitPrice, originalUnitPriceSet, product, quantity, refundableQuantity, requiresShipping, restockable, sellingPlan, sku, staffMember, suggestedReturnReasonDefinitions, taxLines, taxable, title, totalDiscount, totalDiscountSet, unfulfilledDiscountedTotal, unfulfilledDiscountedTotalSet, unfulfilledOriginalTotal, unfulfilledOriginalTotalSet, unfulfilledQuantity, variant, variantTitle, vendor); } public static Builder newBuilder() { @@ -1061,7 +1102,7 @@ public static class Builder { private int quantity; /** - * The number of units ordered, excluding refunded units. + * The number of units ordered, excluding refunded units and removed units. */ private int refundableQuantity; @@ -1090,6 +1131,13 @@ public static class Builder { */ private StaffMember staffMember; + /** + * Return reasons suggested based on the line item's product category in + * Shopify's product taxonomy. Use [`returnReasonDefinitions`](https://shopify.dev/docs/api/admin-graphql/latest/queries/returnReasonDefinitions) + * to access the full library of available reasons. + */ + private ReturnReasonDefinitionConnection suggestedReturnReasonDefinitions; + /** * The taxes charged for the line item, including taxes charged for refunded and removed quantities. */ @@ -1195,6 +1243,7 @@ public LineItem build() { result.sellingPlan = this.sellingPlan; result.sku = this.sku; result.staffMember = this.staffMember; + result.suggestedReturnReasonDefinitions = this.suggestedReturnReasonDefinitions; result.taxLines = this.taxLines; result.taxable = this.taxable; result.title = this.title; @@ -1460,7 +1509,7 @@ public Builder quantity(int quantity) { } /** - * The number of units ordered, excluding refunded units. + * The number of units ordered, excluding refunded units and removed units. */ public Builder refundableQuantity(int refundableQuantity) { this.refundableQuantity = refundableQuantity; @@ -1507,6 +1556,17 @@ public Builder staffMember(StaffMember staffMember) { return this; } + /** + * Return reasons suggested based on the line item's product category in + * Shopify's product taxonomy. Use [`returnReasonDefinitions`](https://shopify.dev/docs/api/admin-graphql/latest/queries/returnReasonDefinitions) + * to access the full library of available reasons. + */ + public Builder suggestedReturnReasonDefinitions( + ReturnReasonDefinitionConnection suggestedReturnReasonDefinitions) { + this.suggestedReturnReasonDefinitions = suggestedReturnReasonDefinitions; + return this; + } + /** * The taxes charged for the line item, including taxes charged for refunded and removed quantities. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/LineItemGroup.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/LineItemGroup.java index 539562be..9fea327e 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/LineItemGroup.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/LineItemGroup.java @@ -8,7 +8,16 @@ import java.util.Objects; /** - * A line item group (bundle) to which a line item belongs to. + * The information for [line + * items](https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItem) that + * are part of a bundle. When a bundle is purchased, each component line item references its [`LineItemGroup`](https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItemGroup) through the [`lineItemGroup`](https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItem#field-lineItemGroup) + * field to maintain the relationship with the bundle. + * + * The parent bundle's product, variant, and custom attributes enable apps to group + * and display bundle components in order management systems, transactional emails, + * and other contexts where understanding the bundle structure is needed. + * + * Learn more about [product bundles](https://shopify.dev/docs/apps/build/product-merchandising/bundles). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE @@ -24,6 +33,11 @@ public class LineItemGroup implements com.shopify.admin.types.Node { */ private String id; + /** + * ID of the product of the line item group. + */ + private String productId; + /** * Quantity of the line item group on the order. */ @@ -69,6 +83,17 @@ public void setId(String id) { this.id = id; } + /** + * ID of the product of the line item group. + */ + public String getProductId() { + return productId; + } + + public void setProductId(String productId) { + this.productId = productId; + } + /** * Quantity of the line item group on the order. */ @@ -115,7 +140,7 @@ public void setVariantSku(String variantSku) { @Override public String toString() { - return "LineItemGroup{customAttributes='" + customAttributes + "', id='" + id + "', quantity='" + quantity + "', title='" + title + "', variantId='" + variantId + "', variantSku='" + variantSku + "'}"; + return "LineItemGroup{customAttributes='" + customAttributes + "', id='" + id + "', productId='" + productId + "', quantity='" + quantity + "', title='" + title + "', variantId='" + variantId + "', variantSku='" + variantSku + "'}"; } @Override @@ -125,6 +150,7 @@ public boolean equals(Object o) { LineItemGroup that = (LineItemGroup) o; return Objects.equals(customAttributes, that.customAttributes) && Objects.equals(id, that.id) && + Objects.equals(productId, that.productId) && quantity == that.quantity && Objects.equals(title, that.title) && Objects.equals(variantId, that.variantId) && @@ -133,7 +159,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(customAttributes, id, quantity, title, variantId, variantSku); + return Objects.hash(customAttributes, id, productId, quantity, title, variantId, variantSku); } public static Builder newBuilder() { @@ -151,6 +177,11 @@ public static class Builder { */ private String id; + /** + * ID of the product of the line item group. + */ + private String productId; + /** * Quantity of the line item group on the order. */ @@ -175,6 +206,7 @@ public LineItemGroup build() { LineItemGroup result = new LineItemGroup(); result.customAttributes = this.customAttributes; result.id = this.id; + result.productId = this.productId; result.quantity = this.quantity; result.title = this.title; result.variantId = this.variantId; @@ -198,6 +230,14 @@ public Builder id(String id) { return this; } + /** + * ID of the product of the line item group. + */ + public Builder productId(String productId) { + this.productId = productId; + return this; + } + /** * Quantity of the line item group on the order. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/LocalizableContentType.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/LocalizableContentType.java index 62e5c242..31019431 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/LocalizableContentType.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/LocalizableContentType.java @@ -9,6 +9,10 @@ public enum LocalizableContentType { JSON, + LINK, + + LIST_LINK, + LIST_MULTI_LINE_TEXT_FIELD, LIST_SINGLE_LINE_TEXT_FIELD, @@ -25,10 +29,6 @@ public enum LocalizableContentType { URL, - LINK, - - LIST_LINK, - FILE_REFERENCE, LIST_FILE_REFERENCE, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Location.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Location.java index ea412a90..3ce8c99f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Location.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Location.java @@ -9,9 +9,16 @@ import java.util.Objects; /** - * Represents the location where the physical good resides. You can stock inventory at active locations. Active - * locations that have `fulfills_online_orders: true` and are configured with a shipping rate, pickup enabled or - * local delivery will be able to sell from their storefront. + * A physical location where merchants store and fulfill inventory. Locations + * include retail stores, warehouses, popups, dropshippers, or other places where + * inventory is managed or stocked. + * + * Active locations can fulfill online orders when configured with shipping rates, + * local pickup, or local delivery options. Locations track inventory quantities for + * [products](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) and + * process [order](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) + * fulfillment. Third-party apps using [`FulfillmentService`](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentService) + * can create and manage their own locations. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE @@ -147,7 +154,7 @@ public class Location implements MetafieldReferencer, com.shopify.admin.types.Ha private String name; /** - * Whether this location is used for calculating shipping rates. In multi-origin shipping mode, this flag is ignored. + * Legacy field indicating this location was designated for shipping. All locations with valid addresses can now ship. */ private boolean shipsInventory; @@ -432,7 +439,7 @@ public void setName(String name) { } /** - * Whether this location is used for calculating shipping rates. In multi-origin shipping mode, this flag is ignored. + * Legacy field indicating this location was designated for shipping. All locations with valid addresses can now ship. */ public boolean getShipsInventory() { return shipsInventory; @@ -642,7 +649,7 @@ public static class Builder { private String name; /** - * Whether this location is used for calculating shipping rates. In multi-origin shipping mode, this flag is ignored. + * Legacy field indicating this location was designated for shipping. All locations with valid addresses can now ship. */ private boolean shipsInventory; @@ -886,7 +893,7 @@ public Builder name(String name) { } /** - * Whether this location is used for calculating shipping rates. In multi-origin shipping mode, this flag is ignored. + * Legacy field indicating this location was designated for shipping. All locations with valid addresses can now ship. */ public Builder shipsInventory(boolean shipsInventory) { this.shipsInventory = shipsInventory; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/LocationActivateUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/LocationActivateUserErrorCode.java index e1d9809b..f3572b9a 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/LocationActivateUserErrorCode.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/LocationActivateUserErrorCode.java @@ -12,5 +12,9 @@ public enum LocationActivateUserErrorCode { LOCATION_NOT_FOUND, - HAS_NON_UNIQUE_NAME + HAS_NON_UNIQUE_NAME, + + IDEMPOTENCY_CONCURRENT_REQUEST, + + IDEMPOTENCY_KEY_PARAMETER_MISMATCH } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/LocationDeactivateUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/LocationDeactivateUserErrorCode.java index a322e6e6..0410ba2c 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/LocationDeactivateUserErrorCode.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/LocationDeactivateUserErrorCode.java @@ -16,10 +16,14 @@ public enum LocationDeactivateUserErrorCode { DESTINATION_LOCATION_NOT_FOUND_OR_INACTIVE, + DESTINATION_LOCATION_NOT_SHOPIFY_MANAGED, + HAS_ACTIVE_INVENTORY_ERROR, HAS_FULFILLMENT_ORDERS_ERROR, + HAS_INCOMING_FROM_EXTERNAL_DOCUMENT_SOURCES, + HAS_INCOMING_MOVEMENTS_ERROR, HAS_OPEN_PURCHASE_ORDERS_ERROR, @@ -30,5 +34,9 @@ public enum LocationDeactivateUserErrorCode { FAILED_TO_RELOCATE_INCOMING_MOVEMENTS, - CANNOT_DISABLE_ONLINE_ORDER_FULFILLMENT + CANNOT_DISABLE_ONLINE_ORDER_FULFILLMENT, + + IDEMPOTENCY_CONCURRENT_REQUEST, + + IDEMPOTENCY_KEY_PARAMETER_MISMATCH } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/LocationSnapshot.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/LocationSnapshot.java new file mode 100644 index 00000000..78660b5b --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/LocationSnapshot.java @@ -0,0 +1,176 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.time.OffsetDateTime; +import java.util.Objects; + +/** + * A snapshot of location details including name and address captured at a specific + * point in time. Refer to the parent model to know the lifecycle. + */ +public class LocationSnapshot { + /** + * The address details of the location as they were when the snapshot was recorded. + */ + private LocationAddress address; + + /** + * A reference to the live Location object, if it still exists and is accessible. + * This provides current details of the location, which may differ from the + * snapshotted name and address. + */ + private Location location; + + /** + * The name of the location as it was when the snapshot was recorded. + */ + private String name; + + /** + * The date and time when these snapshot details (name and address) were recorded. + */ + private OffsetDateTime snapshottedAt; + + public LocationSnapshot() { + } + + /** + * The address details of the location as they were when the snapshot was recorded. + */ + public LocationAddress getAddress() { + return address; + } + + public void setAddress(LocationAddress address) { + this.address = address; + } + + /** + * A reference to the live Location object, if it still exists and is accessible. + * This provides current details of the location, which may differ from the + * snapshotted name and address. + */ + public Location getLocation() { + return location; + } + + public void setLocation(Location location) { + this.location = location; + } + + /** + * The name of the location as it was when the snapshot was recorded. + */ + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + /** + * The date and time when these snapshot details (name and address) were recorded. + */ + public OffsetDateTime getSnapshottedAt() { + return snapshottedAt; + } + + public void setSnapshottedAt(OffsetDateTime snapshottedAt) { + this.snapshottedAt = snapshottedAt; + } + + @Override + public String toString() { + return "LocationSnapshot{address='" + address + "', location='" + location + "', name='" + name + "', snapshottedAt='" + snapshottedAt + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + LocationSnapshot that = (LocationSnapshot) o; + return Objects.equals(address, that.address) && + Objects.equals(location, that.location) && + Objects.equals(name, that.name) && + Objects.equals(snapshottedAt, that.snapshottedAt); + } + + @Override + public int hashCode() { + return Objects.hash(address, location, name, snapshottedAt); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The address details of the location as they were when the snapshot was recorded. + */ + private LocationAddress address; + + /** + * A reference to the live Location object, if it still exists and is accessible. + * This provides current details of the location, which may differ from the + * snapshotted name and address. + */ + private Location location; + + /** + * The name of the location as it was when the snapshot was recorded. + */ + private String name; + + /** + * The date and time when these snapshot details (name and address) were recorded. + */ + private OffsetDateTime snapshottedAt; + + public LocationSnapshot build() { + LocationSnapshot result = new LocationSnapshot(); + result.address = this.address; + result.location = this.location; + result.name = this.name; + result.snapshottedAt = this.snapshottedAt; + return result; + } + + /** + * The address details of the location as they were when the snapshot was recorded. + */ + public Builder address(LocationAddress address) { + this.address = address; + return this; + } + + /** + * A reference to the live Location object, if it still exists and is accessible. + * This provides current details of the location, which may differ from the + * snapshotted name and address. + */ + public Builder location(Location location) { + this.location = location; + return this; + } + + /** + * The name of the location as it was when the snapshot was recorded. + */ + public Builder name(String name) { + this.name = name; + return this; + } + + /** + * The date and time when these snapshot details (name and address) were recorded. + */ + public Builder snapshottedAt(OffsetDateTime snapshottedAt) { + this.snapshottedAt = snapshottedAt; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MailingAddress.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MailingAddress.java index be6f16ea..ffee988c 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MailingAddress.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MailingAddress.java @@ -9,9 +9,15 @@ import java.util.Objects; /** - * Represents a customer mailing address. + * A physical mailing address. For example, a [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer)'s + * default address and an + * [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order)'s + * billing address are both mailing addresses. Stores standard address components, + * customer name information, and company details. * - * For example, a customer's default address and an order's billing address are both mailling addresses. + * The address includes geographic coordinates ([`latitude`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MailingAddress#field-MailingAddress.fields.latitude) and [`longitude`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MailingAddress#field-MailingAddress.fields.longitude)). + * You can format addresses for display using the [`formatted`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MailingAddress#field-MailingAddress.fields.formatted) + * field with options to include or exclude name and company information. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MandateResourceType.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MandateResourceType.java new file mode 100644 index 00000000..34fb77fc --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MandateResourceType.java @@ -0,0 +1,16 @@ +package com.shopify.admin.types; + +/** + * The type of resource a payment mandate can be used for. + */ +public enum MandateResourceType { + CREDENTIAL_ON_FILE, + + CHECKOUT, + + DRAFT_ORDER, + + ORDER, + + SUBSCRIPTIONS +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MarketCatalog.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MarketCatalog.java index 9d3db605..78a0c731 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MarketCatalog.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MarketCatalog.java @@ -8,7 +8,20 @@ import java.util.Objects; /** - * A list of products with publishing and pricing information associated with markets. + * A catalog for managing product availability and pricing for specific + * [`Market`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Market) + * contexts. Each catalog links to one or more markets. The catalog can optionally include a [`Publication`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication) + * to control which + * [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) + * objects customers see, and a [`PriceList`](https://shopify.dev/docs/api/admin-graphql/latest/objects/PriceList) + * for market-specific pricing adjustments. When a publication isn't associated + * with the catalog, product availability is determined by the sales channel. + * + * Use catalogs to create distinct shopping experiences for different geographic regions or customer segments. + * + * Learn more about [building a + * catalog](https://shopify.dev/docs/apps/build/markets/build-catalog) and + * [managing markets](https://shopify.dev/docs/apps/build/markets). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MarketCurrencySettings.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MarketCurrencySettings.java index b254418b..2610c314 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MarketCurrencySettings.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MarketCurrencySettings.java @@ -22,6 +22,11 @@ public class MarketCurrencySettings { */ private boolean localCurrencies; + /** + * Whether or not rounding is enabled on multi-currency prices. + */ + private boolean roundingEnabled; + public MarketCurrencySettings() { } @@ -50,9 +55,20 @@ public void setLocalCurrencies(boolean localCurrencies) { this.localCurrencies = localCurrencies; } + /** + * Whether or not rounding is enabled on multi-currency prices. + */ + public boolean getRoundingEnabled() { + return roundingEnabled; + } + + public void setRoundingEnabled(boolean roundingEnabled) { + this.roundingEnabled = roundingEnabled; + } + @Override public String toString() { - return "MarketCurrencySettings{baseCurrency='" + baseCurrency + "', localCurrencies='" + localCurrencies + "'}"; + return "MarketCurrencySettings{baseCurrency='" + baseCurrency + "', localCurrencies='" + localCurrencies + "', roundingEnabled='" + roundingEnabled + "'}"; } @Override @@ -61,12 +77,13 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) return false; MarketCurrencySettings that = (MarketCurrencySettings) o; return Objects.equals(baseCurrency, that.baseCurrency) && - localCurrencies == that.localCurrencies; + localCurrencies == that.localCurrencies && + roundingEnabled == that.roundingEnabled; } @Override public int hashCode() { - return Objects.hash(baseCurrency, localCurrencies); + return Objects.hash(baseCurrency, localCurrencies, roundingEnabled); } public static Builder newBuilder() { @@ -87,10 +104,16 @@ public static class Builder { */ private boolean localCurrencies; + /** + * Whether or not rounding is enabled on multi-currency prices. + */ + private boolean roundingEnabled; + public MarketCurrencySettings build() { MarketCurrencySettings result = new MarketCurrencySettings(); result.baseCurrency = this.baseCurrency; result.localCurrencies = this.localCurrencies; + result.roundingEnabled = this.roundingEnabled; return result; } @@ -112,5 +135,13 @@ public Builder localCurrencies(boolean localCurrencies) { this.localCurrencies = localCurrencies; return this; } + + /** + * Whether or not rounding is enabled on multi-currency prices. + */ + public Builder roundingEnabled(boolean roundingEnabled) { + this.roundingEnabled = roundingEnabled; + return this; + } } } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MarketUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MarketUserErrorCode.java index eba1a677..758b532f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MarketUserErrorCode.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MarketUserErrorCode.java @@ -20,6 +20,8 @@ public enum MarketUserErrorCode { REGION_NOT_FOUND, + PROVINCE_DOES_NOT_EXIST, + WEB_PRESENCE_NOT_FOUND, CANNOT_ADD_REGIONS_TO_PRIMARY_MARKET, @@ -36,6 +38,8 @@ public enum MarketUserErrorCode { SUBFOLDER_SUFFIX_MUST_CONTAIN_ONLY_LETTERS, + SUBFOLDER_SUFFIX_MUST_BE_AT_LEAST_2_LETTERS, + SUBFOLDER_SUFFIX_CANNOT_BE_SCRIPT_CODE, NO_LANGUAGES, @@ -58,6 +62,12 @@ public enum MarketUserErrorCode { MARKET_REACHED_WEB_PRESENCE_LIMIT, + MARKET_NOT_COMPATIBLE_WITH_CONDITION_TYPES, + + MISSING_COUNTRY_CODE, + + MISSING_PROVINCE_CODE, + CANNOT_HAVE_MULTIPLE_SUBFOLDERS_PER_MARKET, CANNOT_HAVE_BOTH_SUBFOLDER_AND_DOMAIN_WEB_PRESENCES, @@ -86,6 +96,8 @@ public enum MarketUserErrorCode { INVALID_STATUS_AND_ENABLED_COMBINATION, + INVALID_PROVINCE_FORMAT, + CONDITIONS_NOT_FOUND, SPECIFIED_CONDITIONS_CANNOT_BE_EMPTY, @@ -124,10 +136,14 @@ public enum MarketUserErrorCode { WEB_PRESENCE_REACHED_MARKETS_LIMIT, + WEB_PRESENCE_RETAIL_LOCATION, + CATALOG_CONDITION_TYPES_MUST_BE_THE_SAME, MARKET_CANT_HAVE_DIRECT_CONNECTION_CATALOG, + NOT_ENTITLED_TO_ACTIVATE_MARKET, + B2B_MARKET_MUST_BE_MERCHANT_MANAGED, POS_LOCATION_MARKET_MUST_BE_MERCHANT_MANAGED, @@ -144,5 +160,7 @@ public enum MarketUserErrorCode { LOCATION_REGION_COUNTRY_MISMATCH, - UNPERMITTED_ENTITLEMENTS_MARKET_CATALOGS + UNPERMITTED_ENTITLEMENTS_MARKET_CATALOGS, + + INVALID_RESPONDER_FOR_PROVINCE_DRIVEN_MARKET } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MarketingActivityCreateInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MarketingActivityCreateInput.java index 5a94c74c..646cafb6 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MarketingActivityCreateInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MarketingActivityCreateInput.java @@ -6,80 +6,23 @@ import java.util.Objects; /** - * The input fields required to create a marketing activity. + * The input fields required to create a marketing activity. Marketing activity app + * extensions are deprecated and will be removed in the near future. */ public class MarketingActivityCreateInput { - /** - * The title of the marketing activity. - */ - private String marketingActivityTitle; - - /** - * The form data in JSON serialized as a string. - */ - private String formData; - /** * The ID of the marketing activity extension. */ private String marketingActivityExtensionId; - /** - * Encoded context containing marketing campaign id. - */ - private String context; - - /** - * Specifies the - * [Urchin Traffic Module (UTM) parameters](https://en.wikipedia.org/wiki/UTM_parameters) - * that are associated with a related marketing campaign. UTMInput is required for all Marketing - * tactics except Storefront App. - */ - private UTMInput utm; - - /** - * Value for a query parameter that gets inserted into storefront URLs for - * matching storefront traffic to this activity. This feature is currently - * available on a limited basis to some partners only. UTMs should continue to be - * used for most partners. Both the URL parameter value and UTM parameters can be set. - */ - private String urlParameterValue; - /** * The current state of the marketing activity. */ private MarketingActivityStatus status; - /** - * The budget for this marketing activity. - */ - private MarketingActivityBudgetInput budget; - public MarketingActivityCreateInput() { } - /** - * The title of the marketing activity. - */ - public String getMarketingActivityTitle() { - return marketingActivityTitle; - } - - public void setMarketingActivityTitle(String marketingActivityTitle) { - this.marketingActivityTitle = marketingActivityTitle; - } - - /** - * The form data in JSON serialized as a string. - */ - public String getFormData() { - return formData; - } - - public void setFormData(String formData) { - this.formData = formData; - } - /** * The ID of the marketing activity extension. */ @@ -91,45 +34,6 @@ public void setMarketingActivityExtensionId(String marketingActivityExtensionId) this.marketingActivityExtensionId = marketingActivityExtensionId; } - /** - * Encoded context containing marketing campaign id. - */ - public String getContext() { - return context; - } - - public void setContext(String context) { - this.context = context; - } - - /** - * Specifies the - * [Urchin Traffic Module (UTM) parameters](https://en.wikipedia.org/wiki/UTM_parameters) - * that are associated with a related marketing campaign. UTMInput is required for all Marketing - * tactics except Storefront App. - */ - public UTMInput getUtm() { - return utm; - } - - public void setUtm(UTMInput utm) { - this.utm = utm; - } - - /** - * Value for a query parameter that gets inserted into storefront URLs for - * matching storefront traffic to this activity. This feature is currently - * available on a limited basis to some partners only. UTMs should continue to be - * used for most partners. Both the URL parameter value and UTM parameters can be set. - */ - public String getUrlParameterValue() { - return urlParameterValue; - } - - public void setUrlParameterValue(String urlParameterValue) { - this.urlParameterValue = urlParameterValue; - } - /** * The current state of the marketing activity. */ @@ -141,20 +45,9 @@ public void setStatus(MarketingActivityStatus status) { this.status = status; } - /** - * The budget for this marketing activity. - */ - public MarketingActivityBudgetInput getBudget() { - return budget; - } - - public void setBudget(MarketingActivityBudgetInput budget) { - this.budget = budget; - } - @Override public String toString() { - return "MarketingActivityCreateInput{marketingActivityTitle='" + marketingActivityTitle + "', formData='" + formData + "', marketingActivityExtensionId='" + marketingActivityExtensionId + "', context='" + context + "', utm='" + utm + "', urlParameterValue='" + urlParameterValue + "', status='" + status + "', budget='" + budget + "'}"; + return "MarketingActivityCreateInput{marketingActivityExtensionId='" + marketingActivityExtensionId + "', status='" + status + "'}"; } @Override @@ -162,19 +55,13 @@ public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; MarketingActivityCreateInput that = (MarketingActivityCreateInput) o; - return Objects.equals(marketingActivityTitle, that.marketingActivityTitle) && - Objects.equals(formData, that.formData) && - Objects.equals(marketingActivityExtensionId, that.marketingActivityExtensionId) && - Objects.equals(context, that.context) && - Objects.equals(utm, that.utm) && - Objects.equals(urlParameterValue, that.urlParameterValue) && - Objects.equals(status, that.status) && - Objects.equals(budget, that.budget); + return Objects.equals(marketingActivityExtensionId, that.marketingActivityExtensionId) && + Objects.equals(status, that.status); } @Override public int hashCode() { - return Objects.hash(marketingActivityTitle, formData, marketingActivityExtensionId, context, utm, urlParameterValue, status, budget); + return Objects.hash(marketingActivityExtensionId, status); } public static Builder newBuilder() { @@ -182,81 +69,23 @@ public static Builder newBuilder() { } public static class Builder { - /** - * The title of the marketing activity. - */ - private String marketingActivityTitle; - - /** - * The form data in JSON serialized as a string. - */ - private String formData; - /** * The ID of the marketing activity extension. */ private String marketingActivityExtensionId; - /** - * Encoded context containing marketing campaign id. - */ - private String context; - - /** - * Specifies the - * [Urchin Traffic Module (UTM) parameters](https://en.wikipedia.org/wiki/UTM_parameters) - * that are associated with a related marketing campaign. UTMInput is required for all Marketing - * tactics except Storefront App. - */ - private UTMInput utm; - - /** - * Value for a query parameter that gets inserted into storefront URLs for - * matching storefront traffic to this activity. This feature is currently - * available on a limited basis to some partners only. UTMs should continue to be - * used for most partners. Both the URL parameter value and UTM parameters can be set. - */ - private String urlParameterValue; - /** * The current state of the marketing activity. */ private MarketingActivityStatus status; - /** - * The budget for this marketing activity. - */ - private MarketingActivityBudgetInput budget; - public MarketingActivityCreateInput build() { MarketingActivityCreateInput result = new MarketingActivityCreateInput(); - result.marketingActivityTitle = this.marketingActivityTitle; - result.formData = this.formData; result.marketingActivityExtensionId = this.marketingActivityExtensionId; - result.context = this.context; - result.utm = this.utm; - result.urlParameterValue = this.urlParameterValue; result.status = this.status; - result.budget = this.budget; return result; } - /** - * The title of the marketing activity. - */ - public Builder marketingActivityTitle(String marketingActivityTitle) { - this.marketingActivityTitle = marketingActivityTitle; - return this; - } - - /** - * The form data in JSON serialized as a string. - */ - public Builder formData(String formData) { - this.formData = formData; - return this; - } - /** * The ID of the marketing activity extension. */ @@ -265,36 +94,6 @@ public Builder marketingActivityExtensionId(String marketingActivityExtensionId) return this; } - /** - * Encoded context containing marketing campaign id. - */ - public Builder context(String context) { - this.context = context; - return this; - } - - /** - * Specifies the - * [Urchin Traffic Module (UTM) parameters](https://en.wikipedia.org/wiki/UTM_parameters) - * that are associated with a related marketing campaign. UTMInput is required for all Marketing - * tactics except Storefront App. - */ - public Builder utm(UTMInput utm) { - this.utm = utm; - return this; - } - - /** - * Value for a query parameter that gets inserted into storefront URLs for - * matching storefront traffic to this activity. This feature is currently - * available on a limited basis to some partners only. UTMs should continue to be - * used for most partners. Both the URL parameter value and UTM parameters can be set. - */ - public Builder urlParameterValue(String urlParameterValue) { - this.urlParameterValue = urlParameterValue; - return this; - } - /** * The current state of the marketing activity. */ @@ -302,13 +101,5 @@ public Builder status(MarketingActivityStatus status) { this.status = status; return this; } - - /** - * The budget for this marketing activity. - */ - public Builder budget(MarketingActivityBudgetInput budget) { - this.budget = budget; - return this; - } } } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MarketingActivityUpdateInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MarketingActivityUpdateInput.java index f688a239..70b81263 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MarketingActivityUpdateInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MarketingActivityUpdateInput.java @@ -3,11 +3,11 @@ import java.lang.Object; import java.lang.Override; import java.lang.String; -import java.util.List; import java.util.Objects; /** - * The input fields required to update a marketing activity. + * The input fields required to update a marketing activity. Marketing activity app + * extensions are deprecated and will be removed in the near future. */ public class MarketingActivityUpdateInput { /** @@ -15,69 +15,6 @@ public class MarketingActivityUpdateInput { */ private String id; - /** - * The ID of the recommendation that the marketing activity was created from, if one exists. - */ - private String marketingRecommendationId; - - /** - * The title of the marketing activity. - */ - private String title; - - /** - * The budget for the marketing activity. - */ - private MarketingActivityBudgetInput budget; - - /** - * The current state of the marketing activity. Learn more about - * [marketing activities statuses](/api/marketing-activities/statuses). - */ - private MarketingActivityStatus status; - - /** - * The target state that the marketing activity is transitioning to. Learn more - * about [marketing activities statuses](/api/marketing-activities/statuses). - */ - private MarketingActivityStatus targetStatus; - - /** - * The form data of the marketing activity. This is only used if the marketing activity is - * integrated with the external editor. - */ - private String formData; - - /** - * Specifies the - * [Urchin Traffic Module (UTM) parameters](https://en.wikipedia.org/wiki/UTM_parameters) - * that are associated with a related marketing campaign. UTMInput is required for all Marketing - * tactics except Storefront App. The utm field can only be set once and never modified. - */ - private UTMInput utm; - - /** - * Value for a query parameter that gets inserted into storefront URLs for - * matching storefront traffic to this activity. This feature is currently - * available on a limited basis to some partners only. UTMs should continue to be - * used for most partners. Both the URL parameter value and UTM parameters can be set. - */ - private String urlParameterValue; - - /** - * A list of the item IDs that were marketed in this marketing activity. Valid types for these items are: - * * `Product` - * * `Shop` - */ - private List marketedResources; - - /** - * The error messages that were generated when the app was trying to complete the activity. - * Learn more about the - * [JSON format expected for error messages](/api/marketing-activities/statuses#failed-status). - */ - private String errors; - public MarketingActivityUpdateInput() { } @@ -92,132 +29,9 @@ public void setId(String id) { this.id = id; } - /** - * The ID of the recommendation that the marketing activity was created from, if one exists. - */ - public String getMarketingRecommendationId() { - return marketingRecommendationId; - } - - public void setMarketingRecommendationId(String marketingRecommendationId) { - this.marketingRecommendationId = marketingRecommendationId; - } - - /** - * The title of the marketing activity. - */ - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - /** - * The budget for the marketing activity. - */ - public MarketingActivityBudgetInput getBudget() { - return budget; - } - - public void setBudget(MarketingActivityBudgetInput budget) { - this.budget = budget; - } - - /** - * The current state of the marketing activity. Learn more about - * [marketing activities statuses](/api/marketing-activities/statuses). - */ - public MarketingActivityStatus getStatus() { - return status; - } - - public void setStatus(MarketingActivityStatus status) { - this.status = status; - } - - /** - * The target state that the marketing activity is transitioning to. Learn more - * about [marketing activities statuses](/api/marketing-activities/statuses). - */ - public MarketingActivityStatus getTargetStatus() { - return targetStatus; - } - - public void setTargetStatus(MarketingActivityStatus targetStatus) { - this.targetStatus = targetStatus; - } - - /** - * The form data of the marketing activity. This is only used if the marketing activity is - * integrated with the external editor. - */ - public String getFormData() { - return formData; - } - - public void setFormData(String formData) { - this.formData = formData; - } - - /** - * Specifies the - * [Urchin Traffic Module (UTM) parameters](https://en.wikipedia.org/wiki/UTM_parameters) - * that are associated with a related marketing campaign. UTMInput is required for all Marketing - * tactics except Storefront App. The utm field can only be set once and never modified. - */ - public UTMInput getUtm() { - return utm; - } - - public void setUtm(UTMInput utm) { - this.utm = utm; - } - - /** - * Value for a query parameter that gets inserted into storefront URLs for - * matching storefront traffic to this activity. This feature is currently - * available on a limited basis to some partners only. UTMs should continue to be - * used for most partners. Both the URL parameter value and UTM parameters can be set. - */ - public String getUrlParameterValue() { - return urlParameterValue; - } - - public void setUrlParameterValue(String urlParameterValue) { - this.urlParameterValue = urlParameterValue; - } - - /** - * A list of the item IDs that were marketed in this marketing activity. Valid types for these items are: - * * `Product` - * * `Shop` - */ - public List getMarketedResources() { - return marketedResources; - } - - public void setMarketedResources(List marketedResources) { - this.marketedResources = marketedResources; - } - - /** - * The error messages that were generated when the app was trying to complete the activity. - * Learn more about the - * [JSON format expected for error messages](/api/marketing-activities/statuses#failed-status). - */ - public String getErrors() { - return errors; - } - - public void setErrors(String errors) { - this.errors = errors; - } - @Override public String toString() { - return "MarketingActivityUpdateInput{id='" + id + "', marketingRecommendationId='" + marketingRecommendationId + "', title='" + title + "', budget='" + budget + "', status='" + status + "', targetStatus='" + targetStatus + "', formData='" + formData + "', utm='" + utm + "', urlParameterValue='" + urlParameterValue + "', marketedResources='" + marketedResources + "', errors='" + errors + "'}"; + return "MarketingActivityUpdateInput{id='" + id + "'}"; } @Override @@ -225,22 +39,12 @@ public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; MarketingActivityUpdateInput that = (MarketingActivityUpdateInput) o; - return Objects.equals(id, that.id) && - Objects.equals(marketingRecommendationId, that.marketingRecommendationId) && - Objects.equals(title, that.title) && - Objects.equals(budget, that.budget) && - Objects.equals(status, that.status) && - Objects.equals(targetStatus, that.targetStatus) && - Objects.equals(formData, that.formData) && - Objects.equals(utm, that.utm) && - Objects.equals(urlParameterValue, that.urlParameterValue) && - Objects.equals(marketedResources, that.marketedResources) && - Objects.equals(errors, that.errors); + return Objects.equals(id, that.id); } @Override public int hashCode() { - return Objects.hash(id, marketingRecommendationId, title, budget, status, targetStatus, formData, utm, urlParameterValue, marketedResources, errors); + return Objects.hash(id); } public static Builder newBuilder() { @@ -253,82 +57,9 @@ public static class Builder { */ private String id; - /** - * The ID of the recommendation that the marketing activity was created from, if one exists. - */ - private String marketingRecommendationId; - - /** - * The title of the marketing activity. - */ - private String title; - - /** - * The budget for the marketing activity. - */ - private MarketingActivityBudgetInput budget; - - /** - * The current state of the marketing activity. Learn more about - * [marketing activities statuses](/api/marketing-activities/statuses). - */ - private MarketingActivityStatus status; - - /** - * The target state that the marketing activity is transitioning to. Learn more - * about [marketing activities statuses](/api/marketing-activities/statuses). - */ - private MarketingActivityStatus targetStatus; - - /** - * The form data of the marketing activity. This is only used if the marketing activity is - * integrated with the external editor. - */ - private String formData; - - /** - * Specifies the - * [Urchin Traffic Module (UTM) parameters](https://en.wikipedia.org/wiki/UTM_parameters) - * that are associated with a related marketing campaign. UTMInput is required for all Marketing - * tactics except Storefront App. The utm field can only be set once and never modified. - */ - private UTMInput utm; - - /** - * Value for a query parameter that gets inserted into storefront URLs for - * matching storefront traffic to this activity. This feature is currently - * available on a limited basis to some partners only. UTMs should continue to be - * used for most partners. Both the URL parameter value and UTM parameters can be set. - */ - private String urlParameterValue; - - /** - * A list of the item IDs that were marketed in this marketing activity. Valid types for these items are: - * * `Product` - * * `Shop` - */ - private List marketedResources; - - /** - * The error messages that were generated when the app was trying to complete the activity. - * Learn more about the - * [JSON format expected for error messages](/api/marketing-activities/statuses#failed-status). - */ - private String errors; - public MarketingActivityUpdateInput build() { MarketingActivityUpdateInput result = new MarketingActivityUpdateInput(); result.id = this.id; - result.marketingRecommendationId = this.marketingRecommendationId; - result.title = this.title; - result.budget = this.budget; - result.status = this.status; - result.targetStatus = this.targetStatus; - result.formData = this.formData; - result.utm = this.utm; - result.urlParameterValue = this.urlParameterValue; - result.marketedResources = this.marketedResources; - result.errors = this.errors; return result; } @@ -339,98 +70,5 @@ public Builder id(String id) { this.id = id; return this; } - - /** - * The ID of the recommendation that the marketing activity was created from, if one exists. - */ - public Builder marketingRecommendationId(String marketingRecommendationId) { - this.marketingRecommendationId = marketingRecommendationId; - return this; - } - - /** - * The title of the marketing activity. - */ - public Builder title(String title) { - this.title = title; - return this; - } - - /** - * The budget for the marketing activity. - */ - public Builder budget(MarketingActivityBudgetInput budget) { - this.budget = budget; - return this; - } - - /** - * The current state of the marketing activity. Learn more about - * [marketing activities statuses](/api/marketing-activities/statuses). - */ - public Builder status(MarketingActivityStatus status) { - this.status = status; - return this; - } - - /** - * The target state that the marketing activity is transitioning to. Learn more - * about [marketing activities statuses](/api/marketing-activities/statuses). - */ - public Builder targetStatus(MarketingActivityStatus targetStatus) { - this.targetStatus = targetStatus; - return this; - } - - /** - * The form data of the marketing activity. This is only used if the marketing activity is - * integrated with the external editor. - */ - public Builder formData(String formData) { - this.formData = formData; - return this; - } - - /** - * Specifies the - * [Urchin Traffic Module (UTM) parameters](https://en.wikipedia.org/wiki/UTM_parameters) - * that are associated with a related marketing campaign. UTMInput is required for all Marketing - * tactics except Storefront App. The utm field can only be set once and never modified. - */ - public Builder utm(UTMInput utm) { - this.utm = utm; - return this; - } - - /** - * Value for a query parameter that gets inserted into storefront URLs for - * matching storefront traffic to this activity. This feature is currently - * available on a limited basis to some partners only. UTMs should continue to be - * used for most partners. Both the URL parameter value and UTM parameters can be set. - */ - public Builder urlParameterValue(String urlParameterValue) { - this.urlParameterValue = urlParameterValue; - return this; - } - - /** - * A list of the item IDs that were marketed in this marketing activity. Valid types for these items are: - * * `Product` - * * `Shop` - */ - public Builder marketedResources(List marketedResources) { - this.marketedResources = marketedResources; - return this; - } - - /** - * The error messages that were generated when the app was trying to complete the activity. - * Learn more about the - * [JSON format expected for error messages](/api/marketing-activities/statuses#failed-status). - */ - public Builder errors(String errors) { - this.errors = errors; - return this; - } } } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MarketingEngagement.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MarketingEngagement.java index 02f91421..dee6bd3c 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MarketingEngagement.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MarketingEngagement.java @@ -17,6 +17,14 @@ public class MarketingEngagement { */ private MoneyV2 adSpend; + /** + * The number of all conversions from the marketing content. This field supports + * ad platforms that track conversions beyond traditional sales metrics. All + * conversions include both primary and secondary conversion goals as defined by + * the ad platform, such as purchases, add-to-carts, page views, and sign-ups. + */ + private String allConversions; + /** * The unique string identifier of the channel to which the engagement metrics * are being provided. This should be set when and only when providing @@ -98,6 +106,14 @@ public class MarketingEngagement { */ private String orders; + /** + * The number of primary conversions from the marketing content. This field + * supports ad platforms that track conversions beyond traditional sales metrics. + * Primary conversions represent the main conversion goal defined by the ad + * platform, such as purchases, sign-ups, or add-to-carts. + */ + private String primaryConversions; + /** * The number of returning customers that have placed an order. Doesn't include * adjustments such as edits, exchanges, or returns. @@ -177,6 +193,20 @@ public void setAdSpend(MoneyV2 adSpend) { this.adSpend = adSpend; } + /** + * The number of all conversions from the marketing content. This field supports + * ad platforms that track conversions beyond traditional sales metrics. All + * conversions include both primary and secondary conversion goals as defined by + * the ad platform, such as purchases, add-to-carts, page views, and sign-ups. + */ + public String getAllConversions() { + return allConversions; + } + + public void setAllConversions(String allConversions) { + this.allConversions = allConversions; + } + /** * The unique string identifier of the channel to which the engagement metrics * are being provided. This should be set when and only when providing @@ -330,6 +360,20 @@ public void setOrders(String orders) { this.orders = orders; } + /** + * The number of primary conversions from the marketing content. This field + * supports ad platforms that track conversions beyond traditional sales metrics. + * Primary conversions represent the main conversion goal defined by the ad + * platform, such as purchases, sign-ups, or add-to-carts. + */ + public String getPrimaryConversions() { + return primaryConversions; + } + + public void setPrimaryConversions(String primaryConversions) { + this.primaryConversions = primaryConversions; + } + /** * The number of returning customers that have placed an order. Doesn't include * adjustments such as edits, exchanges, or returns. @@ -456,7 +500,7 @@ public void setViewsCount(Integer viewsCount) { @Override public String toString() { - return "MarketingEngagement{adSpend='" + adSpend + "', channelHandle='" + channelHandle + "', clicksCount='" + clicksCount + "', commentsCount='" + commentsCount + "', complaintsCount='" + complaintsCount + "', failsCount='" + failsCount + "', favoritesCount='" + favoritesCount + "', firstTimeCustomers='" + firstTimeCustomers + "', impressionsCount='" + impressionsCount + "', isCumulative='" + isCumulative + "', marketingActivity='" + marketingActivity + "', occurredOn='" + occurredOn + "', orders='" + orders + "', returningCustomers='" + returningCustomers + "', sales='" + sales + "', sendsCount='" + sendsCount + "', sessionsCount='" + sessionsCount + "', sharesCount='" + sharesCount + "', uniqueClicksCount='" + uniqueClicksCount + "', uniqueViewsCount='" + uniqueViewsCount + "', unsubscribesCount='" + unsubscribesCount + "', utcOffset='" + utcOffset + "', viewsCount='" + viewsCount + "'}"; + return "MarketingEngagement{adSpend='" + adSpend + "', allConversions='" + allConversions + "', channelHandle='" + channelHandle + "', clicksCount='" + clicksCount + "', commentsCount='" + commentsCount + "', complaintsCount='" + complaintsCount + "', failsCount='" + failsCount + "', favoritesCount='" + favoritesCount + "', firstTimeCustomers='" + firstTimeCustomers + "', impressionsCount='" + impressionsCount + "', isCumulative='" + isCumulative + "', marketingActivity='" + marketingActivity + "', occurredOn='" + occurredOn + "', orders='" + orders + "', primaryConversions='" + primaryConversions + "', returningCustomers='" + returningCustomers + "', sales='" + sales + "', sendsCount='" + sendsCount + "', sessionsCount='" + sessionsCount + "', sharesCount='" + sharesCount + "', uniqueClicksCount='" + uniqueClicksCount + "', uniqueViewsCount='" + uniqueViewsCount + "', unsubscribesCount='" + unsubscribesCount + "', utcOffset='" + utcOffset + "', viewsCount='" + viewsCount + "'}"; } @Override @@ -465,6 +509,7 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) return false; MarketingEngagement that = (MarketingEngagement) o; return Objects.equals(adSpend, that.adSpend) && + Objects.equals(allConversions, that.allConversions) && Objects.equals(channelHandle, that.channelHandle) && Objects.equals(clicksCount, that.clicksCount) && Objects.equals(commentsCount, that.commentsCount) && @@ -477,6 +522,7 @@ public boolean equals(Object o) { Objects.equals(marketingActivity, that.marketingActivity) && Objects.equals(occurredOn, that.occurredOn) && Objects.equals(orders, that.orders) && + Objects.equals(primaryConversions, that.primaryConversions) && Objects.equals(returningCustomers, that.returningCustomers) && Objects.equals(sales, that.sales) && Objects.equals(sendsCount, that.sendsCount) && @@ -491,7 +537,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(adSpend, channelHandle, clicksCount, commentsCount, complaintsCount, failsCount, favoritesCount, firstTimeCustomers, impressionsCount, isCumulative, marketingActivity, occurredOn, orders, returningCustomers, sales, sendsCount, sessionsCount, sharesCount, uniqueClicksCount, uniqueViewsCount, unsubscribesCount, utcOffset, viewsCount); + return Objects.hash(adSpend, allConversions, channelHandle, clicksCount, commentsCount, complaintsCount, failsCount, favoritesCount, firstTimeCustomers, impressionsCount, isCumulative, marketingActivity, occurredOn, orders, primaryConversions, returningCustomers, sales, sendsCount, sessionsCount, sharesCount, uniqueClicksCount, uniqueViewsCount, unsubscribesCount, utcOffset, viewsCount); } public static Builder newBuilder() { @@ -505,6 +551,14 @@ public static class Builder { */ private MoneyV2 adSpend; + /** + * The number of all conversions from the marketing content. This field supports + * ad platforms that track conversions beyond traditional sales metrics. All + * conversions include both primary and secondary conversion goals as defined by + * the ad platform, such as purchases, add-to-carts, page views, and sign-ups. + */ + private String allConversions; + /** * The unique string identifier of the channel to which the engagement metrics * are being provided. This should be set when and only when providing @@ -586,6 +640,14 @@ public static class Builder { */ private String orders; + /** + * The number of primary conversions from the marketing content. This field + * supports ad platforms that track conversions beyond traditional sales metrics. + * Primary conversions represent the main conversion goal defined by the ad + * platform, such as purchases, sign-ups, or add-to-carts. + */ + private String primaryConversions; + /** * The number of returning customers that have placed an order. Doesn't include * adjustments such as edits, exchanges, or returns. @@ -653,6 +715,7 @@ public static class Builder { public MarketingEngagement build() { MarketingEngagement result = new MarketingEngagement(); result.adSpend = this.adSpend; + result.allConversions = this.allConversions; result.channelHandle = this.channelHandle; result.clicksCount = this.clicksCount; result.commentsCount = this.commentsCount; @@ -665,6 +728,7 @@ public MarketingEngagement build() { result.marketingActivity = this.marketingActivity; result.occurredOn = this.occurredOn; result.orders = this.orders; + result.primaryConversions = this.primaryConversions; result.returningCustomers = this.returningCustomers; result.sales = this.sales; result.sendsCount = this.sendsCount; @@ -687,6 +751,17 @@ public Builder adSpend(MoneyV2 adSpend) { return this; } + /** + * The number of all conversions from the marketing content. This field supports + * ad platforms that track conversions beyond traditional sales metrics. All + * conversions include both primary and secondary conversion goals as defined by + * the ad platform, such as purchases, add-to-carts, page views, and sign-ups. + */ + public Builder allConversions(String allConversions) { + this.allConversions = allConversions; + return this; + } + /** * The unique string identifier of the channel to which the engagement metrics * are being provided. This should be set when and only when providing @@ -804,6 +879,17 @@ public Builder orders(String orders) { return this; } + /** + * The number of primary conversions from the marketing content. This field + * supports ad platforms that track conversions beyond traditional sales metrics. + * Primary conversions represent the main conversion goal defined by the ad + * platform, such as purchases, sign-ups, or add-to-carts. + */ + public Builder primaryConversions(String primaryConversions) { + this.primaryConversions = primaryConversions; + return this; + } + /** * The number of returning customers that have placed an order. Doesn't include * adjustments such as edits, exchanges, or returns. diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MarketingEngagementInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MarketingEngagementInput.java index 064696ec..e87fe5f4 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MarketingEngagementInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MarketingEngagementInput.java @@ -148,6 +148,22 @@ public class MarketingEngagementInput { */ private String returningCustomers; + /** + * The number of primary conversions from the marketing content. This field + * supports ad platforms that track conversions beyond traditional sales metrics. + * Primary conversions represent the main conversion goal defined by the ad + * platform, such as purchases, sign-ups, or add-to-carts. + */ + private String primaryConversions; + + /** + * The number of all conversions from the marketing content. This field supports + * ad platforms that track conversions beyond traditional sales metrics. All + * conversions include both primary and secondary conversion goals as defined by + * the ad platform, such as purchases, add-to-carts, page views, and sign-ups. + */ + private String allConversions; + public MarketingEngagementInput() { } @@ -414,9 +430,37 @@ public void setReturningCustomers(String returningCustomers) { this.returningCustomers = returningCustomers; } + /** + * The number of primary conversions from the marketing content. This field + * supports ad platforms that track conversions beyond traditional sales metrics. + * Primary conversions represent the main conversion goal defined by the ad + * platform, such as purchases, sign-ups, or add-to-carts. + */ + public String getPrimaryConversions() { + return primaryConversions; + } + + public void setPrimaryConversions(String primaryConversions) { + this.primaryConversions = primaryConversions; + } + + /** + * The number of all conversions from the marketing content. This field supports + * ad platforms that track conversions beyond traditional sales metrics. All + * conversions include both primary and secondary conversion goals as defined by + * the ad platform, such as purchases, add-to-carts, page views, and sign-ups. + */ + public String getAllConversions() { + return allConversions; + } + + public void setAllConversions(String allConversions) { + this.allConversions = allConversions; + } + @Override public String toString() { - return "MarketingEngagementInput{occurredOn='" + occurredOn + "', impressionsCount='" + impressionsCount + "', viewsCount='" + viewsCount + "', clicksCount='" + clicksCount + "', sharesCount='" + sharesCount + "', favoritesCount='" + favoritesCount + "', commentsCount='" + commentsCount + "', unsubscribesCount='" + unsubscribesCount + "', complaintsCount='" + complaintsCount + "', failsCount='" + failsCount + "', sendsCount='" + sendsCount + "', uniqueViewsCount='" + uniqueViewsCount + "', uniqueClicksCount='" + uniqueClicksCount + "', adSpend='" + adSpend + "', isCumulative='" + isCumulative + "', utcOffset='" + utcOffset + "', sales='" + sales + "', sessionsCount='" + sessionsCount + "', orders='" + orders + "', firstTimeCustomers='" + firstTimeCustomers + "', returningCustomers='" + returningCustomers + "'}"; + return "MarketingEngagementInput{occurredOn='" + occurredOn + "', impressionsCount='" + impressionsCount + "', viewsCount='" + viewsCount + "', clicksCount='" + clicksCount + "', sharesCount='" + sharesCount + "', favoritesCount='" + favoritesCount + "', commentsCount='" + commentsCount + "', unsubscribesCount='" + unsubscribesCount + "', complaintsCount='" + complaintsCount + "', failsCount='" + failsCount + "', sendsCount='" + sendsCount + "', uniqueViewsCount='" + uniqueViewsCount + "', uniqueClicksCount='" + uniqueClicksCount + "', adSpend='" + adSpend + "', isCumulative='" + isCumulative + "', utcOffset='" + utcOffset + "', sales='" + sales + "', sessionsCount='" + sessionsCount + "', orders='" + orders + "', firstTimeCustomers='" + firstTimeCustomers + "', returningCustomers='" + returningCustomers + "', primaryConversions='" + primaryConversions + "', allConversions='" + allConversions + "'}"; } @Override @@ -444,12 +488,14 @@ public boolean equals(Object o) { Objects.equals(sessionsCount, that.sessionsCount) && Objects.equals(orders, that.orders) && Objects.equals(firstTimeCustomers, that.firstTimeCustomers) && - Objects.equals(returningCustomers, that.returningCustomers); + Objects.equals(returningCustomers, that.returningCustomers) && + Objects.equals(primaryConversions, that.primaryConversions) && + Objects.equals(allConversions, that.allConversions); } @Override public int hashCode() { - return Objects.hash(occurredOn, impressionsCount, viewsCount, clicksCount, sharesCount, favoritesCount, commentsCount, unsubscribesCount, complaintsCount, failsCount, sendsCount, uniqueViewsCount, uniqueClicksCount, adSpend, isCumulative, utcOffset, sales, sessionsCount, orders, firstTimeCustomers, returningCustomers); + return Objects.hash(occurredOn, impressionsCount, viewsCount, clicksCount, sharesCount, favoritesCount, commentsCount, unsubscribesCount, complaintsCount, failsCount, sendsCount, uniqueViewsCount, uniqueClicksCount, adSpend, isCumulative, utcOffset, sales, sessionsCount, orders, firstTimeCustomers, returningCustomers, primaryConversions, allConversions); } public static Builder newBuilder() { @@ -594,6 +640,22 @@ public static class Builder { */ private String returningCustomers; + /** + * The number of primary conversions from the marketing content. This field + * supports ad platforms that track conversions beyond traditional sales metrics. + * Primary conversions represent the main conversion goal defined by the ad + * platform, such as purchases, sign-ups, or add-to-carts. + */ + private String primaryConversions; + + /** + * The number of all conversions from the marketing content. This field supports + * ad platforms that track conversions beyond traditional sales metrics. All + * conversions include both primary and secondary conversion goals as defined by + * the ad platform, such as purchases, add-to-carts, page views, and sign-ups. + */ + private String allConversions; + public MarketingEngagementInput build() { MarketingEngagementInput result = new MarketingEngagementInput(); result.occurredOn = this.occurredOn; @@ -617,6 +679,8 @@ public MarketingEngagementInput build() { result.orders = this.orders; result.firstTimeCustomers = this.firstTimeCustomers; result.returningCustomers = this.returningCustomers; + result.primaryConversions = this.primaryConversions; + result.allConversions = this.allConversions; return result; } @@ -819,5 +883,27 @@ public Builder returningCustomers(String returningCustomers) { this.returningCustomers = returningCustomers; return this; } + + /** + * The number of primary conversions from the marketing content. This field + * supports ad platforms that track conversions beyond traditional sales metrics. + * Primary conversions represent the main conversion goal defined by the ad + * platform, such as purchases, sign-ups, or add-to-carts. + */ + public Builder primaryConversions(String primaryConversions) { + this.primaryConversions = primaryConversions; + return this; + } + + /** + * The number of all conversions from the marketing content. This field supports + * ad platforms that track conversions beyond traditional sales metrics. All + * conversions include both primary and secondary conversion goals as defined by + * the ad platform, such as purchases, add-to-carts, page views, and sign-ups. + */ + public Builder allConversions(String allConversions) { + this.allConversions = allConversions; + return this; + } } } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MarketsResolvedValues.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MarketsResolvedValues.java new file mode 100644 index 00000000..6052b530 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MarketsResolvedValues.java @@ -0,0 +1,168 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * The resolved values based on the markets configuration for a buyer signal. + * Resolved values include the resolved catalogs, web presences, currency, and + * price inclusivity. + */ +public class MarketsResolvedValues { + /** + * The resolved catalogs. + */ + private MarketCatalogConnection catalogs; + + /** + * The resolved currency code. + */ + private CurrencyCode currencyCode; + + /** + * The resolved price inclusivity attributes. + */ + private ResolvedPriceInclusivity priceInclusivity; + + /** + * The resolved web presences ordered by priority. + */ + private MarketWebPresenceConnection webPresences; + + public MarketsResolvedValues() { + } + + /** + * The resolved catalogs. + */ + public MarketCatalogConnection getCatalogs() { + return catalogs; + } + + public void setCatalogs(MarketCatalogConnection catalogs) { + this.catalogs = catalogs; + } + + /** + * The resolved currency code. + */ + public CurrencyCode getCurrencyCode() { + return currencyCode; + } + + public void setCurrencyCode(CurrencyCode currencyCode) { + this.currencyCode = currencyCode; + } + + /** + * The resolved price inclusivity attributes. + */ + public ResolvedPriceInclusivity getPriceInclusivity() { + return priceInclusivity; + } + + public void setPriceInclusivity(ResolvedPriceInclusivity priceInclusivity) { + this.priceInclusivity = priceInclusivity; + } + + /** + * The resolved web presences ordered by priority. + */ + public MarketWebPresenceConnection getWebPresences() { + return webPresences; + } + + public void setWebPresences(MarketWebPresenceConnection webPresences) { + this.webPresences = webPresences; + } + + @Override + public String toString() { + return "MarketsResolvedValues{catalogs='" + catalogs + "', currencyCode='" + currencyCode + "', priceInclusivity='" + priceInclusivity + "', webPresences='" + webPresences + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + MarketsResolvedValues that = (MarketsResolvedValues) o; + return Objects.equals(catalogs, that.catalogs) && + Objects.equals(currencyCode, that.currencyCode) && + Objects.equals(priceInclusivity, that.priceInclusivity) && + Objects.equals(webPresences, that.webPresences); + } + + @Override + public int hashCode() { + return Objects.hash(catalogs, currencyCode, priceInclusivity, webPresences); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The resolved catalogs. + */ + private MarketCatalogConnection catalogs; + + /** + * The resolved currency code. + */ + private CurrencyCode currencyCode; + + /** + * The resolved price inclusivity attributes. + */ + private ResolvedPriceInclusivity priceInclusivity; + + /** + * The resolved web presences ordered by priority. + */ + private MarketWebPresenceConnection webPresences; + + public MarketsResolvedValues build() { + MarketsResolvedValues result = new MarketsResolvedValues(); + result.catalogs = this.catalogs; + result.currencyCode = this.currencyCode; + result.priceInclusivity = this.priceInclusivity; + result.webPresences = this.webPresences; + return result; + } + + /** + * The resolved catalogs. + */ + public Builder catalogs(MarketCatalogConnection catalogs) { + this.catalogs = catalogs; + return this; + } + + /** + * The resolved currency code. + */ + public Builder currencyCode(CurrencyCode currencyCode) { + this.currencyCode = currencyCode; + return this; + } + + /** + * The resolved price inclusivity attributes. + */ + public Builder priceInclusivity(ResolvedPriceInclusivity priceInclusivity) { + this.priceInclusivity = priceInclusivity; + return this; + } + + /** + * The resolved web presences ordered by priority. + */ + public Builder webPresences(MarketWebPresenceConnection webPresences) { + this.webPresences = webPresences; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MarketsSortKeys.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MarketsSortKeys.java index 99d3ca28..0db0d259 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MarketsSortKeys.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MarketsSortKeys.java @@ -14,5 +14,7 @@ public enum MarketsSortKeys { NAME, + STATUS, + UPDATED_AT } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MediaImage.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MediaImage.java index 0203329d..da20d653 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MediaImage.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MediaImage.java @@ -9,12 +9,35 @@ import java.util.Objects; /** - * An image hosted on Shopify. + * The `MediaImage` object represents an image hosted on Shopify's + * [content delivery network (CDN)](https://shopify.dev/docs/storefronts/themes/best-practices/performance/platform#shopify-cdn). + * Shopify CDN is a content system that serves as the primary way to store, + * manage, and deliver visual content for products, variants, and other resources across the Shopify platform. + * + * The `MediaImage` object provides information to: + * + * - Store and display product and variant images across online stores, admin interfaces, and mobile apps. + * - Retrieve visual branding elements, including logos, banners, favicons, and background images in checkout flows. + * - Retrieve signed URLs for secure, time-limited access to original image files. + * + * Each `MediaImage` object provides both the processed image data (with automatic optimization and CDN delivery) + * and access to the original source file. The image processing is handled asynchronously, so images + * might not be immediately available after upload. The + * [`status`](https://shopify.dev/docs/api/admin-graphql/latest/objects/mediaimage#field-MediaImage.fields.status) + * field indicates when processing is complete and the image is ready for use. + * + * The `MediaImage` object implements the [`Media`](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/Media) + * interface alongside other media types, like videos and 3D models. + * + * Learn about + * managing media for [products](https://shopify.dev/docs/apps/build/online-store/product-media), + * [product variants](https://shopify.dev/docs/apps/build/online-store/product-variant-media), and + * [asynchronous media management](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/product-model-components#asynchronous-media-management). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE ) -public class MediaImage implements MetafieldReference, com.shopify.admin.types.File, com.shopify.admin.types.HasMetafields, com.shopify.admin.types.Media, com.shopify.admin.types.Node { +public class MediaImage implements MetafieldReference, com.shopify.admin.types.File, com.shopify.admin.types.HasMetafields, com.shopify.admin.types.HasPublishedTranslations, com.shopify.admin.types.Media, com.shopify.admin.types.Node { /** * A word or phrase to share the nature or contents of a media. */ @@ -93,6 +116,11 @@ public class MediaImage implements MetafieldReference, com.shopify.admin.types.F */ private MediaStatus status; + /** + * The published translations associated with the resource. + */ + private List translations; + /** * The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) when the file was last updated. */ @@ -269,6 +297,17 @@ public void setStatus(MediaStatus status) { this.status = status; } + /** + * The published translations associated with the resource. + */ + public List getTranslations() { + return translations; + } + + public void setTranslations(List translations) { + this.translations = translations; + } + /** * The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) when the file was last updated. */ @@ -282,7 +321,7 @@ public void setUpdatedAt(OffsetDateTime updatedAt) { @Override public String toString() { - return "MediaImage{alt='" + alt + "', createdAt='" + createdAt + "', fileErrors='" + fileErrors + "', fileStatus='" + fileStatus + "', id='" + id + "', image='" + image + "', mediaContentType='" + mediaContentType + "', mediaErrors='" + mediaErrors + "', mediaWarnings='" + mediaWarnings + "', metafield='" + metafield + "', metafields='" + metafields + "', mimeType='" + mimeType + "', originalSource='" + originalSource + "', preview='" + preview + "', status='" + status + "', updatedAt='" + updatedAt + "'}"; + return "MediaImage{alt='" + alt + "', createdAt='" + createdAt + "', fileErrors='" + fileErrors + "', fileStatus='" + fileStatus + "', id='" + id + "', image='" + image + "', mediaContentType='" + mediaContentType + "', mediaErrors='" + mediaErrors + "', mediaWarnings='" + mediaWarnings + "', metafield='" + metafield + "', metafields='" + metafields + "', mimeType='" + mimeType + "', originalSource='" + originalSource + "', preview='" + preview + "', status='" + status + "', translations='" + translations + "', updatedAt='" + updatedAt + "'}"; } @Override @@ -305,12 +344,13 @@ public boolean equals(Object o) { Objects.equals(originalSource, that.originalSource) && Objects.equals(preview, that.preview) && Objects.equals(status, that.status) && + Objects.equals(translations, that.translations) && Objects.equals(updatedAt, that.updatedAt); } @Override public int hashCode() { - return Objects.hash(alt, createdAt, fileErrors, fileStatus, id, image, mediaContentType, mediaErrors, mediaWarnings, metafield, metafields, mimeType, originalSource, preview, status, updatedAt); + return Objects.hash(alt, createdAt, fileErrors, fileStatus, id, image, mediaContentType, mediaErrors, mediaWarnings, metafield, metafields, mimeType, originalSource, preview, status, translations, updatedAt); } public static Builder newBuilder() { @@ -396,6 +436,11 @@ public static class Builder { */ private MediaStatus status; + /** + * The published translations associated with the resource. + */ + private List translations; + /** * The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) when the file was last updated. */ @@ -418,6 +463,7 @@ public MediaImage build() { result.originalSource = this.originalSource; result.preview = this.preview; result.status = this.status; + result.translations = this.translations; result.updatedAt = this.updatedAt; return result; } @@ -545,6 +591,14 @@ public Builder status(MediaStatus status) { return this; } + /** + * The published translations associated with the resource. + */ + public Builder translations(List translations) { + this.translations = translations; + return this; + } + /** * The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) when the file was last updated. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Menu.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Menu.java index bb7890a4..34e76dd4 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Menu.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Menu.java @@ -8,7 +8,29 @@ import java.util.Objects; /** - * A menu for display on the storefront. + * Navigation menus that organize links into logical structures to guide customers + * through a store. Menus serve as the backbone of store navigation, making it easy + * for customers to find products, pages, and other content through organized + * hierarchical links. + * + * For example, a merchant might create a main navigation menu with top-level + * categories like "Products," "About Us," and "Contact," where each category can + * contain nested menu items linking to specific collections, pages, or external resources. + * + * Use the `Menu` object to: + * - Build and customize store navigation structures + * - Organize hierarchical menu systems with nested items + * - Work with default menus that can't be deleted + * - Access menu items for building navigation + * + * Menus can be designated as default navigation elements (like main menu or + * footer), which can't be deleted and have restricted handle updates. The handle + * provides a unique identifier that themes can reference, while the items + * collection enables nested navigation structures. + * + * Each menu contains menu items that can link to various resource types. This + * flexibility lets merchants create navigation experiences that guide customers + * through their store. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MenuItem.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MenuItem.java index 1f3c6701..a090a429 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MenuItem.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MenuItem.java @@ -7,7 +7,23 @@ import java.util.Objects; /** - * A menu item for display on the storefront. + * Individual navigation links that make up store menus, giving customers clickable + * paths to explore the store. Menu items are the building blocks that connect + * shoppers to products, collections, pages, or external resources. + * + * For example, within a "Products" menu, individual menu items might link to + * specific collections like "Summer Collection" or "Best Sellers," each with its + * own title, URL, and resource connection. + * + * Use the `MenuItem` object to: + * - Define individual navigation links and their destinations + * - Create nested menu hierarchies through item relationships + * - Use tags for collection filtering + * - Connect menu links to specific store resources + * + * Menu items support various link types, enabling connections to internal store + * content or external websites. The nested items capability allows for dropdown or + * multi-level navigation structures that help organize complex store catalogs. */ public class MenuItem { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Metafield.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Metafield.java index b29e5cda..1bab6f8f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Metafield.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Metafield.java @@ -11,7 +11,7 @@ * Metafields enable you to attach additional information to a Shopify resource, such * as a [Product](https://shopify.dev/api/admin-graphql/latest/objects/product) or * a [Collection](https://shopify.dev/api/admin-graphql/latest/objects/collection). - * For more information about where you can attach metafields refer to [HasMetafields](https://shopify.dev/api/admin/graphql/reference/common-objects/HasMetafields). + * For more information about where you can attach metafields refer to [HasMetafields](https://shopify.dev/api/admin-graphql/latest/interfaces/HasMetafields). * Some examples of the data that metafields enable you to store are * specifications, size charts, downloadable documents, release dates, images, or part numbers. * Metafields are identified by an owner resource, namespace, and key. and store a @@ -87,7 +87,7 @@ public class Metafield implements com.shopify.admin.types.HasCompareDigest, com. private MetafieldReferenceConnection references; /** - * The type of data that is stored in the metafield. + * The type of data that's stored in the metafield. * Refer to the list of [supported types](https://shopify.dev/apps/metafields/types). */ private String type; @@ -249,7 +249,7 @@ public void setReferences(MetafieldReferenceConnection references) { } /** - * The type of data that is stored in the metafield. + * The type of data that's stored in the metafield. * Refer to the list of [supported types](https://shopify.dev/apps/metafields/types). */ public String getType() { @@ -386,7 +386,7 @@ public static class Builder { private MetafieldReferenceConnection references; /** - * The type of data that is stored in the metafield. + * The type of data that's stored in the metafield. * Refer to the list of [supported types](https://shopify.dev/apps/metafields/types). */ private String type; @@ -527,7 +527,7 @@ public Builder references(MetafieldReferenceConnection references) { } /** - * The type of data that is stored in the metafield. + * The type of data that's stored in the metafield. * Refer to the list of [supported types](https://shopify.dev/apps/metafields/types). */ public Builder type(String type) { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetafieldAccess.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetafieldAccess.java index 62bb3933..0973180b 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetafieldAccess.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetafieldAccess.java @@ -3,7 +3,6 @@ import java.lang.Object; import java.lang.Override; import java.lang.String; -import java.util.List; import java.util.Objects; /** @@ -20,12 +19,6 @@ public class MetafieldAccess { */ private MetafieldCustomerAccountAccess customerAccount; - /** - * The explicit grants for this metafield definition, superseding the default admin access - * for the specified grantees. - */ - private List grants; - /** * The access permitted on the Storefront API. */ @@ -56,18 +49,6 @@ public void setCustomerAccount(MetafieldCustomerAccountAccess customerAccount) { this.customerAccount = customerAccount; } - /** - * The explicit grants for this metafield definition, superseding the default admin access - * for the specified grantees. - */ - public List getGrants() { - return grants; - } - - public void setGrants(List grants) { - this.grants = grants; - } - /** * The access permitted on the Storefront API. */ @@ -81,7 +62,7 @@ public void setStorefront(MetafieldStorefrontAccess storefront) { @Override public String toString() { - return "MetafieldAccess{admin='" + admin + "', customerAccount='" + customerAccount + "', grants='" + grants + "', storefront='" + storefront + "'}"; + return "MetafieldAccess{admin='" + admin + "', customerAccount='" + customerAccount + "', storefront='" + storefront + "'}"; } @Override @@ -91,13 +72,12 @@ public boolean equals(Object o) { MetafieldAccess that = (MetafieldAccess) o; return Objects.equals(admin, that.admin) && Objects.equals(customerAccount, that.customerAccount) && - Objects.equals(grants, that.grants) && Objects.equals(storefront, that.storefront); } @Override public int hashCode() { - return Objects.hash(admin, customerAccount, grants, storefront); + return Objects.hash(admin, customerAccount, storefront); } public static Builder newBuilder() { @@ -115,12 +95,6 @@ public static class Builder { */ private MetafieldCustomerAccountAccess customerAccount; - /** - * The explicit grants for this metafield definition, superseding the default admin access - * for the specified grantees. - */ - private List grants; - /** * The access permitted on the Storefront API. */ @@ -130,7 +104,6 @@ public MetafieldAccess build() { MetafieldAccess result = new MetafieldAccess(); result.admin = this.admin; result.customerAccount = this.customerAccount; - result.grants = this.grants; result.storefront = this.storefront; return result; } @@ -151,15 +124,6 @@ public Builder customerAccount(MetafieldCustomerAccountAccess customerAccount) { return this; } - /** - * The explicit grants for this metafield definition, superseding the default admin access - * for the specified grantees. - */ - public Builder grants(List grants) { - this.grants = grants; - return this; - } - /** * The access permitted on the Storefront API. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetafieldAccessGrant.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetafieldAccessGrant.java deleted file mode 100644 index 2634dbb3..00000000 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetafieldAccessGrant.java +++ /dev/null @@ -1,106 +0,0 @@ -package com.shopify.admin.types; - -import java.lang.Object; -import java.lang.Override; -import java.lang.String; -import java.util.Objects; - -/** - * An explicit access grant for the metafields under this definition. - * - * Explicit grants are [deprecated](https://shopify.dev/changelog/deprecating-explicit-access-grants-for-app-owned-metafields). - */ -public class MetafieldAccessGrant { - /** - * The level of access the grantee has. - */ - private MetafieldGrantAccessLevel access; - - /** - * The grantee being granted access. - */ - private String grantee; - - public MetafieldAccessGrant() { - } - - /** - * The level of access the grantee has. - */ - public MetafieldGrantAccessLevel getAccess() { - return access; - } - - public void setAccess(MetafieldGrantAccessLevel access) { - this.access = access; - } - - /** - * The grantee being granted access. - */ - public String getGrantee() { - return grantee; - } - - public void setGrantee(String grantee) { - this.grantee = grantee; - } - - @Override - public String toString() { - return "MetafieldAccessGrant{access='" + access + "', grantee='" + grantee + "'}"; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - MetafieldAccessGrant that = (MetafieldAccessGrant) o; - return Objects.equals(access, that.access) && - Objects.equals(grantee, that.grantee); - } - - @Override - public int hashCode() { - return Objects.hash(access, grantee); - } - - public static Builder newBuilder() { - return new Builder(); - } - - public static class Builder { - /** - * The level of access the grantee has. - */ - private MetafieldGrantAccessLevel access; - - /** - * The grantee being granted access. - */ - private String grantee; - - public MetafieldAccessGrant build() { - MetafieldAccessGrant result = new MetafieldAccessGrant(); - result.access = this.access; - result.grantee = this.grantee; - return result; - } - - /** - * The level of access the grantee has. - */ - public Builder access(MetafieldGrantAccessLevel access) { - this.access = access; - return this; - } - - /** - * The grantee being granted access. - */ - public Builder grantee(String grantee) { - this.grantee = grantee; - return this; - } - } -} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetafieldDefinition.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetafieldDefinition.java index f265d9d6..d84afeec 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetafieldDefinition.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetafieldDefinition.java @@ -9,8 +9,13 @@ import java.util.Objects; /** - * Metafield definitions enable you to define additional validation constraints for metafields, and enable the - * merchant to edit metafield values in context. + * Defines the structure, validation rules, and permissions for [`Metafield`](https://shopify.dev/docs/api/admin-graphql/current/objects/Metafield) + * objects attached to a specific owner type. Each definition establishes a schema + * that metafields must follow, including the data type and validation constraints. + * + * The definition controls access permissions across different APIs, determines + * whether the metafield can be used for filtering or as a collection condition, + * and can be constrained to specific resource subtypes. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetafieldDefinitionCreateUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetafieldDefinitionCreateUserErrorCode.java index 67e1a1dd..046e05f3 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetafieldDefinitionCreateUserErrorCode.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetafieldDefinitionCreateUserErrorCode.java @@ -22,6 +22,8 @@ public enum MetafieldDefinitionCreateUserErrorCode { RESOURCE_TYPE_LIMIT_EXCEEDED, + RESOURCE_TYPE_LIMIT_EXCEEDED_BY_APP, + LIMIT_EXCEEDED, INVALID_OPTION, @@ -42,9 +44,9 @@ public enum MetafieldDefinitionCreateUserErrorCode { OWNER_TYPE_LIMIT_EXCEEDED_FOR_AUTOMATED_COLLECTIONS, - INVALID_CONSTRAINTS, + OWNER_TYPE_LIMIT_EXCEEDED_FOR_USE_AS_ADMIN_FILTERS, - GRANT_LIMIT_EXCEEDED, + INVALID_CONSTRAINTS, INVALID_INPUT_COMBINATION, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetafieldDefinitionDeleteUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetafieldDefinitionDeleteUserErrorCode.java index e3b20c42..7e159b29 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetafieldDefinitionDeleteUserErrorCode.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetafieldDefinitionDeleteUserErrorCode.java @@ -20,5 +20,7 @@ public enum MetafieldDefinitionDeleteUserErrorCode { APP_CONFIG_MANAGED, + STANDARD_METAFIELD_DEFINITION_DEPENDENT_ON_APP, + DISALLOWED_OWNER_TYPE } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetafieldDefinitionUpdateUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetafieldDefinitionUpdateUserErrorCode.java index da2537ea..83d3990d 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetafieldDefinitionUpdateUserErrorCode.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetafieldDefinitionUpdateUserErrorCode.java @@ -10,6 +10,8 @@ public enum MetafieldDefinitionUpdateUserErrorCode { BLANK, + INVALID, + NOT_FOUND, INVALID_INPUT, @@ -32,12 +34,12 @@ public enum MetafieldDefinitionUpdateUserErrorCode { OWNER_TYPE_LIMIT_EXCEEDED_FOR_AUTOMATED_COLLECTIONS, + OWNER_TYPE_LIMIT_EXCEEDED_FOR_USE_AS_ADMIN_FILTERS, + METAOBJECT_DEFINITION_CHANGED, DISALLOWED_OWNER_TYPE, - GRANT_LIMIT_EXCEEDED, - INVALID_INPUT_COMBINATION, INVALID_CONSTRAINTS, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetafieldDefinitionValidationInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetafieldDefinitionValidationInput.java index a0a5efc6..4be6abe3 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetafieldDefinitionValidationInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetafieldDefinitionValidationInput.java @@ -12,7 +12,7 @@ * can set a validation with the name `min` and a value of `10`. * This validation will ensure that the value of the metafield is at least 10 characters. * - * Refer to the [list of supported validations](https://shopify.dev/api/admin/graphql/reference/common-objects/metafieldDefinitionTypes#examples-Fetch_all_metafield_definition_types). + * Refer to the [list of supported validations](https://shopify.dev/apps/build/custom-data/metafields/list-of-validation-options). */ public class MetafieldDefinitionValidationInput { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetafieldGrantAccessLevel.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetafieldGrantAccessLevel.java deleted file mode 100644 index 661daa21..00000000 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetafieldGrantAccessLevel.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.shopify.admin.types; - -/** - * Possible access levels for explicit metafield access grants. - */ -public enum MetafieldGrantAccessLevel { - READ, - - READ_WRITE -} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetafieldInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetafieldInput.java index 07d6435a..0932d191 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetafieldInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetafieldInput.java @@ -12,7 +12,7 @@ */ public class MetafieldInput { /** - * The unique ID of the metafield. Using `owner_id`, `namespace`, and `key` is preferred for creating and updating. + * The unique ID of the metafield. Using `namespace` and `key` is preferred for creating and updating. */ private String id; @@ -54,7 +54,7 @@ public MetafieldInput() { } /** - * The unique ID of the metafield. Using `owner_id`, `namespace`, and `key` is preferred for creating and updating. + * The unique ID of the metafield. Using `namespace` and `key` is preferred for creating and updating. */ public String getId() { return id; @@ -150,7 +150,7 @@ public static Builder newBuilder() { public static class Builder { /** - * The unique ID of the metafield. Using `owner_id`, `namespace`, and `key` is preferred for creating and updating. + * The unique ID of the metafield. Using `namespace` and `key` is preferred for creating and updating. */ private String id; @@ -199,7 +199,7 @@ public MetafieldInput build() { } /** - * The unique ID of the metafield. Using `owner_id`, `namespace`, and `key` is preferred for creating and updating. + * The unique ID of the metafield. Using `namespace` and `key` is preferred for creating and updating. */ public Builder id(String id) { this.id = id; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetafieldReference.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetafieldReference.java index 2876faf9..d83028d5 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetafieldReference.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetafieldReference.java @@ -9,6 +9,7 @@ property = "__typename" ) @JsonSubTypes({ + @JsonSubTypes.Type(value = Article.class, name = "Article"), @JsonSubTypes.Type(value = Collection.class, name = "Collection"), @JsonSubTypes.Type(value = Company.class, name = "Company"), @JsonSubTypes.Type(value = Customer.class, name = "Customer"), diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetafieldsSetUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetafieldsSetUserErrorCode.java index 4a7c02ae..50026a16 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetafieldsSetUserErrorCode.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetafieldsSetUserErrorCode.java @@ -30,5 +30,7 @@ public enum MetafieldsSetUserErrorCode { LESS_THAN_OR_EQUAL_TO, + INVALID, + INTERNAL_ERROR } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Metaobject.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Metaobject.java index c4376966..43d429bd 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Metaobject.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Metaobject.java @@ -9,7 +9,16 @@ import java.util.Objects; /** - * Provides an object instance represented by a MetaobjectDefinition. + * An instance of custom structured data defined by a [`MetaobjectDefinition`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetaobjectDefinition). [Metaobjects](https://shopify.dev/docs/apps/build/custom-data#what-are-metaobjects) + * store reusable data that extends beyond Shopify's standard resources, such as + * product highlights, size charts, or custom content sections. + * + * Each metaobject includes fields that match the field types and validation rules + * specified in its definition, which also determines the metaobject's + * capabilities, such as storefront visibility, publishing and translation support. [`Metafields`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Metafield) + * can reference metaobjects to connect custom data with + * [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) objects, [`Collection`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection) + * objects, and other Shopify resources. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE @@ -20,6 +29,11 @@ public class Metaobject implements MetafieldReference, MetafieldReferencer, com. */ private MetaobjectCapabilityData capabilities; + /** + * When the object was created. + */ + private OffsetDateTime createdAt; + /** * The app used to create the object. */ @@ -104,6 +118,17 @@ public void setCapabilities(MetaobjectCapabilityData capabilities) { this.capabilities = capabilities; } + /** + * When the object was created. + */ + public OffsetDateTime getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(OffsetDateTime createdAt) { + this.createdAt = createdAt; + } + /** * The app used to create the object. */ @@ -260,7 +285,7 @@ public void setUpdatedAt(OffsetDateTime updatedAt) { @Override public String toString() { - return "Metaobject{capabilities='" + capabilities + "', createdBy='" + createdBy + "', createdByApp='" + createdByApp + "', createdByStaff='" + createdByStaff + "', definition='" + definition + "', displayName='" + displayName + "', field='" + field + "', fields='" + fields + "', handle='" + handle + "', id='" + id + "', referencedBy='" + referencedBy + "', staffMember='" + staffMember + "', thumbnailField='" + thumbnailField + "', type='" + type + "', updatedAt='" + updatedAt + "'}"; + return "Metaobject{capabilities='" + capabilities + "', createdAt='" + createdAt + "', createdBy='" + createdBy + "', createdByApp='" + createdByApp + "', createdByStaff='" + createdByStaff + "', definition='" + definition + "', displayName='" + displayName + "', field='" + field + "', fields='" + fields + "', handle='" + handle + "', id='" + id + "', referencedBy='" + referencedBy + "', staffMember='" + staffMember + "', thumbnailField='" + thumbnailField + "', type='" + type + "', updatedAt='" + updatedAt + "'}"; } @Override @@ -269,6 +294,7 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) return false; Metaobject that = (Metaobject) o; return Objects.equals(capabilities, that.capabilities) && + Objects.equals(createdAt, that.createdAt) && Objects.equals(createdBy, that.createdBy) && Objects.equals(createdByApp, that.createdByApp) && Objects.equals(createdByStaff, that.createdByStaff) && @@ -287,7 +313,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(capabilities, createdBy, createdByApp, createdByStaff, definition, displayName, field, fields, handle, id, referencedBy, staffMember, thumbnailField, type, updatedAt); + return Objects.hash(capabilities, createdAt, createdBy, createdByApp, createdByStaff, definition, displayName, field, fields, handle, id, referencedBy, staffMember, thumbnailField, type, updatedAt); } public static Builder newBuilder() { @@ -300,6 +326,11 @@ public static class Builder { */ private MetaobjectCapabilityData capabilities; + /** + * When the object was created. + */ + private OffsetDateTime createdAt; + /** * The app used to create the object. */ @@ -373,6 +404,7 @@ public static class Builder { public Metaobject build() { Metaobject result = new Metaobject(); result.capabilities = this.capabilities; + result.createdAt = this.createdAt; result.createdBy = this.createdBy; result.createdByApp = this.createdByApp; result.createdByStaff = this.createdByStaff; @@ -398,6 +430,14 @@ public Builder capabilities(MetaobjectCapabilityData capabilities) { return this; } + /** + * When the object was created. + */ + public Builder createdAt(OffsetDateTime createdAt) { + this.createdAt = createdAt; + return this; + } + /** * The app used to create the object. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetaobjectAccess.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetaobjectAccess.java index ea93efc1..2737d746 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetaobjectAccess.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetaobjectAccess.java @@ -14,6 +14,11 @@ public class MetaobjectAccess { */ private MetaobjectAdminAccess admin; + /** + * The access permitted on the Customer Account API. + */ + private MetaobjectCustomerAccountAccess customerAccount; + /** * The access permitted on the Storefront API. */ @@ -33,6 +38,17 @@ public void setAdmin(MetaobjectAdminAccess admin) { this.admin = admin; } + /** + * The access permitted on the Customer Account API. + */ + public MetaobjectCustomerAccountAccess getCustomerAccount() { + return customerAccount; + } + + public void setCustomerAccount(MetaobjectCustomerAccountAccess customerAccount) { + this.customerAccount = customerAccount; + } + /** * The access permitted on the Storefront API. */ @@ -46,7 +62,7 @@ public void setStorefront(MetaobjectStorefrontAccess storefront) { @Override public String toString() { - return "MetaobjectAccess{admin='" + admin + "', storefront='" + storefront + "'}"; + return "MetaobjectAccess{admin='" + admin + "', customerAccount='" + customerAccount + "', storefront='" + storefront + "'}"; } @Override @@ -55,12 +71,13 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) return false; MetaobjectAccess that = (MetaobjectAccess) o; return Objects.equals(admin, that.admin) && + Objects.equals(customerAccount, that.customerAccount) && Objects.equals(storefront, that.storefront); } @Override public int hashCode() { - return Objects.hash(admin, storefront); + return Objects.hash(admin, customerAccount, storefront); } public static Builder newBuilder() { @@ -73,6 +90,11 @@ public static class Builder { */ private MetaobjectAdminAccess admin; + /** + * The access permitted on the Customer Account API. + */ + private MetaobjectCustomerAccountAccess customerAccount; + /** * The access permitted on the Storefront API. */ @@ -81,6 +103,7 @@ public static class Builder { public MetaobjectAccess build() { MetaobjectAccess result = new MetaobjectAccess(); result.admin = this.admin; + result.customerAccount = this.customerAccount; result.storefront = this.storefront; return result; } @@ -93,6 +116,14 @@ public Builder admin(MetaobjectAdminAccess admin) { return this; } + /** + * The access permitted on the Customer Account API. + */ + public Builder customerAccount(MetaobjectCustomerAccountAccess customerAccount) { + this.customerAccount = customerAccount; + return this; + } + /** * The access permitted on the Storefront API. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetaobjectAccessInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetaobjectAccessInput.java index 75169546..3ecb6995 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetaobjectAccessInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetaobjectAccessInput.java @@ -19,6 +19,11 @@ public class MetaobjectAccessInput { */ private MetaobjectStorefrontAccess storefront; + /** + * The access permitted on the Customer Account API. + */ + private MetaobjectCustomerAccountAccess customerAccount; + public MetaobjectAccessInput() { } @@ -44,9 +49,20 @@ public void setStorefront(MetaobjectStorefrontAccess storefront) { this.storefront = storefront; } + /** + * The access permitted on the Customer Account API. + */ + public MetaobjectCustomerAccountAccess getCustomerAccount() { + return customerAccount; + } + + public void setCustomerAccount(MetaobjectCustomerAccountAccess customerAccount) { + this.customerAccount = customerAccount; + } + @Override public String toString() { - return "MetaobjectAccessInput{admin='" + admin + "', storefront='" + storefront + "'}"; + return "MetaobjectAccessInput{admin='" + admin + "', storefront='" + storefront + "', customerAccount='" + customerAccount + "'}"; } @Override @@ -55,12 +71,13 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) return false; MetaobjectAccessInput that = (MetaobjectAccessInput) o; return Objects.equals(admin, that.admin) && - Objects.equals(storefront, that.storefront); + Objects.equals(storefront, that.storefront) && + Objects.equals(customerAccount, that.customerAccount); } @Override public int hashCode() { - return Objects.hash(admin, storefront); + return Objects.hash(admin, storefront, customerAccount); } public static Builder newBuilder() { @@ -78,10 +95,16 @@ public static class Builder { */ private MetaobjectStorefrontAccess storefront; + /** + * The access permitted on the Customer Account API. + */ + private MetaobjectCustomerAccountAccess customerAccount; + public MetaobjectAccessInput build() { MetaobjectAccessInput result = new MetaobjectAccessInput(); result.admin = this.admin; result.storefront = this.storefront; + result.customerAccount = this.customerAccount; return result; } @@ -100,5 +123,13 @@ public Builder storefront(MetaobjectStorefrontAccess storefront) { this.storefront = storefront; return this; } + + /** + * The access permitted on the Customer Account API. + */ + public Builder customerAccount(MetaobjectCustomerAccountAccess customerAccount) { + this.customerAccount = customerAccount; + return this; + } } } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetaobjectCustomerAccountAccess.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetaobjectCustomerAccountAccess.java new file mode 100644 index 00000000..6abc18fa --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetaobjectCustomerAccountAccess.java @@ -0,0 +1,10 @@ +package com.shopify.admin.types; + +/** + * Metaobject access permissions for the Customer Account API. + */ +public enum MetaobjectCustomerAccountAccess { + NONE, + + READ +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetaobjectDefinition.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetaobjectDefinition.java index bc0858f4..cfaa9bf0 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetaobjectDefinition.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetaobjectDefinition.java @@ -8,7 +8,15 @@ import java.util.Objects; /** - * Provides the definition of a generic object structure composed of metafields. + * Defines the structure and configuration for a custom data type in Shopify. Each + * definition specifies the fields, validation rules, and capabilities that apply to all [`Metaobject`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Metaobject) + * entries created from it. + * + * The definition includes field definitions that determine what data to store, + * access controls for [the Shopify admin](https://shopify.dev/docs/apps/build/custom-data/permissions#admin-permissions) and [Storefront](https://shopify.dev/docs/apps/build/custom-data/permissions#storefront-permissions) + * APIs, and capabilities such as publishability and translatability. You can track + * which [`App`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App) or [`StaffMember`](https://shopify.dev/docs/api/admin-graphql/latest/objects/StaffMember) + * created the definition and optionally base it on a [`StandardMetaobjectDefinitionTemplate`](https://shopify.dev/docs/api/admin-graphql/latest/objects/StandardMetaobjectDefinitionTemplate). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetaobjectFieldCapabilityAdminFilterable.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetaobjectFieldCapabilityAdminFilterable.java new file mode 100644 index 00000000..4f968748 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetaobjectFieldCapabilityAdminFilterable.java @@ -0,0 +1,104 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * Information about the admin filterable capability. + */ +public class MetaobjectFieldCapabilityAdminFilterable { + /** + * Indicates if the definition is eligible to have the capability. + */ + private boolean eligible; + + /** + * Indicates if the capability is enabled. + */ + private boolean enabled; + + public MetaobjectFieldCapabilityAdminFilterable() { + } + + /** + * Indicates if the definition is eligible to have the capability. + */ + public boolean getEligible() { + return eligible; + } + + public void setEligible(boolean eligible) { + this.eligible = eligible; + } + + /** + * Indicates if the capability is enabled. + */ + public boolean getEnabled() { + return enabled; + } + + public void setEnabled(boolean enabled) { + this.enabled = enabled; + } + + @Override + public String toString() { + return "MetaobjectFieldCapabilityAdminFilterable{eligible='" + eligible + "', enabled='" + enabled + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + MetaobjectFieldCapabilityAdminFilterable that = (MetaobjectFieldCapabilityAdminFilterable) o; + return eligible == that.eligible && + enabled == that.enabled; + } + + @Override + public int hashCode() { + return Objects.hash(eligible, enabled); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * Indicates if the definition is eligible to have the capability. + */ + private boolean eligible; + + /** + * Indicates if the capability is enabled. + */ + private boolean enabled; + + public MetaobjectFieldCapabilityAdminFilterable build() { + MetaobjectFieldCapabilityAdminFilterable result = new MetaobjectFieldCapabilityAdminFilterable(); + result.eligible = this.eligible; + result.enabled = this.enabled; + return result; + } + + /** + * Indicates if the definition is eligible to have the capability. + */ + public Builder eligible(boolean eligible) { + this.eligible = eligible; + return this; + } + + /** + * Indicates if the capability is enabled. + */ + public Builder enabled(boolean enabled) { + this.enabled = enabled; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetaobjectFieldCapabilityAdminFilterableInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetaobjectFieldCapabilityAdminFilterableInput.java new file mode 100644 index 00000000..d9e9c3ae --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetaobjectFieldCapabilityAdminFilterableInput.java @@ -0,0 +1,73 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * The input fields for enabling and disabling the admin filterable capability. + */ +public class MetaobjectFieldCapabilityAdminFilterableInput { + /** + * Indicates whether the capability should be enabled or disabled. + */ + private boolean enabled; + + public MetaobjectFieldCapabilityAdminFilterableInput() { + } + + /** + * Indicates whether the capability should be enabled or disabled. + */ + public boolean getEnabled() { + return enabled; + } + + public void setEnabled(boolean enabled) { + this.enabled = enabled; + } + + @Override + public String toString() { + return "MetaobjectFieldCapabilityAdminFilterableInput{enabled='" + enabled + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + MetaobjectFieldCapabilityAdminFilterableInput that = (MetaobjectFieldCapabilityAdminFilterableInput) o; + return enabled == that.enabled; + } + + @Override + public int hashCode() { + return Objects.hash(enabled); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * Indicates whether the capability should be enabled or disabled. + */ + private boolean enabled; + + public MetaobjectFieldCapabilityAdminFilterableInput build() { + MetaobjectFieldCapabilityAdminFilterableInput result = new MetaobjectFieldCapabilityAdminFilterableInput(); + result.enabled = this.enabled; + return result; + } + + /** + * Indicates whether the capability should be enabled or disabled. + */ + public Builder enabled(boolean enabled) { + this.enabled = enabled; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetaobjectFieldDefinition.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetaobjectFieldDefinition.java index fb025564..0d6372e3 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetaobjectFieldDefinition.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetaobjectFieldDefinition.java @@ -11,6 +11,11 @@ * such as the field's data type and validations. */ public class MetaobjectFieldDefinition { + /** + * Capabilities available for this metaobject field definition. + */ + private MetaobjectFieldDefinitionCapabilities capabilities; + /** * The administrative description. */ @@ -45,6 +50,17 @@ public class MetaobjectFieldDefinition { public MetaobjectFieldDefinition() { } + /** + * Capabilities available for this metaobject field definition. + */ + public MetaobjectFieldDefinitionCapabilities getCapabilities() { + return capabilities; + } + + public void setCapabilities(MetaobjectFieldDefinitionCapabilities capabilities) { + this.capabilities = capabilities; + } + /** * The administrative description. */ @@ -114,7 +130,7 @@ public void setValidations(List validations) { @Override public String toString() { - return "MetaobjectFieldDefinition{description='" + description + "', key='" + key + "', name='" + name + "', required='" + required + "', type='" + type + "', validations='" + validations + "'}"; + return "MetaobjectFieldDefinition{capabilities='" + capabilities + "', description='" + description + "', key='" + key + "', name='" + name + "', required='" + required + "', type='" + type + "', validations='" + validations + "'}"; } @Override @@ -122,7 +138,8 @@ public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; MetaobjectFieldDefinition that = (MetaobjectFieldDefinition) o; - return Objects.equals(description, that.description) && + return Objects.equals(capabilities, that.capabilities) && + Objects.equals(description, that.description) && Objects.equals(key, that.key) && Objects.equals(name, that.name) && required == that.required && @@ -132,7 +149,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(description, key, name, required, type, validations); + return Objects.hash(capabilities, description, key, name, required, type, validations); } public static Builder newBuilder() { @@ -140,6 +157,11 @@ public static Builder newBuilder() { } public static class Builder { + /** + * Capabilities available for this metaobject field definition. + */ + private MetaobjectFieldDefinitionCapabilities capabilities; + /** * The administrative description. */ @@ -173,6 +195,7 @@ public static class Builder { public MetaobjectFieldDefinition build() { MetaobjectFieldDefinition result = new MetaobjectFieldDefinition(); + result.capabilities = this.capabilities; result.description = this.description; result.key = this.key; result.name = this.name; @@ -182,6 +205,14 @@ public MetaobjectFieldDefinition build() { return result; } + /** + * Capabilities available for this metaobject field definition. + */ + public Builder capabilities(MetaobjectFieldDefinitionCapabilities capabilities) { + this.capabilities = capabilities; + return this; + } + /** * The administrative description. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetaobjectFieldDefinitionCapabilities.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetaobjectFieldDefinitionCapabilities.java new file mode 100644 index 00000000..fe5e6a69 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetaobjectFieldDefinitionCapabilities.java @@ -0,0 +1,73 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * Capabilities available for a metaobject field definition. + */ +public class MetaobjectFieldDefinitionCapabilities { + /** + * Indicate whether a metaobject field definition is configured for filtering. + */ + private MetaobjectFieldCapabilityAdminFilterable adminFilterable; + + public MetaobjectFieldDefinitionCapabilities() { + } + + /** + * Indicate whether a metaobject field definition is configured for filtering. + */ + public MetaobjectFieldCapabilityAdminFilterable getAdminFilterable() { + return adminFilterable; + } + + public void setAdminFilterable(MetaobjectFieldCapabilityAdminFilterable adminFilterable) { + this.adminFilterable = adminFilterable; + } + + @Override + public String toString() { + return "MetaobjectFieldDefinitionCapabilities{adminFilterable='" + adminFilterable + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + MetaobjectFieldDefinitionCapabilities that = (MetaobjectFieldDefinitionCapabilities) o; + return Objects.equals(adminFilterable, that.adminFilterable); + } + + @Override + public int hashCode() { + return Objects.hash(adminFilterable); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * Indicate whether a metaobject field definition is configured for filtering. + */ + private MetaobjectFieldCapabilityAdminFilterable adminFilterable; + + public MetaobjectFieldDefinitionCapabilities build() { + MetaobjectFieldDefinitionCapabilities result = new MetaobjectFieldDefinitionCapabilities(); + result.adminFilterable = this.adminFilterable; + return result; + } + + /** + * Indicate whether a metaobject field definition is configured for filtering. + */ + public Builder adminFilterable(MetaobjectFieldCapabilityAdminFilterable adminFilterable) { + this.adminFilterable = adminFilterable; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetaobjectFieldDefinitionCapabilityCreateInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetaobjectFieldDefinitionCapabilityCreateInput.java new file mode 100644 index 00000000..c92ae0f5 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetaobjectFieldDefinitionCapabilityCreateInput.java @@ -0,0 +1,73 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * The input fields for creating capabilities on a metaobject field definition. + */ +public class MetaobjectFieldDefinitionCapabilityCreateInput { + /** + * The input for configuring the admin filterable capability. + */ + private MetaobjectFieldCapabilityAdminFilterableInput adminFilterable; + + public MetaobjectFieldDefinitionCapabilityCreateInput() { + } + + /** + * The input for configuring the admin filterable capability. + */ + public MetaobjectFieldCapabilityAdminFilterableInput getAdminFilterable() { + return adminFilterable; + } + + public void setAdminFilterable(MetaobjectFieldCapabilityAdminFilterableInput adminFilterable) { + this.adminFilterable = adminFilterable; + } + + @Override + public String toString() { + return "MetaobjectFieldDefinitionCapabilityCreateInput{adminFilterable='" + adminFilterable + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + MetaobjectFieldDefinitionCapabilityCreateInput that = (MetaobjectFieldDefinitionCapabilityCreateInput) o; + return Objects.equals(adminFilterable, that.adminFilterable); + } + + @Override + public int hashCode() { + return Objects.hash(adminFilterable); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The input for configuring the admin filterable capability. + */ + private MetaobjectFieldCapabilityAdminFilterableInput adminFilterable; + + public MetaobjectFieldDefinitionCapabilityCreateInput build() { + MetaobjectFieldDefinitionCapabilityCreateInput result = new MetaobjectFieldDefinitionCapabilityCreateInput(); + result.adminFilterable = this.adminFilterable; + return result; + } + + /** + * The input for configuring the admin filterable capability. + */ + public Builder adminFilterable(MetaobjectFieldCapabilityAdminFilterableInput adminFilterable) { + this.adminFilterable = adminFilterable; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetaobjectFieldDefinitionCreateInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetaobjectFieldDefinitionCreateInput.java index 73f32ddf..03dcf07b 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetaobjectFieldDefinitionCreateInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetaobjectFieldDefinitionCreateInput.java @@ -43,6 +43,11 @@ public class MetaobjectFieldDefinitionCreateInput { */ private List validations; + /** + * Capabilities configuration for this field. + */ + private MetaobjectFieldDefinitionCapabilityCreateInput capabilities; + public MetaobjectFieldDefinitionCreateInput() { } @@ -114,9 +119,20 @@ public void setValidations(List validations) this.validations = validations; } + /** + * Capabilities configuration for this field. + */ + public MetaobjectFieldDefinitionCapabilityCreateInput getCapabilities() { + return capabilities; + } + + public void setCapabilities(MetaobjectFieldDefinitionCapabilityCreateInput capabilities) { + this.capabilities = capabilities; + } + @Override public String toString() { - return "MetaobjectFieldDefinitionCreateInput{key='" + key + "', type='" + type + "', name='" + name + "', description='" + description + "', required='" + required + "', validations='" + validations + "'}"; + return "MetaobjectFieldDefinitionCreateInput{key='" + key + "', type='" + type + "', name='" + name + "', description='" + description + "', required='" + required + "', validations='" + validations + "', capabilities='" + capabilities + "'}"; } @Override @@ -129,12 +145,13 @@ public boolean equals(Object o) { Objects.equals(name, that.name) && Objects.equals(description, that.description) && Objects.equals(required, that.required) && - Objects.equals(validations, that.validations); + Objects.equals(validations, that.validations) && + Objects.equals(capabilities, that.capabilities); } @Override public int hashCode() { - return Objects.hash(key, type, name, description, required, validations); + return Objects.hash(key, type, name, description, required, validations, capabilities); } public static Builder newBuilder() { @@ -174,6 +191,11 @@ public static class Builder { */ private List validations; + /** + * Capabilities configuration for this field. + */ + private MetaobjectFieldDefinitionCapabilityCreateInput capabilities; + public MetaobjectFieldDefinitionCreateInput build() { MetaobjectFieldDefinitionCreateInput result = new MetaobjectFieldDefinitionCreateInput(); result.key = this.key; @@ -182,6 +204,7 @@ public MetaobjectFieldDefinitionCreateInput build() { result.description = this.description; result.required = this.required; result.validations = this.validations; + result.capabilities = this.capabilities; return result; } @@ -234,5 +257,13 @@ public Builder validations(List validations) this.validations = validations; return this; } + + /** + * Capabilities configuration for this field. + */ + public Builder capabilities(MetaobjectFieldDefinitionCapabilityCreateInput capabilities) { + this.capabilities = capabilities; + return this; + } } } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetaobjectFieldDefinitionUpdateInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetaobjectFieldDefinitionUpdateInput.java index c06e944d..8cdf4040 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetaobjectFieldDefinitionUpdateInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetaobjectFieldDefinitionUpdateInput.java @@ -36,6 +36,11 @@ public class MetaobjectFieldDefinitionUpdateInput { */ private List validations; + /** + * Capabilities configuration for this field. + */ + private MetaobjectFieldDefinitionCapabilityCreateInput capabilities; + public MetaobjectFieldDefinitionUpdateInput() { } @@ -94,9 +99,20 @@ public void setValidations(List validations) this.validations = validations; } + /** + * Capabilities configuration for this field. + */ + public MetaobjectFieldDefinitionCapabilityCreateInput getCapabilities() { + return capabilities; + } + + public void setCapabilities(MetaobjectFieldDefinitionCapabilityCreateInput capabilities) { + this.capabilities = capabilities; + } + @Override public String toString() { - return "MetaobjectFieldDefinitionUpdateInput{key='" + key + "', name='" + name + "', description='" + description + "', required='" + required + "', validations='" + validations + "'}"; + return "MetaobjectFieldDefinitionUpdateInput{key='" + key + "', name='" + name + "', description='" + description + "', required='" + required + "', validations='" + validations + "', capabilities='" + capabilities + "'}"; } @Override @@ -108,12 +124,13 @@ public boolean equals(Object o) { Objects.equals(name, that.name) && Objects.equals(description, that.description) && Objects.equals(required, that.required) && - Objects.equals(validations, that.validations); + Objects.equals(validations, that.validations) && + Objects.equals(capabilities, that.capabilities); } @Override public int hashCode() { - return Objects.hash(key, name, description, required, validations); + return Objects.hash(key, name, description, required, validations, capabilities); } public static Builder newBuilder() { @@ -146,6 +163,11 @@ public static class Builder { */ private List validations; + /** + * Capabilities configuration for this field. + */ + private MetaobjectFieldDefinitionCapabilityCreateInput capabilities; + public MetaobjectFieldDefinitionUpdateInput build() { MetaobjectFieldDefinitionUpdateInput result = new MetaobjectFieldDefinitionUpdateInput(); result.key = this.key; @@ -153,6 +175,7 @@ public MetaobjectFieldDefinitionUpdateInput build() { result.description = this.description; result.required = this.required; result.validations = this.validations; + result.capabilities = this.capabilities; return result; } @@ -195,5 +218,13 @@ public Builder validations(List validations) this.validations = validations; return this; } + + /** + * Capabilities configuration for this field. + */ + public Builder capabilities(MetaobjectFieldDefinitionCapabilityCreateInput capabilities) { + this.capabilities = capabilities; + return this; + } } } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetaobjectUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetaobjectUserErrorCode.java index 7441cd5e..404360d1 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetaobjectUserErrorCode.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MetaobjectUserErrorCode.java @@ -56,6 +56,8 @@ public enum MetaobjectUserErrorCode { APP_CONFIG_MANAGED, + STANDARD_METAOBJECT_DEFINITION_DEPENDENT_ON_APP, + CAPABILITY_NOT_ENABLED, URL_HANDLE_TAKEN, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MobilePlatformApplicationUserError.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MobilePlatformApplicationUserError.java index 15e0606f..a272b511 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MobilePlatformApplicationUserError.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MobilePlatformApplicationUserError.java @@ -8,7 +8,9 @@ import java.util.Objects; /** - * Represents an error in the input of a mutation. + * An error in the input of a mutation. Mutations return `UserError` objects to + * indicate validation failures, such as invalid field values or business logic + * violations, that prevent the operation from completing. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MoneyBag.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MoneyBag.java index ed0210fd..bb1a325e 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MoneyBag.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MoneyBag.java @@ -6,9 +6,11 @@ import java.util.Objects; /** - * A collection of monetary values in their respective currencies. Typically used - * in the context of multi-currency pricing and transactions, - * when an amount in the shop's currency is converted to the customer's currency of choice (the presentment currency). + * A collection of monetary values in their respective currencies. Used throughout + * the API for multi-currency pricing and transactions, when an amount in the + * shop's currency is converted to the customer's currency of choice. The + * `presentmentMoney` field contains the amount in the customer's selected + * currency. The `shopMoney` field contains the equivalent in the shop's base currency. */ public class MoneyBag { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MoneyV2.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MoneyV2.java index 12b04ea6..b9ff4a5d 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MoneyV2.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MoneyV2.java @@ -7,19 +7,24 @@ import java.util.Objects; /** - * A monetary value with currency. + * A precise monetary value and its associated currency. Combines a decimal amount + * with a three-letter currency code to express prices, costs, and other financial + * values throughout the API. For example, 12.99 USD. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE ) public class MoneyV2 implements DeliveryConditionCriteria, PricingValue, SellingPlanCheckoutChargeValue, SellingPlanPricingPolicyAdjustmentValue { /** - * Decimal money amount. + * A monetary value in decimal format, allowing for precise representation of cents or fractional + * currency. For example, 12.99. */ private String amount; /** - * Currency of the money. + * The three-letter currency code that represents a world currency used in a store. Currency codes + * include standard [standard ISO 4217 codes](https://en.wikipedia.org/wiki/ISO_4217), legacy codes, + * and non-standard codes. For example, USD. */ private CurrencyCode currencyCode; @@ -27,7 +32,8 @@ public MoneyV2() { } /** - * Decimal money amount. + * A monetary value in decimal format, allowing for precise representation of cents or fractional + * currency. For example, 12.99. */ public String getAmount() { return amount; @@ -38,7 +44,9 @@ public void setAmount(String amount) { } /** - * Currency of the money. + * The three-letter currency code that represents a world currency used in a store. Currency codes + * include standard [standard ISO 4217 codes](https://en.wikipedia.org/wiki/ISO_4217), legacy codes, + * and non-standard codes. For example, USD. */ public CurrencyCode getCurrencyCode() { return currencyCode; @@ -73,12 +81,15 @@ public static Builder newBuilder() { public static class Builder { /** - * Decimal money amount. + * A monetary value in decimal format, allowing for precise representation of cents or fractional + * currency. For example, 12.99. */ private String amount; /** - * Currency of the money. + * The three-letter currency code that represents a world currency used in a store. Currency codes + * include standard [standard ISO 4217 codes](https://en.wikipedia.org/wiki/ISO_4217), legacy codes, + * and non-standard codes. For example, USD. */ private CurrencyCode currencyCode; @@ -90,7 +101,8 @@ public MoneyV2 build() { } /** - * Decimal money amount. + * A monetary value in decimal format, allowing for precise representation of cents or fractional + * currency. For example, 12.99. */ public Builder amount(String amount) { this.amount = amount; @@ -98,7 +110,9 @@ public Builder amount(String amount) { } /** - * Currency of the money. + * The three-letter currency code that represents a world currency used in a store. Currency codes + * include standard [standard ISO 4217 codes](https://en.wikipedia.org/wiki/ISO_4217), legacy codes, + * and non-standard codes. For example, USD. */ public Builder currencyCode(CurrencyCode currencyCode) { this.currencyCode = currencyCode; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MoveInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MoveInput.java index 23f459ed..f151cd19 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MoveInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/MoveInput.java @@ -6,7 +6,17 @@ import java.util.Objects; /** - * The input fields for a single move of an object to a specific position in a set, using a zero-based index. + * The input for moving a single object to a specific position in a set. + * + * Provide this input only for objects whose position actually changed; do not send inputs for the entire set. + * + * - id: The ID (GID) of the object to move. + * - newPosition: The zero-based index of the object's position within the set at the time this move is applied. + * + * Moves are applied sequentially, so `newPosition` for each move is evaluated after all prior moves in the same list. + * If `newPosition` is greater than or equal to the number of objects, the object is moved to the end of the set. + * Values do not have to be unique. Objects not included in the move list keep + * their relative order, aside from any displacement caused by the moves. */ public class MoveInput { /** @@ -15,7 +25,8 @@ public class MoveInput { private String id; /** - * The new position of the object in the set. + * Zero-based index of the object's position at the time this move is applied. If + * the value is >= the number of objects, the object is placed at the end. */ private String newPosition; @@ -34,7 +45,8 @@ public void setId(String id) { } /** - * The new position of the object in the set. + * Zero-based index of the object's position at the time this move is applied. If + * the value is >= the number of objects, the object is placed at the end. */ public String getNewPosition() { return newPosition; @@ -74,7 +86,8 @@ public static class Builder { private String id; /** - * The new position of the object in the set. + * Zero-based index of the object's position at the time this move is applied. If + * the value is >= the number of objects, the object is placed at the end. */ private String newPosition; @@ -94,7 +107,8 @@ public Builder id(String id) { } /** - * The new position of the object in the set. + * Zero-based index of the object's position at the time this move is applied. If + * the value is >= the number of objects, the object is placed at the end. */ public Builder newPosition(String newPosition) { this.newPosition = newPosition; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Node.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Node.java index 9529af05..b60d6022 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Node.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Node.java @@ -55,6 +55,7 @@ @JsonSubTypes.Type(value = CompanyLocationCatalog.class, name = "CompanyLocationCatalog"), @JsonSubTypes.Type(value = CompanyLocationStaffMemberAssignment.class, name = "CompanyLocationStaffMemberAssignment"), @JsonSubTypes.Type(value = ConsentPolicy.class, name = "ConsentPolicy"), + @JsonSubTypes.Type(value = CurrencyExchangeAdjustment.class, name = "CurrencyExchangeAdjustment"), @JsonSubTypes.Type(value = Customer.class, name = "Customer"), @JsonSubTypes.Type(value = CustomerAccountAppExtensionPage.class, name = "CustomerAccountAppExtensionPage"), @JsonSubTypes.Type(value = CustomerAccountNativePage.class, name = "CustomerAccountNativePage"), @@ -107,6 +108,10 @@ @JsonSubTypes.Type(value = InventoryItemMeasurement.class, name = "InventoryItemMeasurement"), @JsonSubTypes.Type(value = InventoryLevel.class, name = "InventoryLevel"), @JsonSubTypes.Type(value = InventoryQuantity.class, name = "InventoryQuantity"), + @JsonSubTypes.Type(value = InventoryShipment.class, name = "InventoryShipment"), + @JsonSubTypes.Type(value = InventoryShipmentLineItem.class, name = "InventoryShipmentLineItem"), + @JsonSubTypes.Type(value = InventoryTransfer.class, name = "InventoryTransfer"), + @JsonSubTypes.Type(value = InventoryTransferLineItem.class, name = "InventoryTransferLineItem"), @JsonSubTypes.Type(value = LineItem.class, name = "LineItem"), @JsonSubTypes.Type(value = LineItemGroup.class, name = "LineItemGroup"), @JsonSubTypes.Type(value = Location.class, name = "Location"), @@ -128,6 +133,7 @@ @JsonSubTypes.Type(value = Order.class, name = "Order"), @JsonSubTypes.Type(value = OrderAdjustment.class, name = "OrderAdjustment"), @JsonSubTypes.Type(value = OrderDisputeSummary.class, name = "OrderDisputeSummary"), + @JsonSubTypes.Type(value = OrderEditSession.class, name = "OrderEditSession"), @JsonSubTypes.Type(value = OrderTransaction.class, name = "OrderTransaction"), @JsonSubTypes.Type(value = Page.class, name = "Page"), @JsonSubTypes.Type(value = PaymentCustomization.class, name = "PaymentCustomization"), @@ -135,6 +141,7 @@ @JsonSubTypes.Type(value = PaymentSchedule.class, name = "PaymentSchedule"), @JsonSubTypes.Type(value = PaymentTerms.class, name = "PaymentTerms"), @JsonSubTypes.Type(value = PaymentTermsTemplate.class, name = "PaymentTermsTemplate"), + @JsonSubTypes.Type(value = PointOfSaleDevice.class, name = "PointOfSaleDevice"), @JsonSubTypes.Type(value = PriceList.class, name = "PriceList"), @JsonSubTypes.Type(value = PriceRule.class, name = "PriceRule"), @JsonSubTypes.Type(value = PriceRuleDiscountCode.class, name = "PriceRuleDiscountCode"), @@ -157,6 +164,7 @@ @JsonSubTypes.Type(value = Return.class, name = "Return"), @JsonSubTypes.Type(value = ReturnableFulfillment.class, name = "ReturnableFulfillment"), @JsonSubTypes.Type(value = ReturnLineItem.class, name = "ReturnLineItem"), + @JsonSubTypes.Type(value = ReturnReasonDefinition.class, name = "ReturnReasonDefinition"), @JsonSubTypes.Type(value = ReverseDelivery.class, name = "ReverseDelivery"), @JsonSubTypes.Type(value = ReverseDeliveryLineItem.class, name = "ReverseDeliveryLineItem"), @JsonSubTypes.Type(value = ReverseFulfillmentOrder.class, name = "ReverseFulfillmentOrder"), @@ -179,7 +187,6 @@ @JsonSubTypes.Type(value = ShopifyPaymentsDisputeFileUpload.class, name = "ShopifyPaymentsDisputeFileUpload"), @JsonSubTypes.Type(value = ShopifyPaymentsDisputeFulfillment.class, name = "ShopifyPaymentsDisputeFulfillment"), @JsonSubTypes.Type(value = ShopifyPaymentsPayout.class, name = "ShopifyPaymentsPayout"), - @JsonSubTypes.Type(value = ShopifyPaymentsVerification.class, name = "ShopifyPaymentsVerification"), @JsonSubTypes.Type(value = ShopPolicy.class, name = "ShopPolicy"), @JsonSubTypes.Type(value = StaffMember.class, name = "StaffMember"), @JsonSubTypes.Type(value = StandardMetafieldDefinitionTemplate.class, name = "StandardMetafieldDefinitionTemplate"), @@ -204,8 +211,7 @@ @JsonSubTypes.Type(value = Validation.class, name = "Validation"), @JsonSubTypes.Type(value = Video.class, name = "Video"), @JsonSubTypes.Type(value = WebhookSubscription.class, name = "WebhookSubscription"), - @JsonSubTypes.Type(value = WebPixel.class, name = "WebPixel"), - @JsonSubTypes.Type(value = WebPresence.class, name = "WebPresence") + @JsonSubTypes.Type(value = WebPixel.class, name = "WebPixel") }) public interface Node { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/NotificationUsage.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/NotificationUsage.java new file mode 100644 index 00000000..e24efdd2 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/NotificationUsage.java @@ -0,0 +1,10 @@ +package com.shopify.admin.types; + +/** + * The valid values for the notification usage, specifying the intended notification environment usage for certain operations. + */ +public enum NotificationUsage { + WEB, + + SMS +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OnlineStoreTheme.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OnlineStoreTheme.java index a384d3d7..7aa1bdb5 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OnlineStoreTheme.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OnlineStoreTheme.java @@ -10,7 +10,17 @@ import java.util.Objects; /** - * A theme for display on the storefront. + * A theme for display on the storefront. Themes control the visual appearance and + * functionality of the online store through templates, stylesheets, and assets + * that determine how + * [products](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product), [collections](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection), + * and other content display to customers. + * + * Each theme has a [role](https://shopify.dev/docs/api/admin-graphql/latest/objects/OnlineStoreTheme#field-OnlineStoreTheme.fields.role) + * that indicates its status. Main themes are live on the storefront, unpublished + * themes are inactive, demo themes require purchase before publishing, and + * development themes are temporary for previewing during development. The theme includes [translations](https://shopify.dev/docs/api/admin-graphql/latest/objects/OnlineStoreTheme#field-OnlineStoreTheme.fields.translations) + * for multi-language support. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Order.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Order.java index 1f60be17..3d3e679f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Order.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Order.java @@ -9,169 +9,215 @@ import java.util.Objects; /** - * An order is a customer's request to purchase one or more products from a shop. - * You can retrieve and update orders using the `Order` object. - * Learn more about - * [editing an existing order with the GraphQL Admin - * API](https://shopify.dev/apps/fulfillment/order-management-apps/order-editing). + * The `Order` object represents a customer's request to purchase one or more + * products from a store. Use the `Order` object to handle the complete purchase + * lifecycle from checkout to fulfillment. * - * Only the last 60 days' worth of orders from a store are accessible from the - * `Order` object by default. If you want to access older orders, - * then you need to [request access to all - * orders](https://shopify.dev/api/usage/access-scopes#orders-permissions). If your app is granted - * access, then you can add the `read_all_orders` scope to your app along with `read_orders` or `write_orders`. - * [Private apps](https://shopify.dev/apps/auth/basic-http) are not affected by - * this change and are automatically granted the scope. + * Use the `Order` object when you need to: * - * **Caution:** Only use this data if it's required for your app's functionality. - * Shopify will restrict [access to - * scopes](https://shopify.dev/api/usage/access-scopes) for apps that don't have a - * legitimate use for the associated data. + * - Display order details on customer account pages or admin dashboards. + * - Create orders for phone sales, wholesale customers, or subscription services. + * - Update order information like shipping addresses, notes, or fulfillment status. + * - Process returns, exchanges, and partial refunds. + * - Generate invoices, receipts, and shipping labels. + * + * The `Order` object serves as the central hub connecting customer information, + * product details, payment processing, and fulfillment data within the GraphQL + * Admin API schema. + * + * > Note: + * > Only the last 60 days' worth of orders from a store are accessible from the + * `Order` object by default. If you want to access older records, + * > then you need to [request access to all + * orders](https://shopify.dev/docs/api/usage/access-scopes#orders-permissions). If + * your app is granted + * > access, then you can add the `read_all_orders`, `read_orders`, and `write_orders` scopes. + * + * > Caution: + * > Only use orders data if it's required for your app's functionality. Shopify + * will restrict [access to scopes](https://shopify.dev/docs/api/usage/access-scopes#requesting-specific-permissions) + * for apps that don't have a legitimate use for the associated data. + * + * Learn more about [building apps for orders and fulfillment](https://shopify.dev/docs/apps/build/orders-fulfillment). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE ) public class Order implements CommentEventEmbed, MetafieldReference, MetafieldReferencer, com.shopify.admin.types.CommentEventSubject, com.shopify.admin.types.HasEvents, com.shopify.admin.types.HasLocalizationExtensions, com.shopify.admin.types.HasLocalizedFields, com.shopify.admin.types.HasMetafieldDefinitions, com.shopify.admin.types.HasMetafields, com.shopify.admin.types.LegacyInteroperability, com.shopify.admin.types.Node { /** - * A list of additional fees applied to the order. + * A list of additional fees applied to an order, such as duties, import fees, or [tax lines](https://shopify.dev/docs/api/admin-graphql/latest/objects/order#field-Order.fields.additionalFees.taxLines). */ private List additionalFees; /** - * A list of sales agreements associated with the order. + * A list of sales agreements associated with the order, such as contracts + * defining payment terms, or delivery schedules between merchants and customers. */ private SalesAgreementConnection agreements; /** - * A list of messages that appear on the order page in the Shopify admin. + * A list of messages that appear on the **Orders** page in the Shopify admin. + * These alerts provide merchants with important information about an order's + * status or required actions. */ private List alerts; /** - * The application that created the order. + * The application that created the order. For example, "Online Store", "Point of Sale", or a custom app name. + * Use this to identify the order source for attribution and fulfillment workflows. + * Learn more about [building apps for orders and fulfillment](https://shopify.dev/docs/apps/build/orders-fulfillment). */ private OrderApp app; /** - * The billing address of the customer. + * The billing address associated with the payment method selected by the customer for an order. + * Returns `null` if no billing address was provided during checkout. */ private MailingAddress billingAddress; /** - * Whether the billing address matches the shipping address. + * Whether the billing address matches the [shipping address](https://shopify.dev/docs/api/admin-graphql/latest/objects/order#field-Order.fields.shippingAddress). + * Returns `true` if both addresses are the same, and `false` if they're + * different or if an address is missing. */ private boolean billingAddressMatchesShippingAddress; /** - * Whether the order can be manually marked as paid. + * Whether an order can be manually marked as paid. Returns `false` if the order + * is already paid, is canceled, has pending [Shopify Payments](https://help.shopify.com/en/manual/payments/shopify-payments/payouts) + * transactions, or has a negative payment amount. */ private boolean canMarkAsPaid; /** - * Whether a customer email exists for the order. + * Whether order notifications can be sent to the customer. + * Returns `true` if the customer has a valid [email address](https://shopify.dev/docs/api/admin-graphql/latest/objects/order#field-Order.fields.email). */ private boolean canNotifyCustomer; /** - * The reason provided when the order was canceled. - * Returns `null` if the order wasn't canceled. + * The reason provided for an order cancellation. For example, a merchant might + * cancel an order if there's insufficient inventory. Returns `null` if the order + * hasn't been canceled. */ private OrderCancelReason cancelReason; /** - * Cancellation details for the order. + * Details of an order's cancellation, if it has been canceled. This includes the + * reason, date, and any [staff notes](https://shopify.dev/api/admin-graphql/latest/objects/OrderCancellation#field-OrderCancellation.fields.staffNote). */ private OrderCancellation cancellation; /** - * The date and time when the order was canceled. - * Returns `null` if the order wasn't canceled. + * The date and time in [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601) when an order was canceled. + * Returns `null` if the order hasn't been canceled. */ private OffsetDateTime cancelledAt; /** - * Whether payment for the order can be captured. + * Whether an authorized payment for an order can be captured. + * Returns `true` if an authorized payment exists that hasn't been fully captured + * yet. Learn more about [capturing payments](https://help.shopify.com/en/manual/fulfillment/managing-orders/payments/capturing-payments). */ private boolean capturable; /** - * The total order-level discount amount, before returns, in shop currency. + * The total discount amount that applies to the entire order in shop currency, + * before returns, refunds, order edits, and cancellations. */ private String cartDiscountAmount; /** - * The total order-level discount amount, before returns, in shop and presentment currencies. + * The total discount amount applied at the time the order was created, displayed + * in both shop and presentment currencies, before returns, refunds, order edits, + * and cancellations. This field only includes discounts applied to the entire order. */ private MoneyBag cartDiscountAmountSet; /** - * The channel that created the order. + * The sales channel from which an order originated, such as the [Online + * Store](https://shopify.dev/docs/apps/build/app-surfaces#online-store) or + * [Shopify POS](https://shopify.dev/docs/apps/build/app-surfaces#point-of-sale). */ private Channel channel; /** - * Details about the channel that created the order. + * Details about the sales channel that created the order, such as the [channel app type](https://shopify.dev/docs/api/admin-graphql/latest/objects/channel#field-Channel.fields.channelType) + * and [channel name](https://shopify.dev/docs/api/admin-graphql/latest/objects/ChannelDefinition#field-ChannelDefinition.fields.channelName), which helps to track order sources. */ private ChannelInformation channelInformation; /** - * The IP address of the API client that created the order. + * The IP address of the customer who placed the order. Useful for fraud detection and geographic analysis. */ private String clientIp; /** - * Whether the order is closed. + * Whether an order is closed. An order is considered closed if all its line + * items have been fulfilled or canceled, and all financial transactions are complete. */ private boolean closed; /** - * The date and time when the order was closed. - * Returns `null` if the order isn't closed. + * The date and time [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601) + * when an order was closed. Shopify automatically records this timestamp when + * all items have been fulfilled or canceled, and all financial transactions are + * complete. Returns `null` if the order isn't closed. */ private OffsetDateTime closedAt; /** - * A randomly generated alpha-numeric identifier for the order that may be shown to the customer - * instead of the sequential order name. For example, "XPAV284CT", "R50KELTJP" or "35PKUN0UJ". - * This value isn't guaranteed to be unique. + * A customer-facing order identifier, often shown instead of the sequential order name. + * It uses a random alphanumeric format (for example, `XPAV284CT`) and isn't guaranteed to be unique across orders. */ private String confirmationNumber; /** - * Whether inventory has been reserved for the order. + * Whether inventory has been reserved for an order. Returns `true` if inventory + * quantities for an order's [line + * items](https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItem) + * have been reserved. + * Learn more about [managing inventory quantities and states](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states). */ private boolean confirmed; /** - * Date and time when the order was created in Shopify. + * The date and time in [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601) + * when an order was created. This timestamp is set when the customer completes + * checkout and remains unchanged throughout an order's lifecycle. */ private OffsetDateTime createdAt; /** - * The shop currency when the order was placed. + * The shop currency when the order was placed. For example, "USD" or "CAD". */ private CurrencyCode currencyCode; /** - * The current order-level discount amount after all order updates, in shop and presentment currencies. + * The current total of all discounts applied to the entire order, after returns, + * refunds, order edits, and cancellations. This includes discount codes, + * automatic discounts, and other promotions that affect the whole order rather + * than individual line items. To get the original discount amount at the time of + * order creation, use the [`cartDiscountAmountSet`](https://shopify.dev/docs/api/admin-graphql/latest/objects/order#field-Order.fields.cartDiscountAmountSet) field. */ private MoneyBag currentCartDiscountAmountSet; /** - * The current shipping price after applying refunds and discounts. If the parent - * `order.taxesIncluded` field is true, then this price includes taxes. - * Otherwise, this field is the pre-tax price. + * The current shipping price after applying refunds and discounts. + * If the parent `order.taxesIncluded` field is true, then this price includes + * taxes. Otherwise, this field is the pre-tax price. */ private MoneyBag currentShippingPriceSet; /** - * The sum of the quantities for all line items that contribute to the order's current subtotal price. + * The current sum of the quantities for all line items that contribute to the + * order's subtotal price, after returns, refunds, order edits, and cancellations. */ private int currentSubtotalLineItemsQuantity; /** - * The sum of the prices for all line items after discounts and returns, in shop and presentment currencies. - * If `taxesIncluded` is `true`, then the subtotal also includes tax. + * The total price of the order, after returns and refunds, in shop and presentment currencies. + * This includes taxes and discounts. */ private MoneyBag currentSubtotalPriceSet; @@ -182,20 +228,22 @@ public class Order implements CommentEventEmbed, MetafieldReference, MetafieldRe private List currentTaxLines; /** - * The total amount of additional fees after returns, in shop and presentment currencies. - * Returns `null` if there are no additional fees for the order. + * The current total of all additional fees for an order, after any returns or + * modifications. Modifications include returns, refunds, order edits, and + * cancellations. Additional fees can include charges such as duties, import + * fees, and special handling. */ private MoneyBag currentTotalAdditionalFeesSet; /** - * The total amount discounted on the order after returns, in shop and presentment currencies. + * The total amount discounted on the order after returns and refunds, in shop and presentment currencies. * This includes both order and line level discounts. */ private MoneyBag currentTotalDiscountsSet; /** - * The total amount of duties after returns, in shop and presentment currencies. - * Returns `null` if duties aren't applicable. + * The current total duties amount for an order, after any returns or + * modifications. Modifications include returns, refunds, order edits, and cancellations. */ private MoneyBag currentTotalDutiesSet; @@ -207,28 +255,32 @@ public class Order implements CommentEventEmbed, MetafieldReference, MetafieldRe /** * The sum of the prices of all tax lines applied to line items on the order, - * after returns, in shop and presentment currencies. + * after returns and refunds, in shop and presentment currencies. */ private MoneyBag currentTotalTaxSet; /** - * The total weight of the order after returns, in grams. + * The total weight of the order after returns and refunds, in grams. */ private String currentTotalWeight; /** - * A list of additional merchant-facing details that have been added to the - * order. For example, whether an order is a customer's first. + * A list of additional information that has been attached to the order. For + * example, gift message, delivery instructions, or internal notes. */ private List customAttributes; /** - * The customer that placed the order. + * The customer who placed an order. Returns `null` if an order was created + * through a checkout without customer authentication, such as a guest checkout. + * Learn more about [customer accounts](https://help.shopify.com/manual/customers/customer-accounts). */ private Customer customer; /** - * Whether the customer agreed to receive marketing materials. + * Whether the customer agreed to receive marketing emails at the time of purchase. + * Use this to ensure compliance with marketing consent laws and to segment customers for email campaigns. + * Learn more about [building customer segments](https://shopify.dev/docs/apps/build/marketing-analytics/customer-segments). */ private boolean customerAcceptsMarketing; @@ -239,67 +291,73 @@ public class Order implements CommentEventEmbed, MetafieldReference, MetafieldRe /** * The customer's visits and interactions with the online store before placing the order. + * Use this to understand customer behavior, attribution sources, and marketing effectiveness to optimize your sales funnel. */ private CustomerJourneySummary customerJourneySummary; /** - * A two-letter or three-letter language code, optionally followed by a region modifier. + * The customer's language and region preference at the time of purchase. For + * example, "en" for English, "fr-CA" for French (Canada), or "es-MX" for Spanish (Mexico). + * Use this to provide localized customer service and targeted marketing in the customer's preferred language. */ private String customerLocale; /** - * A list of discounts that are applied to the order, not including order edits and refunds. + * A list of discounts that are applied to the order, excluding order edits and refunds. + * Includes discount codes, automatic discounts, and other promotions that reduce the order total. */ private DiscountApplicationConnection discountApplications; /** - * The discount code used for the order. + * The discount code used for an order. Returns `null` if no discount code was applied. */ private String discountCode; /** - * The discount codes used for the order. + * The discount codes used for the order. Multiple codes can be applied to a single order. */ private List discountCodes; /** - * The primary address of the customer. - * Returns `null` if neither the shipping address nor the billing address was provided. + * The primary address of the customer, prioritizing shipping address over billing address when both are available. + * Returns `null` if neither shipping address nor billing address was provided. */ private MailingAddress displayAddress; /** - * The financial status of the order that can be shown to the merchant. - * This field doesn't capture all the details of an order's financial state. It - * should only be used for display summary purposes. + * An order's financial status for display in the Shopify admin. */ private OrderDisplayFinancialStatus displayFinancialStatus; /** - * The fulfillment status for the order that can be shown to the merchant. - * This field does not capture all the details of an order's fulfillment state. - * It should only be used for display summary purposes. - * For a more granular view of the fulfillment status, refer to the [FulfillmentOrder](https://shopify.dev/api/admin-graphql/latest/objects/FulfillmentOrder) object. + * The order's fulfillment status that displays in the Shopify admin to + * merchants. For example, an order might be unfulfilled or scheduled. + * For detailed processing, use the [`FulfillmentOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder) object. */ private OrderDisplayFulfillmentStatus displayFulfillmentStatus; /** - * A list of the disputes associated with the order. + * A list of payment disputes associated with the order, such as chargebacks or payment inquiries. + * Disputes occur when customers challenge transactions with their bank or payment provider. */ private List disputes; /** * Whether duties are included in the subtotal price of the order. + * Duties are import taxes charged by customs authorities when goods cross international borders. */ private boolean dutiesIncluded; /** - * Whether the order has had any edits applied. + * Whether the order has had any edits applied. For example, adding or removing + * line items, updating quantities, or changing prices. */ private boolean edited; /** - * The email address associated with the customer. + * The email address associated with the customer for this order. + * Used for sending order confirmations, shipping notifications, and other order-related communications. + * Returns `null` if no email address was provided during checkout. */ private String email; @@ -310,7 +368,9 @@ public class Order implements CommentEventEmbed, MetafieldReference, MetafieldRe private boolean estimatedTaxes; /** - * A list of events associated with the order. + * A list of events associated with the order. Events track significant changes + * and activities related to the order, such as creation, payment, fulfillment, + * and cancellation. */ private EventConnection events; @@ -327,34 +387,31 @@ public class Order implements CommentEventEmbed, MetafieldReference, MetafieldRe private boolean fulfillable; /** - * A list of fulfillment orders for a specific order. - * - * [FulfillmentOrder API access scopes](https://shopify.dev/api/admin-graphql/latest/objects/FulfillmentOrder#api-access-scopes) - * govern which fulfillments orders are returned. - * An API client will only receive a subset of the fulfillment orders which belong to an order - * if they don't have the necessary access scopes to view all of the fulfillment orders. - * In the case that an API client does not have the access scopes necessary to view - * any of the fulfillment orders that belong to an order, an empty array will be returned. + * A list of [fulfillment orders](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder) for an order. + * Each fulfillment order groups [line items](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-Order.fields.lineItems) + * that are fulfilled together, + * allowing an order to be processed in parts if needed. */ private FulfillmentOrderConnection fulfillmentOrders; /** - * List of shipments for the order. + * A list of shipments for the order. Fulfillments represent the physical shipment of products to customers. */ private List fulfillments; /** - * The count of fulfillments including the cancelled fulfillments. + * The total number of fulfillments for the order, including canceled ones. */ private Count fulfillmentsCount; /** - * Whether the order has been paid in full. + * Whether the order has been paid in full. This field returns `true` when the + * total amount received equals or exceeds the order total. */ private boolean fullyPaid; /** - * Whether the merchant added a timeline comment to the order. + * Whether the merchant has added a timeline comment to the order. */ private boolean hasTimelineComment; @@ -379,7 +436,7 @@ public class Order implements CommentEventEmbed, MetafieldReference, MetafieldRe private String legacyResourceId; /** - * A list of the order's line items. + * A list of the order's line items. Line items represent the individual products and quantities that make up the order. */ private LineItemConnection lineItems; @@ -394,22 +451,26 @@ public class Order implements CommentEventEmbed, MetafieldReference, MetafieldRe private LocalizedFieldConnection localizedFields; /** - * The merchant's business entity associated with the order. + * The legal business structure that the merchant operates under for this order, such as an LLC, corporation, or partnership. + * Used for tax reporting, legal compliance, and determining which business entity is responsible for the order. */ private BusinessEntity merchantBusinessEntity; /** - * Whether the order can be edited by the merchant. For example, canceled orders can’t be edited. + * Whether the order can be edited by the merchant. Returns `false` for orders + * that can't be modified, such as canceled orders or orders with specific + * payment statuses. */ private boolean merchantEditable; /** - * A list of reasons why the order can't be edited. For example, "Canceled orders can't be edited". + * A list of reasons why the order can't be edited. For example, canceled orders can't be edited. */ private List merchantEditableErrors; /** - * The application acting as the Merchant of Record for the order. + * The application acting as the Merchant of Record for the order. The Merchant + * of Record is responsible for tax collection and remittance. */ private OrderApp merchantOfRecordApp; @@ -432,9 +493,10 @@ public class Order implements CommentEventEmbed, MetafieldReference, MetafieldRe private MetafieldConnection metafields; /** - * The unique identifier for the order that appears on the order page in the Shopify admin and the Order status page. + * 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. + * This value isn't unique across multiple stores. Use this field to identify + * orders in the Shopify admin and for order tracking. */ private String name; @@ -457,29 +519,44 @@ public class Order implements CommentEventEmbed, MetafieldReference, MetafieldRe private LineItemConnection nonFulfillableLineItems; /** - * The contents of the note associated with the order. + * The note associated with the order. + * Contains additional information or instructions added by merchants or customers during the order process. + * Commonly used for special delivery instructions, gift messages, or internal processing notes. */ private String note; /** - * The total amount of additional fees at the time of order creation, in shop and presentment currencies. + * The order number used to generate the name using the store's configured order + * number prefix/suffix. This number isn't guaranteed to follow a consecutive + * integer sequence (e.g. 1, 2, 3..), nor is it guaranteed to be unique across + * multiple stores, or even for a single store. + */ + private int number; + + /** + * The total amount of all additional fees, such as import fees or taxes, that were applied when an order was created. * Returns `null` if additional fees aren't applicable. */ private MoneyBag originalTotalAdditionalFeesSet; /** - * The total amount of duties at the time of order creation, in shop and presentment currencies. - * Returns `null` if duties aren't applicable. + * The total amount of duties calculated when an order was created, before any + * modifications. Modifications include returns, refunds, order edits, and + * cancellations. Use [`currentTotalDutiesSet`](https://shopify.dev/docs/api/admin-graphql/latest/objects/order#field-Order.fields.currentTotalDutiesSet) + * to retrieve the current duties amount after adjustments. */ private MoneyBag originalTotalDutiesSet; /** * The total price of the order at the time of order creation, in shop and presentment currencies. + * Use this to compare the original order value against the current total after edits, returns, or refunds. */ private MoneyBag originalTotalPriceSet; /** - * The payment collection details for the order. + * The payment collection details for the order, including payment status, outstanding amounts, and collection information. + * Use this to understand when and how payments should be collected, especially + * for orders with deferred or installment payment terms. */ private OrderPaymentCollectionDetails paymentCollectionDetails; @@ -490,12 +567,16 @@ public class Order implements CommentEventEmbed, MetafieldReference, MetafieldRe private List paymentGatewayNames; /** - * The payment terms associated with the order. + * The payment terms associated with the order, such as net payment due dates or + * early payment discounts. Payment terms define when and how an order should be + * paid. Returns `null` if no specific payment terms were set for the order. */ private PaymentTerms paymentTerms; /** - * The phone number associated with the customer. + * The phone number associated with the customer for this order. + * Useful for contacting customers about shipping updates, delivery notifications, or order issues. + * Returns `null` if no phone number was provided during checkout. */ private String phone; @@ -511,28 +592,38 @@ public class Order implements CommentEventEmbed, MetafieldReference, MetafieldRe private Location physicalLocation; /** - * The PO number associated with the order. + * The purchase order (PO) number that's associated with an order. + * This is typically provided by business customers who require a PO number for their procurement. */ private String poNumber; /** - * The payment `CurrencyCode` of the customer for the order. + * The currency used by the customer when placing the order. For example, "USD", "EUR", or "CAD". + * This may differ from the shop's base currency when serving international customers or using multi-currency pricing. */ private CurrencyCode presentmentCurrencyCode; /** - * The date and time when the order was processed. + * The date and time in [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601) when the order was processed. * This date and time might not match the date and time when the order was created. */ private OffsetDateTime processedAt; /** - * The publication that the order was created from. + * Whether the customer also purchased items from other stores in the network. + */ + private boolean productNetwork; + + /** + * The sales channel that the order was created from, such as the [Online + * Store](https://shopify.dev/docs/apps/build/app-surfaces#online-store) or + * [Shopify POS](https://shopify.dev/docs/apps/build/app-surfaces#point-of-sale). */ private Publication publication; /** - * The purchasing entity for the order. + * The business entity that placed the order, including company details and purchasing relationships. + * Used for B2B transactions to track which company or organization is responsible for the purchase and payment terms. */ private PurchasingEntity purchasingEntity; @@ -555,58 +646,71 @@ public class Order implements CommentEventEmbed, MetafieldReference, MetafieldRe private String referrerUrl; /** - * The difference between the suggested and actual refund amount of all refunds - * that have been applied to the order. A positive value indicates a difference - * in the merchant's favor, and a negative value indicates a difference in the - * customer's favor. + * The difference between the suggested and actual refund amount of all refunds that have been applied to the order. + * A positive value indicates a difference in the merchant's favor, and a + * negative value indicates a difference in the customer's favor. */ private MoneyBag refundDiscrepancySet; /** - * Whether the order can be refunded. + * Whether the order can be refunded based on its payment transactions. + * Returns `false` for orders with no eligible payment transactions, such as + * fully refunded orders or orders with non-refundable payment methods. */ private boolean refundable; /** * A list of refunds that have been applied to the order. + * Refunds represent money returned to customers for returned items, cancellations, or adjustments. */ private List refunds; /** - * The URL of the source that the order originated from, if found in the domain registry. + * The URL of the source that the order originated from, if found in the domain + * registry. Returns `null` if the source URL isn't in the domain registry. */ private String registeredSourceUrl; /** - * Whether the order has shipping lines or at least one line item on the order that requires shipping. + * Whether the order requires physical shipping to the customer. + * Returns `false` for digital-only orders (such as gift cards or downloadable + * products) and `true` for orders with physical products that need delivery. + * Use this to determine shipping workflows and logistics requirements. */ private boolean requiresShipping; /** - * Whether any line item on the order can be restocked. + * Whether any line items on the order can be restocked into inventory. + * Returns `false` for digital products, custom items, or items that can't be resold. */ private boolean restockable; /** * The physical location where a retail order is created or completed, except for - * draft POS orders completed via the “mark as paid” flow in Admin, which return - * null. Transactions associated with the order might have been processed at a - * different location. + * draft POS orders completed using the "mark as paid" flow in the Shopify admin, + * which return `null`. Transactions associated with the order might have been + * processed at a different location. */ private Location retailLocation; /** * The order's aggregated return status for display purposes. + * Indicates the overall state of returns for the order, helping merchants track and manage the return process. */ private OrderReturnStatus returnStatus; /** - * A list of returns for the order. + * The returns associated with the order. + * Contains information about items that customers have requested to return, + * including return reasons, status, and refund details. + * Use this to track and manage the return process for order items. */ private ReturnConnection returns; /** - * The risk characteristics for the order. + * The risk assessment summary for the order. + * Provides fraud analysis and risk scoring to help you identify potentially fraudulent orders. + * Use this to make informed decisions about order fulfillment and payment processing. */ private OrderRiskSummary risk; @@ -621,48 +725,63 @@ public class Order implements CommentEventEmbed, MetafieldReference, MetafieldRe private List risks; /** - * The mailing address of the customer. + * The shipping address where the order will be delivered. + * Contains the customer's delivery location for fulfillment and shipping label generation. + * Returns `null` for digital orders or orders that don't require shipping. */ private MailingAddress shippingAddress; /** * A summary of all shipping costs on the order. + * Aggregates shipping charges, discounts, and taxes to provide a single view of delivery costs. */ private ShippingLine shippingLine; /** - * A list of the order's shipping lines. + * The shipping methods applied to the order. + * Each shipping line represents a shipping option chosen during checkout, including the carrier, service level, and cost. + * Use this to understand shipping charges and delivery options for the order. */ private ShippingLineConnection shippingLines; /** - * The Shopify Protect details for the order. If Shopify Protect is disabled for the shop, then this will be null. + * The Shopify Protect details for the order, including fraud protection status and coverage information. + * Shopify Protect helps protect eligible orders against fraudulent chargebacks. + * Returns `null` if Shopify Protect is disabled for the shop or the order isn't eligible for protection. + * Learn more about [Shopify Protect](https://www.shopify.com/protect). */ private ShopifyProtectOrderSummary shopifyProtect; /** * 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. + * For example, "1234-12-1000" or "111-98567-54". The [`receiptNumber`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-receiptNumber) + * field is derived from this value for POS orders. */ private String sourceIdentifier; /** - * The name of the source associated with the order. + * The name of the source associated with the order, such as "web", "mobile_app", + * or "pos". Use this field to identify the platform where the order was placed. */ private String sourceName; /** - * The staff member associated with the order. + * The staff member who created or is responsible for the order. + * Useful for tracking which team member handled phone orders, manual orders, or order modifications. + * Returns `null` for orders created directly by customers through the online store. */ private StaffMember staffMember; /** - * The URL where the customer can check the order's current status. + * The URL where customers can check their order's current status, including tracking information and delivery updates. + * Provides order tracking links in emails, apps, or customer communications. */ private String statusPageUrl; /** - * The sum of the quantities for all line items that contribute to the order's subtotal price. + * The sum of quantities for all line items that contribute to the order's subtotal price. + * This excludes quantities for items like tips, shipping costs, or gift cards that don't affect the subtotal. + * Use this to quickly understand the total item count for pricing calculations. */ private int subtotalLineItemsQuantity; @@ -679,7 +798,8 @@ public class Order implements CommentEventEmbed, MetafieldReference, MetafieldRe private MoneyBag subtotalPriceSet; /** - * A suggested refund for the order. + * A calculated refund suggestion for the order based on specified line items, shipping, and duties. + * Use this to preview refund amounts, taxes, and processing fees before creating an actual refund. */ private SuggestedRefund suggestedRefund; @@ -693,6 +813,9 @@ public class Order implements CommentEventEmbed, MetafieldReference, MetafieldRe /** * Whether taxes are exempt on the order. + * Returns `true` for orders where the customer or business has a valid tax + * exemption, such as non-profit organizations or tax-free purchases. + * Use this to understand if tax calculations were skipped during checkout. */ private boolean taxExempt; @@ -704,6 +827,8 @@ public class Order implements CommentEventEmbed, MetafieldReference, MetafieldRe /** * Whether taxes are included in the subtotal price of the order. + * When `true`, the subtotal and line item prices include tax amounts. When + * `false`, taxes are calculated and displayed separately. */ private boolean taxesIncluded; @@ -727,7 +852,7 @@ public class Order implements CommentEventEmbed, MetafieldReference, MetafieldRe private MoneyBag totalCapturableSet; /** - * The total rounding adjustment applied to payments or refunds for an Order + * The total rounding adjustment applied to payments or refunds for an order * involving cash payments. Applies to some countries where cash transactions are * rounded to the nearest currency denomination. */ @@ -796,7 +921,8 @@ public class Order implements CommentEventEmbed, MetafieldReference, MetafieldRe private String totalShippingPrice; /** - * The total shipping amount before discounts and returns, in shop and presentment currencies. + * The total shipping costs returned to the customer, in shop and presentment + * currencies. This includes fees and any related discounts that were refunded. */ private MoneyBag totalShippingPriceSet; @@ -841,7 +967,7 @@ public class Order implements CommentEventEmbed, MetafieldReference, MetafieldRe private boolean unpaid; /** - * The date and time when the order was modified last. + * The date and time in [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601) when the order was last modified. */ private OffsetDateTime updatedAt; @@ -849,7 +975,7 @@ public Order() { } /** - * A list of additional fees applied to the order. + * A list of additional fees applied to an order, such as duties, import fees, or [tax lines](https://shopify.dev/docs/api/admin-graphql/latest/objects/order#field-Order.fields.additionalFees.taxLines). */ public List getAdditionalFees() { return additionalFees; @@ -860,7 +986,8 @@ public void setAdditionalFees(List additionalFees) { } /** - * A list of sales agreements associated with the order. + * A list of sales agreements associated with the order, such as contracts + * defining payment terms, or delivery schedules between merchants and customers. */ public SalesAgreementConnection getAgreements() { return agreements; @@ -871,7 +998,9 @@ public void setAgreements(SalesAgreementConnection agreements) { } /** - * A list of messages that appear on the order page in the Shopify admin. + * A list of messages that appear on the **Orders** page in the Shopify admin. + * These alerts provide merchants with important information about an order's + * status or required actions. */ public List getAlerts() { return alerts; @@ -882,7 +1011,9 @@ public void setAlerts(List alerts) { } /** - * The application that created the order. + * The application that created the order. For example, "Online Store", "Point of Sale", or a custom app name. + * Use this to identify the order source for attribution and fulfillment workflows. + * Learn more about [building apps for orders and fulfillment](https://shopify.dev/docs/apps/build/orders-fulfillment). */ public OrderApp getApp() { return app; @@ -893,7 +1024,8 @@ public void setApp(OrderApp app) { } /** - * The billing address of the customer. + * The billing address associated with the payment method selected by the customer for an order. + * Returns `null` if no billing address was provided during checkout. */ public MailingAddress getBillingAddress() { return billingAddress; @@ -904,7 +1036,9 @@ public void setBillingAddress(MailingAddress billingAddress) { } /** - * Whether the billing address matches the shipping address. + * Whether the billing address matches the [shipping address](https://shopify.dev/docs/api/admin-graphql/latest/objects/order#field-Order.fields.shippingAddress). + * Returns `true` if both addresses are the same, and `false` if they're + * different or if an address is missing. */ public boolean getBillingAddressMatchesShippingAddress() { return billingAddressMatchesShippingAddress; @@ -916,7 +1050,9 @@ public void setBillingAddressMatchesShippingAddress( } /** - * Whether the order can be manually marked as paid. + * Whether an order can be manually marked as paid. Returns `false` if the order + * is already paid, is canceled, has pending [Shopify Payments](https://help.shopify.com/en/manual/payments/shopify-payments/payouts) + * transactions, or has a negative payment amount. */ public boolean getCanMarkAsPaid() { return canMarkAsPaid; @@ -927,7 +1063,8 @@ public void setCanMarkAsPaid(boolean canMarkAsPaid) { } /** - * Whether a customer email exists for the order. + * Whether order notifications can be sent to the customer. + * Returns `true` if the customer has a valid [email address](https://shopify.dev/docs/api/admin-graphql/latest/objects/order#field-Order.fields.email). */ public boolean getCanNotifyCustomer() { return canNotifyCustomer; @@ -938,8 +1075,9 @@ public void setCanNotifyCustomer(boolean canNotifyCustomer) { } /** - * The reason provided when the order was canceled. - * Returns `null` if the order wasn't canceled. + * The reason provided for an order cancellation. For example, a merchant might + * cancel an order if there's insufficient inventory. Returns `null` if the order + * hasn't been canceled. */ public OrderCancelReason getCancelReason() { return cancelReason; @@ -950,7 +1088,8 @@ public void setCancelReason(OrderCancelReason cancelReason) { } /** - * Cancellation details for the order. + * Details of an order's cancellation, if it has been canceled. This includes the + * reason, date, and any [staff notes](https://shopify.dev/api/admin-graphql/latest/objects/OrderCancellation#field-OrderCancellation.fields.staffNote). */ public OrderCancellation getCancellation() { return cancellation; @@ -961,8 +1100,8 @@ public void setCancellation(OrderCancellation cancellation) { } /** - * The date and time when the order was canceled. - * Returns `null` if the order wasn't canceled. + * The date and time in [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601) when an order was canceled. + * Returns `null` if the order hasn't been canceled. */ public OffsetDateTime getCancelledAt() { return cancelledAt; @@ -973,7 +1112,9 @@ public void setCancelledAt(OffsetDateTime cancelledAt) { } /** - * Whether payment for the order can be captured. + * Whether an authorized payment for an order can be captured. + * Returns `true` if an authorized payment exists that hasn't been fully captured + * yet. Learn more about [capturing payments](https://help.shopify.com/en/manual/fulfillment/managing-orders/payments/capturing-payments). */ public boolean getCapturable() { return capturable; @@ -984,7 +1125,8 @@ public void setCapturable(boolean capturable) { } /** - * The total order-level discount amount, before returns, in shop currency. + * The total discount amount that applies to the entire order in shop currency, + * before returns, refunds, order edits, and cancellations. */ public String getCartDiscountAmount() { return cartDiscountAmount; @@ -995,7 +1137,9 @@ public void setCartDiscountAmount(String cartDiscountAmount) { } /** - * The total order-level discount amount, before returns, in shop and presentment currencies. + * The total discount amount applied at the time the order was created, displayed + * in both shop and presentment currencies, before returns, refunds, order edits, + * and cancellations. This field only includes discounts applied to the entire order. */ public MoneyBag getCartDiscountAmountSet() { return cartDiscountAmountSet; @@ -1006,7 +1150,9 @@ public void setCartDiscountAmountSet(MoneyBag cartDiscountAmountSet) { } /** - * The channel that created the order. + * The sales channel from which an order originated, such as the [Online + * Store](https://shopify.dev/docs/apps/build/app-surfaces#online-store) or + * [Shopify POS](https://shopify.dev/docs/apps/build/app-surfaces#point-of-sale). */ public Channel getChannel() { return channel; @@ -1017,7 +1163,8 @@ public void setChannel(Channel channel) { } /** - * Details about the channel that created the order. + * Details about the sales channel that created the order, such as the [channel app type](https://shopify.dev/docs/api/admin-graphql/latest/objects/channel#field-Channel.fields.channelType) + * and [channel name](https://shopify.dev/docs/api/admin-graphql/latest/objects/ChannelDefinition#field-ChannelDefinition.fields.channelName), which helps to track order sources. */ public ChannelInformation getChannelInformation() { return channelInformation; @@ -1028,7 +1175,7 @@ public void setChannelInformation(ChannelInformation channelInformation) { } /** - * The IP address of the API client that created the order. + * The IP address of the customer who placed the order. Useful for fraud detection and geographic analysis. */ public String getClientIp() { return clientIp; @@ -1039,7 +1186,8 @@ public void setClientIp(String clientIp) { } /** - * Whether the order is closed. + * Whether an order is closed. An order is considered closed if all its line + * items have been fulfilled or canceled, and all financial transactions are complete. */ public boolean getClosed() { return closed; @@ -1050,8 +1198,10 @@ public void setClosed(boolean closed) { } /** - * The date and time when the order was closed. - * Returns `null` if the order isn't closed. + * The date and time [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601) + * when an order was closed. Shopify automatically records this timestamp when + * all items have been fulfilled or canceled, and all financial transactions are + * complete. Returns `null` if the order isn't closed. */ public OffsetDateTime getClosedAt() { return closedAt; @@ -1062,9 +1212,8 @@ public void setClosedAt(OffsetDateTime closedAt) { } /** - * A randomly generated alpha-numeric identifier for the order that may be shown to the customer - * instead of the sequential order name. For example, "XPAV284CT", "R50KELTJP" or "35PKUN0UJ". - * This value isn't guaranteed to be unique. + * A customer-facing order identifier, often shown instead of the sequential order name. + * It uses a random alphanumeric format (for example, `XPAV284CT`) and isn't guaranteed to be unique across orders. */ public String getConfirmationNumber() { return confirmationNumber; @@ -1075,7 +1224,11 @@ public void setConfirmationNumber(String confirmationNumber) { } /** - * Whether inventory has been reserved for the order. + * Whether inventory has been reserved for an order. Returns `true` if inventory + * quantities for an order's [line + * items](https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItem) + * have been reserved. + * Learn more about [managing inventory quantities and states](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states). */ public boolean getConfirmed() { return confirmed; @@ -1086,7 +1239,9 @@ public void setConfirmed(boolean confirmed) { } /** - * Date and time when the order was created in Shopify. + * The date and time in [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601) + * when an order was created. This timestamp is set when the customer completes + * checkout and remains unchanged throughout an order's lifecycle. */ public OffsetDateTime getCreatedAt() { return createdAt; @@ -1097,7 +1252,7 @@ public void setCreatedAt(OffsetDateTime createdAt) { } /** - * The shop currency when the order was placed. + * The shop currency when the order was placed. For example, "USD" or "CAD". */ public CurrencyCode getCurrencyCode() { return currencyCode; @@ -1108,7 +1263,11 @@ public void setCurrencyCode(CurrencyCode currencyCode) { } /** - * The current order-level discount amount after all order updates, in shop and presentment currencies. + * The current total of all discounts applied to the entire order, after returns, + * refunds, order edits, and cancellations. This includes discount codes, + * automatic discounts, and other promotions that affect the whole order rather + * than individual line items. To get the original discount amount at the time of + * order creation, use the [`cartDiscountAmountSet`](https://shopify.dev/docs/api/admin-graphql/latest/objects/order#field-Order.fields.cartDiscountAmountSet) field. */ public MoneyBag getCurrentCartDiscountAmountSet() { return currentCartDiscountAmountSet; @@ -1119,9 +1278,9 @@ public void setCurrentCartDiscountAmountSet(MoneyBag currentCartDiscountAmountSe } /** - * The current shipping price after applying refunds and discounts. If the parent - * `order.taxesIncluded` field is true, then this price includes taxes. - * Otherwise, this field is the pre-tax price. + * The current shipping price after applying refunds and discounts. + * If the parent `order.taxesIncluded` field is true, then this price includes + * taxes. Otherwise, this field is the pre-tax price. */ public MoneyBag getCurrentShippingPriceSet() { return currentShippingPriceSet; @@ -1132,7 +1291,8 @@ public void setCurrentShippingPriceSet(MoneyBag currentShippingPriceSet) { } /** - * The sum of the quantities for all line items that contribute to the order's current subtotal price. + * The current sum of the quantities for all line items that contribute to the + * order's subtotal price, after returns, refunds, order edits, and cancellations. */ public int getCurrentSubtotalLineItemsQuantity() { return currentSubtotalLineItemsQuantity; @@ -1143,8 +1303,8 @@ public void setCurrentSubtotalLineItemsQuantity(int currentSubtotalLineItemsQuan } /** - * The sum of the prices for all line items after discounts and returns, in shop and presentment currencies. - * If `taxesIncluded` is `true`, then the subtotal also includes tax. + * The total price of the order, after returns and refunds, in shop and presentment currencies. + * This includes taxes and discounts. */ public MoneyBag getCurrentSubtotalPriceSet() { return currentSubtotalPriceSet; @@ -1167,8 +1327,10 @@ public void setCurrentTaxLines(List currentTaxLines) { } /** - * The total amount of additional fees after returns, in shop and presentment currencies. - * Returns `null` if there are no additional fees for the order. + * The current total of all additional fees for an order, after any returns or + * modifications. Modifications include returns, refunds, order edits, and + * cancellations. Additional fees can include charges such as duties, import + * fees, and special handling. */ public MoneyBag getCurrentTotalAdditionalFeesSet() { return currentTotalAdditionalFeesSet; @@ -1179,7 +1341,7 @@ public void setCurrentTotalAdditionalFeesSet(MoneyBag currentTotalAdditionalFees } /** - * The total amount discounted on the order after returns, in shop and presentment currencies. + * The total amount discounted on the order after returns and refunds, in shop and presentment currencies. * This includes both order and line level discounts. */ public MoneyBag getCurrentTotalDiscountsSet() { @@ -1191,8 +1353,8 @@ public void setCurrentTotalDiscountsSet(MoneyBag currentTotalDiscountsSet) { } /** - * The total amount of duties after returns, in shop and presentment currencies. - * Returns `null` if duties aren't applicable. + * The current total duties amount for an order, after any returns or + * modifications. Modifications include returns, refunds, order edits, and cancellations. */ public MoneyBag getCurrentTotalDutiesSet() { return currentTotalDutiesSet; @@ -1216,7 +1378,7 @@ public void setCurrentTotalPriceSet(MoneyBag currentTotalPriceSet) { /** * The sum of the prices of all tax lines applied to line items on the order, - * after returns, in shop and presentment currencies. + * after returns and refunds, in shop and presentment currencies. */ public MoneyBag getCurrentTotalTaxSet() { return currentTotalTaxSet; @@ -1227,7 +1389,7 @@ public void setCurrentTotalTaxSet(MoneyBag currentTotalTaxSet) { } /** - * The total weight of the order after returns, in grams. + * The total weight of the order after returns and refunds, in grams. */ public String getCurrentTotalWeight() { return currentTotalWeight; @@ -1238,8 +1400,8 @@ public void setCurrentTotalWeight(String currentTotalWeight) { } /** - * A list of additional merchant-facing details that have been added to the - * order. For example, whether an order is a customer's first. + * A list of additional information that has been attached to the order. For + * example, gift message, delivery instructions, or internal notes. */ public List getCustomAttributes() { return customAttributes; @@ -1250,7 +1412,9 @@ public void setCustomAttributes(List customAttributes) { } /** - * The customer that placed the order. + * The customer who placed an order. Returns `null` if an order was created + * through a checkout without customer authentication, such as a guest checkout. + * Learn more about [customer accounts](https://help.shopify.com/manual/customers/customer-accounts). */ public Customer getCustomer() { return customer; @@ -1261,7 +1425,9 @@ public void setCustomer(Customer customer) { } /** - * Whether the customer agreed to receive marketing materials. + * Whether the customer agreed to receive marketing emails at the time of purchase. + * Use this to ensure compliance with marketing consent laws and to segment customers for email campaigns. + * Learn more about [building customer segments](https://shopify.dev/docs/apps/build/marketing-analytics/customer-segments). */ public boolean getCustomerAcceptsMarketing() { return customerAcceptsMarketing; @@ -1284,6 +1450,7 @@ public void setCustomerJourney(CustomerJourney customerJourney) { /** * The customer's visits and interactions with the online store before placing the order. + * Use this to understand customer behavior, attribution sources, and marketing effectiveness to optimize your sales funnel. */ public CustomerJourneySummary getCustomerJourneySummary() { return customerJourneySummary; @@ -1294,7 +1461,9 @@ public void setCustomerJourneySummary(CustomerJourneySummary customerJourneySumm } /** - * A two-letter or three-letter language code, optionally followed by a region modifier. + * The customer's language and region preference at the time of purchase. For + * example, "en" for English, "fr-CA" for French (Canada), or "es-MX" for Spanish (Mexico). + * Use this to provide localized customer service and targeted marketing in the customer's preferred language. */ public String getCustomerLocale() { return customerLocale; @@ -1305,7 +1474,8 @@ public void setCustomerLocale(String customerLocale) { } /** - * A list of discounts that are applied to the order, not including order edits and refunds. + * A list of discounts that are applied to the order, excluding order edits and refunds. + * Includes discount codes, automatic discounts, and other promotions that reduce the order total. */ public DiscountApplicationConnection getDiscountApplications() { return discountApplications; @@ -1316,7 +1486,7 @@ public void setDiscountApplications(DiscountApplicationConnection discountApplic } /** - * The discount code used for the order. + * The discount code used for an order. Returns `null` if no discount code was applied. */ public String getDiscountCode() { return discountCode; @@ -1327,7 +1497,7 @@ public void setDiscountCode(String discountCode) { } /** - * The discount codes used for the order. + * The discount codes used for the order. Multiple codes can be applied to a single order. */ public List getDiscountCodes() { return discountCodes; @@ -1338,8 +1508,8 @@ public void setDiscountCodes(List discountCodes) { } /** - * The primary address of the customer. - * Returns `null` if neither the shipping address nor the billing address was provided. + * The primary address of the customer, prioritizing shipping address over billing address when both are available. + * Returns `null` if neither shipping address nor billing address was provided. */ public MailingAddress getDisplayAddress() { return displayAddress; @@ -1350,9 +1520,7 @@ public void setDisplayAddress(MailingAddress displayAddress) { } /** - * The financial status of the order that can be shown to the merchant. - * This field doesn't capture all the details of an order's financial state. It - * should only be used for display summary purposes. + * An order's financial status for display in the Shopify admin. */ public OrderDisplayFinancialStatus getDisplayFinancialStatus() { return displayFinancialStatus; @@ -1363,10 +1531,9 @@ public void setDisplayFinancialStatus(OrderDisplayFinancialStatus displayFinanci } /** - * The fulfillment status for the order that can be shown to the merchant. - * This field does not capture all the details of an order's fulfillment state. - * It should only be used for display summary purposes. - * For a more granular view of the fulfillment status, refer to the [FulfillmentOrder](https://shopify.dev/api/admin-graphql/latest/objects/FulfillmentOrder) object. + * The order's fulfillment status that displays in the Shopify admin to + * merchants. For example, an order might be unfulfilled or scheduled. + * For detailed processing, use the [`FulfillmentOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder) object. */ public OrderDisplayFulfillmentStatus getDisplayFulfillmentStatus() { return displayFulfillmentStatus; @@ -1377,7 +1544,8 @@ public void setDisplayFulfillmentStatus(OrderDisplayFulfillmentStatus displayFul } /** - * A list of the disputes associated with the order. + * A list of payment disputes associated with the order, such as chargebacks or payment inquiries. + * Disputes occur when customers challenge transactions with their bank or payment provider. */ public List getDisputes() { return disputes; @@ -1389,6 +1557,7 @@ public void setDisputes(List disputes) { /** * Whether duties are included in the subtotal price of the order. + * Duties are import taxes charged by customs authorities when goods cross international borders. */ public boolean getDutiesIncluded() { return dutiesIncluded; @@ -1399,7 +1568,8 @@ public void setDutiesIncluded(boolean dutiesIncluded) { } /** - * Whether the order has had any edits applied. + * Whether the order has had any edits applied. For example, adding or removing + * line items, updating quantities, or changing prices. */ public boolean getEdited() { return edited; @@ -1410,7 +1580,9 @@ public void setEdited(boolean edited) { } /** - * The email address associated with the customer. + * The email address associated with the customer for this order. + * Used for sending order confirmations, shipping notifications, and other order-related communications. + * Returns `null` if no email address was provided during checkout. */ public String getEmail() { return email; @@ -1433,7 +1605,9 @@ public void setEstimatedTaxes(boolean estimatedTaxes) { } /** - * A list of events associated with the order. + * A list of events associated with the order. Events track significant changes + * and activities related to the order, such as creation, payment, fulfillment, + * and cancellation. */ public EventConnection getEvents() { return events; @@ -1468,14 +1642,10 @@ public void setFulfillable(boolean fulfillable) { } /** - * A list of fulfillment orders for a specific order. - * - * [FulfillmentOrder API access scopes](https://shopify.dev/api/admin-graphql/latest/objects/FulfillmentOrder#api-access-scopes) - * govern which fulfillments orders are returned. - * An API client will only receive a subset of the fulfillment orders which belong to an order - * if they don't have the necessary access scopes to view all of the fulfillment orders. - * In the case that an API client does not have the access scopes necessary to view - * any of the fulfillment orders that belong to an order, an empty array will be returned. + * A list of [fulfillment orders](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder) for an order. + * Each fulfillment order groups [line items](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-Order.fields.lineItems) + * that are fulfilled together, + * allowing an order to be processed in parts if needed. */ public FulfillmentOrderConnection getFulfillmentOrders() { return fulfillmentOrders; @@ -1486,7 +1656,7 @@ public void setFulfillmentOrders(FulfillmentOrderConnection fulfillmentOrders) { } /** - * List of shipments for the order. + * A list of shipments for the order. Fulfillments represent the physical shipment of products to customers. */ public List getFulfillments() { return fulfillments; @@ -1497,7 +1667,7 @@ public void setFulfillments(List fulfillments) { } /** - * The count of fulfillments including the cancelled fulfillments. + * The total number of fulfillments for the order, including canceled ones. */ public Count getFulfillmentsCount() { return fulfillmentsCount; @@ -1508,7 +1678,8 @@ public void setFulfillmentsCount(Count fulfillmentsCount) { } /** - * Whether the order has been paid in full. + * Whether the order has been paid in full. This field returns `true` when the + * total amount received equals or exceeds the order total. */ public boolean getFullyPaid() { return fullyPaid; @@ -1519,7 +1690,7 @@ public void setFullyPaid(boolean fullyPaid) { } /** - * Whether the merchant added a timeline comment to the order. + * Whether the merchant has added a timeline comment to the order. */ public boolean getHasTimelineComment() { return hasTimelineComment; @@ -1574,7 +1745,7 @@ public void setLegacyResourceId(String legacyResourceId) { } /** - * A list of the order's line items. + * A list of the order's line items. Line items represent the individual products and quantities that make up the order. */ public LineItemConnection getLineItems() { return lineItems; @@ -1607,7 +1778,8 @@ public void setLocalizedFields(LocalizedFieldConnection localizedFields) { } /** - * The merchant's business entity associated with the order. + * The legal business structure that the merchant operates under for this order, such as an LLC, corporation, or partnership. + * Used for tax reporting, legal compliance, and determining which business entity is responsible for the order. */ public BusinessEntity getMerchantBusinessEntity() { return merchantBusinessEntity; @@ -1618,7 +1790,9 @@ public void setMerchantBusinessEntity(BusinessEntity merchantBusinessEntity) { } /** - * Whether the order can be edited by the merchant. For example, canceled orders can’t be edited. + * Whether the order can be edited by the merchant. Returns `false` for orders + * that can't be modified, such as canceled orders or orders with specific + * payment statuses. */ public boolean getMerchantEditable() { return merchantEditable; @@ -1629,7 +1803,7 @@ public void setMerchantEditable(boolean merchantEditable) { } /** - * A list of reasons why the order can't be edited. For example, "Canceled orders can't be edited". + * A list of reasons why the order can't be edited. For example, canceled orders can't be edited. */ public List getMerchantEditableErrors() { return merchantEditableErrors; @@ -1640,7 +1814,8 @@ public void setMerchantEditableErrors(List merchantEditableErrors) { } /** - * The application acting as the Merchant of Record for the order. + * The application acting as the Merchant of Record for the order. The Merchant + * of Record is responsible for tax collection and remittance. */ public OrderApp getMerchantOfRecordApp() { return merchantOfRecordApp; @@ -1687,9 +1862,10 @@ public void setMetafields(MetafieldConnection metafields) { } /** - * The unique identifier for the order that appears on the order page in the Shopify admin and the Order status page. + * 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. + * This value isn't unique across multiple stores. Use this field to identify + * orders in the Shopify admin and for order tracking. */ public String getName() { return name; @@ -1736,7 +1912,9 @@ public void setNonFulfillableLineItems(LineItemConnection nonFulfillableLineItem } /** - * The contents of the note associated with the order. + * The note associated with the order. + * Contains additional information or instructions added by merchants or customers during the order process. + * Commonly used for special delivery instructions, gift messages, or internal processing notes. */ public String getNote() { return note; @@ -1747,7 +1925,21 @@ public void setNote(String note) { } /** - * The total amount of additional fees at the time of order creation, in shop and presentment currencies. + * The order number used to generate the name using the store's configured order + * number prefix/suffix. This number isn't guaranteed to follow a consecutive + * integer sequence (e.g. 1, 2, 3..), nor is it guaranteed to be unique across + * multiple stores, or even for a single store. + */ + public int getNumber() { + return number; + } + + public void setNumber(int number) { + this.number = number; + } + + /** + * The total amount of all additional fees, such as import fees or taxes, that were applied when an order was created. * Returns `null` if additional fees aren't applicable. */ public MoneyBag getOriginalTotalAdditionalFeesSet() { @@ -1759,8 +1951,10 @@ public void setOriginalTotalAdditionalFeesSet(MoneyBag originalTotalAdditionalFe } /** - * The total amount of duties at the time of order creation, in shop and presentment currencies. - * Returns `null` if duties aren't applicable. + * The total amount of duties calculated when an order was created, before any + * modifications. Modifications include returns, refunds, order edits, and + * cancellations. Use [`currentTotalDutiesSet`](https://shopify.dev/docs/api/admin-graphql/latest/objects/order#field-Order.fields.currentTotalDutiesSet) + * to retrieve the current duties amount after adjustments. */ public MoneyBag getOriginalTotalDutiesSet() { return originalTotalDutiesSet; @@ -1772,6 +1966,7 @@ public void setOriginalTotalDutiesSet(MoneyBag originalTotalDutiesSet) { /** * The total price of the order at the time of order creation, in shop and presentment currencies. + * Use this to compare the original order value against the current total after edits, returns, or refunds. */ public MoneyBag getOriginalTotalPriceSet() { return originalTotalPriceSet; @@ -1782,7 +1977,9 @@ public void setOriginalTotalPriceSet(MoneyBag originalTotalPriceSet) { } /** - * The payment collection details for the order. + * The payment collection details for the order, including payment status, outstanding amounts, and collection information. + * Use this to understand when and how payments should be collected, especially + * for orders with deferred or installment payment terms. */ public OrderPaymentCollectionDetails getPaymentCollectionDetails() { return paymentCollectionDetails; @@ -1805,7 +2002,9 @@ public void setPaymentGatewayNames(List paymentGatewayNames) { } /** - * The payment terms associated with the order. + * The payment terms associated with the order, such as net payment due dates or + * early payment discounts. Payment terms define when and how an order should be + * paid. Returns `null` if no specific payment terms were set for the order. */ public PaymentTerms getPaymentTerms() { return paymentTerms; @@ -1816,7 +2015,9 @@ public void setPaymentTerms(PaymentTerms paymentTerms) { } /** - * The phone number associated with the customer. + * The phone number associated with the customer for this order. + * Useful for contacting customers about shipping updates, delivery notifications, or order issues. + * Returns `null` if no phone number was provided during checkout. */ public String getPhone() { return phone; @@ -1844,7 +2045,8 @@ public void setPhysicalLocation(Location physicalLocation) { } /** - * The PO number associated with the order. + * The purchase order (PO) number that's associated with an order. + * This is typically provided by business customers who require a PO number for their procurement. */ public String getPoNumber() { return poNumber; @@ -1855,7 +2057,8 @@ public void setPoNumber(String poNumber) { } /** - * The payment `CurrencyCode` of the customer for the order. + * The currency used by the customer when placing the order. For example, "USD", "EUR", or "CAD". + * This may differ from the shop's base currency when serving international customers or using multi-currency pricing. */ public CurrencyCode getPresentmentCurrencyCode() { return presentmentCurrencyCode; @@ -1866,7 +2069,7 @@ public void setPresentmentCurrencyCode(CurrencyCode presentmentCurrencyCode) { } /** - * The date and time when the order was processed. + * The date and time in [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601) when the order was processed. * This date and time might not match the date and time when the order was created. */ public OffsetDateTime getProcessedAt() { @@ -1878,7 +2081,20 @@ public void setProcessedAt(OffsetDateTime processedAt) { } /** - * The publication that the order was created from. + * Whether the customer also purchased items from other stores in the network. + */ + public boolean getProductNetwork() { + return productNetwork; + } + + public void setProductNetwork(boolean productNetwork) { + this.productNetwork = productNetwork; + } + + /** + * The sales channel that the order was created from, such as the [Online + * Store](https://shopify.dev/docs/apps/build/app-surfaces#online-store) or + * [Shopify POS](https://shopify.dev/docs/apps/build/app-surfaces#point-of-sale). */ public Publication getPublication() { return publication; @@ -1889,7 +2105,8 @@ public void setPublication(Publication publication) { } /** - * The purchasing entity for the order. + * The business entity that placed the order, including company details and purchasing relationships. + * Used for B2B transactions to track which company or organization is responsible for the purchase and payment terms. */ public PurchasingEntity getPurchasingEntity() { return purchasingEntity; @@ -1936,10 +2153,9 @@ public void setReferrerUrl(String referrerUrl) { } /** - * The difference between the suggested and actual refund amount of all refunds - * that have been applied to the order. A positive value indicates a difference - * in the merchant's favor, and a negative value indicates a difference in the - * customer's favor. + * The difference between the suggested and actual refund amount of all refunds that have been applied to the order. + * A positive value indicates a difference in the merchant's favor, and a + * negative value indicates a difference in the customer's favor. */ public MoneyBag getRefundDiscrepancySet() { return refundDiscrepancySet; @@ -1950,7 +2166,9 @@ public void setRefundDiscrepancySet(MoneyBag refundDiscrepancySet) { } /** - * Whether the order can be refunded. + * Whether the order can be refunded based on its payment transactions. + * Returns `false` for orders with no eligible payment transactions, such as + * fully refunded orders or orders with non-refundable payment methods. */ public boolean getRefundable() { return refundable; @@ -1962,6 +2180,7 @@ public void setRefundable(boolean refundable) { /** * A list of refunds that have been applied to the order. + * Refunds represent money returned to customers for returned items, cancellations, or adjustments. */ public List getRefunds() { return refunds; @@ -1972,7 +2191,8 @@ public void setRefunds(List refunds) { } /** - * The URL of the source that the order originated from, if found in the domain registry. + * The URL of the source that the order originated from, if found in the domain + * registry. Returns `null` if the source URL isn't in the domain registry. */ public String getRegisteredSourceUrl() { return registeredSourceUrl; @@ -1983,7 +2203,10 @@ public void setRegisteredSourceUrl(String registeredSourceUrl) { } /** - * Whether the order has shipping lines or at least one line item on the order that requires shipping. + * Whether the order requires physical shipping to the customer. + * Returns `false` for digital-only orders (such as gift cards or downloadable + * products) and `true` for orders with physical products that need delivery. + * Use this to determine shipping workflows and logistics requirements. */ public boolean getRequiresShipping() { return requiresShipping; @@ -1994,7 +2217,8 @@ public void setRequiresShipping(boolean requiresShipping) { } /** - * Whether any line item on the order can be restocked. + * Whether any line items on the order can be restocked into inventory. + * Returns `false` for digital products, custom items, or items that can't be resold. */ public boolean getRestockable() { return restockable; @@ -2006,9 +2230,9 @@ public void setRestockable(boolean restockable) { /** * The physical location where a retail order is created or completed, except for - * draft POS orders completed via the “mark as paid” flow in Admin, which return - * null. Transactions associated with the order might have been processed at a - * different location. + * draft POS orders completed using the "mark as paid" flow in the Shopify admin, + * which return `null`. Transactions associated with the order might have been + * processed at a different location. */ public Location getRetailLocation() { return retailLocation; @@ -2020,6 +2244,7 @@ public void setRetailLocation(Location retailLocation) { /** * The order's aggregated return status for display purposes. + * Indicates the overall state of returns for the order, helping merchants track and manage the return process. */ public OrderReturnStatus getReturnStatus() { return returnStatus; @@ -2030,7 +2255,10 @@ public void setReturnStatus(OrderReturnStatus returnStatus) { } /** - * A list of returns for the order. + * The returns associated with the order. + * Contains information about items that customers have requested to return, + * including return reasons, status, and refund details. + * Use this to track and manage the return process for order items. */ public ReturnConnection getReturns() { return returns; @@ -2041,7 +2269,9 @@ public void setReturns(ReturnConnection returns) { } /** - * The risk characteristics for the order. + * The risk assessment summary for the order. + * Provides fraud analysis and risk scoring to help you identify potentially fraudulent orders. + * Use this to make informed decisions about order fulfillment and payment processing. */ public OrderRiskSummary getRisk() { return risk; @@ -2074,7 +2304,9 @@ public void setRisks(List risks) { } /** - * The mailing address of the customer. + * The shipping address where the order will be delivered. + * Contains the customer's delivery location for fulfillment and shipping label generation. + * Returns `null` for digital orders or orders that don't require shipping. */ public MailingAddress getShippingAddress() { return shippingAddress; @@ -2086,6 +2318,7 @@ public void setShippingAddress(MailingAddress shippingAddress) { /** * A summary of all shipping costs on the order. + * Aggregates shipping charges, discounts, and taxes to provide a single view of delivery costs. */ public ShippingLine getShippingLine() { return shippingLine; @@ -2096,7 +2329,9 @@ public void setShippingLine(ShippingLine shippingLine) { } /** - * A list of the order's shipping lines. + * The shipping methods applied to the order. + * Each shipping line represents a shipping option chosen during checkout, including the carrier, service level, and cost. + * Use this to understand shipping charges and delivery options for the order. */ public ShippingLineConnection getShippingLines() { return shippingLines; @@ -2107,7 +2342,10 @@ public void setShippingLines(ShippingLineConnection shippingLines) { } /** - * The Shopify Protect details for the order. If Shopify Protect is disabled for the shop, then this will be null. + * The Shopify Protect details for the order, including fraud protection status and coverage information. + * Shopify Protect helps protect eligible orders against fraudulent chargebacks. + * Returns `null` if Shopify Protect is disabled for the shop or the order isn't eligible for protection. + * Learn more about [Shopify Protect](https://www.shopify.com/protect). */ public ShopifyProtectOrderSummary getShopifyProtect() { return shopifyProtect; @@ -2119,7 +2357,8 @@ public void setShopifyProtect(ShopifyProtectOrderSummary shopifyProtect) { /** * 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. + * For example, "1234-12-1000" or "111-98567-54". The [`receiptNumber`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-receiptNumber) + * field is derived from this value for POS orders. */ public String getSourceIdentifier() { return sourceIdentifier; @@ -2130,7 +2369,8 @@ public void setSourceIdentifier(String sourceIdentifier) { } /** - * The name of the source associated with the order. + * The name of the source associated with the order, such as "web", "mobile_app", + * or "pos". Use this field to identify the platform where the order was placed. */ public String getSourceName() { return sourceName; @@ -2141,7 +2381,9 @@ public void setSourceName(String sourceName) { } /** - * The staff member associated with the order. + * The staff member who created or is responsible for the order. + * Useful for tracking which team member handled phone orders, manual orders, or order modifications. + * Returns `null` for orders created directly by customers through the online store. */ public StaffMember getStaffMember() { return staffMember; @@ -2152,7 +2394,8 @@ public void setStaffMember(StaffMember staffMember) { } /** - * The URL where the customer can check the order's current status. + * The URL where customers can check their order's current status, including tracking information and delivery updates. + * Provides order tracking links in emails, apps, or customer communications. */ public String getStatusPageUrl() { return statusPageUrl; @@ -2163,7 +2406,9 @@ public void setStatusPageUrl(String statusPageUrl) { } /** - * The sum of the quantities for all line items that contribute to the order's subtotal price. + * The sum of quantities for all line items that contribute to the order's subtotal price. + * This excludes quantities for items like tips, shipping costs, or gift cards that don't affect the subtotal. + * Use this to quickly understand the total item count for pricing calculations. */ public int getSubtotalLineItemsQuantity() { return subtotalLineItemsQuantity; @@ -2198,7 +2443,8 @@ public void setSubtotalPriceSet(MoneyBag subtotalPriceSet) { } /** - * A suggested refund for the order. + * A calculated refund suggestion for the order based on specified line items, shipping, and duties. + * Use this to preview refund amounts, taxes, and processing fees before creating an actual refund. */ public SuggestedRefund getSuggestedRefund() { return suggestedRefund; @@ -2224,6 +2470,9 @@ public void setTags(List tags) { /** * Whether taxes are exempt on the order. + * Returns `true` for orders where the customer or business has a valid tax + * exemption, such as non-profit organizations or tax-free purchases. + * Use this to understand if tax calculations were skipped during checkout. */ public boolean getTaxExempt() { return taxExempt; @@ -2247,6 +2496,8 @@ public void setTaxLines(List taxLines) { /** * Whether taxes are included in the subtotal price of the order. + * When `true`, the subtotal and line item prices include tax amounts. When + * `false`, taxes are calculated and displayed separately. */ public boolean getTaxesIncluded() { return taxesIncluded; @@ -2294,7 +2545,7 @@ public void setTotalCapturableSet(MoneyBag totalCapturableSet) { } /** - * The total rounding adjustment applied to payments or refunds for an Order + * The total rounding adjustment applied to payments or refunds for an order * involving cash payments. Applies to some countries where cash transactions are * rounded to the nearest currency denomination. */ @@ -2435,7 +2686,8 @@ public void setTotalShippingPrice(String totalShippingPrice) { } /** - * The total shipping amount before discounts and returns, in shop and presentment currencies. + * The total shipping costs returned to the customer, in shop and presentment + * currencies. This includes fees and any related discounts that were refunded. */ public MoneyBag getTotalShippingPriceSet() { return totalShippingPriceSet; @@ -2534,7 +2786,7 @@ public void setUnpaid(boolean unpaid) { } /** - * The date and time when the order was modified last. + * The date and time in [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601) when the order was last modified. */ public OffsetDateTime getUpdatedAt() { return updatedAt; @@ -2546,7 +2798,7 @@ public void setUpdatedAt(OffsetDateTime updatedAt) { @Override public String toString() { - return "Order{additionalFees='" + additionalFees + "', agreements='" + agreements + "', alerts='" + alerts + "', app='" + app + "', billingAddress='" + billingAddress + "', billingAddressMatchesShippingAddress='" + billingAddressMatchesShippingAddress + "', canMarkAsPaid='" + canMarkAsPaid + "', canNotifyCustomer='" + canNotifyCustomer + "', cancelReason='" + cancelReason + "', cancellation='" + cancellation + "', cancelledAt='" + cancelledAt + "', capturable='" + capturable + "', cartDiscountAmount='" + cartDiscountAmount + "', cartDiscountAmountSet='" + cartDiscountAmountSet + "', channel='" + channel + "', channelInformation='" + channelInformation + "', clientIp='" + clientIp + "', closed='" + closed + "', closedAt='" + closedAt + "', confirmationNumber='" + confirmationNumber + "', confirmed='" + confirmed + "', createdAt='" + createdAt + "', currencyCode='" + currencyCode + "', currentCartDiscountAmountSet='" + currentCartDiscountAmountSet + "', currentShippingPriceSet='" + currentShippingPriceSet + "', currentSubtotalLineItemsQuantity='" + currentSubtotalLineItemsQuantity + "', currentSubtotalPriceSet='" + currentSubtotalPriceSet + "', currentTaxLines='" + currentTaxLines + "', currentTotalAdditionalFeesSet='" + currentTotalAdditionalFeesSet + "', currentTotalDiscountsSet='" + currentTotalDiscountsSet + "', currentTotalDutiesSet='" + currentTotalDutiesSet + "', currentTotalPriceSet='" + currentTotalPriceSet + "', currentTotalTaxSet='" + currentTotalTaxSet + "', currentTotalWeight='" + currentTotalWeight + "', customAttributes='" + customAttributes + "', customer='" + customer + "', customerAcceptsMarketing='" + customerAcceptsMarketing + "', customerJourney='" + customerJourney + "', customerJourneySummary='" + customerJourneySummary + "', customerLocale='" + customerLocale + "', discountApplications='" + discountApplications + "', discountCode='" + discountCode + "', discountCodes='" + discountCodes + "', displayAddress='" + displayAddress + "', displayFinancialStatus='" + displayFinancialStatus + "', displayFulfillmentStatus='" + displayFulfillmentStatus + "', disputes='" + disputes + "', dutiesIncluded='" + dutiesIncluded + "', edited='" + edited + "', email='" + email + "', estimatedTaxes='" + estimatedTaxes + "', events='" + events + "', exchangeV2s='" + exchangeV2s + "', fulfillable='" + fulfillable + "', fulfillmentOrders='" + fulfillmentOrders + "', fulfillments='" + fulfillments + "', fulfillmentsCount='" + fulfillmentsCount + "', fullyPaid='" + fullyPaid + "', hasTimelineComment='" + hasTimelineComment + "', id='" + id + "', landingPageDisplayText='" + landingPageDisplayText + "', landingPageUrl='" + landingPageUrl + "', legacyResourceId='" + legacyResourceId + "', lineItems='" + lineItems + "', localizationExtensions='" + localizationExtensions + "', localizedFields='" + localizedFields + "', merchantBusinessEntity='" + merchantBusinessEntity + "', merchantEditable='" + merchantEditable + "', merchantEditableErrors='" + merchantEditableErrors + "', merchantOfRecordApp='" + merchantOfRecordApp + "', metafield='" + metafield + "', metafieldDefinitions='" + metafieldDefinitions + "', metafields='" + metafields + "', name='" + name + "', netPayment='" + netPayment + "', netPaymentSet='" + netPaymentSet + "', nonFulfillableLineItems='" + nonFulfillableLineItems + "', note='" + note + "', originalTotalAdditionalFeesSet='" + originalTotalAdditionalFeesSet + "', originalTotalDutiesSet='" + originalTotalDutiesSet + "', originalTotalPriceSet='" + originalTotalPriceSet + "', paymentCollectionDetails='" + paymentCollectionDetails + "', paymentGatewayNames='" + paymentGatewayNames + "', paymentTerms='" + paymentTerms + "', phone='" + phone + "', physicalLocation='" + physicalLocation + "', poNumber='" + poNumber + "', presentmentCurrencyCode='" + presentmentCurrencyCode + "', processedAt='" + processedAt + "', publication='" + publication + "', purchasingEntity='" + purchasingEntity + "', referralCode='" + referralCode + "', referrerDisplayText='" + referrerDisplayText + "', referrerUrl='" + referrerUrl + "', refundDiscrepancySet='" + refundDiscrepancySet + "', refundable='" + refundable + "', refunds='" + refunds + "', registeredSourceUrl='" + registeredSourceUrl + "', requiresShipping='" + requiresShipping + "', restockable='" + restockable + "', retailLocation='" + retailLocation + "', returnStatus='" + returnStatus + "', returns='" + returns + "', risk='" + risk + "', riskLevel='" + riskLevel + "', risks='" + risks + "', shippingAddress='" + shippingAddress + "', shippingLine='" + shippingLine + "', shippingLines='" + shippingLines + "', shopifyProtect='" + shopifyProtect + "', sourceIdentifier='" + sourceIdentifier + "', sourceName='" + sourceName + "', staffMember='" + staffMember + "', statusPageUrl='" + statusPageUrl + "', subtotalLineItemsQuantity='" + subtotalLineItemsQuantity + "', subtotalPrice='" + subtotalPrice + "', subtotalPriceSet='" + subtotalPriceSet + "', suggestedRefund='" + suggestedRefund + "', tags='" + tags + "', taxExempt='" + taxExempt + "', taxLines='" + taxLines + "', taxesIncluded='" + taxesIncluded + "', test='" + test + "', totalCapturable='" + totalCapturable + "', totalCapturableSet='" + totalCapturableSet + "', totalCashRoundingAdjustment='" + totalCashRoundingAdjustment + "', totalDiscounts='" + totalDiscounts + "', totalDiscountsSet='" + totalDiscountsSet + "', totalOutstandingSet='" + totalOutstandingSet + "', totalPrice='" + totalPrice + "', totalPriceSet='" + totalPriceSet + "', totalReceived='" + totalReceived + "', totalReceivedSet='" + totalReceivedSet + "', totalRefunded='" + totalRefunded + "', totalRefundedSet='" + totalRefundedSet + "', totalRefundedShippingSet='" + totalRefundedShippingSet + "', totalShippingPrice='" + totalShippingPrice + "', totalShippingPriceSet='" + totalShippingPriceSet + "', totalTax='" + totalTax + "', totalTaxSet='" + totalTaxSet + "', totalTipReceived='" + totalTipReceived + "', totalTipReceivedSet='" + totalTipReceivedSet + "', totalWeight='" + totalWeight + "', transactions='" + transactions + "', transactionsCount='" + transactionsCount + "', unpaid='" + unpaid + "', updatedAt='" + updatedAt + "'}"; + return "Order{additionalFees='" + additionalFees + "', agreements='" + agreements + "', alerts='" + alerts + "', app='" + app + "', billingAddress='" + billingAddress + "', billingAddressMatchesShippingAddress='" + billingAddressMatchesShippingAddress + "', canMarkAsPaid='" + canMarkAsPaid + "', canNotifyCustomer='" + canNotifyCustomer + "', cancelReason='" + cancelReason + "', cancellation='" + cancellation + "', cancelledAt='" + cancelledAt + "', capturable='" + capturable + "', cartDiscountAmount='" + cartDiscountAmount + "', cartDiscountAmountSet='" + cartDiscountAmountSet + "', channel='" + channel + "', channelInformation='" + channelInformation + "', clientIp='" + clientIp + "', closed='" + closed + "', closedAt='" + closedAt + "', confirmationNumber='" + confirmationNumber + "', confirmed='" + confirmed + "', createdAt='" + createdAt + "', currencyCode='" + currencyCode + "', currentCartDiscountAmountSet='" + currentCartDiscountAmountSet + "', currentShippingPriceSet='" + currentShippingPriceSet + "', currentSubtotalLineItemsQuantity='" + currentSubtotalLineItemsQuantity + "', currentSubtotalPriceSet='" + currentSubtotalPriceSet + "', currentTaxLines='" + currentTaxLines + "', currentTotalAdditionalFeesSet='" + currentTotalAdditionalFeesSet + "', currentTotalDiscountsSet='" + currentTotalDiscountsSet + "', currentTotalDutiesSet='" + currentTotalDutiesSet + "', currentTotalPriceSet='" + currentTotalPriceSet + "', currentTotalTaxSet='" + currentTotalTaxSet + "', currentTotalWeight='" + currentTotalWeight + "', customAttributes='" + customAttributes + "', customer='" + customer + "', customerAcceptsMarketing='" + customerAcceptsMarketing + "', customerJourney='" + customerJourney + "', customerJourneySummary='" + customerJourneySummary + "', customerLocale='" + customerLocale + "', discountApplications='" + discountApplications + "', discountCode='" + discountCode + "', discountCodes='" + discountCodes + "', displayAddress='" + displayAddress + "', displayFinancialStatus='" + displayFinancialStatus + "', displayFulfillmentStatus='" + displayFulfillmentStatus + "', disputes='" + disputes + "', dutiesIncluded='" + dutiesIncluded + "', edited='" + edited + "', email='" + email + "', estimatedTaxes='" + estimatedTaxes + "', events='" + events + "', exchangeV2s='" + exchangeV2s + "', fulfillable='" + fulfillable + "', fulfillmentOrders='" + fulfillmentOrders + "', fulfillments='" + fulfillments + "', fulfillmentsCount='" + fulfillmentsCount + "', fullyPaid='" + fullyPaid + "', hasTimelineComment='" + hasTimelineComment + "', id='" + id + "', landingPageDisplayText='" + landingPageDisplayText + "', landingPageUrl='" + landingPageUrl + "', legacyResourceId='" + legacyResourceId + "', lineItems='" + lineItems + "', localizationExtensions='" + localizationExtensions + "', localizedFields='" + localizedFields + "', merchantBusinessEntity='" + merchantBusinessEntity + "', merchantEditable='" + merchantEditable + "', merchantEditableErrors='" + merchantEditableErrors + "', merchantOfRecordApp='" + merchantOfRecordApp + "', metafield='" + metafield + "', metafieldDefinitions='" + metafieldDefinitions + "', metafields='" + metafields + "', name='" + name + "', netPayment='" + netPayment + "', netPaymentSet='" + netPaymentSet + "', nonFulfillableLineItems='" + nonFulfillableLineItems + "', note='" + note + "', number='" + number + "', originalTotalAdditionalFeesSet='" + originalTotalAdditionalFeesSet + "', originalTotalDutiesSet='" + originalTotalDutiesSet + "', originalTotalPriceSet='" + originalTotalPriceSet + "', paymentCollectionDetails='" + paymentCollectionDetails + "', paymentGatewayNames='" + paymentGatewayNames + "', paymentTerms='" + paymentTerms + "', phone='" + phone + "', physicalLocation='" + physicalLocation + "', poNumber='" + poNumber + "', presentmentCurrencyCode='" + presentmentCurrencyCode + "', processedAt='" + processedAt + "', productNetwork='" + productNetwork + "', publication='" + publication + "', purchasingEntity='" + purchasingEntity + "', referralCode='" + referralCode + "', referrerDisplayText='" + referrerDisplayText + "', referrerUrl='" + referrerUrl + "', refundDiscrepancySet='" + refundDiscrepancySet + "', refundable='" + refundable + "', refunds='" + refunds + "', registeredSourceUrl='" + registeredSourceUrl + "', requiresShipping='" + requiresShipping + "', restockable='" + restockable + "', retailLocation='" + retailLocation + "', returnStatus='" + returnStatus + "', returns='" + returns + "', risk='" + risk + "', riskLevel='" + riskLevel + "', risks='" + risks + "', shippingAddress='" + shippingAddress + "', shippingLine='" + shippingLine + "', shippingLines='" + shippingLines + "', shopifyProtect='" + shopifyProtect + "', sourceIdentifier='" + sourceIdentifier + "', sourceName='" + sourceName + "', staffMember='" + staffMember + "', statusPageUrl='" + statusPageUrl + "', subtotalLineItemsQuantity='" + subtotalLineItemsQuantity + "', subtotalPrice='" + subtotalPrice + "', subtotalPriceSet='" + subtotalPriceSet + "', suggestedRefund='" + suggestedRefund + "', tags='" + tags + "', taxExempt='" + taxExempt + "', taxLines='" + taxLines + "', taxesIncluded='" + taxesIncluded + "', test='" + test + "', totalCapturable='" + totalCapturable + "', totalCapturableSet='" + totalCapturableSet + "', totalCashRoundingAdjustment='" + totalCashRoundingAdjustment + "', totalDiscounts='" + totalDiscounts + "', totalDiscountsSet='" + totalDiscountsSet + "', totalOutstandingSet='" + totalOutstandingSet + "', totalPrice='" + totalPrice + "', totalPriceSet='" + totalPriceSet + "', totalReceived='" + totalReceived + "', totalReceivedSet='" + totalReceivedSet + "', totalRefunded='" + totalRefunded + "', totalRefundedSet='" + totalRefundedSet + "', totalRefundedShippingSet='" + totalRefundedShippingSet + "', totalShippingPrice='" + totalShippingPrice + "', totalShippingPriceSet='" + totalShippingPriceSet + "', totalTax='" + totalTax + "', totalTaxSet='" + totalTaxSet + "', totalTipReceived='" + totalTipReceived + "', totalTipReceivedSet='" + totalTipReceivedSet + "', totalWeight='" + totalWeight + "', transactions='" + transactions + "', transactionsCount='" + transactionsCount + "', unpaid='" + unpaid + "', updatedAt='" + updatedAt + "'}"; } @Override @@ -2632,6 +2884,7 @@ public boolean equals(Object o) { Objects.equals(netPaymentSet, that.netPaymentSet) && Objects.equals(nonFulfillableLineItems, that.nonFulfillableLineItems) && Objects.equals(note, that.note) && + number == that.number && Objects.equals(originalTotalAdditionalFeesSet, that.originalTotalAdditionalFeesSet) && Objects.equals(originalTotalDutiesSet, that.originalTotalDutiesSet) && Objects.equals(originalTotalPriceSet, that.originalTotalPriceSet) && @@ -2643,6 +2896,7 @@ public boolean equals(Object o) { Objects.equals(poNumber, that.poNumber) && Objects.equals(presentmentCurrencyCode, that.presentmentCurrencyCode) && Objects.equals(processedAt, that.processedAt) && + productNetwork == that.productNetwork && Objects.equals(publication, that.publication) && Objects.equals(purchasingEntity, that.purchasingEntity) && Objects.equals(referralCode, that.referralCode) && @@ -2705,7 +2959,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(additionalFees, agreements, alerts, app, billingAddress, billingAddressMatchesShippingAddress, canMarkAsPaid, canNotifyCustomer, cancelReason, cancellation, cancelledAt, capturable, cartDiscountAmount, cartDiscountAmountSet, channel, channelInformation, clientIp, closed, closedAt, confirmationNumber, confirmed, createdAt, currencyCode, currentCartDiscountAmountSet, currentShippingPriceSet, currentSubtotalLineItemsQuantity, currentSubtotalPriceSet, currentTaxLines, currentTotalAdditionalFeesSet, currentTotalDiscountsSet, currentTotalDutiesSet, currentTotalPriceSet, currentTotalTaxSet, currentTotalWeight, customAttributes, customer, customerAcceptsMarketing, customerJourney, customerJourneySummary, customerLocale, discountApplications, discountCode, discountCodes, displayAddress, displayFinancialStatus, displayFulfillmentStatus, disputes, dutiesIncluded, edited, email, estimatedTaxes, events, exchangeV2s, fulfillable, fulfillmentOrders, fulfillments, fulfillmentsCount, fullyPaid, hasTimelineComment, id, landingPageDisplayText, landingPageUrl, legacyResourceId, lineItems, localizationExtensions, localizedFields, merchantBusinessEntity, merchantEditable, merchantEditableErrors, merchantOfRecordApp, metafield, metafieldDefinitions, metafields, name, netPayment, netPaymentSet, nonFulfillableLineItems, note, originalTotalAdditionalFeesSet, originalTotalDutiesSet, originalTotalPriceSet, paymentCollectionDetails, paymentGatewayNames, paymentTerms, phone, physicalLocation, poNumber, presentmentCurrencyCode, processedAt, publication, purchasingEntity, referralCode, referrerDisplayText, referrerUrl, refundDiscrepancySet, refundable, refunds, registeredSourceUrl, requiresShipping, restockable, retailLocation, returnStatus, returns, risk, riskLevel, risks, shippingAddress, shippingLine, shippingLines, shopifyProtect, sourceIdentifier, sourceName, staffMember, statusPageUrl, subtotalLineItemsQuantity, subtotalPrice, subtotalPriceSet, suggestedRefund, tags, taxExempt, taxLines, taxesIncluded, test, totalCapturable, totalCapturableSet, totalCashRoundingAdjustment, totalDiscounts, totalDiscountsSet, totalOutstandingSet, totalPrice, totalPriceSet, totalReceived, totalReceivedSet, totalRefunded, totalRefundedSet, totalRefundedShippingSet, totalShippingPrice, totalShippingPriceSet, totalTax, totalTaxSet, totalTipReceived, totalTipReceivedSet, totalWeight, transactions, transactionsCount, unpaid, updatedAt); + return Objects.hash(additionalFees, agreements, alerts, app, billingAddress, billingAddressMatchesShippingAddress, canMarkAsPaid, canNotifyCustomer, cancelReason, cancellation, cancelledAt, capturable, cartDiscountAmount, cartDiscountAmountSet, channel, channelInformation, clientIp, closed, closedAt, confirmationNumber, confirmed, createdAt, currencyCode, currentCartDiscountAmountSet, currentShippingPriceSet, currentSubtotalLineItemsQuantity, currentSubtotalPriceSet, currentTaxLines, currentTotalAdditionalFeesSet, currentTotalDiscountsSet, currentTotalDutiesSet, currentTotalPriceSet, currentTotalTaxSet, currentTotalWeight, customAttributes, customer, customerAcceptsMarketing, customerJourney, customerJourneySummary, customerLocale, discountApplications, discountCode, discountCodes, displayAddress, displayFinancialStatus, displayFulfillmentStatus, disputes, dutiesIncluded, edited, email, estimatedTaxes, events, exchangeV2s, fulfillable, fulfillmentOrders, fulfillments, fulfillmentsCount, fullyPaid, hasTimelineComment, id, landingPageDisplayText, landingPageUrl, legacyResourceId, lineItems, localizationExtensions, localizedFields, merchantBusinessEntity, merchantEditable, merchantEditableErrors, merchantOfRecordApp, metafield, metafieldDefinitions, metafields, name, netPayment, netPaymentSet, nonFulfillableLineItems, note, number, originalTotalAdditionalFeesSet, originalTotalDutiesSet, originalTotalPriceSet, paymentCollectionDetails, paymentGatewayNames, paymentTerms, phone, physicalLocation, poNumber, presentmentCurrencyCode, processedAt, productNetwork, publication, purchasingEntity, referralCode, referrerDisplayText, referrerUrl, refundDiscrepancySet, refundable, refunds, registeredSourceUrl, requiresShipping, restockable, retailLocation, returnStatus, returns, risk, riskLevel, risks, shippingAddress, shippingLine, shippingLines, shopifyProtect, sourceIdentifier, sourceName, staffMember, statusPageUrl, subtotalLineItemsQuantity, subtotalPrice, subtotalPriceSet, suggestedRefund, tags, taxExempt, taxLines, taxesIncluded, test, totalCapturable, totalCapturableSet, totalCashRoundingAdjustment, totalDiscounts, totalDiscountsSet, totalOutstandingSet, totalPrice, totalPriceSet, totalReceived, totalReceivedSet, totalRefunded, totalRefundedSet, totalRefundedShippingSet, totalShippingPrice, totalShippingPriceSet, totalTax, totalTaxSet, totalTipReceived, totalTipReceivedSet, totalWeight, transactions, transactionsCount, unpaid, updatedAt); } public static Builder newBuilder() { @@ -2714,145 +2968,179 @@ public static Builder newBuilder() { public static class Builder { /** - * A list of additional fees applied to the order. + * A list of additional fees applied to an order, such as duties, import fees, or [tax lines](https://shopify.dev/docs/api/admin-graphql/latest/objects/order#field-Order.fields.additionalFees.taxLines). */ private List additionalFees; /** - * A list of sales agreements associated with the order. + * A list of sales agreements associated with the order, such as contracts + * defining payment terms, or delivery schedules between merchants and customers. */ private SalesAgreementConnection agreements; /** - * A list of messages that appear on the order page in the Shopify admin. + * A list of messages that appear on the **Orders** page in the Shopify admin. + * These alerts provide merchants with important information about an order's + * status or required actions. */ private List alerts; /** - * The application that created the order. + * The application that created the order. For example, "Online Store", "Point of Sale", or a custom app name. + * Use this to identify the order source for attribution and fulfillment workflows. + * Learn more about [building apps for orders and fulfillment](https://shopify.dev/docs/apps/build/orders-fulfillment). */ private OrderApp app; /** - * The billing address of the customer. + * The billing address associated with the payment method selected by the customer for an order. + * Returns `null` if no billing address was provided during checkout. */ private MailingAddress billingAddress; /** - * Whether the billing address matches the shipping address. + * Whether the billing address matches the [shipping address](https://shopify.dev/docs/api/admin-graphql/latest/objects/order#field-Order.fields.shippingAddress). + * Returns `true` if both addresses are the same, and `false` if they're + * different or if an address is missing. */ private boolean billingAddressMatchesShippingAddress; /** - * Whether the order can be manually marked as paid. + * Whether an order can be manually marked as paid. Returns `false` if the order + * is already paid, is canceled, has pending [Shopify Payments](https://help.shopify.com/en/manual/payments/shopify-payments/payouts) + * transactions, or has a negative payment amount. */ private boolean canMarkAsPaid; /** - * Whether a customer email exists for the order. + * Whether order notifications can be sent to the customer. + * Returns `true` if the customer has a valid [email address](https://shopify.dev/docs/api/admin-graphql/latest/objects/order#field-Order.fields.email). */ private boolean canNotifyCustomer; /** - * The reason provided when the order was canceled. - * Returns `null` if the order wasn't canceled. + * The reason provided for an order cancellation. For example, a merchant might + * cancel an order if there's insufficient inventory. Returns `null` if the order + * hasn't been canceled. */ private OrderCancelReason cancelReason; /** - * Cancellation details for the order. + * Details of an order's cancellation, if it has been canceled. This includes the + * reason, date, and any [staff notes](https://shopify.dev/api/admin-graphql/latest/objects/OrderCancellation#field-OrderCancellation.fields.staffNote). */ private OrderCancellation cancellation; /** - * The date and time when the order was canceled. - * Returns `null` if the order wasn't canceled. + * The date and time in [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601) when an order was canceled. + * Returns `null` if the order hasn't been canceled. */ private OffsetDateTime cancelledAt; /** - * Whether payment for the order can be captured. + * Whether an authorized payment for an order can be captured. + * Returns `true` if an authorized payment exists that hasn't been fully captured + * yet. Learn more about [capturing payments](https://help.shopify.com/en/manual/fulfillment/managing-orders/payments/capturing-payments). */ private boolean capturable; /** - * The total order-level discount amount, before returns, in shop currency. + * The total discount amount that applies to the entire order in shop currency, + * before returns, refunds, order edits, and cancellations. */ private String cartDiscountAmount; /** - * The total order-level discount amount, before returns, in shop and presentment currencies. + * The total discount amount applied at the time the order was created, displayed + * in both shop and presentment currencies, before returns, refunds, order edits, + * and cancellations. This field only includes discounts applied to the entire order. */ private MoneyBag cartDiscountAmountSet; /** - * The channel that created the order. + * The sales channel from which an order originated, such as the [Online + * Store](https://shopify.dev/docs/apps/build/app-surfaces#online-store) or + * [Shopify POS](https://shopify.dev/docs/apps/build/app-surfaces#point-of-sale). */ private Channel channel; /** - * Details about the channel that created the order. + * Details about the sales channel that created the order, such as the [channel app type](https://shopify.dev/docs/api/admin-graphql/latest/objects/channel#field-Channel.fields.channelType) + * and [channel name](https://shopify.dev/docs/api/admin-graphql/latest/objects/ChannelDefinition#field-ChannelDefinition.fields.channelName), which helps to track order sources. */ private ChannelInformation channelInformation; /** - * The IP address of the API client that created the order. + * The IP address of the customer who placed the order. Useful for fraud detection and geographic analysis. */ private String clientIp; /** - * Whether the order is closed. + * Whether an order is closed. An order is considered closed if all its line + * items have been fulfilled or canceled, and all financial transactions are complete. */ private boolean closed; /** - * The date and time when the order was closed. - * Returns `null` if the order isn't closed. + * The date and time [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601) + * when an order was closed. Shopify automatically records this timestamp when + * all items have been fulfilled or canceled, and all financial transactions are + * complete. Returns `null` if the order isn't closed. */ private OffsetDateTime closedAt; /** - * A randomly generated alpha-numeric identifier for the order that may be shown to the customer - * instead of the sequential order name. For example, "XPAV284CT", "R50KELTJP" or "35PKUN0UJ". - * This value isn't guaranteed to be unique. + * A customer-facing order identifier, often shown instead of the sequential order name. + * It uses a random alphanumeric format (for example, `XPAV284CT`) and isn't guaranteed to be unique across orders. */ private String confirmationNumber; /** - * Whether inventory has been reserved for the order. + * Whether inventory has been reserved for an order. Returns `true` if inventory + * quantities for an order's [line + * items](https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItem) + * have been reserved. + * Learn more about [managing inventory quantities and states](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states). */ private boolean confirmed; /** - * Date and time when the order was created in Shopify. + * The date and time in [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601) + * when an order was created. This timestamp is set when the customer completes + * checkout and remains unchanged throughout an order's lifecycle. */ private OffsetDateTime createdAt; /** - * The shop currency when the order was placed. + * The shop currency when the order was placed. For example, "USD" or "CAD". */ private CurrencyCode currencyCode; /** - * The current order-level discount amount after all order updates, in shop and presentment currencies. + * The current total of all discounts applied to the entire order, after returns, + * refunds, order edits, and cancellations. This includes discount codes, + * automatic discounts, and other promotions that affect the whole order rather + * than individual line items. To get the original discount amount at the time of + * order creation, use the [`cartDiscountAmountSet`](https://shopify.dev/docs/api/admin-graphql/latest/objects/order#field-Order.fields.cartDiscountAmountSet) field. */ private MoneyBag currentCartDiscountAmountSet; /** - * The current shipping price after applying refunds and discounts. If the parent - * `order.taxesIncluded` field is true, then this price includes taxes. - * Otherwise, this field is the pre-tax price. + * The current shipping price after applying refunds and discounts. + * If the parent `order.taxesIncluded` field is true, then this price includes + * taxes. Otherwise, this field is the pre-tax price. */ private MoneyBag currentShippingPriceSet; /** - * The sum of the quantities for all line items that contribute to the order's current subtotal price. + * The current sum of the quantities for all line items that contribute to the + * order's subtotal price, after returns, refunds, order edits, and cancellations. */ private int currentSubtotalLineItemsQuantity; /** - * The sum of the prices for all line items after discounts and returns, in shop and presentment currencies. - * If `taxesIncluded` is `true`, then the subtotal also includes tax. + * The total price of the order, after returns and refunds, in shop and presentment currencies. + * This includes taxes and discounts. */ private MoneyBag currentSubtotalPriceSet; @@ -2863,20 +3151,22 @@ public static class Builder { private List currentTaxLines; /** - * The total amount of additional fees after returns, in shop and presentment currencies. - * Returns `null` if there are no additional fees for the order. + * The current total of all additional fees for an order, after any returns or + * modifications. Modifications include returns, refunds, order edits, and + * cancellations. Additional fees can include charges such as duties, import + * fees, and special handling. */ private MoneyBag currentTotalAdditionalFeesSet; /** - * The total amount discounted on the order after returns, in shop and presentment currencies. + * The total amount discounted on the order after returns and refunds, in shop and presentment currencies. * This includes both order and line level discounts. */ private MoneyBag currentTotalDiscountsSet; /** - * The total amount of duties after returns, in shop and presentment currencies. - * Returns `null` if duties aren't applicable. + * The current total duties amount for an order, after any returns or + * modifications. Modifications include returns, refunds, order edits, and cancellations. */ private MoneyBag currentTotalDutiesSet; @@ -2888,28 +3178,32 @@ public static class Builder { /** * The sum of the prices of all tax lines applied to line items on the order, - * after returns, in shop and presentment currencies. + * after returns and refunds, in shop and presentment currencies. */ private MoneyBag currentTotalTaxSet; /** - * The total weight of the order after returns, in grams. + * The total weight of the order after returns and refunds, in grams. */ private String currentTotalWeight; /** - * A list of additional merchant-facing details that have been added to the - * order. For example, whether an order is a customer's first. + * A list of additional information that has been attached to the order. For + * example, gift message, delivery instructions, or internal notes. */ private List customAttributes; /** - * The customer that placed the order. + * The customer who placed an order. Returns `null` if an order was created + * through a checkout without customer authentication, such as a guest checkout. + * Learn more about [customer accounts](https://help.shopify.com/manual/customers/customer-accounts). */ private Customer customer; /** - * Whether the customer agreed to receive marketing materials. + * Whether the customer agreed to receive marketing emails at the time of purchase. + * Use this to ensure compliance with marketing consent laws and to segment customers for email campaigns. + * Learn more about [building customer segments](https://shopify.dev/docs/apps/build/marketing-analytics/customer-segments). */ private boolean customerAcceptsMarketing; @@ -2920,67 +3214,73 @@ public static class Builder { /** * The customer's visits and interactions with the online store before placing the order. + * Use this to understand customer behavior, attribution sources, and marketing effectiveness to optimize your sales funnel. */ private CustomerJourneySummary customerJourneySummary; /** - * A two-letter or three-letter language code, optionally followed by a region modifier. + * The customer's language and region preference at the time of purchase. For + * example, "en" for English, "fr-CA" for French (Canada), or "es-MX" for Spanish (Mexico). + * Use this to provide localized customer service and targeted marketing in the customer's preferred language. */ private String customerLocale; /** - * A list of discounts that are applied to the order, not including order edits and refunds. + * A list of discounts that are applied to the order, excluding order edits and refunds. + * Includes discount codes, automatic discounts, and other promotions that reduce the order total. */ private DiscountApplicationConnection discountApplications; /** - * The discount code used for the order. + * The discount code used for an order. Returns `null` if no discount code was applied. */ private String discountCode; /** - * The discount codes used for the order. + * The discount codes used for the order. Multiple codes can be applied to a single order. */ private List discountCodes; /** - * The primary address of the customer. - * Returns `null` if neither the shipping address nor the billing address was provided. + * The primary address of the customer, prioritizing shipping address over billing address when both are available. + * Returns `null` if neither shipping address nor billing address was provided. */ private MailingAddress displayAddress; /** - * The financial status of the order that can be shown to the merchant. - * This field doesn't capture all the details of an order's financial state. It - * should only be used for display summary purposes. + * An order's financial status for display in the Shopify admin. */ private OrderDisplayFinancialStatus displayFinancialStatus; /** - * The fulfillment status for the order that can be shown to the merchant. - * This field does not capture all the details of an order's fulfillment state. - * It should only be used for display summary purposes. - * For a more granular view of the fulfillment status, refer to the [FulfillmentOrder](https://shopify.dev/api/admin-graphql/latest/objects/FulfillmentOrder) object. + * The order's fulfillment status that displays in the Shopify admin to + * merchants. For example, an order might be unfulfilled or scheduled. + * For detailed processing, use the [`FulfillmentOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder) object. */ private OrderDisplayFulfillmentStatus displayFulfillmentStatus; /** - * A list of the disputes associated with the order. + * A list of payment disputes associated with the order, such as chargebacks or payment inquiries. + * Disputes occur when customers challenge transactions with their bank or payment provider. */ private List disputes; /** * Whether duties are included in the subtotal price of the order. + * Duties are import taxes charged by customs authorities when goods cross international borders. */ private boolean dutiesIncluded; /** - * Whether the order has had any edits applied. + * Whether the order has had any edits applied. For example, adding or removing + * line items, updating quantities, or changing prices. */ private boolean edited; /** - * The email address associated with the customer. + * The email address associated with the customer for this order. + * Used for sending order confirmations, shipping notifications, and other order-related communications. + * Returns `null` if no email address was provided during checkout. */ private String email; @@ -2991,7 +3291,9 @@ public static class Builder { private boolean estimatedTaxes; /** - * A list of events associated with the order. + * A list of events associated with the order. Events track significant changes + * and activities related to the order, such as creation, payment, fulfillment, + * and cancellation. */ private EventConnection events; @@ -3008,34 +3310,31 @@ public static class Builder { private boolean fulfillable; /** - * A list of fulfillment orders for a specific order. - * - * [FulfillmentOrder API access scopes](https://shopify.dev/api/admin-graphql/latest/objects/FulfillmentOrder#api-access-scopes) - * govern which fulfillments orders are returned. - * An API client will only receive a subset of the fulfillment orders which belong to an order - * if they don't have the necessary access scopes to view all of the fulfillment orders. - * In the case that an API client does not have the access scopes necessary to view - * any of the fulfillment orders that belong to an order, an empty array will be returned. + * A list of [fulfillment orders](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder) for an order. + * Each fulfillment order groups [line items](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-Order.fields.lineItems) + * that are fulfilled together, + * allowing an order to be processed in parts if needed. */ private FulfillmentOrderConnection fulfillmentOrders; /** - * List of shipments for the order. + * A list of shipments for the order. Fulfillments represent the physical shipment of products to customers. */ private List fulfillments; /** - * The count of fulfillments including the cancelled fulfillments. + * The total number of fulfillments for the order, including canceled ones. */ private Count fulfillmentsCount; /** - * Whether the order has been paid in full. + * Whether the order has been paid in full. This field returns `true` when the + * total amount received equals or exceeds the order total. */ private boolean fullyPaid; /** - * Whether the merchant added a timeline comment to the order. + * Whether the merchant has added a timeline comment to the order. */ private boolean hasTimelineComment; @@ -3060,7 +3359,7 @@ public static class Builder { private String legacyResourceId; /** - * A list of the order's line items. + * A list of the order's line items. Line items represent the individual products and quantities that make up the order. */ private LineItemConnection lineItems; @@ -3075,22 +3374,26 @@ public static class Builder { private LocalizedFieldConnection localizedFields; /** - * The merchant's business entity associated with the order. + * The legal business structure that the merchant operates under for this order, such as an LLC, corporation, or partnership. + * Used for tax reporting, legal compliance, and determining which business entity is responsible for the order. */ private BusinessEntity merchantBusinessEntity; /** - * Whether the order can be edited by the merchant. For example, canceled orders can’t be edited. + * Whether the order can be edited by the merchant. Returns `false` for orders + * that can't be modified, such as canceled orders or orders with specific + * payment statuses. */ private boolean merchantEditable; /** - * A list of reasons why the order can't be edited. For example, "Canceled orders can't be edited". + * A list of reasons why the order can't be edited. For example, canceled orders can't be edited. */ private List merchantEditableErrors; /** - * The application acting as the Merchant of Record for the order. + * The application acting as the Merchant of Record for the order. The Merchant + * of Record is responsible for tax collection and remittance. */ private OrderApp merchantOfRecordApp; @@ -3113,9 +3416,10 @@ public static class Builder { private MetafieldConnection metafields; /** - * The unique identifier for the order that appears on the order page in the Shopify admin and the Order status page. + * 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. + * This value isn't unique across multiple stores. Use this field to identify + * orders in the Shopify admin and for order tracking. */ private String name; @@ -3138,29 +3442,44 @@ public static class Builder { private LineItemConnection nonFulfillableLineItems; /** - * The contents of the note associated with the order. + * The note associated with the order. + * Contains additional information or instructions added by merchants or customers during the order process. + * Commonly used for special delivery instructions, gift messages, or internal processing notes. */ private String note; /** - * The total amount of additional fees at the time of order creation, in shop and presentment currencies. + * The order number used to generate the name using the store's configured order + * number prefix/suffix. This number isn't guaranteed to follow a consecutive + * integer sequence (e.g. 1, 2, 3..), nor is it guaranteed to be unique across + * multiple stores, or even for a single store. + */ + private int number; + + /** + * The total amount of all additional fees, such as import fees or taxes, that were applied when an order was created. * Returns `null` if additional fees aren't applicable. */ private MoneyBag originalTotalAdditionalFeesSet; /** - * The total amount of duties at the time of order creation, in shop and presentment currencies. - * Returns `null` if duties aren't applicable. + * The total amount of duties calculated when an order was created, before any + * modifications. Modifications include returns, refunds, order edits, and + * cancellations. Use [`currentTotalDutiesSet`](https://shopify.dev/docs/api/admin-graphql/latest/objects/order#field-Order.fields.currentTotalDutiesSet) + * to retrieve the current duties amount after adjustments. */ private MoneyBag originalTotalDutiesSet; /** * The total price of the order at the time of order creation, in shop and presentment currencies. + * Use this to compare the original order value against the current total after edits, returns, or refunds. */ private MoneyBag originalTotalPriceSet; /** - * The payment collection details for the order. + * The payment collection details for the order, including payment status, outstanding amounts, and collection information. + * Use this to understand when and how payments should be collected, especially + * for orders with deferred or installment payment terms. */ private OrderPaymentCollectionDetails paymentCollectionDetails; @@ -3171,12 +3490,16 @@ public static class Builder { private List paymentGatewayNames; /** - * The payment terms associated with the order. + * The payment terms associated with the order, such as net payment due dates or + * early payment discounts. Payment terms define when and how an order should be + * paid. Returns `null` if no specific payment terms were set for the order. */ private PaymentTerms paymentTerms; /** - * The phone number associated with the customer. + * The phone number associated with the customer for this order. + * Useful for contacting customers about shipping updates, delivery notifications, or order issues. + * Returns `null` if no phone number was provided during checkout. */ private String phone; @@ -3192,28 +3515,38 @@ public static class Builder { private Location physicalLocation; /** - * The PO number associated with the order. + * The purchase order (PO) number that's associated with an order. + * This is typically provided by business customers who require a PO number for their procurement. */ private String poNumber; /** - * The payment `CurrencyCode` of the customer for the order. + * The currency used by the customer when placing the order. For example, "USD", "EUR", or "CAD". + * This may differ from the shop's base currency when serving international customers or using multi-currency pricing. */ private CurrencyCode presentmentCurrencyCode; /** - * The date and time when the order was processed. + * The date and time in [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601) when the order was processed. * This date and time might not match the date and time when the order was created. */ private OffsetDateTime processedAt; /** - * The publication that the order was created from. + * Whether the customer also purchased items from other stores in the network. + */ + private boolean productNetwork; + + /** + * The sales channel that the order was created from, such as the [Online + * Store](https://shopify.dev/docs/apps/build/app-surfaces#online-store) or + * [Shopify POS](https://shopify.dev/docs/apps/build/app-surfaces#point-of-sale). */ private Publication publication; /** - * The purchasing entity for the order. + * The business entity that placed the order, including company details and purchasing relationships. + * Used for B2B transactions to track which company or organization is responsible for the purchase and payment terms. */ private PurchasingEntity purchasingEntity; @@ -3236,58 +3569,71 @@ public static class Builder { private String referrerUrl; /** - * The difference between the suggested and actual refund amount of all refunds - * that have been applied to the order. A positive value indicates a difference - * in the merchant's favor, and a negative value indicates a difference in the - * customer's favor. + * The difference between the suggested and actual refund amount of all refunds that have been applied to the order. + * A positive value indicates a difference in the merchant's favor, and a + * negative value indicates a difference in the customer's favor. */ private MoneyBag refundDiscrepancySet; /** - * Whether the order can be refunded. + * Whether the order can be refunded based on its payment transactions. + * Returns `false` for orders with no eligible payment transactions, such as + * fully refunded orders or orders with non-refundable payment methods. */ private boolean refundable; /** * A list of refunds that have been applied to the order. + * Refunds represent money returned to customers for returned items, cancellations, or adjustments. */ private List refunds; /** - * The URL of the source that the order originated from, if found in the domain registry. + * The URL of the source that the order originated from, if found in the domain + * registry. Returns `null` if the source URL isn't in the domain registry. */ private String registeredSourceUrl; /** - * Whether the order has shipping lines or at least one line item on the order that requires shipping. + * Whether the order requires physical shipping to the customer. + * Returns `false` for digital-only orders (such as gift cards or downloadable + * products) and `true` for orders with physical products that need delivery. + * Use this to determine shipping workflows and logistics requirements. */ private boolean requiresShipping; /** - * Whether any line item on the order can be restocked. + * Whether any line items on the order can be restocked into inventory. + * Returns `false` for digital products, custom items, or items that can't be resold. */ private boolean restockable; /** * The physical location where a retail order is created or completed, except for - * draft POS orders completed via the “mark as paid” flow in Admin, which return - * null. Transactions associated with the order might have been processed at a - * different location. + * draft POS orders completed using the "mark as paid" flow in the Shopify admin, + * which return `null`. Transactions associated with the order might have been + * processed at a different location. */ private Location retailLocation; /** * The order's aggregated return status for display purposes. + * Indicates the overall state of returns for the order, helping merchants track and manage the return process. */ private OrderReturnStatus returnStatus; /** - * A list of returns for the order. + * The returns associated with the order. + * Contains information about items that customers have requested to return, + * including return reasons, status, and refund details. + * Use this to track and manage the return process for order items. */ private ReturnConnection returns; /** - * The risk characteristics for the order. + * The risk assessment summary for the order. + * Provides fraud analysis and risk scoring to help you identify potentially fraudulent orders. + * Use this to make informed decisions about order fulfillment and payment processing. */ private OrderRiskSummary risk; @@ -3302,48 +3648,63 @@ public static class Builder { private List risks; /** - * The mailing address of the customer. + * The shipping address where the order will be delivered. + * Contains the customer's delivery location for fulfillment and shipping label generation. + * Returns `null` for digital orders or orders that don't require shipping. */ private MailingAddress shippingAddress; /** * A summary of all shipping costs on the order. + * Aggregates shipping charges, discounts, and taxes to provide a single view of delivery costs. */ private ShippingLine shippingLine; /** - * A list of the order's shipping lines. + * The shipping methods applied to the order. + * Each shipping line represents a shipping option chosen during checkout, including the carrier, service level, and cost. + * Use this to understand shipping charges and delivery options for the order. */ private ShippingLineConnection shippingLines; /** - * The Shopify Protect details for the order. If Shopify Protect is disabled for the shop, then this will be null. + * The Shopify Protect details for the order, including fraud protection status and coverage information. + * Shopify Protect helps protect eligible orders against fraudulent chargebacks. + * Returns `null` if Shopify Protect is disabled for the shop or the order isn't eligible for protection. + * Learn more about [Shopify Protect](https://www.shopify.com/protect). */ private ShopifyProtectOrderSummary shopifyProtect; /** * 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. + * For example, "1234-12-1000" or "111-98567-54". The [`receiptNumber`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-receiptNumber) + * field is derived from this value for POS orders. */ private String sourceIdentifier; /** - * The name of the source associated with the order. + * The name of the source associated with the order, such as "web", "mobile_app", + * or "pos". Use this field to identify the platform where the order was placed. */ private String sourceName; /** - * The staff member associated with the order. + * The staff member who created or is responsible for the order. + * Useful for tracking which team member handled phone orders, manual orders, or order modifications. + * Returns `null` for orders created directly by customers through the online store. */ private StaffMember staffMember; /** - * The URL where the customer can check the order's current status. + * The URL where customers can check their order's current status, including tracking information and delivery updates. + * Provides order tracking links in emails, apps, or customer communications. */ private String statusPageUrl; /** - * The sum of the quantities for all line items that contribute to the order's subtotal price. + * The sum of quantities for all line items that contribute to the order's subtotal price. + * This excludes quantities for items like tips, shipping costs, or gift cards that don't affect the subtotal. + * Use this to quickly understand the total item count for pricing calculations. */ private int subtotalLineItemsQuantity; @@ -3360,7 +3721,8 @@ public static class Builder { private MoneyBag subtotalPriceSet; /** - * A suggested refund for the order. + * A calculated refund suggestion for the order based on specified line items, shipping, and duties. + * Use this to preview refund amounts, taxes, and processing fees before creating an actual refund. */ private SuggestedRefund suggestedRefund; @@ -3374,6 +3736,9 @@ public static class Builder { /** * Whether taxes are exempt on the order. + * Returns `true` for orders where the customer or business has a valid tax + * exemption, such as non-profit organizations or tax-free purchases. + * Use this to understand if tax calculations were skipped during checkout. */ private boolean taxExempt; @@ -3385,6 +3750,8 @@ public static class Builder { /** * Whether taxes are included in the subtotal price of the order. + * When `true`, the subtotal and line item prices include tax amounts. When + * `false`, taxes are calculated and displayed separately. */ private boolean taxesIncluded; @@ -3408,7 +3775,7 @@ public static class Builder { private MoneyBag totalCapturableSet; /** - * The total rounding adjustment applied to payments or refunds for an Order + * The total rounding adjustment applied to payments or refunds for an order * involving cash payments. Applies to some countries where cash transactions are * rounded to the nearest currency denomination. */ @@ -3477,7 +3844,8 @@ public static class Builder { private String totalShippingPrice; /** - * The total shipping amount before discounts and returns, in shop and presentment currencies. + * The total shipping costs returned to the customer, in shop and presentment + * currencies. This includes fees and any related discounts that were refunded. */ private MoneyBag totalShippingPriceSet; @@ -3522,7 +3890,7 @@ public static class Builder { private boolean unpaid; /** - * The date and time when the order was modified last. + * The date and time in [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601) when the order was last modified. */ private OffsetDateTime updatedAt; @@ -3606,6 +3974,7 @@ public Order build() { result.netPaymentSet = this.netPaymentSet; result.nonFulfillableLineItems = this.nonFulfillableLineItems; result.note = this.note; + result.number = this.number; result.originalTotalAdditionalFeesSet = this.originalTotalAdditionalFeesSet; result.originalTotalDutiesSet = this.originalTotalDutiesSet; result.originalTotalPriceSet = this.originalTotalPriceSet; @@ -3617,6 +3986,7 @@ public Order build() { result.poNumber = this.poNumber; result.presentmentCurrencyCode = this.presentmentCurrencyCode; result.processedAt = this.processedAt; + result.productNetwork = this.productNetwork; result.publication = this.publication; result.purchasingEntity = this.purchasingEntity; result.referralCode = this.referralCode; @@ -3679,7 +4049,7 @@ public Order build() { } /** - * A list of additional fees applied to the order. + * A list of additional fees applied to an order, such as duties, import fees, or [tax lines](https://shopify.dev/docs/api/admin-graphql/latest/objects/order#field-Order.fields.additionalFees.taxLines). */ public Builder additionalFees(List additionalFees) { this.additionalFees = additionalFees; @@ -3687,7 +4057,8 @@ public Builder additionalFees(List additionalFees) { } /** - * A list of sales agreements associated with the order. + * A list of sales agreements associated with the order, such as contracts + * defining payment terms, or delivery schedules between merchants and customers. */ public Builder agreements(SalesAgreementConnection agreements) { this.agreements = agreements; @@ -3695,7 +4066,9 @@ public Builder agreements(SalesAgreementConnection agreements) { } /** - * A list of messages that appear on the order page in the Shopify admin. + * A list of messages that appear on the **Orders** page in the Shopify admin. + * These alerts provide merchants with important information about an order's + * status or required actions. */ public Builder alerts(List alerts) { this.alerts = alerts; @@ -3703,7 +4076,9 @@ public Builder alerts(List alerts) { } /** - * The application that created the order. + * The application that created the order. For example, "Online Store", "Point of Sale", or a custom app name. + * Use this to identify the order source for attribution and fulfillment workflows. + * Learn more about [building apps for orders and fulfillment](https://shopify.dev/docs/apps/build/orders-fulfillment). */ public Builder app(OrderApp app) { this.app = app; @@ -3711,7 +4086,8 @@ public Builder app(OrderApp app) { } /** - * The billing address of the customer. + * The billing address associated with the payment method selected by the customer for an order. + * Returns `null` if no billing address was provided during checkout. */ public Builder billingAddress(MailingAddress billingAddress) { this.billingAddress = billingAddress; @@ -3719,7 +4095,9 @@ public Builder billingAddress(MailingAddress billingAddress) { } /** - * Whether the billing address matches the shipping address. + * Whether the billing address matches the [shipping address](https://shopify.dev/docs/api/admin-graphql/latest/objects/order#field-Order.fields.shippingAddress). + * Returns `true` if both addresses are the same, and `false` if they're + * different or if an address is missing. */ public Builder billingAddressMatchesShippingAddress( boolean billingAddressMatchesShippingAddress) { @@ -3728,7 +4106,9 @@ public Builder billingAddressMatchesShippingAddress( } /** - * Whether the order can be manually marked as paid. + * Whether an order can be manually marked as paid. Returns `false` if the order + * is already paid, is canceled, has pending [Shopify Payments](https://help.shopify.com/en/manual/payments/shopify-payments/payouts) + * transactions, or has a negative payment amount. */ public Builder canMarkAsPaid(boolean canMarkAsPaid) { this.canMarkAsPaid = canMarkAsPaid; @@ -3736,7 +4116,8 @@ public Builder canMarkAsPaid(boolean canMarkAsPaid) { } /** - * Whether a customer email exists for the order. + * Whether order notifications can be sent to the customer. + * Returns `true` if the customer has a valid [email address](https://shopify.dev/docs/api/admin-graphql/latest/objects/order#field-Order.fields.email). */ public Builder canNotifyCustomer(boolean canNotifyCustomer) { this.canNotifyCustomer = canNotifyCustomer; @@ -3744,8 +4125,9 @@ public Builder canNotifyCustomer(boolean canNotifyCustomer) { } /** - * The reason provided when the order was canceled. - * Returns `null` if the order wasn't canceled. + * The reason provided for an order cancellation. For example, a merchant might + * cancel an order if there's insufficient inventory. Returns `null` if the order + * hasn't been canceled. */ public Builder cancelReason(OrderCancelReason cancelReason) { this.cancelReason = cancelReason; @@ -3753,7 +4135,8 @@ public Builder cancelReason(OrderCancelReason cancelReason) { } /** - * Cancellation details for the order. + * Details of an order's cancellation, if it has been canceled. This includes the + * reason, date, and any [staff notes](https://shopify.dev/api/admin-graphql/latest/objects/OrderCancellation#field-OrderCancellation.fields.staffNote). */ public Builder cancellation(OrderCancellation cancellation) { this.cancellation = cancellation; @@ -3761,8 +4144,8 @@ public Builder cancellation(OrderCancellation cancellation) { } /** - * The date and time when the order was canceled. - * Returns `null` if the order wasn't canceled. + * The date and time in [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601) when an order was canceled. + * Returns `null` if the order hasn't been canceled. */ public Builder cancelledAt(OffsetDateTime cancelledAt) { this.cancelledAt = cancelledAt; @@ -3770,7 +4153,9 @@ public Builder cancelledAt(OffsetDateTime cancelledAt) { } /** - * Whether payment for the order can be captured. + * Whether an authorized payment for an order can be captured. + * Returns `true` if an authorized payment exists that hasn't been fully captured + * yet. Learn more about [capturing payments](https://help.shopify.com/en/manual/fulfillment/managing-orders/payments/capturing-payments). */ public Builder capturable(boolean capturable) { this.capturable = capturable; @@ -3778,7 +4163,8 @@ public Builder capturable(boolean capturable) { } /** - * The total order-level discount amount, before returns, in shop currency. + * The total discount amount that applies to the entire order in shop currency, + * before returns, refunds, order edits, and cancellations. */ public Builder cartDiscountAmount(String cartDiscountAmount) { this.cartDiscountAmount = cartDiscountAmount; @@ -3786,7 +4172,9 @@ public Builder cartDiscountAmount(String cartDiscountAmount) { } /** - * The total order-level discount amount, before returns, in shop and presentment currencies. + * The total discount amount applied at the time the order was created, displayed + * in both shop and presentment currencies, before returns, refunds, order edits, + * and cancellations. This field only includes discounts applied to the entire order. */ public Builder cartDiscountAmountSet(MoneyBag cartDiscountAmountSet) { this.cartDiscountAmountSet = cartDiscountAmountSet; @@ -3794,7 +4182,9 @@ public Builder cartDiscountAmountSet(MoneyBag cartDiscountAmountSet) { } /** - * The channel that created the order. + * The sales channel from which an order originated, such as the [Online + * Store](https://shopify.dev/docs/apps/build/app-surfaces#online-store) or + * [Shopify POS](https://shopify.dev/docs/apps/build/app-surfaces#point-of-sale). */ public Builder channel(Channel channel) { this.channel = channel; @@ -3802,7 +4192,8 @@ public Builder channel(Channel channel) { } /** - * Details about the channel that created the order. + * Details about the sales channel that created the order, such as the [channel app type](https://shopify.dev/docs/api/admin-graphql/latest/objects/channel#field-Channel.fields.channelType) + * and [channel name](https://shopify.dev/docs/api/admin-graphql/latest/objects/ChannelDefinition#field-ChannelDefinition.fields.channelName), which helps to track order sources. */ public Builder channelInformation(ChannelInformation channelInformation) { this.channelInformation = channelInformation; @@ -3810,7 +4201,7 @@ public Builder channelInformation(ChannelInformation channelInformation) { } /** - * The IP address of the API client that created the order. + * The IP address of the customer who placed the order. Useful for fraud detection and geographic analysis. */ public Builder clientIp(String clientIp) { this.clientIp = clientIp; @@ -3818,7 +4209,8 @@ public Builder clientIp(String clientIp) { } /** - * Whether the order is closed. + * Whether an order is closed. An order is considered closed if all its line + * items have been fulfilled or canceled, and all financial transactions are complete. */ public Builder closed(boolean closed) { this.closed = closed; @@ -3826,8 +4218,10 @@ public Builder closed(boolean closed) { } /** - * The date and time when the order was closed. - * Returns `null` if the order isn't closed. + * The date and time [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601) + * when an order was closed. Shopify automatically records this timestamp when + * all items have been fulfilled or canceled, and all financial transactions are + * complete. Returns `null` if the order isn't closed. */ public Builder closedAt(OffsetDateTime closedAt) { this.closedAt = closedAt; @@ -3835,9 +4229,8 @@ public Builder closedAt(OffsetDateTime closedAt) { } /** - * A randomly generated alpha-numeric identifier for the order that may be shown to the customer - * instead of the sequential order name. For example, "XPAV284CT", "R50KELTJP" or "35PKUN0UJ". - * This value isn't guaranteed to be unique. + * A customer-facing order identifier, often shown instead of the sequential order name. + * It uses a random alphanumeric format (for example, `XPAV284CT`) and isn't guaranteed to be unique across orders. */ public Builder confirmationNumber(String confirmationNumber) { this.confirmationNumber = confirmationNumber; @@ -3845,7 +4238,11 @@ public Builder confirmationNumber(String confirmationNumber) { } /** - * Whether inventory has been reserved for the order. + * Whether inventory has been reserved for an order. Returns `true` if inventory + * quantities for an order's [line + * items](https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItem) + * have been reserved. + * Learn more about [managing inventory quantities and states](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states). */ public Builder confirmed(boolean confirmed) { this.confirmed = confirmed; @@ -3853,7 +4250,9 @@ public Builder confirmed(boolean confirmed) { } /** - * Date and time when the order was created in Shopify. + * The date and time in [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601) + * when an order was created. This timestamp is set when the customer completes + * checkout and remains unchanged throughout an order's lifecycle. */ public Builder createdAt(OffsetDateTime createdAt) { this.createdAt = createdAt; @@ -3861,7 +4260,7 @@ public Builder createdAt(OffsetDateTime createdAt) { } /** - * The shop currency when the order was placed. + * The shop currency when the order was placed. For example, "USD" or "CAD". */ public Builder currencyCode(CurrencyCode currencyCode) { this.currencyCode = currencyCode; @@ -3869,7 +4268,11 @@ public Builder currencyCode(CurrencyCode currencyCode) { } /** - * The current order-level discount amount after all order updates, in shop and presentment currencies. + * The current total of all discounts applied to the entire order, after returns, + * refunds, order edits, and cancellations. This includes discount codes, + * automatic discounts, and other promotions that affect the whole order rather + * than individual line items. To get the original discount amount at the time of + * order creation, use the [`cartDiscountAmountSet`](https://shopify.dev/docs/api/admin-graphql/latest/objects/order#field-Order.fields.cartDiscountAmountSet) field. */ public Builder currentCartDiscountAmountSet(MoneyBag currentCartDiscountAmountSet) { this.currentCartDiscountAmountSet = currentCartDiscountAmountSet; @@ -3877,9 +4280,9 @@ public Builder currentCartDiscountAmountSet(MoneyBag currentCartDiscountAmountSe } /** - * The current shipping price after applying refunds and discounts. If the parent - * `order.taxesIncluded` field is true, then this price includes taxes. - * Otherwise, this field is the pre-tax price. + * The current shipping price after applying refunds and discounts. + * If the parent `order.taxesIncluded` field is true, then this price includes + * taxes. Otherwise, this field is the pre-tax price. */ public Builder currentShippingPriceSet(MoneyBag currentShippingPriceSet) { this.currentShippingPriceSet = currentShippingPriceSet; @@ -3887,7 +4290,8 @@ public Builder currentShippingPriceSet(MoneyBag currentShippingPriceSet) { } /** - * The sum of the quantities for all line items that contribute to the order's current subtotal price. + * The current sum of the quantities for all line items that contribute to the + * order's subtotal price, after returns, refunds, order edits, and cancellations. */ public Builder currentSubtotalLineItemsQuantity(int currentSubtotalLineItemsQuantity) { this.currentSubtotalLineItemsQuantity = currentSubtotalLineItemsQuantity; @@ -3895,8 +4299,8 @@ public Builder currentSubtotalLineItemsQuantity(int currentSubtotalLineItemsQuan } /** - * The sum of the prices for all line items after discounts and returns, in shop and presentment currencies. - * If `taxesIncluded` is `true`, then the subtotal also includes tax. + * The total price of the order, after returns and refunds, in shop and presentment currencies. + * This includes taxes and discounts. */ public Builder currentSubtotalPriceSet(MoneyBag currentSubtotalPriceSet) { this.currentSubtotalPriceSet = currentSubtotalPriceSet; @@ -3913,8 +4317,10 @@ public Builder currentTaxLines(List currentTaxLines) { } /** - * The total amount of additional fees after returns, in shop and presentment currencies. - * Returns `null` if there are no additional fees for the order. + * The current total of all additional fees for an order, after any returns or + * modifications. Modifications include returns, refunds, order edits, and + * cancellations. Additional fees can include charges such as duties, import + * fees, and special handling. */ public Builder currentTotalAdditionalFeesSet(MoneyBag currentTotalAdditionalFeesSet) { this.currentTotalAdditionalFeesSet = currentTotalAdditionalFeesSet; @@ -3922,7 +4328,7 @@ public Builder currentTotalAdditionalFeesSet(MoneyBag currentTotalAdditionalFees } /** - * The total amount discounted on the order after returns, in shop and presentment currencies. + * The total amount discounted on the order after returns and refunds, in shop and presentment currencies. * This includes both order and line level discounts. */ public Builder currentTotalDiscountsSet(MoneyBag currentTotalDiscountsSet) { @@ -3931,8 +4337,8 @@ public Builder currentTotalDiscountsSet(MoneyBag currentTotalDiscountsSet) { } /** - * The total amount of duties after returns, in shop and presentment currencies. - * Returns `null` if duties aren't applicable. + * The current total duties amount for an order, after any returns or + * modifications. Modifications include returns, refunds, order edits, and cancellations. */ public Builder currentTotalDutiesSet(MoneyBag currentTotalDutiesSet) { this.currentTotalDutiesSet = currentTotalDutiesSet; @@ -3950,7 +4356,7 @@ public Builder currentTotalPriceSet(MoneyBag currentTotalPriceSet) { /** * The sum of the prices of all tax lines applied to line items on the order, - * after returns, in shop and presentment currencies. + * after returns and refunds, in shop and presentment currencies. */ public Builder currentTotalTaxSet(MoneyBag currentTotalTaxSet) { this.currentTotalTaxSet = currentTotalTaxSet; @@ -3958,7 +4364,7 @@ public Builder currentTotalTaxSet(MoneyBag currentTotalTaxSet) { } /** - * The total weight of the order after returns, in grams. + * The total weight of the order after returns and refunds, in grams. */ public Builder currentTotalWeight(String currentTotalWeight) { this.currentTotalWeight = currentTotalWeight; @@ -3966,8 +4372,8 @@ public Builder currentTotalWeight(String currentTotalWeight) { } /** - * A list of additional merchant-facing details that have been added to the - * order. For example, whether an order is a customer's first. + * A list of additional information that has been attached to the order. For + * example, gift message, delivery instructions, or internal notes. */ public Builder customAttributes(List customAttributes) { this.customAttributes = customAttributes; @@ -3975,7 +4381,9 @@ public Builder customAttributes(List customAttributes) { } /** - * The customer that placed the order. + * The customer who placed an order. Returns `null` if an order was created + * through a checkout without customer authentication, such as a guest checkout. + * Learn more about [customer accounts](https://help.shopify.com/manual/customers/customer-accounts). */ public Builder customer(Customer customer) { this.customer = customer; @@ -3983,7 +4391,9 @@ public Builder customer(Customer customer) { } /** - * Whether the customer agreed to receive marketing materials. + * Whether the customer agreed to receive marketing emails at the time of purchase. + * Use this to ensure compliance with marketing consent laws and to segment customers for email campaigns. + * Learn more about [building customer segments](https://shopify.dev/docs/apps/build/marketing-analytics/customer-segments). */ public Builder customerAcceptsMarketing(boolean customerAcceptsMarketing) { this.customerAcceptsMarketing = customerAcceptsMarketing; @@ -4000,6 +4410,7 @@ public Builder customerJourney(CustomerJourney customerJourney) { /** * The customer's visits and interactions with the online store before placing the order. + * Use this to understand customer behavior, attribution sources, and marketing effectiveness to optimize your sales funnel. */ public Builder customerJourneySummary(CustomerJourneySummary customerJourneySummary) { this.customerJourneySummary = customerJourneySummary; @@ -4007,7 +4418,9 @@ public Builder customerJourneySummary(CustomerJourneySummary customerJourneySumm } /** - * A two-letter or three-letter language code, optionally followed by a region modifier. + * The customer's language and region preference at the time of purchase. For + * example, "en" for English, "fr-CA" for French (Canada), or "es-MX" for Spanish (Mexico). + * Use this to provide localized customer service and targeted marketing in the customer's preferred language. */ public Builder customerLocale(String customerLocale) { this.customerLocale = customerLocale; @@ -4015,7 +4428,8 @@ public Builder customerLocale(String customerLocale) { } /** - * A list of discounts that are applied to the order, not including order edits and refunds. + * A list of discounts that are applied to the order, excluding order edits and refunds. + * Includes discount codes, automatic discounts, and other promotions that reduce the order total. */ public Builder discountApplications(DiscountApplicationConnection discountApplications) { this.discountApplications = discountApplications; @@ -4023,7 +4437,7 @@ public Builder discountApplications(DiscountApplicationConnection discountApplic } /** - * The discount code used for the order. + * The discount code used for an order. Returns `null` if no discount code was applied. */ public Builder discountCode(String discountCode) { this.discountCode = discountCode; @@ -4031,7 +4445,7 @@ public Builder discountCode(String discountCode) { } /** - * The discount codes used for the order. + * The discount codes used for the order. Multiple codes can be applied to a single order. */ public Builder discountCodes(List discountCodes) { this.discountCodes = discountCodes; @@ -4039,8 +4453,8 @@ public Builder discountCodes(List discountCodes) { } /** - * The primary address of the customer. - * Returns `null` if neither the shipping address nor the billing address was provided. + * The primary address of the customer, prioritizing shipping address over billing address when both are available. + * Returns `null` if neither shipping address nor billing address was provided. */ public Builder displayAddress(MailingAddress displayAddress) { this.displayAddress = displayAddress; @@ -4048,9 +4462,7 @@ public Builder displayAddress(MailingAddress displayAddress) { } /** - * The financial status of the order that can be shown to the merchant. - * This field doesn't capture all the details of an order's financial state. It - * should only be used for display summary purposes. + * An order's financial status for display in the Shopify admin. */ public Builder displayFinancialStatus(OrderDisplayFinancialStatus displayFinancialStatus) { this.displayFinancialStatus = displayFinancialStatus; @@ -4058,10 +4470,9 @@ public Builder displayFinancialStatus(OrderDisplayFinancialStatus displayFinanci } /** - * The fulfillment status for the order that can be shown to the merchant. - * This field does not capture all the details of an order's fulfillment state. - * It should only be used for display summary purposes. - * For a more granular view of the fulfillment status, refer to the [FulfillmentOrder](https://shopify.dev/api/admin-graphql/latest/objects/FulfillmentOrder) object. + * The order's fulfillment status that displays in the Shopify admin to + * merchants. For example, an order might be unfulfilled or scheduled. + * For detailed processing, use the [`FulfillmentOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder) object. */ public Builder displayFulfillmentStatus( OrderDisplayFulfillmentStatus displayFulfillmentStatus) { @@ -4070,7 +4481,8 @@ public Builder displayFulfillmentStatus( } /** - * A list of the disputes associated with the order. + * A list of payment disputes associated with the order, such as chargebacks or payment inquiries. + * Disputes occur when customers challenge transactions with their bank or payment provider. */ public Builder disputes(List disputes) { this.disputes = disputes; @@ -4079,6 +4491,7 @@ public Builder disputes(List disputes) { /** * Whether duties are included in the subtotal price of the order. + * Duties are import taxes charged by customs authorities when goods cross international borders. */ public Builder dutiesIncluded(boolean dutiesIncluded) { this.dutiesIncluded = dutiesIncluded; @@ -4086,7 +4499,8 @@ public Builder dutiesIncluded(boolean dutiesIncluded) { } /** - * Whether the order has had any edits applied. + * Whether the order has had any edits applied. For example, adding or removing + * line items, updating quantities, or changing prices. */ public Builder edited(boolean edited) { this.edited = edited; @@ -4094,7 +4508,9 @@ public Builder edited(boolean edited) { } /** - * The email address associated with the customer. + * The email address associated with the customer for this order. + * Used for sending order confirmations, shipping notifications, and other order-related communications. + * Returns `null` if no email address was provided during checkout. */ public Builder email(String email) { this.email = email; @@ -4111,7 +4527,9 @@ public Builder estimatedTaxes(boolean estimatedTaxes) { } /** - * A list of events associated with the order. + * A list of events associated with the order. Events track significant changes + * and activities related to the order, such as creation, payment, fulfillment, + * and cancellation. */ public Builder events(EventConnection events) { this.events = events; @@ -4137,14 +4555,10 @@ public Builder fulfillable(boolean fulfillable) { } /** - * A list of fulfillment orders for a specific order. - * - * [FulfillmentOrder API access scopes](https://shopify.dev/api/admin-graphql/latest/objects/FulfillmentOrder#api-access-scopes) - * govern which fulfillments orders are returned. - * An API client will only receive a subset of the fulfillment orders which belong to an order - * if they don't have the necessary access scopes to view all of the fulfillment orders. - * In the case that an API client does not have the access scopes necessary to view - * any of the fulfillment orders that belong to an order, an empty array will be returned. + * A list of [fulfillment orders](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder) for an order. + * Each fulfillment order groups [line items](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-Order.fields.lineItems) + * that are fulfilled together, + * allowing an order to be processed in parts if needed. */ public Builder fulfillmentOrders(FulfillmentOrderConnection fulfillmentOrders) { this.fulfillmentOrders = fulfillmentOrders; @@ -4152,7 +4566,7 @@ public Builder fulfillmentOrders(FulfillmentOrderConnection fulfillmentOrders) { } /** - * List of shipments for the order. + * A list of shipments for the order. Fulfillments represent the physical shipment of products to customers. */ public Builder fulfillments(List fulfillments) { this.fulfillments = fulfillments; @@ -4160,7 +4574,7 @@ public Builder fulfillments(List fulfillments) { } /** - * The count of fulfillments including the cancelled fulfillments. + * The total number of fulfillments for the order, including canceled ones. */ public Builder fulfillmentsCount(Count fulfillmentsCount) { this.fulfillmentsCount = fulfillmentsCount; @@ -4168,7 +4582,8 @@ public Builder fulfillmentsCount(Count fulfillmentsCount) { } /** - * Whether the order has been paid in full. + * Whether the order has been paid in full. This field returns `true` when the + * total amount received equals or exceeds the order total. */ public Builder fullyPaid(boolean fullyPaid) { this.fullyPaid = fullyPaid; @@ -4176,7 +4591,7 @@ public Builder fullyPaid(boolean fullyPaid) { } /** - * Whether the merchant added a timeline comment to the order. + * Whether the merchant has added a timeline comment to the order. */ public Builder hasTimelineComment(boolean hasTimelineComment) { this.hasTimelineComment = hasTimelineComment; @@ -4216,7 +4631,7 @@ public Builder legacyResourceId(String legacyResourceId) { } /** - * A list of the order's line items. + * A list of the order's line items. Line items represent the individual products and quantities that make up the order. */ public Builder lineItems(LineItemConnection lineItems) { this.lineItems = lineItems; @@ -4240,7 +4655,8 @@ public Builder localizedFields(LocalizedFieldConnection localizedFields) { } /** - * The merchant's business entity associated with the order. + * The legal business structure that the merchant operates under for this order, such as an LLC, corporation, or partnership. + * Used for tax reporting, legal compliance, and determining which business entity is responsible for the order. */ public Builder merchantBusinessEntity(BusinessEntity merchantBusinessEntity) { this.merchantBusinessEntity = merchantBusinessEntity; @@ -4248,7 +4664,9 @@ public Builder merchantBusinessEntity(BusinessEntity merchantBusinessEntity) { } /** - * Whether the order can be edited by the merchant. For example, canceled orders can’t be edited. + * Whether the order can be edited by the merchant. Returns `false` for orders + * that can't be modified, such as canceled orders or orders with specific + * payment statuses. */ public Builder merchantEditable(boolean merchantEditable) { this.merchantEditable = merchantEditable; @@ -4256,7 +4674,7 @@ public Builder merchantEditable(boolean merchantEditable) { } /** - * A list of reasons why the order can't be edited. For example, "Canceled orders can't be edited". + * A list of reasons why the order can't be edited. For example, canceled orders can't be edited. */ public Builder merchantEditableErrors(List merchantEditableErrors) { this.merchantEditableErrors = merchantEditableErrors; @@ -4264,7 +4682,8 @@ public Builder merchantEditableErrors(List merchantEditableErrors) { } /** - * The application acting as the Merchant of Record for the order. + * The application acting as the Merchant of Record for the order. The Merchant + * of Record is responsible for tax collection and remittance. */ public Builder merchantOfRecordApp(OrderApp merchantOfRecordApp) { this.merchantOfRecordApp = merchantOfRecordApp; @@ -4299,9 +4718,10 @@ public Builder metafields(MetafieldConnection metafields) { } /** - * The unique identifier for the order that appears on the order page in the Shopify admin and the Order status page. + * 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. + * This value isn't unique across multiple stores. Use this field to identify + * orders in the Shopify admin and for order tracking. */ public Builder name(String name) { this.name = name; @@ -4336,7 +4756,9 @@ public Builder nonFulfillableLineItems(LineItemConnection nonFulfillableLineItem } /** - * The contents of the note associated with the order. + * The note associated with the order. + * Contains additional information or instructions added by merchants or customers during the order process. + * Commonly used for special delivery instructions, gift messages, or internal processing notes. */ public Builder note(String note) { this.note = note; @@ -4344,7 +4766,18 @@ public Builder note(String note) { } /** - * The total amount of additional fees at the time of order creation, in shop and presentment currencies. + * The order number used to generate the name using the store's configured order + * number prefix/suffix. This number isn't guaranteed to follow a consecutive + * integer sequence (e.g. 1, 2, 3..), nor is it guaranteed to be unique across + * multiple stores, or even for a single store. + */ + public Builder number(int number) { + this.number = number; + return this; + } + + /** + * The total amount of all additional fees, such as import fees or taxes, that were applied when an order was created. * Returns `null` if additional fees aren't applicable. */ public Builder originalTotalAdditionalFeesSet(MoneyBag originalTotalAdditionalFeesSet) { @@ -4353,8 +4786,10 @@ public Builder originalTotalAdditionalFeesSet(MoneyBag originalTotalAdditionalFe } /** - * The total amount of duties at the time of order creation, in shop and presentment currencies. - * Returns `null` if duties aren't applicable. + * The total amount of duties calculated when an order was created, before any + * modifications. Modifications include returns, refunds, order edits, and + * cancellations. Use [`currentTotalDutiesSet`](https://shopify.dev/docs/api/admin-graphql/latest/objects/order#field-Order.fields.currentTotalDutiesSet) + * to retrieve the current duties amount after adjustments. */ public Builder originalTotalDutiesSet(MoneyBag originalTotalDutiesSet) { this.originalTotalDutiesSet = originalTotalDutiesSet; @@ -4363,6 +4798,7 @@ public Builder originalTotalDutiesSet(MoneyBag originalTotalDutiesSet) { /** * The total price of the order at the time of order creation, in shop and presentment currencies. + * Use this to compare the original order value against the current total after edits, returns, or refunds. */ public Builder originalTotalPriceSet(MoneyBag originalTotalPriceSet) { this.originalTotalPriceSet = originalTotalPriceSet; @@ -4370,7 +4806,9 @@ public Builder originalTotalPriceSet(MoneyBag originalTotalPriceSet) { } /** - * The payment collection details for the order. + * The payment collection details for the order, including payment status, outstanding amounts, and collection information. + * Use this to understand when and how payments should be collected, especially + * for orders with deferred or installment payment terms. */ public Builder paymentCollectionDetails( OrderPaymentCollectionDetails paymentCollectionDetails) { @@ -4388,7 +4826,9 @@ public Builder paymentGatewayNames(List paymentGatewayNames) { } /** - * The payment terms associated with the order. + * The payment terms associated with the order, such as net payment due dates or + * early payment discounts. Payment terms define when and how an order should be + * paid. Returns `null` if no specific payment terms were set for the order. */ public Builder paymentTerms(PaymentTerms paymentTerms) { this.paymentTerms = paymentTerms; @@ -4396,7 +4836,9 @@ public Builder paymentTerms(PaymentTerms paymentTerms) { } /** - * The phone number associated with the customer. + * The phone number associated with the customer for this order. + * Useful for contacting customers about shipping updates, delivery notifications, or order issues. + * Returns `null` if no phone number was provided during checkout. */ public Builder phone(String phone) { this.phone = phone; @@ -4418,7 +4860,8 @@ public Builder physicalLocation(Location physicalLocation) { } /** - * The PO number associated with the order. + * The purchase order (PO) number that's associated with an order. + * This is typically provided by business customers who require a PO number for their procurement. */ public Builder poNumber(String poNumber) { this.poNumber = poNumber; @@ -4426,7 +4869,8 @@ public Builder poNumber(String poNumber) { } /** - * The payment `CurrencyCode` of the customer for the order. + * The currency used by the customer when placing the order. For example, "USD", "EUR", or "CAD". + * This may differ from the shop's base currency when serving international customers or using multi-currency pricing. */ public Builder presentmentCurrencyCode(CurrencyCode presentmentCurrencyCode) { this.presentmentCurrencyCode = presentmentCurrencyCode; @@ -4434,7 +4878,7 @@ public Builder presentmentCurrencyCode(CurrencyCode presentmentCurrencyCode) { } /** - * The date and time when the order was processed. + * The date and time in [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601) when the order was processed. * This date and time might not match the date and time when the order was created. */ public Builder processedAt(OffsetDateTime processedAt) { @@ -4443,7 +4887,17 @@ public Builder processedAt(OffsetDateTime processedAt) { } /** - * The publication that the order was created from. + * Whether the customer also purchased items from other stores in the network. + */ + public Builder productNetwork(boolean productNetwork) { + this.productNetwork = productNetwork; + return this; + } + + /** + * The sales channel that the order was created from, such as the [Online + * Store](https://shopify.dev/docs/apps/build/app-surfaces#online-store) or + * [Shopify POS](https://shopify.dev/docs/apps/build/app-surfaces#point-of-sale). */ public Builder publication(Publication publication) { this.publication = publication; @@ -4451,7 +4905,8 @@ public Builder publication(Publication publication) { } /** - * The purchasing entity for the order. + * The business entity that placed the order, including company details and purchasing relationships. + * Used for B2B transactions to track which company or organization is responsible for the purchase and payment terms. */ public Builder purchasingEntity(PurchasingEntity purchasingEntity) { this.purchasingEntity = purchasingEntity; @@ -4486,10 +4941,9 @@ public Builder referrerUrl(String referrerUrl) { } /** - * The difference between the suggested and actual refund amount of all refunds - * that have been applied to the order. A positive value indicates a difference - * in the merchant's favor, and a negative value indicates a difference in the - * customer's favor. + * The difference between the suggested and actual refund amount of all refunds that have been applied to the order. + * A positive value indicates a difference in the merchant's favor, and a + * negative value indicates a difference in the customer's favor. */ public Builder refundDiscrepancySet(MoneyBag refundDiscrepancySet) { this.refundDiscrepancySet = refundDiscrepancySet; @@ -4497,7 +4951,9 @@ public Builder refundDiscrepancySet(MoneyBag refundDiscrepancySet) { } /** - * Whether the order can be refunded. + * Whether the order can be refunded based on its payment transactions. + * Returns `false` for orders with no eligible payment transactions, such as + * fully refunded orders or orders with non-refundable payment methods. */ public Builder refundable(boolean refundable) { this.refundable = refundable; @@ -4506,6 +4962,7 @@ public Builder refundable(boolean refundable) { /** * A list of refunds that have been applied to the order. + * Refunds represent money returned to customers for returned items, cancellations, or adjustments. */ public Builder refunds(List refunds) { this.refunds = refunds; @@ -4513,7 +4970,8 @@ public Builder refunds(List refunds) { } /** - * The URL of the source that the order originated from, if found in the domain registry. + * The URL of the source that the order originated from, if found in the domain + * registry. Returns `null` if the source URL isn't in the domain registry. */ public Builder registeredSourceUrl(String registeredSourceUrl) { this.registeredSourceUrl = registeredSourceUrl; @@ -4521,7 +4979,10 @@ public Builder registeredSourceUrl(String registeredSourceUrl) { } /** - * Whether the order has shipping lines or at least one line item on the order that requires shipping. + * Whether the order requires physical shipping to the customer. + * Returns `false` for digital-only orders (such as gift cards or downloadable + * products) and `true` for orders with physical products that need delivery. + * Use this to determine shipping workflows and logistics requirements. */ public Builder requiresShipping(boolean requiresShipping) { this.requiresShipping = requiresShipping; @@ -4529,7 +4990,8 @@ public Builder requiresShipping(boolean requiresShipping) { } /** - * Whether any line item on the order can be restocked. + * Whether any line items on the order can be restocked into inventory. + * Returns `false` for digital products, custom items, or items that can't be resold. */ public Builder restockable(boolean restockable) { this.restockable = restockable; @@ -4538,9 +5000,9 @@ public Builder restockable(boolean restockable) { /** * The physical location where a retail order is created or completed, except for - * draft POS orders completed via the “mark as paid” flow in Admin, which return - * null. Transactions associated with the order might have been processed at a - * different location. + * draft POS orders completed using the "mark as paid" flow in the Shopify admin, + * which return `null`. Transactions associated with the order might have been + * processed at a different location. */ public Builder retailLocation(Location retailLocation) { this.retailLocation = retailLocation; @@ -4549,6 +5011,7 @@ public Builder retailLocation(Location retailLocation) { /** * The order's aggregated return status for display purposes. + * Indicates the overall state of returns for the order, helping merchants track and manage the return process. */ public Builder returnStatus(OrderReturnStatus returnStatus) { this.returnStatus = returnStatus; @@ -4556,7 +5019,10 @@ public Builder returnStatus(OrderReturnStatus returnStatus) { } /** - * A list of returns for the order. + * The returns associated with the order. + * Contains information about items that customers have requested to return, + * including return reasons, status, and refund details. + * Use this to track and manage the return process for order items. */ public Builder returns(ReturnConnection returns) { this.returns = returns; @@ -4564,7 +5030,9 @@ public Builder returns(ReturnConnection returns) { } /** - * The risk characteristics for the order. + * The risk assessment summary for the order. + * Provides fraud analysis and risk scoring to help you identify potentially fraudulent orders. + * Use this to make informed decisions about order fulfillment and payment processing. */ public Builder risk(OrderRiskSummary risk) { this.risk = risk; @@ -4588,7 +5056,9 @@ public Builder risks(List risks) { } /** - * The mailing address of the customer. + * The shipping address where the order will be delivered. + * Contains the customer's delivery location for fulfillment and shipping label generation. + * Returns `null` for digital orders or orders that don't require shipping. */ public Builder shippingAddress(MailingAddress shippingAddress) { this.shippingAddress = shippingAddress; @@ -4597,6 +5067,7 @@ public Builder shippingAddress(MailingAddress shippingAddress) { /** * A summary of all shipping costs on the order. + * Aggregates shipping charges, discounts, and taxes to provide a single view of delivery costs. */ public Builder shippingLine(ShippingLine shippingLine) { this.shippingLine = shippingLine; @@ -4604,7 +5075,9 @@ public Builder shippingLine(ShippingLine shippingLine) { } /** - * A list of the order's shipping lines. + * The shipping methods applied to the order. + * Each shipping line represents a shipping option chosen during checkout, including the carrier, service level, and cost. + * Use this to understand shipping charges and delivery options for the order. */ public Builder shippingLines(ShippingLineConnection shippingLines) { this.shippingLines = shippingLines; @@ -4612,7 +5085,10 @@ public Builder shippingLines(ShippingLineConnection shippingLines) { } /** - * The Shopify Protect details for the order. If Shopify Protect is disabled for the shop, then this will be null. + * The Shopify Protect details for the order, including fraud protection status and coverage information. + * Shopify Protect helps protect eligible orders against fraudulent chargebacks. + * Returns `null` if Shopify Protect is disabled for the shop or the order isn't eligible for protection. + * Learn more about [Shopify Protect](https://www.shopify.com/protect). */ public Builder shopifyProtect(ShopifyProtectOrderSummary shopifyProtect) { this.shopifyProtect = shopifyProtect; @@ -4621,7 +5097,8 @@ public Builder shopifyProtect(ShopifyProtectOrderSummary shopifyProtect) { /** * 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. + * For example, "1234-12-1000" or "111-98567-54". The [`receiptNumber`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-receiptNumber) + * field is derived from this value for POS orders. */ public Builder sourceIdentifier(String sourceIdentifier) { this.sourceIdentifier = sourceIdentifier; @@ -4629,7 +5106,8 @@ public Builder sourceIdentifier(String sourceIdentifier) { } /** - * The name of the source associated with the order. + * The name of the source associated with the order, such as "web", "mobile_app", + * or "pos". Use this field to identify the platform where the order was placed. */ public Builder sourceName(String sourceName) { this.sourceName = sourceName; @@ -4637,7 +5115,9 @@ public Builder sourceName(String sourceName) { } /** - * The staff member associated with the order. + * The staff member who created or is responsible for the order. + * Useful for tracking which team member handled phone orders, manual orders, or order modifications. + * Returns `null` for orders created directly by customers through the online store. */ public Builder staffMember(StaffMember staffMember) { this.staffMember = staffMember; @@ -4645,7 +5125,8 @@ public Builder staffMember(StaffMember staffMember) { } /** - * The URL where the customer can check the order's current status. + * The URL where customers can check their order's current status, including tracking information and delivery updates. + * Provides order tracking links in emails, apps, or customer communications. */ public Builder statusPageUrl(String statusPageUrl) { this.statusPageUrl = statusPageUrl; @@ -4653,7 +5134,9 @@ public Builder statusPageUrl(String statusPageUrl) { } /** - * The sum of the quantities for all line items that contribute to the order's subtotal price. + * The sum of quantities for all line items that contribute to the order's subtotal price. + * This excludes quantities for items like tips, shipping costs, or gift cards that don't affect the subtotal. + * Use this to quickly understand the total item count for pricing calculations. */ public Builder subtotalLineItemsQuantity(int subtotalLineItemsQuantity) { this.subtotalLineItemsQuantity = subtotalLineItemsQuantity; @@ -4679,7 +5162,8 @@ public Builder subtotalPriceSet(MoneyBag subtotalPriceSet) { } /** - * A suggested refund for the order. + * A calculated refund suggestion for the order based on specified line items, shipping, and duties. + * Use this to preview refund amounts, taxes, and processing fees before creating an actual refund. */ public Builder suggestedRefund(SuggestedRefund suggestedRefund) { this.suggestedRefund = suggestedRefund; @@ -4699,6 +5183,9 @@ public Builder tags(List tags) { /** * Whether taxes are exempt on the order. + * Returns `true` for orders where the customer or business has a valid tax + * exemption, such as non-profit organizations or tax-free purchases. + * Use this to understand if tax calculations were skipped during checkout. */ public Builder taxExempt(boolean taxExempt) { this.taxExempt = taxExempt; @@ -4716,6 +5203,8 @@ public Builder taxLines(List taxLines) { /** * Whether taxes are included in the subtotal price of the order. + * When `true`, the subtotal and line item prices include tax amounts. When + * `false`, taxes are calculated and displayed separately. */ public Builder taxesIncluded(boolean taxesIncluded) { this.taxesIncluded = taxesIncluded; @@ -4751,7 +5240,7 @@ public Builder totalCapturableSet(MoneyBag totalCapturableSet) { } /** - * The total rounding adjustment applied to payments or refunds for an Order + * The total rounding adjustment applied to payments or refunds for an order * involving cash payments. Applies to some countries where cash transactions are * rounded to the nearest currency denomination. */ @@ -4856,7 +5345,8 @@ public Builder totalShippingPrice(String totalShippingPrice) { } /** - * The total shipping amount before discounts and returns, in shop and presentment currencies. + * The total shipping costs returned to the customer, in shop and presentment + * currencies. This includes fees and any related discounts that were refunded. */ public Builder totalShippingPriceSet(MoneyBag totalShippingPriceSet) { this.totalShippingPriceSet = totalShippingPriceSet; @@ -4928,7 +5418,7 @@ public Builder unpaid(boolean unpaid) { } /** - * The date and time when the order was modified last. + * The date and time in [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601) when the order was last modified. */ public Builder updatedAt(OffsetDateTime updatedAt) { this.updatedAt = updatedAt; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderApp.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderApp.java index 0536fcce..774a7cd3 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderApp.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderApp.java @@ -6,7 +6,13 @@ import java.util.Objects; /** - * The [application](https://shopify.dev/apps) that created the order. + * Identifies the [`App`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App) that + * created an order. Common sources include "online store" for web purchases, + * "Point of Sale" for in-person sales, or custom app names for orders created + * through third-party integrations. + * + * Use this information to track order attribution, analyze sales channels, and + * route orders to appropriate fulfillment workflows based on their source. */ public class OrderApp { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderCancelRefundMethodInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderCancelRefundMethodInput.java new file mode 100644 index 00000000..0e8d45e4 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderCancelRefundMethodInput.java @@ -0,0 +1,105 @@ +package com.shopify.admin.types; + +import java.lang.Boolean; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * The input fields used to specify the refund method for an order cancellation. + */ +public class OrderCancelRefundMethodInput { + /** + * Whether to refund to the original payment method. + */ + private Boolean originalPaymentMethodsRefund; + + /** + * Whether to refund to store credit. + */ + private OrderCancelStoreCreditRefundInput storeCreditRefund; + + public OrderCancelRefundMethodInput() { + } + + /** + * Whether to refund to the original payment method. + */ + public Boolean getOriginalPaymentMethodsRefund() { + return originalPaymentMethodsRefund; + } + + public void setOriginalPaymentMethodsRefund(Boolean originalPaymentMethodsRefund) { + this.originalPaymentMethodsRefund = originalPaymentMethodsRefund; + } + + /** + * Whether to refund to store credit. + */ + public OrderCancelStoreCreditRefundInput getStoreCreditRefund() { + return storeCreditRefund; + } + + public void setStoreCreditRefund(OrderCancelStoreCreditRefundInput storeCreditRefund) { + this.storeCreditRefund = storeCreditRefund; + } + + @Override + public String toString() { + return "OrderCancelRefundMethodInput{originalPaymentMethodsRefund='" + originalPaymentMethodsRefund + "', storeCreditRefund='" + storeCreditRefund + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + OrderCancelRefundMethodInput that = (OrderCancelRefundMethodInput) o; + return Objects.equals(originalPaymentMethodsRefund, that.originalPaymentMethodsRefund) && + Objects.equals(storeCreditRefund, that.storeCreditRefund); + } + + @Override + public int hashCode() { + return Objects.hash(originalPaymentMethodsRefund, storeCreditRefund); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * Whether to refund to the original payment method. + */ + private Boolean originalPaymentMethodsRefund; + + /** + * Whether to refund to store credit. + */ + private OrderCancelStoreCreditRefundInput storeCreditRefund; + + public OrderCancelRefundMethodInput build() { + OrderCancelRefundMethodInput result = new OrderCancelRefundMethodInput(); + result.originalPaymentMethodsRefund = this.originalPaymentMethodsRefund; + result.storeCreditRefund = this.storeCreditRefund; + return result; + } + + /** + * Whether to refund to the original payment method. + */ + public Builder originalPaymentMethodsRefund(Boolean originalPaymentMethodsRefund) { + this.originalPaymentMethodsRefund = originalPaymentMethodsRefund; + return this; + } + + /** + * Whether to refund to store credit. + */ + public Builder storeCreditRefund(OrderCancelStoreCreditRefundInput storeCreditRefund) { + this.storeCreditRefund = storeCreditRefund; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderCancelStoreCreditRefundInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderCancelStoreCreditRefundInput.java new file mode 100644 index 00000000..bf4b1e7e --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderCancelStoreCreditRefundInput.java @@ -0,0 +1,74 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.time.OffsetDateTime; +import java.util.Objects; + +/** + * The input fields used to refund to store credit. + */ +public class OrderCancelStoreCreditRefundInput { + /** + * The expiration date of the store credit. + */ + private OffsetDateTime expiresAt; + + public OrderCancelStoreCreditRefundInput() { + } + + /** + * The expiration date of the store credit. + */ + public OffsetDateTime getExpiresAt() { + return expiresAt; + } + + public void setExpiresAt(OffsetDateTime expiresAt) { + this.expiresAt = expiresAt; + } + + @Override + public String toString() { + return "OrderCancelStoreCreditRefundInput{expiresAt='" + expiresAt + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + OrderCancelStoreCreditRefundInput that = (OrderCancelStoreCreditRefundInput) o; + return Objects.equals(expiresAt, that.expiresAt); + } + + @Override + public int hashCode() { + return Objects.hash(expiresAt); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The expiration date of the store credit. + */ + private OffsetDateTime expiresAt; + + public OrderCancelStoreCreditRefundInput build() { + OrderCancelStoreCreditRefundInput result = new OrderCancelStoreCreditRefundInput(); + result.expiresAt = this.expiresAt; + return result; + } + + /** + * The expiration date of the store credit. + */ + public Builder expiresAt(OffsetDateTime expiresAt) { + this.expiresAt = expiresAt; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderCancelUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderCancelUserErrorCode.java index 62e939f8..f8363347 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderCancelUserErrorCode.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderCancelUserErrorCode.java @@ -6,7 +6,17 @@ public enum OrderCancelUserErrorCode { NO_REFUND_PERMISSION, + NO_REFUND_TO_STORE_CREDIT_PERMISSION, + + STORE_CREDIT_REFUND_EXPIRATION_IN_PAST, + + STORE_CREDIT_REFUND_MISSING_CUSTOMER, + + STORE_CREDIT_REFUND_B2B_NOT_SUPPORTED, + NOT_FOUND, - INVALID + INVALID, + + INTERNAL_ERROR } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderCreateManualPaymentOrderCreateManualPaymentErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderCreateManualPaymentOrderCreateManualPaymentErrorCode.java index 829a164b..041957f9 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderCreateManualPaymentOrderCreateManualPaymentErrorCode.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderCreateManualPaymentOrderCreateManualPaymentErrorCode.java @@ -12,5 +12,7 @@ public enum OrderCreateManualPaymentOrderCreateManualPaymentErrorCode { AMOUNT_EXCEEDS_BALANCE, - ORDER_IS_TEMPORARILY_UNAVAILABLE + ORDER_IS_TEMPORARILY_UNAVAILABLE, + + PROCESSED_AT_INVALID } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderCreateTaxLineInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderCreateTaxLineInput.java index bd052c3a..ed89c473 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderCreateTaxLineInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderCreateTaxLineInput.java @@ -17,7 +17,7 @@ public class OrderCreateTaxLineInput { private Boolean channelLiable = false; /** - * The amount of tax to be charged on the item. + * The amount added to the order for this tax in shop and presentment currencies after discounts are applied. */ private MoneyBagInput priceSet; @@ -47,7 +47,7 @@ public void setChannelLiable(Boolean channelLiable) { } /** - * The amount of tax to be charged on the item. + * The amount added to the order for this tax in shop and presentment currencies after discounts are applied. */ public MoneyBagInput getPriceSet() { return priceSet; @@ -112,7 +112,7 @@ public static class Builder { private Boolean channelLiable = false; /** - * The amount of tax to be charged on the item. + * The amount added to the order for this tax in shop and presentment currencies after discounts are applied. */ private MoneyBagInput priceSet; @@ -145,7 +145,7 @@ public Builder channelLiable(Boolean channelLiable) { } /** - * The amount of tax to be charged on the item. + * The amount added to the order for this tax in shop and presentment currencies after discounts are applied. */ public Builder priceSet(MoneyBagInput priceSet) { this.priceSet = priceSet; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderCustomerRemovePayload.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderCustomerRemovePayload.java new file mode 100644 index 00000000..88e9ad7c --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderCustomerRemovePayload.java @@ -0,0 +1,105 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * Return type for `orderCustomerRemove` mutation. + */ +public class OrderCustomerRemovePayload { + /** + * The order that had its customer removed. + */ + private Order order; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public OrderCustomerRemovePayload() { + } + + /** + * The order that had its customer removed. + */ + public Order getOrder() { + return order; + } + + public void setOrder(Order order) { + this.order = order; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public List getUserErrors() { + return userErrors; + } + + public void setUserErrors(List userErrors) { + this.userErrors = userErrors; + } + + @Override + public String toString() { + return "OrderCustomerRemovePayload{order='" + order + "', userErrors='" + userErrors + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + OrderCustomerRemovePayload that = (OrderCustomerRemovePayload) o; + return Objects.equals(order, that.order) && + Objects.equals(userErrors, that.userErrors); + } + + @Override + public int hashCode() { + return Objects.hash(order, userErrors); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The order that had its customer removed. + */ + private Order order; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public OrderCustomerRemovePayload build() { + OrderCustomerRemovePayload result = new OrderCustomerRemovePayload(); + result.order = this.order; + result.userErrors = this.userErrors; + return result; + } + + /** + * The order that had its customer removed. + */ + public Builder order(Order order) { + this.order = order; + return this; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public Builder userErrors(List userErrors) { + this.userErrors = userErrors; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderCustomerRemoveUserError.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderCustomerRemoveUserError.java new file mode 100644 index 00000000..77c5010d --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderCustomerRemoveUserError.java @@ -0,0 +1,140 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * Errors related to order customer removal. + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NONE +) +public class OrderCustomerRemoveUserError implements com.shopify.admin.types.DisplayableError { + /** + * The error code. + */ + private OrderCustomerRemoveUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public OrderCustomerRemoveUserError() { + } + + /** + * The error code. + */ + public OrderCustomerRemoveUserErrorCode getCode() { + return code; + } + + public void setCode(OrderCustomerRemoveUserErrorCode code) { + this.code = code; + } + + /** + * The path to the input field that caused the error. + */ + public List getField() { + return field; + } + + public void setField(List field) { + this.field = field; + } + + /** + * The error message. + */ + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + @Override + public String toString() { + return "OrderCustomerRemoveUserError{code='" + code + "', field='" + field + "', message='" + message + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + OrderCustomerRemoveUserError that = (OrderCustomerRemoveUserError) o; + return Objects.equals(code, that.code) && + Objects.equals(field, that.field) && + Objects.equals(message, that.message); + } + + @Override + public int hashCode() { + return Objects.hash(code, field, message); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The error code. + */ + private OrderCustomerRemoveUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public OrderCustomerRemoveUserError build() { + OrderCustomerRemoveUserError result = new OrderCustomerRemoveUserError(); + result.code = this.code; + result.field = this.field; + result.message = this.message; + return result; + } + + /** + * The error code. + */ + public Builder code(OrderCustomerRemoveUserErrorCode code) { + this.code = code; + return this; + } + + /** + * The path to the input field that caused the error. + */ + public Builder field(List field) { + this.field = field; + return this; + } + + /** + * The error message. + */ + public Builder message(String message) { + this.message = message; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderCustomerRemoveUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderCustomerRemoveUserErrorCode.java new file mode 100644 index 00000000..f3cacd2b --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderCustomerRemoveUserErrorCode.java @@ -0,0 +1,12 @@ +package com.shopify.admin.types; + +/** + * Possible error codes that can be returned by `OrderCustomerRemoveUserError`. + */ +public enum OrderCustomerRemoveUserErrorCode { + NOT_FOUND, + + INVALID, + + NOT_SAVED +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderCustomerSetPayload.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderCustomerSetPayload.java new file mode 100644 index 00000000..c0b14963 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderCustomerSetPayload.java @@ -0,0 +1,105 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * Return type for `orderCustomerSet` mutation. + */ +public class OrderCustomerSetPayload { + /** + * The order that had a customer set. + */ + private Order order; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public OrderCustomerSetPayload() { + } + + /** + * The order that had a customer set. + */ + public Order getOrder() { + return order; + } + + public void setOrder(Order order) { + this.order = order; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public List getUserErrors() { + return userErrors; + } + + public void setUserErrors(List userErrors) { + this.userErrors = userErrors; + } + + @Override + public String toString() { + return "OrderCustomerSetPayload{order='" + order + "', userErrors='" + userErrors + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + OrderCustomerSetPayload that = (OrderCustomerSetPayload) o; + return Objects.equals(order, that.order) && + Objects.equals(userErrors, that.userErrors); + } + + @Override + public int hashCode() { + return Objects.hash(order, userErrors); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The order that had a customer set. + */ + private Order order; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public OrderCustomerSetPayload build() { + OrderCustomerSetPayload result = new OrderCustomerSetPayload(); + result.order = this.order; + result.userErrors = this.userErrors; + return result; + } + + /** + * The order that had a customer set. + */ + public Builder order(Order order) { + this.order = order; + return this; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public Builder userErrors(List userErrors) { + this.userErrors = userErrors; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderCustomerSetUserError.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderCustomerSetUserError.java new file mode 100644 index 00000000..d434f0c6 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderCustomerSetUserError.java @@ -0,0 +1,140 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * Errors related to order customer set. + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NONE +) +public class OrderCustomerSetUserError implements com.shopify.admin.types.DisplayableError { + /** + * The error code. + */ + private OrderCustomerSetUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public OrderCustomerSetUserError() { + } + + /** + * The error code. + */ + public OrderCustomerSetUserErrorCode getCode() { + return code; + } + + public void setCode(OrderCustomerSetUserErrorCode code) { + this.code = code; + } + + /** + * The path to the input field that caused the error. + */ + public List getField() { + return field; + } + + public void setField(List field) { + this.field = field; + } + + /** + * The error message. + */ + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + @Override + public String toString() { + return "OrderCustomerSetUserError{code='" + code + "', field='" + field + "', message='" + message + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + OrderCustomerSetUserError that = (OrderCustomerSetUserError) o; + return Objects.equals(code, that.code) && + Objects.equals(field, that.field) && + Objects.equals(message, that.message); + } + + @Override + public int hashCode() { + return Objects.hash(code, field, message); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The error code. + */ + private OrderCustomerSetUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public OrderCustomerSetUserError build() { + OrderCustomerSetUserError result = new OrderCustomerSetUserError(); + result.code = this.code; + result.field = this.field; + result.message = this.message; + return result; + } + + /** + * The error code. + */ + public Builder code(OrderCustomerSetUserErrorCode code) { + this.code = code; + return this; + } + + /** + * The path to the input field that caused the error. + */ + public Builder field(List field) { + this.field = field; + return this; + } + + /** + * The error message. + */ + public Builder message(String message) { + this.message = message; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderCustomerSetUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderCustomerSetUserErrorCode.java new file mode 100644 index 00000000..cced2b54 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderCustomerSetUserErrorCode.java @@ -0,0 +1,14 @@ +package com.shopify.admin.types; + +/** + * Possible error codes that can be returned by `OrderCustomerSetUserError`. + */ +public enum OrderCustomerSetUserErrorCode { + NOT_FOUND, + + INVALID, + + NOT_SAVED, + + NOT_PERMITTED +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditAddCustomItemPayload.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditAddCustomItemPayload.java index 766d02eb..fa26f2ea 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditAddCustomItemPayload.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditAddCustomItemPayload.java @@ -20,6 +20,11 @@ public class OrderEditAddCustomItemPayload { */ private CalculatedOrder calculatedOrder; + /** + * The order edit session with the edits applied but not saved. + */ + private OrderEditSession orderEditSession; + /** * The list of errors that occurred from executing the mutation. */ @@ -50,6 +55,17 @@ public void setCalculatedOrder(CalculatedOrder calculatedOrder) { this.calculatedOrder = calculatedOrder; } + /** + * The order edit session with the edits applied but not saved. + */ + public OrderEditSession getOrderEditSession() { + return orderEditSession; + } + + public void setOrderEditSession(OrderEditSession orderEditSession) { + this.orderEditSession = orderEditSession; + } + /** * The list of errors that occurred from executing the mutation. */ @@ -63,7 +79,7 @@ public void setUserErrors(List userErrors) { @Override public String toString() { - return "OrderEditAddCustomItemPayload{calculatedLineItem='" + calculatedLineItem + "', calculatedOrder='" + calculatedOrder + "', userErrors='" + userErrors + "'}"; + return "OrderEditAddCustomItemPayload{calculatedLineItem='" + calculatedLineItem + "', calculatedOrder='" + calculatedOrder + "', orderEditSession='" + orderEditSession + "', userErrors='" + userErrors + "'}"; } @Override @@ -73,12 +89,13 @@ public boolean equals(Object o) { OrderEditAddCustomItemPayload that = (OrderEditAddCustomItemPayload) o; return Objects.equals(calculatedLineItem, that.calculatedLineItem) && Objects.equals(calculatedOrder, that.calculatedOrder) && + Objects.equals(orderEditSession, that.orderEditSession) && Objects.equals(userErrors, that.userErrors); } @Override public int hashCode() { - return Objects.hash(calculatedLineItem, calculatedOrder, userErrors); + return Objects.hash(calculatedLineItem, calculatedOrder, orderEditSession, userErrors); } public static Builder newBuilder() { @@ -96,6 +113,11 @@ public static class Builder { */ private CalculatedOrder calculatedOrder; + /** + * The order edit session with the edits applied but not saved. + */ + private OrderEditSession orderEditSession; + /** * The list of errors that occurred from executing the mutation. */ @@ -105,6 +127,7 @@ public OrderEditAddCustomItemPayload build() { OrderEditAddCustomItemPayload result = new OrderEditAddCustomItemPayload(); result.calculatedLineItem = this.calculatedLineItem; result.calculatedOrder = this.calculatedOrder; + result.orderEditSession = this.orderEditSession; result.userErrors = this.userErrors; return result; } @@ -125,6 +148,14 @@ public Builder calculatedOrder(CalculatedOrder calculatedOrder) { return this; } + /** + * The order edit session with the edits applied but not saved. + */ + public Builder orderEditSession(OrderEditSession orderEditSession) { + this.orderEditSession = orderEditSession; + return this; + } + /** * The list of errors that occurred from executing the mutation. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditAddLineItemDiscountPayload.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditAddLineItemDiscountPayload.java index 0135a616..44c725d8 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditAddLineItemDiscountPayload.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditAddLineItemDiscountPayload.java @@ -25,6 +25,11 @@ public class OrderEditAddLineItemDiscountPayload { */ private CalculatedOrder calculatedOrder; + /** + * The order edit session with the edits applied but not saved. + */ + private OrderEditSession orderEditSession; + /** * The list of errors that occurred from executing the mutation. */ @@ -67,6 +72,17 @@ public void setCalculatedOrder(CalculatedOrder calculatedOrder) { this.calculatedOrder = calculatedOrder; } + /** + * The order edit session with the edits applied but not saved. + */ + public OrderEditSession getOrderEditSession() { + return orderEditSession; + } + + public void setOrderEditSession(OrderEditSession orderEditSession) { + this.orderEditSession = orderEditSession; + } + /** * The list of errors that occurred from executing the mutation. */ @@ -80,7 +96,7 @@ public void setUserErrors(List userErrors) { @Override public String toString() { - return "OrderEditAddLineItemDiscountPayload{addedDiscountStagedChange='" + addedDiscountStagedChange + "', calculatedLineItem='" + calculatedLineItem + "', calculatedOrder='" + calculatedOrder + "', userErrors='" + userErrors + "'}"; + return "OrderEditAddLineItemDiscountPayload{addedDiscountStagedChange='" + addedDiscountStagedChange + "', calculatedLineItem='" + calculatedLineItem + "', calculatedOrder='" + calculatedOrder + "', orderEditSession='" + orderEditSession + "', userErrors='" + userErrors + "'}"; } @Override @@ -91,12 +107,13 @@ public boolean equals(Object o) { return Objects.equals(addedDiscountStagedChange, that.addedDiscountStagedChange) && Objects.equals(calculatedLineItem, that.calculatedLineItem) && Objects.equals(calculatedOrder, that.calculatedOrder) && + Objects.equals(orderEditSession, that.orderEditSession) && Objects.equals(userErrors, that.userErrors); } @Override public int hashCode() { - return Objects.hash(addedDiscountStagedChange, calculatedLineItem, calculatedOrder, userErrors); + return Objects.hash(addedDiscountStagedChange, calculatedLineItem, calculatedOrder, orderEditSession, userErrors); } public static Builder newBuilder() { @@ -119,6 +136,11 @@ public static class Builder { */ private CalculatedOrder calculatedOrder; + /** + * The order edit session with the edits applied but not saved. + */ + private OrderEditSession orderEditSession; + /** * The list of errors that occurred from executing the mutation. */ @@ -129,6 +151,7 @@ public OrderEditAddLineItemDiscountPayload build() { result.addedDiscountStagedChange = this.addedDiscountStagedChange; result.calculatedLineItem = this.calculatedLineItem; result.calculatedOrder = this.calculatedOrder; + result.orderEditSession = this.orderEditSession; result.userErrors = this.userErrors; return result; } @@ -158,6 +181,14 @@ public Builder calculatedOrder(CalculatedOrder calculatedOrder) { return this; } + /** + * The order edit session with the edits applied but not saved. + */ + public Builder orderEditSession(OrderEditSession orderEditSession) { + this.orderEditSession = orderEditSession; + return this; + } + /** * The list of errors that occurred from executing the mutation. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditAddShippingLinePayload.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditAddShippingLinePayload.java index ec222655..504a9dd7 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditAddShippingLinePayload.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditAddShippingLinePayload.java @@ -22,6 +22,11 @@ public class OrderEditAddShippingLinePayload { */ private CalculatedShippingLine calculatedShippingLine; + /** + * The order edit session with the edits applied but not saved. + */ + private OrderEditSession orderEditSession; + /** * The list of errors that occurred from executing the mutation. */ @@ -54,6 +59,17 @@ public void setCalculatedShippingLine(CalculatedShippingLine calculatedShippingL this.calculatedShippingLine = calculatedShippingLine; } + /** + * The order edit session with the edits applied but not saved. + */ + public OrderEditSession getOrderEditSession() { + return orderEditSession; + } + + public void setOrderEditSession(OrderEditSession orderEditSession) { + this.orderEditSession = orderEditSession; + } + /** * The list of errors that occurred from executing the mutation. */ @@ -67,7 +83,7 @@ public void setUserErrors(List userErrors) { @Override public String toString() { - return "OrderEditAddShippingLinePayload{calculatedOrder='" + calculatedOrder + "', calculatedShippingLine='" + calculatedShippingLine + "', userErrors='" + userErrors + "'}"; + return "OrderEditAddShippingLinePayload{calculatedOrder='" + calculatedOrder + "', calculatedShippingLine='" + calculatedShippingLine + "', orderEditSession='" + orderEditSession + "', userErrors='" + userErrors + "'}"; } @Override @@ -77,12 +93,13 @@ public boolean equals(Object o) { OrderEditAddShippingLinePayload that = (OrderEditAddShippingLinePayload) o; return Objects.equals(calculatedOrder, that.calculatedOrder) && Objects.equals(calculatedShippingLine, that.calculatedShippingLine) && + Objects.equals(orderEditSession, that.orderEditSession) && Objects.equals(userErrors, that.userErrors); } @Override public int hashCode() { - return Objects.hash(calculatedOrder, calculatedShippingLine, userErrors); + return Objects.hash(calculatedOrder, calculatedShippingLine, orderEditSession, userErrors); } public static Builder newBuilder() { @@ -102,6 +119,11 @@ public static class Builder { */ private CalculatedShippingLine calculatedShippingLine; + /** + * The order edit session with the edits applied but not saved. + */ + private OrderEditSession orderEditSession; + /** * The list of errors that occurred from executing the mutation. */ @@ -111,6 +133,7 @@ public OrderEditAddShippingLinePayload build() { OrderEditAddShippingLinePayload result = new OrderEditAddShippingLinePayload(); result.calculatedOrder = this.calculatedOrder; result.calculatedShippingLine = this.calculatedShippingLine; + result.orderEditSession = this.orderEditSession; result.userErrors = this.userErrors; return result; } @@ -133,6 +156,14 @@ public Builder calculatedShippingLine(CalculatedShippingLine calculatedShippingL return this; } + /** + * The order edit session with the edits applied but not saved. + */ + public Builder orderEditSession(OrderEditSession orderEditSession) { + this.orderEditSession = orderEditSession; + return this; + } + /** * The list of errors that occurred from executing the mutation. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditAddVariantPayload.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditAddVariantPayload.java index 1a47c9cc..9f067de1 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditAddVariantPayload.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditAddVariantPayload.java @@ -22,6 +22,11 @@ public class OrderEditAddVariantPayload { */ private CalculatedOrder calculatedOrder; + /** + * The order edit session with the edits applied but not saved. + */ + private OrderEditSession orderEditSession; + /** * The list of errors that occurred from executing the mutation. */ @@ -54,6 +59,17 @@ public void setCalculatedOrder(CalculatedOrder calculatedOrder) { this.calculatedOrder = calculatedOrder; } + /** + * The order edit session with the edits applied but not saved. + */ + public OrderEditSession getOrderEditSession() { + return orderEditSession; + } + + public void setOrderEditSession(OrderEditSession orderEditSession) { + this.orderEditSession = orderEditSession; + } + /** * The list of errors that occurred from executing the mutation. */ @@ -67,7 +83,7 @@ public void setUserErrors(List userErrors) { @Override public String toString() { - return "OrderEditAddVariantPayload{calculatedLineItem='" + calculatedLineItem + "', calculatedOrder='" + calculatedOrder + "', userErrors='" + userErrors + "'}"; + return "OrderEditAddVariantPayload{calculatedLineItem='" + calculatedLineItem + "', calculatedOrder='" + calculatedOrder + "', orderEditSession='" + orderEditSession + "', userErrors='" + userErrors + "'}"; } @Override @@ -77,12 +93,13 @@ public boolean equals(Object o) { OrderEditAddVariantPayload that = (OrderEditAddVariantPayload) o; return Objects.equals(calculatedLineItem, that.calculatedLineItem) && Objects.equals(calculatedOrder, that.calculatedOrder) && + Objects.equals(orderEditSession, that.orderEditSession) && Objects.equals(userErrors, that.userErrors); } @Override public int hashCode() { - return Objects.hash(calculatedLineItem, calculatedOrder, userErrors); + return Objects.hash(calculatedLineItem, calculatedOrder, orderEditSession, userErrors); } public static Builder newBuilder() { @@ -102,6 +119,11 @@ public static class Builder { */ private CalculatedOrder calculatedOrder; + /** + * The order edit session with the edits applied but not saved. + */ + private OrderEditSession orderEditSession; + /** * The list of errors that occurred from executing the mutation. */ @@ -111,6 +133,7 @@ public OrderEditAddVariantPayload build() { OrderEditAddVariantPayload result = new OrderEditAddVariantPayload(); result.calculatedLineItem = this.calculatedLineItem; result.calculatedOrder = this.calculatedOrder; + result.orderEditSession = this.orderEditSession; result.userErrors = this.userErrors; return result; } @@ -133,6 +156,14 @@ public Builder calculatedOrder(CalculatedOrder calculatedOrder) { return this; } + /** + * The order edit session with the edits applied but not saved. + */ + public Builder orderEditSession(OrderEditSession orderEditSession) { + this.orderEditSession = orderEditSession; + return this; + } + /** * The list of errors that occurred from executing the mutation. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditBeginPayload.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditBeginPayload.java index 4031fdd5..792891bf 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditBeginPayload.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditBeginPayload.java @@ -15,6 +15,11 @@ public class OrderEditBeginPayload { */ private CalculatedOrder calculatedOrder; + /** + * The order edit session that was created. + */ + private OrderEditSession orderEditSession; + /** * The list of errors that occurred from executing the mutation. */ @@ -34,6 +39,17 @@ public void setCalculatedOrder(CalculatedOrder calculatedOrder) { this.calculatedOrder = calculatedOrder; } + /** + * The order edit session that was created. + */ + public OrderEditSession getOrderEditSession() { + return orderEditSession; + } + + public void setOrderEditSession(OrderEditSession orderEditSession) { + this.orderEditSession = orderEditSession; + } + /** * The list of errors that occurred from executing the mutation. */ @@ -47,7 +63,7 @@ public void setUserErrors(List userErrors) { @Override public String toString() { - return "OrderEditBeginPayload{calculatedOrder='" + calculatedOrder + "', userErrors='" + userErrors + "'}"; + return "OrderEditBeginPayload{calculatedOrder='" + calculatedOrder + "', orderEditSession='" + orderEditSession + "', userErrors='" + userErrors + "'}"; } @Override @@ -56,12 +72,13 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) return false; OrderEditBeginPayload that = (OrderEditBeginPayload) o; return Objects.equals(calculatedOrder, that.calculatedOrder) && + Objects.equals(orderEditSession, that.orderEditSession) && Objects.equals(userErrors, that.userErrors); } @Override public int hashCode() { - return Objects.hash(calculatedOrder, userErrors); + return Objects.hash(calculatedOrder, orderEditSession, userErrors); } public static Builder newBuilder() { @@ -74,6 +91,11 @@ public static class Builder { */ private CalculatedOrder calculatedOrder; + /** + * The order edit session that was created. + */ + private OrderEditSession orderEditSession; + /** * The list of errors that occurred from executing the mutation. */ @@ -82,6 +104,7 @@ public static class Builder { public OrderEditBeginPayload build() { OrderEditBeginPayload result = new OrderEditBeginPayload(); result.calculatedOrder = this.calculatedOrder; + result.orderEditSession = this.orderEditSession; result.userErrors = this.userErrors; return result; } @@ -94,6 +117,14 @@ public Builder calculatedOrder(CalculatedOrder calculatedOrder) { return this; } + /** + * The order edit session that was created. + */ + public Builder orderEditSession(OrderEditSession orderEditSession) { + this.orderEditSession = orderEditSession; + return this; + } + /** * The list of errors that occurred from executing the mutation. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditCommitPayload.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditCommitPayload.java index 5a8b4824..cef6250f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditCommitPayload.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditCommitPayload.java @@ -15,6 +15,11 @@ public class OrderEditCommitPayload { */ private Order order; + /** + * Messages to display to the user after the staged changes are commmitted. + */ + private List successMessages; + /** * The list of errors that occurred from executing the mutation. */ @@ -34,6 +39,17 @@ public void setOrder(Order order) { this.order = order; } + /** + * Messages to display to the user after the staged changes are commmitted. + */ + public List getSuccessMessages() { + return successMessages; + } + + public void setSuccessMessages(List successMessages) { + this.successMessages = successMessages; + } + /** * The list of errors that occurred from executing the mutation. */ @@ -47,7 +63,7 @@ public void setUserErrors(List userErrors) { @Override public String toString() { - return "OrderEditCommitPayload{order='" + order + "', userErrors='" + userErrors + "'}"; + return "OrderEditCommitPayload{order='" + order + "', successMessages='" + successMessages + "', userErrors='" + userErrors + "'}"; } @Override @@ -56,12 +72,13 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) return false; OrderEditCommitPayload that = (OrderEditCommitPayload) o; return Objects.equals(order, that.order) && + Objects.equals(successMessages, that.successMessages) && Objects.equals(userErrors, that.userErrors); } @Override public int hashCode() { - return Objects.hash(order, userErrors); + return Objects.hash(order, successMessages, userErrors); } public static Builder newBuilder() { @@ -74,6 +91,11 @@ public static class Builder { */ private Order order; + /** + * Messages to display to the user after the staged changes are commmitted. + */ + private List successMessages; + /** * The list of errors that occurred from executing the mutation. */ @@ -82,6 +104,7 @@ public static class Builder { public OrderEditCommitPayload build() { OrderEditCommitPayload result = new OrderEditCommitPayload(); result.order = this.order; + result.successMessages = this.successMessages; result.userErrors = this.userErrors; return result; } @@ -94,6 +117,14 @@ public Builder order(Order order) { return this; } + /** + * Messages to display to the user after the staged changes are commmitted. + */ + public Builder successMessages(List successMessages) { + this.successMessages = successMessages; + return this; + } + /** * The list of errors that occurred from executing the mutation. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditRemoveDiscountPayload.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditRemoveDiscountPayload.java index b498bc7f..cbbe525f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditRemoveDiscountPayload.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditRemoveDiscountPayload.java @@ -15,6 +15,11 @@ public class OrderEditRemoveDiscountPayload { */ private CalculatedOrder calculatedOrder; + /** + * The order edit session with the edits applied but not saved. + */ + private OrderEditSession orderEditSession; + /** * The list of errors that occurred from executing the mutation. */ @@ -34,6 +39,17 @@ public void setCalculatedOrder(CalculatedOrder calculatedOrder) { this.calculatedOrder = calculatedOrder; } + /** + * The order edit session with the edits applied but not saved. + */ + public OrderEditSession getOrderEditSession() { + return orderEditSession; + } + + public void setOrderEditSession(OrderEditSession orderEditSession) { + this.orderEditSession = orderEditSession; + } + /** * The list of errors that occurred from executing the mutation. */ @@ -47,7 +63,7 @@ public void setUserErrors(List userErrors) { @Override public String toString() { - return "OrderEditRemoveDiscountPayload{calculatedOrder='" + calculatedOrder + "', userErrors='" + userErrors + "'}"; + return "OrderEditRemoveDiscountPayload{calculatedOrder='" + calculatedOrder + "', orderEditSession='" + orderEditSession + "', userErrors='" + userErrors + "'}"; } @Override @@ -56,12 +72,13 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) return false; OrderEditRemoveDiscountPayload that = (OrderEditRemoveDiscountPayload) o; return Objects.equals(calculatedOrder, that.calculatedOrder) && + Objects.equals(orderEditSession, that.orderEditSession) && Objects.equals(userErrors, that.userErrors); } @Override public int hashCode() { - return Objects.hash(calculatedOrder, userErrors); + return Objects.hash(calculatedOrder, orderEditSession, userErrors); } public static Builder newBuilder() { @@ -74,6 +91,11 @@ public static class Builder { */ private CalculatedOrder calculatedOrder; + /** + * The order edit session with the edits applied but not saved. + */ + private OrderEditSession orderEditSession; + /** * The list of errors that occurred from executing the mutation. */ @@ -82,6 +104,7 @@ public static class Builder { public OrderEditRemoveDiscountPayload build() { OrderEditRemoveDiscountPayload result = new OrderEditRemoveDiscountPayload(); result.calculatedOrder = this.calculatedOrder; + result.orderEditSession = this.orderEditSession; result.userErrors = this.userErrors; return result; } @@ -94,6 +117,14 @@ public Builder calculatedOrder(CalculatedOrder calculatedOrder) { return this; } + /** + * The order edit session with the edits applied but not saved. + */ + public Builder orderEditSession(OrderEditSession orderEditSession) { + this.orderEditSession = orderEditSession; + return this; + } + /** * The list of errors that occurred from executing the mutation. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditRemoveLineItemDiscountPayload.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditRemoveLineItemDiscountPayload.java index eefe100b..5c571e2a 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditRemoveLineItemDiscountPayload.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditRemoveLineItemDiscountPayload.java @@ -20,6 +20,11 @@ public class OrderEditRemoveLineItemDiscountPayload { */ private CalculatedOrder calculatedOrder; + /** + * The order edit session with the edits applied but not saved. + */ + private OrderEditSession orderEditSession; + /** * The list of errors that occurred from executing the mutation. */ @@ -50,6 +55,17 @@ public void setCalculatedOrder(CalculatedOrder calculatedOrder) { this.calculatedOrder = calculatedOrder; } + /** + * The order edit session with the edits applied but not saved. + */ + public OrderEditSession getOrderEditSession() { + return orderEditSession; + } + + public void setOrderEditSession(OrderEditSession orderEditSession) { + this.orderEditSession = orderEditSession; + } + /** * The list of errors that occurred from executing the mutation. */ @@ -63,7 +79,7 @@ public void setUserErrors(List userErrors) { @Override public String toString() { - return "OrderEditRemoveLineItemDiscountPayload{calculatedLineItem='" + calculatedLineItem + "', calculatedOrder='" + calculatedOrder + "', userErrors='" + userErrors + "'}"; + return "OrderEditRemoveLineItemDiscountPayload{calculatedLineItem='" + calculatedLineItem + "', calculatedOrder='" + calculatedOrder + "', orderEditSession='" + orderEditSession + "', userErrors='" + userErrors + "'}"; } @Override @@ -73,12 +89,13 @@ public boolean equals(Object o) { OrderEditRemoveLineItemDiscountPayload that = (OrderEditRemoveLineItemDiscountPayload) o; return Objects.equals(calculatedLineItem, that.calculatedLineItem) && Objects.equals(calculatedOrder, that.calculatedOrder) && + Objects.equals(orderEditSession, that.orderEditSession) && Objects.equals(userErrors, that.userErrors); } @Override public int hashCode() { - return Objects.hash(calculatedLineItem, calculatedOrder, userErrors); + return Objects.hash(calculatedLineItem, calculatedOrder, orderEditSession, userErrors); } public static Builder newBuilder() { @@ -96,6 +113,11 @@ public static class Builder { */ private CalculatedOrder calculatedOrder; + /** + * The order edit session with the edits applied but not saved. + */ + private OrderEditSession orderEditSession; + /** * The list of errors that occurred from executing the mutation. */ @@ -105,6 +127,7 @@ public OrderEditRemoveLineItemDiscountPayload build() { OrderEditRemoveLineItemDiscountPayload result = new OrderEditRemoveLineItemDiscountPayload(); result.calculatedLineItem = this.calculatedLineItem; result.calculatedOrder = this.calculatedOrder; + result.orderEditSession = this.orderEditSession; result.userErrors = this.userErrors; return result; } @@ -125,6 +148,14 @@ public Builder calculatedOrder(CalculatedOrder calculatedOrder) { return this; } + /** + * The order edit session with the edits applied but not saved. + */ + public Builder orderEditSession(OrderEditSession orderEditSession) { + this.orderEditSession = orderEditSession; + return this; + } + /** * The list of errors that occurred from executing the mutation. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditRemoveShippingLinePayload.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditRemoveShippingLinePayload.java index 0b57103f..d2f527fa 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditRemoveShippingLinePayload.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditRemoveShippingLinePayload.java @@ -16,6 +16,11 @@ public class OrderEditRemoveShippingLinePayload { */ private CalculatedOrder calculatedOrder; + /** + * The order edit session with the edits applied but not saved. + */ + private OrderEditSession orderEditSession; + /** * The list of errors that occurred from executing the mutation. */ @@ -36,6 +41,17 @@ public void setCalculatedOrder(CalculatedOrder calculatedOrder) { this.calculatedOrder = calculatedOrder; } + /** + * The order edit session with the edits applied but not saved. + */ + public OrderEditSession getOrderEditSession() { + return orderEditSession; + } + + public void setOrderEditSession(OrderEditSession orderEditSession) { + this.orderEditSession = orderEditSession; + } + /** * The list of errors that occurred from executing the mutation. */ @@ -49,7 +65,7 @@ public void setUserErrors(List userErrors) @Override public String toString() { - return "OrderEditRemoveShippingLinePayload{calculatedOrder='" + calculatedOrder + "', userErrors='" + userErrors + "'}"; + return "OrderEditRemoveShippingLinePayload{calculatedOrder='" + calculatedOrder + "', orderEditSession='" + orderEditSession + "', userErrors='" + userErrors + "'}"; } @Override @@ -58,12 +74,13 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) return false; OrderEditRemoveShippingLinePayload that = (OrderEditRemoveShippingLinePayload) o; return Objects.equals(calculatedOrder, that.calculatedOrder) && + Objects.equals(orderEditSession, that.orderEditSession) && Objects.equals(userErrors, that.userErrors); } @Override public int hashCode() { - return Objects.hash(calculatedOrder, userErrors); + return Objects.hash(calculatedOrder, orderEditSession, userErrors); } public static Builder newBuilder() { @@ -77,6 +94,11 @@ public static class Builder { */ private CalculatedOrder calculatedOrder; + /** + * The order edit session with the edits applied but not saved. + */ + private OrderEditSession orderEditSession; + /** * The list of errors that occurred from executing the mutation. */ @@ -85,6 +107,7 @@ public static class Builder { public OrderEditRemoveShippingLinePayload build() { OrderEditRemoveShippingLinePayload result = new OrderEditRemoveShippingLinePayload(); result.calculatedOrder = this.calculatedOrder; + result.orderEditSession = this.orderEditSession; result.userErrors = this.userErrors; return result; } @@ -98,6 +121,14 @@ public Builder calculatedOrder(CalculatedOrder calculatedOrder) { return this; } + /** + * The order edit session with the edits applied but not saved. + */ + public Builder orderEditSession(OrderEditSession orderEditSession) { + this.orderEditSession = orderEditSession; + return this; + } + /** * The list of errors that occurred from executing the mutation. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditSession.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditSession.java new file mode 100644 index 00000000..c0e1807d --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditSession.java @@ -0,0 +1,77 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * An edit session for an order. + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NONE +) +public class OrderEditSession implements com.shopify.admin.types.Node { + /** + * The unique ID of the order edit session. + */ + private String id; + + public OrderEditSession() { + } + + /** + * The unique ID of the order edit session. + */ + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + @Override + public String toString() { + return "OrderEditSession{id='" + id + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + OrderEditSession that = (OrderEditSession) o; + return Objects.equals(id, that.id); + } + + @Override + public int hashCode() { + return Objects.hash(id); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The unique ID of the order edit session. + */ + private String id; + + public OrderEditSession build() { + OrderEditSession result = new OrderEditSession(); + result.id = this.id; + return result; + } + + /** + * The unique ID of the order edit session. + */ + public Builder id(String id) { + this.id = id; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditSetQuantityPayload.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditSetQuantityPayload.java index e6886542..df2af568 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditSetQuantityPayload.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditSetQuantityPayload.java @@ -20,6 +20,11 @@ public class OrderEditSetQuantityPayload { */ private CalculatedOrder calculatedOrder; + /** + * The order edit session with the edits applied but not saved. + */ + private OrderEditSession orderEditSession; + /** * The list of errors that occurred from executing the mutation. */ @@ -50,6 +55,17 @@ public void setCalculatedOrder(CalculatedOrder calculatedOrder) { this.calculatedOrder = calculatedOrder; } + /** + * The order edit session with the edits applied but not saved. + */ + public OrderEditSession getOrderEditSession() { + return orderEditSession; + } + + public void setOrderEditSession(OrderEditSession orderEditSession) { + this.orderEditSession = orderEditSession; + } + /** * The list of errors that occurred from executing the mutation. */ @@ -63,7 +79,7 @@ public void setUserErrors(List userErrors) { @Override public String toString() { - return "OrderEditSetQuantityPayload{calculatedLineItem='" + calculatedLineItem + "', calculatedOrder='" + calculatedOrder + "', userErrors='" + userErrors + "'}"; + return "OrderEditSetQuantityPayload{calculatedLineItem='" + calculatedLineItem + "', calculatedOrder='" + calculatedOrder + "', orderEditSession='" + orderEditSession + "', userErrors='" + userErrors + "'}"; } @Override @@ -73,12 +89,13 @@ public boolean equals(Object o) { OrderEditSetQuantityPayload that = (OrderEditSetQuantityPayload) o; return Objects.equals(calculatedLineItem, that.calculatedLineItem) && Objects.equals(calculatedOrder, that.calculatedOrder) && + Objects.equals(orderEditSession, that.orderEditSession) && Objects.equals(userErrors, that.userErrors); } @Override public int hashCode() { - return Objects.hash(calculatedLineItem, calculatedOrder, userErrors); + return Objects.hash(calculatedLineItem, calculatedOrder, orderEditSession, userErrors); } public static Builder newBuilder() { @@ -96,6 +113,11 @@ public static class Builder { */ private CalculatedOrder calculatedOrder; + /** + * The order edit session with the edits applied but not saved. + */ + private OrderEditSession orderEditSession; + /** * The list of errors that occurred from executing the mutation. */ @@ -105,6 +127,7 @@ public OrderEditSetQuantityPayload build() { OrderEditSetQuantityPayload result = new OrderEditSetQuantityPayload(); result.calculatedLineItem = this.calculatedLineItem; result.calculatedOrder = this.calculatedOrder; + result.orderEditSession = this.orderEditSession; result.userErrors = this.userErrors; return result; } @@ -125,6 +148,14 @@ public Builder calculatedOrder(CalculatedOrder calculatedOrder) { return this; } + /** + * The order edit session with the edits applied but not saved. + */ + public Builder orderEditSession(OrderEditSession orderEditSession) { + this.orderEditSession = orderEditSession; + return this; + } + /** * The list of errors that occurred from executing the mutation. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditUpdateDiscountPayload.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditUpdateDiscountPayload.java index 7d0e84b5..062e71b6 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditUpdateDiscountPayload.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditUpdateDiscountPayload.java @@ -15,6 +15,11 @@ public class OrderEditUpdateDiscountPayload { */ private CalculatedOrder calculatedOrder; + /** + * The order edit session with the edits applied but not saved. + */ + private OrderEditSession orderEditSession; + /** * The list of errors that occurred from executing the mutation. */ @@ -34,6 +39,17 @@ public void setCalculatedOrder(CalculatedOrder calculatedOrder) { this.calculatedOrder = calculatedOrder; } + /** + * The order edit session with the edits applied but not saved. + */ + public OrderEditSession getOrderEditSession() { + return orderEditSession; + } + + public void setOrderEditSession(OrderEditSession orderEditSession) { + this.orderEditSession = orderEditSession; + } + /** * The list of errors that occurred from executing the mutation. */ @@ -47,7 +63,7 @@ public void setUserErrors(List userErrors) { @Override public String toString() { - return "OrderEditUpdateDiscountPayload{calculatedOrder='" + calculatedOrder + "', userErrors='" + userErrors + "'}"; + return "OrderEditUpdateDiscountPayload{calculatedOrder='" + calculatedOrder + "', orderEditSession='" + orderEditSession + "', userErrors='" + userErrors + "'}"; } @Override @@ -56,12 +72,13 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) return false; OrderEditUpdateDiscountPayload that = (OrderEditUpdateDiscountPayload) o; return Objects.equals(calculatedOrder, that.calculatedOrder) && + Objects.equals(orderEditSession, that.orderEditSession) && Objects.equals(userErrors, that.userErrors); } @Override public int hashCode() { - return Objects.hash(calculatedOrder, userErrors); + return Objects.hash(calculatedOrder, orderEditSession, userErrors); } public static Builder newBuilder() { @@ -74,6 +91,11 @@ public static class Builder { */ private CalculatedOrder calculatedOrder; + /** + * The order edit session with the edits applied but not saved. + */ + private OrderEditSession orderEditSession; + /** * The list of errors that occurred from executing the mutation. */ @@ -82,6 +104,7 @@ public static class Builder { public OrderEditUpdateDiscountPayload build() { OrderEditUpdateDiscountPayload result = new OrderEditUpdateDiscountPayload(); result.calculatedOrder = this.calculatedOrder; + result.orderEditSession = this.orderEditSession; result.userErrors = this.userErrors; return result; } @@ -94,6 +117,14 @@ public Builder calculatedOrder(CalculatedOrder calculatedOrder) { return this; } + /** + * The order edit session with the edits applied but not saved. + */ + public Builder orderEditSession(OrderEditSession orderEditSession) { + this.orderEditSession = orderEditSession; + return this; + } + /** * The list of errors that occurred from executing the mutation. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditUpdateShippingLinePayload.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditUpdateShippingLinePayload.java index ce6fcd6c..f4662c3b 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditUpdateShippingLinePayload.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderEditUpdateShippingLinePayload.java @@ -15,6 +15,11 @@ public class OrderEditUpdateShippingLinePayload { */ private CalculatedOrder calculatedOrder; + /** + * The order edit session with the edits applied but not saved. + */ + private OrderEditSession orderEditSession; + /** * The list of errors that occurred from executing the mutation. */ @@ -34,6 +39,17 @@ public void setCalculatedOrder(CalculatedOrder calculatedOrder) { this.calculatedOrder = calculatedOrder; } + /** + * The order edit session with the edits applied but not saved. + */ + public OrderEditSession getOrderEditSession() { + return orderEditSession; + } + + public void setOrderEditSession(OrderEditSession orderEditSession) { + this.orderEditSession = orderEditSession; + } + /** * The list of errors that occurred from executing the mutation. */ @@ -47,7 +63,7 @@ public void setUserErrors(List userErrors) @Override public String toString() { - return "OrderEditUpdateShippingLinePayload{calculatedOrder='" + calculatedOrder + "', userErrors='" + userErrors + "'}"; + return "OrderEditUpdateShippingLinePayload{calculatedOrder='" + calculatedOrder + "', orderEditSession='" + orderEditSession + "', userErrors='" + userErrors + "'}"; } @Override @@ -56,12 +72,13 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) return false; OrderEditUpdateShippingLinePayload that = (OrderEditUpdateShippingLinePayload) o; return Objects.equals(calculatedOrder, that.calculatedOrder) && + Objects.equals(orderEditSession, that.orderEditSession) && Objects.equals(userErrors, that.userErrors); } @Override public int hashCode() { - return Objects.hash(calculatedOrder, userErrors); + return Objects.hash(calculatedOrder, orderEditSession, userErrors); } public static Builder newBuilder() { @@ -74,6 +91,11 @@ public static class Builder { */ private CalculatedOrder calculatedOrder; + /** + * The order edit session with the edits applied but not saved. + */ + private OrderEditSession orderEditSession; + /** * The list of errors that occurred from executing the mutation. */ @@ -82,6 +104,7 @@ public static class Builder { public OrderEditUpdateShippingLinePayload build() { OrderEditUpdateShippingLinePayload result = new OrderEditUpdateShippingLinePayload(); result.calculatedOrder = this.calculatedOrder; + result.orderEditSession = this.orderEditSession; result.userErrors = this.userErrors; return result; } @@ -94,6 +117,14 @@ public Builder calculatedOrder(CalculatedOrder calculatedOrder) { return this; } + /** + * The order edit session with the edits applied but not saved. + */ + public Builder orderEditSession(OrderEditSession orderEditSession) { + this.orderEditSession = orderEditSession; + return this; + } + /** * The list of errors that occurred from executing the mutation. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderInput.java index c83f02ad..c136aff9 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderInput.java @@ -20,6 +20,11 @@ public class OrderInput { */ private String email; + /** + * A new customer phone number for the order. Overwrites the existing phone number. + */ + private String phone; + /** * The new contents for the note associated with the order. Overwrites the existing note. */ @@ -82,6 +87,17 @@ public void setEmail(String email) { this.email = email; } + /** + * A new customer phone number for the order. Overwrites the existing phone number. + */ + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + /** * The new contents for the note associated with the order. Overwrites the existing note. */ @@ -163,7 +179,7 @@ public void setPoNumber(String poNumber) { @Override public String toString() { - return "OrderInput{id='" + id + "', email='" + email + "', note='" + note + "', tags='" + tags + "', shippingAddress='" + shippingAddress + "', customAttributes='" + customAttributes + "', metafields='" + metafields + "', localizedFields='" + localizedFields + "', poNumber='" + poNumber + "'}"; + return "OrderInput{id='" + id + "', email='" + email + "', phone='" + phone + "', note='" + note + "', tags='" + tags + "', shippingAddress='" + shippingAddress + "', customAttributes='" + customAttributes + "', metafields='" + metafields + "', localizedFields='" + localizedFields + "', poNumber='" + poNumber + "'}"; } @Override @@ -173,6 +189,7 @@ public boolean equals(Object o) { OrderInput that = (OrderInput) o; return Objects.equals(id, that.id) && Objects.equals(email, that.email) && + Objects.equals(phone, that.phone) && Objects.equals(note, that.note) && Objects.equals(tags, that.tags) && Objects.equals(shippingAddress, that.shippingAddress) && @@ -184,7 +201,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(id, email, note, tags, shippingAddress, customAttributes, metafields, localizedFields, poNumber); + return Objects.hash(id, email, phone, note, tags, shippingAddress, customAttributes, metafields, localizedFields, poNumber); } public static Builder newBuilder() { @@ -202,6 +219,11 @@ public static class Builder { */ private String email; + /** + * A new customer phone number for the order. Overwrites the existing phone number. + */ + private String phone; + /** * The new contents for the note associated with the order. Overwrites the existing note. */ @@ -243,6 +265,7 @@ public OrderInput build() { OrderInput result = new OrderInput(); result.id = this.id; result.email = this.email; + result.phone = this.phone; result.note = this.note; result.tags = this.tags; result.shippingAddress = this.shippingAddress; @@ -269,6 +292,14 @@ public Builder email(String email) { return this; } + /** + * A new customer phone number for the order. Overwrites the existing phone number. + */ + public Builder phone(String phone) { + this.phone = phone; + return this; + } + /** * The new contents for the note associated with the order. Overwrites the existing note. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderSortKeys.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderSortKeys.java index f0ff3a2d..18b29530 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderSortKeys.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderSortKeys.java @@ -6,6 +6,8 @@ public enum OrderSortKeys { CREATED_AT, + CURRENT_TOTAL_PRICE, + CUSTOMER_NAME, DESTINATION, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderStagedChange.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderStagedChange.java index beae5ef4..e0f3078d 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderStagedChange.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderStagedChange.java @@ -15,6 +15,7 @@ @JsonSubTypes.Type(value = OrderStagedChangeAddVariant.class, name = "OrderStagedChangeAddVariant"), @JsonSubTypes.Type(value = OrderStagedChangeDecrementItem.class, name = "OrderStagedChangeDecrementItem"), @JsonSubTypes.Type(value = OrderStagedChangeIncrementItem.class, name = "OrderStagedChangeIncrementItem"), + @JsonSubTypes.Type(value = OrderStagedChangeRemoveDiscount.class, name = "OrderStagedChangeRemoveDiscount"), @JsonSubTypes.Type(value = OrderStagedChangeRemoveShippingLine.class, name = "OrderStagedChangeRemoveShippingLine") }) public interface OrderStagedChange { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderStagedChangeRemoveDiscount.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderStagedChangeRemoveDiscount.java new file mode 100644 index 00000000..5401b6c1 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderStagedChangeRemoveDiscount.java @@ -0,0 +1,77 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * A discount application removed during an order edit. + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NONE +) +public class OrderStagedChangeRemoveDiscount implements OrderStagedChange { + /** + * The removed discount application. + */ + private DiscountApplication discountApplication; + + public OrderStagedChangeRemoveDiscount() { + } + + /** + * The removed discount application. + */ + public DiscountApplication getDiscountApplication() { + return discountApplication; + } + + public void setDiscountApplication(DiscountApplication discountApplication) { + this.discountApplication = discountApplication; + } + + @Override + public String toString() { + return "OrderStagedChangeRemoveDiscount{discountApplication='" + discountApplication + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + OrderStagedChangeRemoveDiscount that = (OrderStagedChangeRemoveDiscount) o; + return Objects.equals(discountApplication, that.discountApplication); + } + + @Override + public int hashCode() { + return Objects.hash(discountApplication); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The removed discount application. + */ + private DiscountApplication discountApplication; + + public OrderStagedChangeRemoveDiscount build() { + OrderStagedChangeRemoveDiscount result = new OrderStagedChangeRemoveDiscount(); + result.discountApplication = this.discountApplication; + return result; + } + + /** + * The removed discount application. + */ + public Builder discountApplication(DiscountApplication discountApplication) { + this.discountApplication = discountApplication; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderTransaction.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderTransaction.java index 636b3066..d2df3ce9 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderTransaction.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/OrderTransaction.java @@ -9,7 +9,28 @@ import java.util.Objects; /** - * A payment transaction in the context of an order. + * The `OrderTransaction` object represents a payment transaction that's associated with an order. An order + * transaction is a specific action or event that happens within the context of an order, such as a customer paying + * for a purchase or receiving a refund, or other payment-related activity. + * + * Use the `OrderTransaction` object to capture the complete lifecycle of a payment, from initial + * authorization to final settlement, including refunds and currency exchanges. Common use cases for using the + * `OrderTransaction` object include: + * + * - Processing new payments for orders + * - Managing payment authorizations and captures + * - Processing refunds for returned items + * - Tracking payment status and errors + * - Managing multi-currency transactions + * - Handling payment gateway integrations + * + * Each `OrderTransaction` object has a [`kind`](https://shopify.dev/docs/api/admin-graphql/latest/enums/OrderTransactionKind) + * that defines the type of transaction and a [`status`](https://shopify.dev/docs/api/admin-graphql/latest/enums/OrderTransactionStatus) + * that indicates the current state of the transaction. The object stores detailed information about payment + * methods, gateway processing, and settlement details. + * + * Learn more about [payment processing](https://help.shopify.com/manual/payments) + * and [payment gateway integrations](https://www.shopify.com/ca/payment-gateways). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE @@ -55,6 +76,16 @@ public class OrderTransaction implements StoreCreditAccountTransactionOrigin, co */ private OffsetDateTime createdAt; + /** + * An adjustment on the transaction showing the amount lost or gained due to fluctuations in the currency exchange rate. + */ + private CurrencyExchangeAdjustment currencyExchangeAdjustment; + + /** + * The Shopify Point of Sale device used to process the transaction. + */ + private PointOfSaleDevice device; + /** * A standardized error code, independent of the payment provider. */ @@ -85,6 +116,11 @@ public class OrderTransaction implements StoreCreditAccountTransactionOrigin, co */ private OrderTransactionKind kind; + /** + * The physical location where the transaction was processed. + */ + private Location location; + /** * Whether the transaction is processed by manual payment gateway. */ @@ -149,7 +185,10 @@ public class OrderTransaction implements StoreCreditAccountTransactionOrigin, co /** * The transaction receipt that the payment gateway attaches to the transaction. - * The value of this field depends on which payment gateway processed the transaction. + * > **Note:** This field is **gateway-specific** and **not a stable contract**. + * > Its structure and contents can vary by payment gateway and may change without notice. + * > Apps **shouldn't parse or rely on this field for business logic**; prefer + * typed fields on `OrderTransaction` and related objects. */ private String receiptJson; @@ -293,6 +332,28 @@ public void setCreatedAt(OffsetDateTime createdAt) { this.createdAt = createdAt; } + /** + * An adjustment on the transaction showing the amount lost or gained due to fluctuations in the currency exchange rate. + */ + public CurrencyExchangeAdjustment getCurrencyExchangeAdjustment() { + return currencyExchangeAdjustment; + } + + public void setCurrencyExchangeAdjustment(CurrencyExchangeAdjustment currencyExchangeAdjustment) { + this.currencyExchangeAdjustment = currencyExchangeAdjustment; + } + + /** + * The Shopify Point of Sale device used to process the transaction. + */ + public PointOfSaleDevice getDevice() { + return device; + } + + public void setDevice(PointOfSaleDevice device) { + this.device = device; + } + /** * A standardized error code, independent of the payment provider. */ @@ -359,6 +420,17 @@ public void setKind(OrderTransactionKind kind) { this.kind = kind; } + /** + * The physical location where the transaction was processed. + */ + public Location getLocation() { + return location; + } + + public void setLocation(Location location) { + this.location = location; + } + /** * Whether the transaction is processed by manual payment gateway. */ @@ -495,7 +567,10 @@ public void setProcessedAt(OffsetDateTime processedAt) { /** * The transaction receipt that the payment gateway attaches to the transaction. - * The value of this field depends on which payment gateway processed the transaction. + * > **Note:** This field is **gateway-specific** and **not a stable contract**. + * > Its structure and contents can vary by payment gateway and may change without notice. + * > Apps **shouldn't parse or rely on this field for business logic**; prefer + * typed fields on `OrderTransaction` and related objects. */ public String getReceiptJson() { return receiptJson; @@ -610,7 +685,7 @@ public void setUser(StaffMember user) { @Override public String toString() { - return "OrderTransaction{accountNumber='" + accountNumber + "', amount='" + amount + "', amountRoundingSet='" + amountRoundingSet + "', amountSet='" + amountSet + "', amountV2='" + amountV2 + "', authorizationCode='" + authorizationCode + "', authorizationExpiresAt='" + authorizationExpiresAt + "', createdAt='" + createdAt + "', errorCode='" + errorCode + "', fees='" + fees + "', formattedGateway='" + formattedGateway + "', gateway='" + gateway + "', id='" + id + "', kind='" + kind + "', manualPaymentGateway='" + manualPaymentGateway + "', manuallyCapturable='" + manuallyCapturable + "', maximumRefundable='" + maximumRefundable + "', maximumRefundableV2='" + maximumRefundableV2 + "', multiCapturable='" + multiCapturable + "', order='" + order + "', parentTransaction='" + parentTransaction + "', paymentDetails='" + paymentDetails + "', paymentIcon='" + paymentIcon + "', paymentId='" + paymentId + "', paymentMethod='" + paymentMethod + "', processedAt='" + processedAt + "', receiptJson='" + receiptJson + "', settlementCurrency='" + settlementCurrency + "', settlementCurrencyRate='" + settlementCurrencyRate + "', shopifyPaymentsSet='" + shopifyPaymentsSet + "', status='" + status + "', test='" + test + "', totalUnsettled='" + totalUnsettled + "', totalUnsettledSet='" + totalUnsettledSet + "', totalUnsettledV2='" + totalUnsettledV2 + "', user='" + user + "'}"; + return "OrderTransaction{accountNumber='" + accountNumber + "', amount='" + amount + "', amountRoundingSet='" + amountRoundingSet + "', amountSet='" + amountSet + "', amountV2='" + amountV2 + "', authorizationCode='" + authorizationCode + "', authorizationExpiresAt='" + authorizationExpiresAt + "', createdAt='" + createdAt + "', currencyExchangeAdjustment='" + currencyExchangeAdjustment + "', device='" + device + "', errorCode='" + errorCode + "', fees='" + fees + "', formattedGateway='" + formattedGateway + "', gateway='" + gateway + "', id='" + id + "', kind='" + kind + "', location='" + location + "', manualPaymentGateway='" + manualPaymentGateway + "', manuallyCapturable='" + manuallyCapturable + "', maximumRefundable='" + maximumRefundable + "', maximumRefundableV2='" + maximumRefundableV2 + "', multiCapturable='" + multiCapturable + "', order='" + order + "', parentTransaction='" + parentTransaction + "', paymentDetails='" + paymentDetails + "', paymentIcon='" + paymentIcon + "', paymentId='" + paymentId + "', paymentMethod='" + paymentMethod + "', processedAt='" + processedAt + "', receiptJson='" + receiptJson + "', settlementCurrency='" + settlementCurrency + "', settlementCurrencyRate='" + settlementCurrencyRate + "', shopifyPaymentsSet='" + shopifyPaymentsSet + "', status='" + status + "', test='" + test + "', totalUnsettled='" + totalUnsettled + "', totalUnsettledSet='" + totalUnsettledSet + "', totalUnsettledV2='" + totalUnsettledV2 + "', user='" + user + "'}"; } @Override @@ -626,12 +701,15 @@ public boolean equals(Object o) { Objects.equals(authorizationCode, that.authorizationCode) && Objects.equals(authorizationExpiresAt, that.authorizationExpiresAt) && Objects.equals(createdAt, that.createdAt) && + Objects.equals(currencyExchangeAdjustment, that.currencyExchangeAdjustment) && + Objects.equals(device, that.device) && Objects.equals(errorCode, that.errorCode) && Objects.equals(fees, that.fees) && Objects.equals(formattedGateway, that.formattedGateway) && Objects.equals(gateway, that.gateway) && Objects.equals(id, that.id) && Objects.equals(kind, that.kind) && + Objects.equals(location, that.location) && manualPaymentGateway == that.manualPaymentGateway && manuallyCapturable == that.manuallyCapturable && Objects.equals(maximumRefundable, that.maximumRefundable) && @@ -658,7 +736,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(accountNumber, amount, amountRoundingSet, amountSet, amountV2, authorizationCode, authorizationExpiresAt, createdAt, errorCode, fees, formattedGateway, gateway, id, kind, manualPaymentGateway, manuallyCapturable, maximumRefundable, maximumRefundableV2, multiCapturable, order, parentTransaction, paymentDetails, paymentIcon, paymentId, paymentMethod, processedAt, receiptJson, settlementCurrency, settlementCurrencyRate, shopifyPaymentsSet, status, test, totalUnsettled, totalUnsettledSet, totalUnsettledV2, user); + return Objects.hash(accountNumber, amount, amountRoundingSet, amountSet, amountV2, authorizationCode, authorizationExpiresAt, createdAt, currencyExchangeAdjustment, device, errorCode, fees, formattedGateway, gateway, id, kind, location, manualPaymentGateway, manuallyCapturable, maximumRefundable, maximumRefundableV2, multiCapturable, order, parentTransaction, paymentDetails, paymentIcon, paymentId, paymentMethod, processedAt, receiptJson, settlementCurrency, settlementCurrencyRate, shopifyPaymentsSet, status, test, totalUnsettled, totalUnsettledSet, totalUnsettledV2, user); } public static Builder newBuilder() { @@ -706,6 +784,16 @@ public static class Builder { */ private OffsetDateTime createdAt; + /** + * An adjustment on the transaction showing the amount lost or gained due to fluctuations in the currency exchange rate. + */ + private CurrencyExchangeAdjustment currencyExchangeAdjustment; + + /** + * The Shopify Point of Sale device used to process the transaction. + */ + private PointOfSaleDevice device; + /** * A standardized error code, independent of the payment provider. */ @@ -736,6 +824,11 @@ public static class Builder { */ private OrderTransactionKind kind; + /** + * The physical location where the transaction was processed. + */ + private Location location; + /** * Whether the transaction is processed by manual payment gateway. */ @@ -800,7 +893,10 @@ public static class Builder { /** * The transaction receipt that the payment gateway attaches to the transaction. - * The value of this field depends on which payment gateway processed the transaction. + * > **Note:** This field is **gateway-specific** and **not a stable contract**. + * > Its structure and contents can vary by payment gateway and may change without notice. + * > Apps **shouldn't parse or rely on this field for business logic**; prefer + * typed fields on `OrderTransaction` and related objects. */ private String receiptJson; @@ -863,12 +959,15 @@ public OrderTransaction build() { result.authorizationCode = this.authorizationCode; result.authorizationExpiresAt = this.authorizationExpiresAt; result.createdAt = this.createdAt; + result.currencyExchangeAdjustment = this.currencyExchangeAdjustment; + result.device = this.device; result.errorCode = this.errorCode; result.fees = this.fees; result.formattedGateway = this.formattedGateway; result.gateway = this.gateway; result.id = this.id; result.kind = this.kind; + result.location = this.location; result.manualPaymentGateway = this.manualPaymentGateway; result.manuallyCapturable = this.manuallyCapturable; result.maximumRefundable = this.maximumRefundable; @@ -958,6 +1057,23 @@ public Builder createdAt(OffsetDateTime createdAt) { return this; } + /** + * An adjustment on the transaction showing the amount lost or gained due to fluctuations in the currency exchange rate. + */ + public Builder currencyExchangeAdjustment( + CurrencyExchangeAdjustment currencyExchangeAdjustment) { + this.currencyExchangeAdjustment = currencyExchangeAdjustment; + return this; + } + + /** + * The Shopify Point of Sale device used to process the transaction. + */ + public Builder device(PointOfSaleDevice device) { + this.device = device; + return this; + } + /** * A standardized error code, independent of the payment provider. */ @@ -1006,6 +1122,14 @@ public Builder kind(OrderTransactionKind kind) { return this; } + /** + * The physical location where the transaction was processed. + */ + public Builder location(Location location) { + this.location = location; + return this; + } + /** * Whether the transaction is processed by manual payment gateway. */ @@ -1106,7 +1230,10 @@ public Builder processedAt(OffsetDateTime processedAt) { /** * The transaction receipt that the payment gateway attaches to the transaction. - * The value of this field depends on which payment gateway processed the transaction. + * > **Note:** This field is **gateway-specific** and **not a stable contract**. + * > Its structure and contents can vary by payment gateway and may change without notice. + * > Apps **shouldn't parse or rely on this field for business logic**; prefer + * typed fields on `OrderTransaction` and related objects. */ public Builder receiptJson(String receiptJson) { this.receiptJson = receiptJson; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Page.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Page.java index 96cec491..36f4b0a6 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Page.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Page.java @@ -9,7 +9,13 @@ import java.util.Objects; /** - * A page on the Online Store. + * A standalone content page in the online store. Pages display HTML-formatted + * content for informational pages like "About Us", contact information, or + * shipping policies. + * + * Each page has a unique handle for URL routing and supports custom template + * suffixes for specialized layouts. Pages can be published or hidden, and include + * creation and update timestamps. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PageCreateUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PageCreateUserErrorCode.java index 9eb5b36a..2ee6620f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PageCreateUserErrorCode.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PageCreateUserErrorCode.java @@ -10,8 +10,12 @@ public enum PageCreateUserErrorCode { TOO_LONG, + TOO_BIG, + TAKEN, + INVALID, + INVALID_VALUE, INVALID_TYPE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PageUpdateUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PageUpdateUserErrorCode.java index a6a32a52..58155814 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PageUpdateUserErrorCode.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PageUpdateUserErrorCode.java @@ -12,5 +12,13 @@ public enum PageUpdateUserErrorCode { TOO_LONG, - TAKEN + TOO_BIG, + + TAKEN, + + INVALID, + + INVALID_VALUE, + + INVALID_TYPE } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PaymentCustomizationErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PaymentCustomizationErrorCode.java index 8e01d0ae..0a115fdd 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PaymentCustomizationErrorCode.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PaymentCustomizationErrorCode.java @@ -24,5 +24,9 @@ public enum PaymentCustomizationErrorCode { INVALID_METAFIELDS, - FUNCTION_ID_CANNOT_BE_CHANGED + FUNCTION_ID_CANNOT_BE_CHANGED, + + MISSING_FUNCTION_IDENTIFIER, + + MULTIPLE_FUNCTION_IDENTIFIERS } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PaymentCustomizationInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PaymentCustomizationInput.java index 0a0faba1..f3268dc4 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PaymentCustomizationInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PaymentCustomizationInput.java @@ -13,9 +13,9 @@ */ public class PaymentCustomizationInput { /** - * The ID of the function providing the payment customization. + * Function handle scoped to your app ID. */ - private String functionId; + private String functionHandle; /** * The title of the payment customization. @@ -36,14 +36,14 @@ public PaymentCustomizationInput() { } /** - * The ID of the function providing the payment customization. + * Function handle scoped to your app ID. */ - public String getFunctionId() { - return functionId; + public String getFunctionHandle() { + return functionHandle; } - public void setFunctionId(String functionId) { - this.functionId = functionId; + public void setFunctionHandle(String functionHandle) { + this.functionHandle = functionHandle; } /** @@ -81,7 +81,7 @@ public void setMetafields(List metafields) { @Override public String toString() { - return "PaymentCustomizationInput{functionId='" + functionId + "', title='" + title + "', enabled='" + enabled + "', metafields='" + metafields + "'}"; + return "PaymentCustomizationInput{functionHandle='" + functionHandle + "', title='" + title + "', enabled='" + enabled + "', metafields='" + metafields + "'}"; } @Override @@ -89,7 +89,7 @@ public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; PaymentCustomizationInput that = (PaymentCustomizationInput) o; - return Objects.equals(functionId, that.functionId) && + return Objects.equals(functionHandle, that.functionHandle) && Objects.equals(title, that.title) && Objects.equals(enabled, that.enabled) && Objects.equals(metafields, that.metafields); @@ -97,7 +97,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(functionId, title, enabled, metafields); + return Objects.hash(functionHandle, title, enabled, metafields); } public static Builder newBuilder() { @@ -106,9 +106,9 @@ public static Builder newBuilder() { public static class Builder { /** - * The ID of the function providing the payment customization. + * Function handle scoped to your app ID. */ - private String functionId; + private String functionHandle; /** * The title of the payment customization. @@ -127,7 +127,7 @@ public static class Builder { public PaymentCustomizationInput build() { PaymentCustomizationInput result = new PaymentCustomizationInput(); - result.functionId = this.functionId; + result.functionHandle = this.functionHandle; result.title = this.title; result.enabled = this.enabled; result.metafields = this.metafields; @@ -135,10 +135,10 @@ public PaymentCustomizationInput build() { } /** - * The ID of the function providing the payment customization. + * Function handle scoped to your app ID. */ - public Builder functionId(String functionId) { - this.functionId = functionId; + public Builder functionHandle(String functionHandle) { + this.functionHandle = functionHandle; return this; } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PaymentDetails.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PaymentDetails.java index 0ca97860..d856cc4a 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PaymentDetails.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PaymentDetails.java @@ -11,6 +11,7 @@ @JsonSubTypes({ @JsonSubTypes.Type(value = CardPaymentDetails.class, name = "CardPaymentDetails"), @JsonSubTypes.Type(value = LocalPaymentMethodsPaymentDetails.class, name = "LocalPaymentMethodsPaymentDetails"), + @JsonSubTypes.Type(value = PaypalWalletPaymentDetails.class, name = "PaypalWalletPaymentDetails"), @JsonSubTypes.Type(value = ShopPayInstallmentsPaymentDetails.class, name = "ShopPayInstallmentsPaymentDetails") }) public interface PaymentDetails { diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PaymentInstrument.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PaymentInstrument.java index 1400e8b2..52621125 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PaymentInstrument.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PaymentInstrument.java @@ -9,6 +9,7 @@ property = "__typename" ) @JsonSubTypes({ + @JsonSubTypes.Type(value = BankAccount.class, name = "BankAccount"), @JsonSubTypes.Type(value = VaultCreditCard.class, name = "VaultCreditCard"), @JsonSubTypes.Type(value = VaultPaypalBillingAgreement.class, name = "VaultPaypalBillingAgreement") }) diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PaymentMandateResource.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PaymentMandateResource.java new file mode 100644 index 00000000..707dd997 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PaymentMandateResource.java @@ -0,0 +1,106 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * A payment mandate with resource information, representing the permission + * the owner of the payment instrument gives to the merchant to debit it + * for specific resources (e.g., Order, Subscriptions). + */ +public class PaymentMandateResource { + /** + * The ID of the resource that this payment method was created for. + */ + private String resourceId; + + /** + * The resource type that this payment method was created for (e.g., Order, Subscriptions). + */ + private MandateResourceType resourceType; + + public PaymentMandateResource() { + } + + /** + * The ID of the resource that this payment method was created for. + */ + public String getResourceId() { + return resourceId; + } + + public void setResourceId(String resourceId) { + this.resourceId = resourceId; + } + + /** + * The resource type that this payment method was created for (e.g., Order, Subscriptions). + */ + public MandateResourceType getResourceType() { + return resourceType; + } + + public void setResourceType(MandateResourceType resourceType) { + this.resourceType = resourceType; + } + + @Override + public String toString() { + return "PaymentMandateResource{resourceId='" + resourceId + "', resourceType='" + resourceType + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + PaymentMandateResource that = (PaymentMandateResource) o; + return Objects.equals(resourceId, that.resourceId) && + Objects.equals(resourceType, that.resourceType); + } + + @Override + public int hashCode() { + return Objects.hash(resourceId, resourceType); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The ID of the resource that this payment method was created for. + */ + private String resourceId; + + /** + * The resource type that this payment method was created for (e.g., Order, Subscriptions). + */ + private MandateResourceType resourceType; + + public PaymentMandateResource build() { + PaymentMandateResource result = new PaymentMandateResource(); + result.resourceId = this.resourceId; + result.resourceType = this.resourceType; + return result; + } + + /** + * The ID of the resource that this payment method was created for. + */ + public Builder resourceId(String resourceId) { + this.resourceId = resourceId; + return this; + } + + /** + * The resource type that this payment method was created for (e.g., Order, Subscriptions). + */ + public Builder resourceType(MandateResourceType resourceType) { + this.resourceType = resourceType; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PaymentMandateResourceConnection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PaymentMandateResourceConnection.java new file mode 100644 index 00000000..6a173478 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PaymentMandateResourceConnection.java @@ -0,0 +1,152 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * An auto-generated type for paginating through multiple PaymentMandateResources. + */ +public class PaymentMandateResourceConnection { + /** + * The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + */ + private List edges; + + /** + * A list of nodes that are contained in PaymentMandateResourceEdge. You can + * fetch data about an individual node, or you can follow the edges to fetch data + * about a collection of related nodes. At each node, you specify the fields that + * you want to retrieve. + */ + private List nodes; + + /** + * An object that’s used to retrieve [cursor + * information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + */ + private PageInfo pageInfo; + + public PaymentMandateResourceConnection() { + } + + /** + * The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + */ + public List getEdges() { + return edges; + } + + public void setEdges(List edges) { + this.edges = edges; + } + + /** + * A list of nodes that are contained in PaymentMandateResourceEdge. You can + * fetch data about an individual node, or you can follow the edges to fetch data + * about a collection of related nodes. At each node, you specify the fields that + * you want to retrieve. + */ + public List getNodes() { + return nodes; + } + + public void setNodes(List nodes) { + this.nodes = nodes; + } + + /** + * An object that’s used to retrieve [cursor + * information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + */ + public PageInfo getPageInfo() { + return pageInfo; + } + + public void setPageInfo(PageInfo pageInfo) { + this.pageInfo = pageInfo; + } + + @Override + public String toString() { + return "PaymentMandateResourceConnection{edges='" + edges + "', nodes='" + nodes + "', pageInfo='" + pageInfo + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + PaymentMandateResourceConnection that = (PaymentMandateResourceConnection) o; + return Objects.equals(edges, that.edges) && + Objects.equals(nodes, that.nodes) && + Objects.equals(pageInfo, that.pageInfo); + } + + @Override + public int hashCode() { + return Objects.hash(edges, nodes, pageInfo); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + */ + private List edges; + + /** + * A list of nodes that are contained in PaymentMandateResourceEdge. You can + * fetch data about an individual node, or you can follow the edges to fetch data + * about a collection of related nodes. At each node, you specify the fields that + * you want to retrieve. + */ + private List nodes; + + /** + * An object that’s used to retrieve [cursor + * information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + */ + private PageInfo pageInfo; + + public PaymentMandateResourceConnection build() { + PaymentMandateResourceConnection result = new PaymentMandateResourceConnection(); + result.edges = this.edges; + result.nodes = this.nodes; + result.pageInfo = this.pageInfo; + return result; + } + + /** + * The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + */ + public Builder edges(List edges) { + this.edges = edges; + return this; + } + + /** + * A list of nodes that are contained in PaymentMandateResourceEdge. You can + * fetch data about an individual node, or you can follow the edges to fetch data + * about a collection of related nodes. At each node, you specify the fields that + * you want to retrieve. + */ + public Builder nodes(List nodes) { + this.nodes = nodes; + return this; + } + + /** + * An object that’s used to retrieve [cursor + * information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + */ + public Builder pageInfo(PageInfo pageInfo) { + this.pageInfo = pageInfo; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PaymentMandateResourceEdge.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PaymentMandateResourceEdge.java new file mode 100644 index 00000000..9f3dad47 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PaymentMandateResourceEdge.java @@ -0,0 +1,104 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * An auto-generated type which holds one PaymentMandateResource and a cursor during pagination. + */ +public class PaymentMandateResourceEdge { + /** + * The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + */ + private String cursor; + + /** + * The item at the end of PaymentMandateResourceEdge. + */ + private PaymentMandateResource node; + + public PaymentMandateResourceEdge() { + } + + /** + * The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + */ + public String getCursor() { + return cursor; + } + + public void setCursor(String cursor) { + this.cursor = cursor; + } + + /** + * The item at the end of PaymentMandateResourceEdge. + */ + public PaymentMandateResource getNode() { + return node; + } + + public void setNode(PaymentMandateResource node) { + this.node = node; + } + + @Override + public String toString() { + return "PaymentMandateResourceEdge{cursor='" + cursor + "', node='" + node + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + PaymentMandateResourceEdge that = (PaymentMandateResourceEdge) o; + return Objects.equals(cursor, that.cursor) && + Objects.equals(node, that.node); + } + + @Override + public int hashCode() { + return Objects.hash(cursor, node); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + */ + private String cursor; + + /** + * The item at the end of PaymentMandateResourceEdge. + */ + private PaymentMandateResource node; + + public PaymentMandateResourceEdge build() { + PaymentMandateResourceEdge result = new PaymentMandateResourceEdge(); + result.cursor = this.cursor; + result.node = this.node; + return result; + } + + /** + * The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + */ + public Builder cursor(String cursor) { + this.cursor = cursor; + return this; + } + + /** + * The item at the end of PaymentMandateResourceEdge. + */ + public Builder node(PaymentMandateResource node) { + this.node = node; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PaymentSchedule.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PaymentSchedule.java index 727daea7..1d04383a 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PaymentSchedule.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PaymentSchedule.java @@ -19,11 +19,21 @@ public class PaymentSchedule implements com.shopify.admin.types.Node { */ private MoneyV2 amount; + /** + * Remaining balance to be captured for this payment schedule. + */ + private MoneyV2 balanceDue; + /** * Date and time when the payment schedule is paid or fulfilled. */ private OffsetDateTime completedAt; + /** + * Whether the payment schedule is due. + */ + private boolean due; + /** * Date and time when the payment schedule is due. */ @@ -44,6 +54,11 @@ public class PaymentSchedule implements com.shopify.admin.types.Node { */ private PaymentTerms paymentTerms; + /** + * Remaining balance to be paid or authorized by the customer for this payment schedule. + */ + private MoneyV2 totalBalance; + public PaymentSchedule() { } @@ -58,6 +73,17 @@ public void setAmount(MoneyV2 amount) { this.amount = amount; } + /** + * Remaining balance to be captured for this payment schedule. + */ + public MoneyV2 getBalanceDue() { + return balanceDue; + } + + public void setBalanceDue(MoneyV2 balanceDue) { + this.balanceDue = balanceDue; + } + /** * Date and time when the payment schedule is paid or fulfilled. */ @@ -69,6 +95,17 @@ public void setCompletedAt(OffsetDateTime completedAt) { this.completedAt = completedAt; } + /** + * Whether the payment schedule is due. + */ + public boolean getDue() { + return due; + } + + public void setDue(boolean due) { + this.due = due; + } + /** * Date and time when the payment schedule is due. */ @@ -113,9 +150,20 @@ public void setPaymentTerms(PaymentTerms paymentTerms) { this.paymentTerms = paymentTerms; } + /** + * Remaining balance to be paid or authorized by the customer for this payment schedule. + */ + public MoneyV2 getTotalBalance() { + return totalBalance; + } + + public void setTotalBalance(MoneyV2 totalBalance) { + this.totalBalance = totalBalance; + } + @Override public String toString() { - return "PaymentSchedule{amount='" + amount + "', completedAt='" + completedAt + "', dueAt='" + dueAt + "', id='" + id + "', issuedAt='" + issuedAt + "', paymentTerms='" + paymentTerms + "'}"; + return "PaymentSchedule{amount='" + amount + "', balanceDue='" + balanceDue + "', completedAt='" + completedAt + "', due='" + due + "', dueAt='" + dueAt + "', id='" + id + "', issuedAt='" + issuedAt + "', paymentTerms='" + paymentTerms + "', totalBalance='" + totalBalance + "'}"; } @Override @@ -124,16 +172,19 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) return false; PaymentSchedule that = (PaymentSchedule) o; return Objects.equals(amount, that.amount) && + Objects.equals(balanceDue, that.balanceDue) && Objects.equals(completedAt, that.completedAt) && + due == that.due && Objects.equals(dueAt, that.dueAt) && Objects.equals(id, that.id) && Objects.equals(issuedAt, that.issuedAt) && - Objects.equals(paymentTerms, that.paymentTerms); + Objects.equals(paymentTerms, that.paymentTerms) && + Objects.equals(totalBalance, that.totalBalance); } @Override public int hashCode() { - return Objects.hash(amount, completedAt, dueAt, id, issuedAt, paymentTerms); + return Objects.hash(amount, balanceDue, completedAt, due, dueAt, id, issuedAt, paymentTerms, totalBalance); } public static Builder newBuilder() { @@ -146,11 +197,21 @@ public static class Builder { */ private MoneyV2 amount; + /** + * Remaining balance to be captured for this payment schedule. + */ + private MoneyV2 balanceDue; + /** * Date and time when the payment schedule is paid or fulfilled. */ private OffsetDateTime completedAt; + /** + * Whether the payment schedule is due. + */ + private boolean due; + /** * Date and time when the payment schedule is due. */ @@ -171,14 +232,22 @@ public static class Builder { */ private PaymentTerms paymentTerms; + /** + * Remaining balance to be paid or authorized by the customer for this payment schedule. + */ + private MoneyV2 totalBalance; + public PaymentSchedule build() { PaymentSchedule result = new PaymentSchedule(); result.amount = this.amount; + result.balanceDue = this.balanceDue; result.completedAt = this.completedAt; + result.due = this.due; result.dueAt = this.dueAt; result.id = this.id; result.issuedAt = this.issuedAt; result.paymentTerms = this.paymentTerms; + result.totalBalance = this.totalBalance; return result; } @@ -190,6 +259,14 @@ public Builder amount(MoneyV2 amount) { return this; } + /** + * Remaining balance to be captured for this payment schedule. + */ + public Builder balanceDue(MoneyV2 balanceDue) { + this.balanceDue = balanceDue; + return this; + } + /** * Date and time when the payment schedule is paid or fulfilled. */ @@ -198,6 +275,14 @@ public Builder completedAt(OffsetDateTime completedAt) { return this; } + /** + * Whether the payment schedule is due. + */ + public Builder due(boolean due) { + this.due = due; + return this; + } + /** * Date and time when the payment schedule is due. */ @@ -229,5 +314,13 @@ public Builder paymentTerms(PaymentTerms paymentTerms) { this.paymentTerms = paymentTerms; return this; } + + /** + * Remaining balance to be paid or authorized by the customer for this payment schedule. + */ + public Builder totalBalance(MoneyV2 totalBalance) { + this.totalBalance = totalBalance; + return this; + } } } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PaymentTerms.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PaymentTerms.java index c8ffad01..3d2b5691 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PaymentTerms.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PaymentTerms.java @@ -8,7 +8,18 @@ import java.util.Objects; /** - * Represents the payment terms for an order or draft order. + * Payment conditions for an + * [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) or [`DraftOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrder), + * including when payment is due and how it's scheduled. Payment terms are created + * from templates that specify net terms (payment due after a certain number of + * days) or fixed schedules with specific due dates. You can optionally provide + * custom payment schedules using [`PaymentScheduleInput`](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/PaymentScheduleInput). + * + * Each payment term contains one or more [`PaymentSchedule`](https://shopify.dev/docs/api/admin-graphql/latest/objects/PaymentSchedule), + * which you can access through the [`paymentSchedules`](https://shopify.dev/docs/api/admin-graphql/latest/objects/PaymentTerms#field-PaymentTerms.fields.paymentSchedules) + * field. Payment schedules contain detailed information for each payment installment. + * + * Learn more about [payment terms](https://shopify.dev/docs/apps/build/checkout/payments/payment-terms). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE @@ -19,6 +30,11 @@ public class PaymentTerms implements com.shopify.admin.types.Node { */ private DraftOrder draftOrder; + /** + * Whether payment terms have a payment schedule that's due. + */ + private boolean due; + /** * Duration of payment terms in days based on the payment terms template used to create the payment terms. */ @@ -73,6 +89,17 @@ public void setDraftOrder(DraftOrder draftOrder) { this.draftOrder = draftOrder; } + /** + * Whether payment terms have a payment schedule that's due. + */ + public boolean getDue() { + return due; + } + + public void setDue(boolean due) { + this.due = due; + } + /** * Duration of payment terms in days based on the payment terms template used to create the payment terms. */ @@ -163,7 +190,7 @@ public void setTranslatedName(String translatedName) { @Override public String toString() { - return "PaymentTerms{draftOrder='" + draftOrder + "', dueInDays='" + dueInDays + "', id='" + id + "', order='" + order + "', overdue='" + overdue + "', paymentSchedules='" + paymentSchedules + "', paymentTermsName='" + paymentTermsName + "', paymentTermsType='" + paymentTermsType + "', translatedName='" + translatedName + "'}"; + return "PaymentTerms{draftOrder='" + draftOrder + "', due='" + due + "', dueInDays='" + dueInDays + "', id='" + id + "', order='" + order + "', overdue='" + overdue + "', paymentSchedules='" + paymentSchedules + "', paymentTermsName='" + paymentTermsName + "', paymentTermsType='" + paymentTermsType + "', translatedName='" + translatedName + "'}"; } @Override @@ -172,6 +199,7 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) return false; PaymentTerms that = (PaymentTerms) o; return Objects.equals(draftOrder, that.draftOrder) && + due == that.due && Objects.equals(dueInDays, that.dueInDays) && Objects.equals(id, that.id) && Objects.equals(order, that.order) && @@ -184,7 +212,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(draftOrder, dueInDays, id, order, overdue, paymentSchedules, paymentTermsName, paymentTermsType, translatedName); + return Objects.hash(draftOrder, due, dueInDays, id, order, overdue, paymentSchedules, paymentTermsName, paymentTermsType, translatedName); } public static Builder newBuilder() { @@ -197,6 +225,11 @@ public static class Builder { */ private DraftOrder draftOrder; + /** + * Whether payment terms have a payment schedule that's due. + */ + private boolean due; + /** * Duration of payment terms in days based on the payment terms template used to create the payment terms. */ @@ -240,6 +273,7 @@ public static class Builder { public PaymentTerms build() { PaymentTerms result = new PaymentTerms(); result.draftOrder = this.draftOrder; + result.due = this.due; result.dueInDays = this.dueInDays; result.id = this.id; result.order = this.order; @@ -259,6 +293,14 @@ public Builder draftOrder(DraftOrder draftOrder) { return this; } + /** + * Whether payment terms have a payment schedule that's due. + */ + public Builder due(boolean due) { + this.due = due; + return this; + } + /** * Duration of payment terms in days based on the payment terms template used to create the payment terms. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PaypalWalletPaymentDetails.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PaypalWalletPaymentDetails.java new file mode 100644 index 00000000..6a93d12e --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PaypalWalletPaymentDetails.java @@ -0,0 +1,77 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * PayPal Wallet payment details related to a transaction. + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NONE +) +public class PaypalWalletPaymentDetails implements PaymentDetails, com.shopify.admin.types.BasePaymentDetails { + /** + * The name of payment method used by the buyer. + */ + private String paymentMethodName; + + public PaypalWalletPaymentDetails() { + } + + /** + * The name of payment method used by the buyer. + */ + public String getPaymentMethodName() { + return paymentMethodName; + } + + public void setPaymentMethodName(String paymentMethodName) { + this.paymentMethodName = paymentMethodName; + } + + @Override + public String toString() { + return "PaypalWalletPaymentDetails{paymentMethodName='" + paymentMethodName + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + PaypalWalletPaymentDetails that = (PaypalWalletPaymentDetails) o; + return Objects.equals(paymentMethodName, that.paymentMethodName); + } + + @Override + public int hashCode() { + return Objects.hash(paymentMethodName); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The name of payment method used by the buyer. + */ + private String paymentMethodName; + + public PaypalWalletPaymentDetails build() { + PaypalWalletPaymentDetails result = new PaypalWalletPaymentDetails(); + result.paymentMethodName = this.paymentMethodName; + return result; + } + + /** + * The name of payment method used by the buyer. + */ + public Builder paymentMethodName(String paymentMethodName) { + this.paymentMethodName = paymentMethodName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PickupInStoreLocation.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PickupInStoreLocation.java new file mode 100644 index 00000000..3c04f5d7 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PickupInStoreLocation.java @@ -0,0 +1,259 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * A location for in-store pickup. + */ +public class PickupInStoreLocation { + /** + * The code of the pickup location. + */ + private String code; + + /** + * Distance from the buyer to the pickup location. + */ + private Distance distanceFromBuyer; + + /** + * A unique identifier for this pickup location. + */ + private String handle; + + /** + * Pickup instructions. + */ + private String instructions; + + /** + * The location ID of the pickup location. + */ + private String locationId; + + /** + * The source of the pickup location. + */ + private String source; + + /** + * Title of the pickup location. + */ + private String title; + + public PickupInStoreLocation() { + } + + /** + * The code of the pickup location. + */ + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + /** + * Distance from the buyer to the pickup location. + */ + public Distance getDistanceFromBuyer() { + return distanceFromBuyer; + } + + public void setDistanceFromBuyer(Distance distanceFromBuyer) { + this.distanceFromBuyer = distanceFromBuyer; + } + + /** + * A unique identifier for this pickup location. + */ + public String getHandle() { + return handle; + } + + public void setHandle(String handle) { + this.handle = handle; + } + + /** + * Pickup instructions. + */ + public String getInstructions() { + return instructions; + } + + public void setInstructions(String instructions) { + this.instructions = instructions; + } + + /** + * The location ID of the pickup location. + */ + public String getLocationId() { + return locationId; + } + + public void setLocationId(String locationId) { + this.locationId = locationId; + } + + /** + * The source of the pickup location. + */ + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + /** + * Title of the pickup location. + */ + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + @Override + public String toString() { + return "PickupInStoreLocation{code='" + code + "', distanceFromBuyer='" + distanceFromBuyer + "', handle='" + handle + "', instructions='" + instructions + "', locationId='" + locationId + "', source='" + source + "', title='" + title + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + PickupInStoreLocation that = (PickupInStoreLocation) o; + return Objects.equals(code, that.code) && + Objects.equals(distanceFromBuyer, that.distanceFromBuyer) && + Objects.equals(handle, that.handle) && + Objects.equals(instructions, that.instructions) && + Objects.equals(locationId, that.locationId) && + Objects.equals(source, that.source) && + Objects.equals(title, that.title); + } + + @Override + public int hashCode() { + return Objects.hash(code, distanceFromBuyer, handle, instructions, locationId, source, title); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The code of the pickup location. + */ + private String code; + + /** + * Distance from the buyer to the pickup location. + */ + private Distance distanceFromBuyer; + + /** + * A unique identifier for this pickup location. + */ + private String handle; + + /** + * Pickup instructions. + */ + private String instructions; + + /** + * The location ID of the pickup location. + */ + private String locationId; + + /** + * The source of the pickup location. + */ + private String source; + + /** + * Title of the pickup location. + */ + private String title; + + public PickupInStoreLocation build() { + PickupInStoreLocation result = new PickupInStoreLocation(); + result.code = this.code; + result.distanceFromBuyer = this.distanceFromBuyer; + result.handle = this.handle; + result.instructions = this.instructions; + result.locationId = this.locationId; + result.source = this.source; + result.title = this.title; + return result; + } + + /** + * The code of the pickup location. + */ + public Builder code(String code) { + this.code = code; + return this; + } + + /** + * Distance from the buyer to the pickup location. + */ + public Builder distanceFromBuyer(Distance distanceFromBuyer) { + this.distanceFromBuyer = distanceFromBuyer; + return this; + } + + /** + * A unique identifier for this pickup location. + */ + public Builder handle(String handle) { + this.handle = handle; + return this; + } + + /** + * Pickup instructions. + */ + public Builder instructions(String instructions) { + this.instructions = instructions; + return this; + } + + /** + * The location ID of the pickup location. + */ + public Builder locationId(String locationId) { + this.locationId = locationId; + return this; + } + + /** + * The source of the pickup location. + */ + public Builder source(String source) { + this.source = source; + return this; + } + + /** + * Title of the pickup location. + */ + public Builder title(String title) { + this.title = title; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PointOfSaleDevice.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PointOfSaleDevice.java new file mode 100644 index 00000000..b64ba1ae --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PointOfSaleDevice.java @@ -0,0 +1,77 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * Represents a mobile device that Shopify Point of Sale has been installed on. + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NONE +) +public class PointOfSaleDevice implements com.shopify.admin.types.Node { + /** + * A globally-unique ID. + */ + private String id; + + public PointOfSaleDevice() { + } + + /** + * A globally-unique ID. + */ + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + @Override + public String toString() { + return "PointOfSaleDevice{id='" + id + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + PointOfSaleDevice that = (PointOfSaleDevice) o; + return Objects.equals(id, that.id); + } + + @Override + public int hashCode() { + return Objects.hash(id); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * A globally-unique ID. + */ + private String id; + + public PointOfSaleDevice build() { + PointOfSaleDevice result = new PointOfSaleDevice(); + result.id = this.id; + return result; + } + + /** + * A globally-unique ID. + */ + public Builder id(String id) { + this.id = id; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PriceCalculationType.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PriceCalculationType.java index 3fdde3ca..48a4be19 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PriceCalculationType.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PriceCalculationType.java @@ -1,7 +1,7 @@ package com.shopify.admin.types; /** - * How to caluclate the parent product variant's price while bulk updating variant relationships. + * How to calculate the parent product variant's price while bulk updating variant relationships. */ public enum PriceCalculationType { COMPONENTS_SUM, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PriceList.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PriceList.java index 8c8e26cb..f5c3b6cf 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PriceList.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PriceList.java @@ -7,13 +7,16 @@ import java.util.Objects; /** - * Represents a price list, including information about related prices and eligibility rules. - * You can use price lists to specify either fixed prices or adjusted relative prices that - * override initial product variant prices. Price lists are applied to customers - * using context rules, which determine price list eligibility. + * A list that defines pricing for [product variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant). + * Price lists override default product prices with either fixed prices or + * percentage-based adjustments. * - * For more information on price lists, refer to - * [Support different pricing models](https://shopify.dev/apps/internationalization/product-price-lists). + * Each price list associates with a [`Catalog`](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/Catalog) + * to determine which customers see the pricing. The catalog's context rules + * control when the price list applies, such as for specific markets, company + * locations, or apps. + * + * Learn how to [support different pricing models](https://shopify.dev/docs/apps/build/markets/build-catalog). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PriceListPrice.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PriceListPrice.java index 29005652..68b511d3 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PriceListPrice.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PriceListPrice.java @@ -6,10 +6,13 @@ import java.util.Objects; /** - * Represents information about pricing for a product variant - * as defined on a price list, such as the price, compare at price, and - * origin type. You can use a `PriceListPrice` to specify a fixed price for a - * specific product variant. For examples, refer to [PriceListFixedPricesAdd](https://shopify.dev/api/admin-graphql/latest/mutations/priceListFixedPricesAdd) and [PriceList](https://shopify.dev/api/admin-graphql/latest/queries/priceList#section-examples). + * Pricing for a [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) on a [`PriceList`](https://shopify.dev/docs/api/admin-graphql/latest/objects/PriceList). Represents the variant's price, compare-at price, and whether the price is fixed + * or calculated using percentage-based adjustments. The [`PriceListPriceOriginType`](https://shopify.dev/docs/api/admin-graphql/latest/enums/PriceListPriceOriginType) + * distinguishes between prices set directly on the price list (fixed) and prices + * calculated using the price list's adjustment configuration (relative). + * + * Learn more about [building catalogs with different pricing + * models](https://shopify.dev/docs/apps/build/markets/build-catalog). */ public class PriceListPrice { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PriceListProductPriceInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PriceListProductPriceInput.java index a9adb6ab..aa6d3b25 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PriceListProductPriceInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PriceListProductPriceInput.java @@ -15,10 +15,15 @@ public class PriceListProductPriceInput { private String productId; /** - * The price of the product to use for all variants with its currency. + * Specifies the price and currency to apply to the product's variants on the price list. */ private MoneyInput price; + /** + * Specifies the compare-at price and currency to apply to the product's variants on the price list. + */ + private MoneyInput compareAtPrice; + public PriceListProductPriceInput() { } @@ -34,7 +39,7 @@ public void setProductId(String productId) { } /** - * The price of the product to use for all variants with its currency. + * Specifies the price and currency to apply to the product's variants on the price list. */ public MoneyInput getPrice() { return price; @@ -44,9 +49,20 @@ public void setPrice(MoneyInput price) { this.price = price; } + /** + * Specifies the compare-at price and currency to apply to the product's variants on the price list. + */ + public MoneyInput getCompareAtPrice() { + return compareAtPrice; + } + + public void setCompareAtPrice(MoneyInput compareAtPrice) { + this.compareAtPrice = compareAtPrice; + } + @Override public String toString() { - return "PriceListProductPriceInput{productId='" + productId + "', price='" + price + "'}"; + return "PriceListProductPriceInput{productId='" + productId + "', price='" + price + "', compareAtPrice='" + compareAtPrice + "'}"; } @Override @@ -55,12 +71,13 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) return false; PriceListProductPriceInput that = (PriceListProductPriceInput) o; return Objects.equals(productId, that.productId) && - Objects.equals(price, that.price); + Objects.equals(price, that.price) && + Objects.equals(compareAtPrice, that.compareAtPrice); } @Override public int hashCode() { - return Objects.hash(productId, price); + return Objects.hash(productId, price, compareAtPrice); } public static Builder newBuilder() { @@ -74,14 +91,20 @@ public static class Builder { private String productId; /** - * The price of the product to use for all variants with its currency. + * Specifies the price and currency to apply to the product's variants on the price list. */ private MoneyInput price; + /** + * Specifies the compare-at price and currency to apply to the product's variants on the price list. + */ + private MoneyInput compareAtPrice; + public PriceListProductPriceInput build() { PriceListProductPriceInput result = new PriceListProductPriceInput(); result.productId = this.productId; result.price = this.price; + result.compareAtPrice = this.compareAtPrice; return result; } @@ -94,11 +117,19 @@ public Builder productId(String productId) { } /** - * The price of the product to use for all variants with its currency. + * Specifies the price and currency to apply to the product's variants on the price list. */ public Builder price(MoneyInput price) { this.price = price; return this; } + + /** + * Specifies the compare-at price and currency to apply to the product's variants on the price list. + */ + public Builder compareAtPrice(MoneyInput compareAtPrice) { + this.compareAtPrice = compareAtPrice; + return this; + } } } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PriceRule.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PriceRule.java index f65a1d39..28410186 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PriceRule.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PriceRule.java @@ -10,12 +10,12 @@ import java.util.Objects; /** - * Price rules are a set of conditions, including entitlements and prerequisites, - * that must be met in order for a discount code to apply. + * A set of conditions, including entitlements and prerequisites, that must be met for a discount code to apply. * - * We recommend using the types and queries detailed at [Getting started with discounts](https://shopify.dev/docs/apps/selling-strategies/discounts/getting-started) - * instead. These will replace the GraphQL `PriceRule` object and REST Admin - * `PriceRule` and `DiscountCode` resources. + * > Note: + * > Use the types and queries included our [discount tutorials](https://shopify.dev/docs/apps/selling-strategies/discounts/getting-started) + * instead. These will replace the GraphQL Admin API's [`PriceRule`](https://shopify.dev/docs/api/admin-graphql/latest/objects/PriceRule) object and [`DiscountCode`](https://shopify.dev/docs/api/admin-graphql/latest/unions/DiscountCode) + * union, and the REST Admin API's deprecated[`PriceRule`](https://shopify.dev/docs/api/admin-rest/unstable/resources/pricerule) resource. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Product.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Product.java index 758217a1..ba36682a 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Product.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Product.java @@ -47,6 +47,11 @@ public class Product implements CommentEventEmbed, MetafieldReference, Metafield */ private ProductBundleComponentConnection bundleComponents; + /** + * A list of consolidated options for a product in a bundle. + */ + private List bundleConsolidatedOptions; + /** * The category of a product * from [Shopify's Standard Product Taxonomy](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17). @@ -82,8 +87,8 @@ public class Product implements CommentEventEmbed, MetafieldReference, Metafield /** * The pricing that applies to a customer in a specific context. For example, a - * price might vary depending on the customer's location. As of API version - * 2025-04, only active markets are considered in the price resolution. + * price might vary depending on the customer's location. Only active markets are + * considered in the price resolution. */ private ProductContextualPricing contextualPricing; @@ -272,6 +277,23 @@ public class Product implements CommentEventEmbed, MetafieldReference, Metafield */ private ProductCategory productCategory; + /** + * A list of products that contain at least one variant associated with + * at least one of the current products' variants via group relationship. + */ + private ProductComponentTypeConnection productComponents; + + /** + * A count of unique products that contain at least one variant associated with + * at least one of the current products' variants via group relationship. + */ + private Count productComponentsCount; + + /** + * A list of products that has a variant that contains any of this product's variants as a component. + */ + private ProductConnection productParents; + /** * A list of the channels where the product is published. */ @@ -413,9 +435,9 @@ public class Product implements CommentEventEmbed, MetafieldReference, Metafield /** * The Storefront GraphQL API ID of the `Product`. * - * As of the `2022-04` version release, the Storefront GraphQL API will no longer - * return Base64 encoded IDs to match the behavior of the Admin GraphQL API. - * Therefore, you can safely use the `id` field's value instead. + * The Storefront GraphQL API will no longer return Base64 encoded IDs to match + * the behavior of the Admin GraphQL API. Therefore, you can safely use the `id` + * field's value instead. */ private String storefrontId; @@ -486,7 +508,7 @@ public class Product implements CommentEventEmbed, MetafieldReference, Metafield /** * A list of [variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) associated with the product. - * If querying a single product at the root, you can fetch up to 2000 variants. + * If querying a single product at the root, you can fetch up to 2048 variants. */ private ProductVariantConnection variants; @@ -543,6 +565,18 @@ public void setBundleComponents(ProductBundleComponentConnection bundleComponent this.bundleComponents = bundleComponents; } + /** + * A list of consolidated options for a product in a bundle. + */ + public List getBundleConsolidatedOptions() { + return bundleConsolidatedOptions; + } + + public void setBundleConsolidatedOptions( + List bundleConsolidatedOptions) { + this.bundleConsolidatedOptions = bundleConsolidatedOptions; + } + /** * The category of a product * from [Shopify's Standard Product Taxonomy](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17). @@ -608,8 +642,8 @@ public void setCompareAtPriceRange(ProductCompareAtPriceRange compareAtPriceRang /** * The pricing that applies to a customer in a specific context. For example, a - * price might vary depending on the customer's location. As of API version - * 2025-04, only active markets are considered in the price resolution. + * price might vary depending on the customer's location. Only active markets are + * considered in the price resolution. */ public ProductContextualPricing getContextualPricing() { return contextualPricing; @@ -990,6 +1024,41 @@ public void setProductCategory(ProductCategory productCategory) { this.productCategory = productCategory; } + /** + * A list of products that contain at least one variant associated with + * at least one of the current products' variants via group relationship. + */ + public ProductComponentTypeConnection getProductComponents() { + return productComponents; + } + + public void setProductComponents(ProductComponentTypeConnection productComponents) { + this.productComponents = productComponents; + } + + /** + * A count of unique products that contain at least one variant associated with + * at least one of the current products' variants via group relationship. + */ + public Count getProductComponentsCount() { + return productComponentsCount; + } + + public void setProductComponentsCount(Count productComponentsCount) { + this.productComponentsCount = productComponentsCount; + } + + /** + * A list of products that has a variant that contains any of this product's variants as a component. + */ + public ProductConnection getProductParents() { + return productParents; + } + + public void setProductParents(ProductConnection productParents) { + this.productParents = productParents; + } + /** * A list of the channels where the product is published. */ @@ -1264,9 +1333,9 @@ public void setStatus(ProductStatus status) { /** * The Storefront GraphQL API ID of the `Product`. * - * As of the `2022-04` version release, the Storefront GraphQL API will no longer - * return Base64 encoded IDs to match the behavior of the Admin GraphQL API. - * Therefore, you can safely use the `id` field's value instead. + * The Storefront GraphQL API will no longer return Base64 encoded IDs to match + * the behavior of the Admin GraphQL API. Therefore, you can safely use the `id` + * field's value instead. */ public String getStorefrontId() { return storefrontId; @@ -1403,7 +1472,7 @@ public void setUpdatedAt(OffsetDateTime updatedAt) { /** * A list of [variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) associated with the product. - * If querying a single product at the root, you can fetch up to 2000 variants. + * If querying a single product at the root, you can fetch up to 2048 variants. */ public ProductVariantConnection getVariants() { return variants; @@ -1438,7 +1507,7 @@ public void setVendor(String vendor) { @Override public String toString() { - return "Product{availablePublicationsCount='" + availablePublicationsCount + "', bodyHtml='" + bodyHtml + "', bundleComponents='" + bundleComponents + "', category='" + category + "', collections='" + collections + "', combinedListing='" + combinedListing + "', combinedListingRole='" + combinedListingRole + "', compareAtPriceRange='" + compareAtPriceRange + "', contextualPricing='" + contextualPricing + "', createdAt='" + createdAt + "', customProductType='" + customProductType + "', defaultCursor='" + defaultCursor + "', description='" + description + "', descriptionHtml='" + descriptionHtml + "', descriptionPlainSummary='" + descriptionPlainSummary + "', events='" + events + "', featuredImage='" + featuredImage + "', featuredMedia='" + featuredMedia + "', feedback='" + feedback + "', giftCardTemplateSuffix='" + giftCardTemplateSuffix + "', handle='" + handle + "', hasOnlyDefaultVariant='" + hasOnlyDefaultVariant + "', hasOutOfStockVariants='" + hasOutOfStockVariants + "', hasVariantsThatRequiresComponents='" + hasVariantsThatRequiresComponents + "', id='" + id + "', images='" + images + "', inCollection='" + inCollection + "', isGiftCard='" + isGiftCard + "', legacyResourceId='" + legacyResourceId + "', media='" + media + "', mediaCount='" + mediaCount + "', metafield='" + metafield + "', metafieldDefinitions='" + metafieldDefinitions + "', metafields='" + metafields + "', onlineStorePreviewUrl='" + onlineStorePreviewUrl + "', onlineStoreUrl='" + onlineStoreUrl + "', options='" + options + "', priceRange='" + priceRange + "', priceRangeV2='" + priceRangeV2 + "', productCategory='" + productCategory + "', productPublications='" + productPublications + "', productType='" + productType + "', publicationCount='" + publicationCount + "', publications='" + publications + "', publishedAt='" + publishedAt + "', publishedInContext='" + publishedInContext + "', publishedOnChannel='" + publishedOnChannel + "', publishedOnCurrentChannel='" + publishedOnCurrentChannel + "', publishedOnCurrentPublication='" + publishedOnCurrentPublication + "', publishedOnPublication='" + publishedOnPublication + "', requiresSellingPlan='" + requiresSellingPlan + "', resourcePublicationOnCurrentPublication='" + resourcePublicationOnCurrentPublication + "', resourcePublications='" + resourcePublications + "', resourcePublicationsCount='" + resourcePublicationsCount + "', resourcePublicationsV2='" + resourcePublicationsV2 + "', restrictedForResource='" + restrictedForResource + "', sellingPlanGroupCount='" + sellingPlanGroupCount + "', sellingPlanGroups='" + sellingPlanGroups + "', sellingPlanGroupsCount='" + sellingPlanGroupsCount + "', seo='" + seo + "', standardizedProductType='" + standardizedProductType + "', status='" + status + "', storefrontId='" + storefrontId + "', tags='" + tags + "', templateSuffix='" + templateSuffix + "', title='" + title + "', totalInventory='" + totalInventory + "', totalVariants='" + totalVariants + "', tracksInventory='" + tracksInventory + "', translations='" + translations + "', unpublishedChannels='" + unpublishedChannels + "', unpublishedPublications='" + unpublishedPublications + "', updatedAt='" + updatedAt + "', variants='" + variants + "', variantsCount='" + variantsCount + "', vendor='" + vendor + "'}"; + return "Product{availablePublicationsCount='" + availablePublicationsCount + "', bodyHtml='" + bodyHtml + "', bundleComponents='" + bundleComponents + "', bundleConsolidatedOptions='" + bundleConsolidatedOptions + "', category='" + category + "', collections='" + collections + "', combinedListing='" + combinedListing + "', combinedListingRole='" + combinedListingRole + "', compareAtPriceRange='" + compareAtPriceRange + "', contextualPricing='" + contextualPricing + "', createdAt='" + createdAt + "', customProductType='" + customProductType + "', defaultCursor='" + defaultCursor + "', description='" + description + "', descriptionHtml='" + descriptionHtml + "', descriptionPlainSummary='" + descriptionPlainSummary + "', events='" + events + "', featuredImage='" + featuredImage + "', featuredMedia='" + featuredMedia + "', feedback='" + feedback + "', giftCardTemplateSuffix='" + giftCardTemplateSuffix + "', handle='" + handle + "', hasOnlyDefaultVariant='" + hasOnlyDefaultVariant + "', hasOutOfStockVariants='" + hasOutOfStockVariants + "', hasVariantsThatRequiresComponents='" + hasVariantsThatRequiresComponents + "', id='" + id + "', images='" + images + "', inCollection='" + inCollection + "', isGiftCard='" + isGiftCard + "', legacyResourceId='" + legacyResourceId + "', media='" + media + "', mediaCount='" + mediaCount + "', metafield='" + metafield + "', metafieldDefinitions='" + metafieldDefinitions + "', metafields='" + metafields + "', onlineStorePreviewUrl='" + onlineStorePreviewUrl + "', onlineStoreUrl='" + onlineStoreUrl + "', options='" + options + "', priceRange='" + priceRange + "', priceRangeV2='" + priceRangeV2 + "', productCategory='" + productCategory + "', productComponents='" + productComponents + "', productComponentsCount='" + productComponentsCount + "', productParents='" + productParents + "', productPublications='" + productPublications + "', productType='" + productType + "', publicationCount='" + publicationCount + "', publications='" + publications + "', publishedAt='" + publishedAt + "', publishedInContext='" + publishedInContext + "', publishedOnChannel='" + publishedOnChannel + "', publishedOnCurrentChannel='" + publishedOnCurrentChannel + "', publishedOnCurrentPublication='" + publishedOnCurrentPublication + "', publishedOnPublication='" + publishedOnPublication + "', requiresSellingPlan='" + requiresSellingPlan + "', resourcePublicationOnCurrentPublication='" + resourcePublicationOnCurrentPublication + "', resourcePublications='" + resourcePublications + "', resourcePublicationsCount='" + resourcePublicationsCount + "', resourcePublicationsV2='" + resourcePublicationsV2 + "', restrictedForResource='" + restrictedForResource + "', sellingPlanGroupCount='" + sellingPlanGroupCount + "', sellingPlanGroups='" + sellingPlanGroups + "', sellingPlanGroupsCount='" + sellingPlanGroupsCount + "', seo='" + seo + "', standardizedProductType='" + standardizedProductType + "', status='" + status + "', storefrontId='" + storefrontId + "', tags='" + tags + "', templateSuffix='" + templateSuffix + "', title='" + title + "', totalInventory='" + totalInventory + "', totalVariants='" + totalVariants + "', tracksInventory='" + tracksInventory + "', translations='" + translations + "', unpublishedChannels='" + unpublishedChannels + "', unpublishedPublications='" + unpublishedPublications + "', updatedAt='" + updatedAt + "', variants='" + variants + "', variantsCount='" + variantsCount + "', vendor='" + vendor + "'}"; } @Override @@ -1449,6 +1518,7 @@ public boolean equals(Object o) { return Objects.equals(availablePublicationsCount, that.availablePublicationsCount) && Objects.equals(bodyHtml, that.bodyHtml) && Objects.equals(bundleComponents, that.bundleComponents) && + Objects.equals(bundleConsolidatedOptions, that.bundleConsolidatedOptions) && Objects.equals(category, that.category) && Objects.equals(collections, that.collections) && Objects.equals(combinedListing, that.combinedListing) && @@ -1486,6 +1556,9 @@ public boolean equals(Object o) { Objects.equals(priceRange, that.priceRange) && Objects.equals(priceRangeV2, that.priceRangeV2) && Objects.equals(productCategory, that.productCategory) && + Objects.equals(productComponents, that.productComponents) && + Objects.equals(productComponentsCount, that.productComponentsCount) && + Objects.equals(productParents, that.productParents) && Objects.equals(productPublications, that.productPublications) && Objects.equals(productType, that.productType) && publicationCount == that.publicationCount && @@ -1526,7 +1599,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(availablePublicationsCount, bodyHtml, bundleComponents, category, collections, combinedListing, combinedListingRole, compareAtPriceRange, contextualPricing, createdAt, customProductType, defaultCursor, description, descriptionHtml, descriptionPlainSummary, events, featuredImage, featuredMedia, feedback, giftCardTemplateSuffix, handle, hasOnlyDefaultVariant, hasOutOfStockVariants, hasVariantsThatRequiresComponents, id, images, inCollection, isGiftCard, legacyResourceId, media, mediaCount, metafield, metafieldDefinitions, metafields, onlineStorePreviewUrl, onlineStoreUrl, options, priceRange, priceRangeV2, productCategory, productPublications, productType, publicationCount, publications, publishedAt, publishedInContext, publishedOnChannel, publishedOnCurrentChannel, publishedOnCurrentPublication, publishedOnPublication, requiresSellingPlan, resourcePublicationOnCurrentPublication, resourcePublications, resourcePublicationsCount, resourcePublicationsV2, restrictedForResource, sellingPlanGroupCount, sellingPlanGroups, sellingPlanGroupsCount, seo, standardizedProductType, status, storefrontId, tags, templateSuffix, title, totalInventory, totalVariants, tracksInventory, translations, unpublishedChannels, unpublishedPublications, updatedAt, variants, variantsCount, vendor); + return Objects.hash(availablePublicationsCount, bodyHtml, bundleComponents, bundleConsolidatedOptions, category, collections, combinedListing, combinedListingRole, compareAtPriceRange, contextualPricing, createdAt, customProductType, defaultCursor, description, descriptionHtml, descriptionPlainSummary, events, featuredImage, featuredMedia, feedback, giftCardTemplateSuffix, handle, hasOnlyDefaultVariant, hasOutOfStockVariants, hasVariantsThatRequiresComponents, id, images, inCollection, isGiftCard, legacyResourceId, media, mediaCount, metafield, metafieldDefinitions, metafields, onlineStorePreviewUrl, onlineStoreUrl, options, priceRange, priceRangeV2, productCategory, productComponents, productComponentsCount, productParents, productPublications, productType, publicationCount, publications, publishedAt, publishedInContext, publishedOnChannel, publishedOnCurrentChannel, publishedOnCurrentPublication, publishedOnPublication, requiresSellingPlan, resourcePublicationOnCurrentPublication, resourcePublications, resourcePublicationsCount, resourcePublicationsV2, restrictedForResource, sellingPlanGroupCount, sellingPlanGroups, sellingPlanGroupsCount, seo, standardizedProductType, status, storefrontId, tags, templateSuffix, title, totalInventory, totalVariants, tracksInventory, translations, unpublishedChannels, unpublishedPublications, updatedAt, variants, variantsCount, vendor); } public static Builder newBuilder() { @@ -1555,6 +1628,11 @@ public static class Builder { */ private ProductBundleComponentConnection bundleComponents; + /** + * A list of consolidated options for a product in a bundle. + */ + private List bundleConsolidatedOptions; + /** * The category of a product * from [Shopify's Standard Product Taxonomy](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17). @@ -1590,8 +1668,8 @@ public static class Builder { /** * The pricing that applies to a customer in a specific context. For example, a - * price might vary depending on the customer's location. As of API version - * 2025-04, only active markets are considered in the price resolution. + * price might vary depending on the customer's location. Only active markets are + * considered in the price resolution. */ private ProductContextualPricing contextualPricing; @@ -1780,6 +1858,23 @@ public static class Builder { */ private ProductCategory productCategory; + /** + * A list of products that contain at least one variant associated with + * at least one of the current products' variants via group relationship. + */ + private ProductComponentTypeConnection productComponents; + + /** + * A count of unique products that contain at least one variant associated with + * at least one of the current products' variants via group relationship. + */ + private Count productComponentsCount; + + /** + * A list of products that has a variant that contains any of this product's variants as a component. + */ + private ProductConnection productParents; + /** * A list of the channels where the product is published. */ @@ -1921,9 +2016,9 @@ public static class Builder { /** * The Storefront GraphQL API ID of the `Product`. * - * As of the `2022-04` version release, the Storefront GraphQL API will no longer - * return Base64 encoded IDs to match the behavior of the Admin GraphQL API. - * Therefore, you can safely use the `id` field's value instead. + * The Storefront GraphQL API will no longer return Base64 encoded IDs to match + * the behavior of the Admin GraphQL API. Therefore, you can safely use the `id` + * field's value instead. */ private String storefrontId; @@ -1994,7 +2089,7 @@ public static class Builder { /** * A list of [variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) associated with the product. - * If querying a single product at the root, you can fetch up to 2000 variants. + * If querying a single product at the root, you can fetch up to 2048 variants. */ private ProductVariantConnection variants; @@ -2014,6 +2109,7 @@ public Product build() { result.availablePublicationsCount = this.availablePublicationsCount; result.bodyHtml = this.bodyHtml; result.bundleComponents = this.bundleComponents; + result.bundleConsolidatedOptions = this.bundleConsolidatedOptions; result.category = this.category; result.collections = this.collections; result.combinedListing = this.combinedListing; @@ -2051,6 +2147,9 @@ public Product build() { result.priceRange = this.priceRange; result.priceRangeV2 = this.priceRangeV2; result.productCategory = this.productCategory; + result.productComponents = this.productComponents; + result.productComponentsCount = this.productComponentsCount; + result.productParents = this.productParents; result.productPublications = this.productPublications; result.productType = this.productType; result.publicationCount = this.publicationCount; @@ -2120,6 +2219,15 @@ public Builder bundleComponents(ProductBundleComponentConnection bundleComponent return this; } + /** + * A list of consolidated options for a product in a bundle. + */ + public Builder bundleConsolidatedOptions( + List bundleConsolidatedOptions) { + this.bundleConsolidatedOptions = bundleConsolidatedOptions; + return this; + } + /** * The category of a product * from [Shopify's Standard Product Taxonomy](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17). @@ -2170,8 +2278,8 @@ public Builder compareAtPriceRange(ProductCompareAtPriceRange compareAtPriceRang /** * The pricing that applies to a customer in a specific context. For example, a - * price might vary depending on the customer's location. As of API version - * 2025-04, only active markets are considered in the price resolution. + * price might vary depending on the customer's location. Only active markets are + * considered in the price resolution. */ public Builder contextualPricing(ProductContextualPricing contextualPricing) { this.contextualPricing = contextualPricing; @@ -2456,6 +2564,32 @@ public Builder productCategory(ProductCategory productCategory) { return this; } + /** + * A list of products that contain at least one variant associated with + * at least one of the current products' variants via group relationship. + */ + public Builder productComponents(ProductComponentTypeConnection productComponents) { + this.productComponents = productComponents; + return this; + } + + /** + * A count of unique products that contain at least one variant associated with + * at least one of the current products' variants via group relationship. + */ + public Builder productComponentsCount(Count productComponentsCount) { + this.productComponentsCount = productComponentsCount; + return this; + } + + /** + * A list of products that has a variant that contains any of this product's variants as a component. + */ + public Builder productParents(ProductConnection productParents) { + this.productParents = productParents; + return this; + } + /** * A list of the channels where the product is published. */ @@ -2664,9 +2798,9 @@ public Builder status(ProductStatus status) { /** * The Storefront GraphQL API ID of the `Product`. * - * As of the `2022-04` version release, the Storefront GraphQL API will no longer - * return Base64 encoded IDs to match the behavior of the Admin GraphQL API. - * Therefore, you can safely use the `id` field's value instead. + * The Storefront GraphQL API will no longer return Base64 encoded IDs to match + * the behavior of the Admin GraphQL API. Therefore, you can safely use the `id` + * field's value instead. */ public Builder storefrontId(String storefrontId) { this.storefrontId = storefrontId; @@ -2770,7 +2904,7 @@ public Builder updatedAt(OffsetDateTime updatedAt) { /** * A list of [variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) associated with the product. - * If querying a single product at the root, you can fetch up to 2000 variants. + * If querying a single product at the root, you can fetch up to 2048 variants. */ public Builder variants(ProductVariantConnection variants) { this.variants = variants; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductBundleConsolidatedOptionComponentInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductBundleConsolidatedOptionComponentInput.java new file mode 100644 index 00000000..ddd6c4d8 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductBundleConsolidatedOptionComponentInput.java @@ -0,0 +1,108 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * The input fields for mapping a consolidated option to a specific component option. + */ +public class ProductBundleConsolidatedOptionComponentInput { + /** + * The value to use for the component option (e.g., 'Small', 'Red'). + */ + private String componentOptionValue; + + /** + * The ID of the component option that this consolidated option maps to. + * If null, this selection targets the component's quantity option with the given name. + */ + private String componentOptionId; + + public ProductBundleConsolidatedOptionComponentInput() { + } + + /** + * The value to use for the component option (e.g., 'Small', 'Red'). + */ + public String getComponentOptionValue() { + return componentOptionValue; + } + + public void setComponentOptionValue(String componentOptionValue) { + this.componentOptionValue = componentOptionValue; + } + + /** + * The ID of the component option that this consolidated option maps to. + * If null, this selection targets the component's quantity option with the given name. + */ + public String getComponentOptionId() { + return componentOptionId; + } + + public void setComponentOptionId(String componentOptionId) { + this.componentOptionId = componentOptionId; + } + + @Override + public String toString() { + return "ProductBundleConsolidatedOptionComponentInput{componentOptionValue='" + componentOptionValue + "', componentOptionId='" + componentOptionId + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ProductBundleConsolidatedOptionComponentInput that = (ProductBundleConsolidatedOptionComponentInput) o; + return Objects.equals(componentOptionValue, that.componentOptionValue) && + Objects.equals(componentOptionId, that.componentOptionId); + } + + @Override + public int hashCode() { + return Objects.hash(componentOptionValue, componentOptionId); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The value to use for the component option (e.g., 'Small', 'Red'). + */ + private String componentOptionValue; + + /** + * The ID of the component option that this consolidated option maps to. + * If null, this selection targets the component's quantity option with the given name. + */ + private String componentOptionId; + + public ProductBundleConsolidatedOptionComponentInput build() { + ProductBundleConsolidatedOptionComponentInput result = new ProductBundleConsolidatedOptionComponentInput(); + result.componentOptionValue = this.componentOptionValue; + result.componentOptionId = this.componentOptionId; + return result; + } + + /** + * The value to use for the component option (e.g., 'Small', 'Red'). + */ + public Builder componentOptionValue(String componentOptionValue) { + this.componentOptionValue = componentOptionValue; + return this; + } + + /** + * The ID of the component option that this consolidated option maps to. + * If null, this selection targets the component's quantity option with the given name. + */ + public Builder componentOptionId(String componentOptionId) { + this.componentOptionId = componentOptionId; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductBundleConsolidatedOptionInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductBundleConsolidatedOptionInput.java new file mode 100644 index 00000000..01b9598c --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductBundleConsolidatedOptionInput.java @@ -0,0 +1,107 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * The input fields for a consolidated option on a componentized product. + */ +public class ProductBundleConsolidatedOptionInput { + /** + * The name of the consolidated option (e.g., 'Size', 'Color'). + */ + private String optionName; + + /** + * The option selections that define how this consolidated option maps to component options. + */ + private List optionSelections; + + public ProductBundleConsolidatedOptionInput() { + } + + /** + * The name of the consolidated option (e.g., 'Size', 'Color'). + */ + public String getOptionName() { + return optionName; + } + + public void setOptionName(String optionName) { + this.optionName = optionName; + } + + /** + * The option selections that define how this consolidated option maps to component options. + */ + public List getOptionSelections() { + return optionSelections; + } + + public void setOptionSelections( + List optionSelections) { + this.optionSelections = optionSelections; + } + + @Override + public String toString() { + return "ProductBundleConsolidatedOptionInput{optionName='" + optionName + "', optionSelections='" + optionSelections + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ProductBundleConsolidatedOptionInput that = (ProductBundleConsolidatedOptionInput) o; + return Objects.equals(optionName, that.optionName) && + Objects.equals(optionSelections, that.optionSelections); + } + + @Override + public int hashCode() { + return Objects.hash(optionName, optionSelections); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The name of the consolidated option (e.g., 'Size', 'Color'). + */ + private String optionName; + + /** + * The option selections that define how this consolidated option maps to component options. + */ + private List optionSelections; + + public ProductBundleConsolidatedOptionInput build() { + ProductBundleConsolidatedOptionInput result = new ProductBundleConsolidatedOptionInput(); + result.optionName = this.optionName; + result.optionSelections = this.optionSelections; + return result; + } + + /** + * The name of the consolidated option (e.g., 'Size', 'Color'). + */ + public Builder optionName(String optionName) { + this.optionName = optionName; + return this; + } + + /** + * The option selections that define how this consolidated option maps to component options. + */ + public Builder optionSelections( + List optionSelections) { + this.optionSelections = optionSelections; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductBundleConsolidatedOptionSelectionInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductBundleConsolidatedOptionSelectionInput.java new file mode 100644 index 00000000..f6a7616a --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductBundleConsolidatedOptionSelectionInput.java @@ -0,0 +1,105 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * The input fields for a consolidated option selection that maps to component options. + */ +public class ProductBundleConsolidatedOptionSelectionInput { + /** + * The value for this consolidated option selection (e.g., 'Small', 'Medium', 'Large'). + */ + private String optionValue; + + /** + * The component mappings that define how this option value maps to specific component options. + */ + private List components; + + public ProductBundleConsolidatedOptionSelectionInput() { + } + + /** + * The value for this consolidated option selection (e.g., 'Small', 'Medium', 'Large'). + */ + public String getOptionValue() { + return optionValue; + } + + public void setOptionValue(String optionValue) { + this.optionValue = optionValue; + } + + /** + * The component mappings that define how this option value maps to specific component options. + */ + public List getComponents() { + return components; + } + + public void setComponents(List components) { + this.components = components; + } + + @Override + public String toString() { + return "ProductBundleConsolidatedOptionSelectionInput{optionValue='" + optionValue + "', components='" + components + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ProductBundleConsolidatedOptionSelectionInput that = (ProductBundleConsolidatedOptionSelectionInput) o; + return Objects.equals(optionValue, that.optionValue) && + Objects.equals(components, that.components); + } + + @Override + public int hashCode() { + return Objects.hash(optionValue, components); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The value for this consolidated option selection (e.g., 'Small', 'Medium', 'Large'). + */ + private String optionValue; + + /** + * The component mappings that define how this option value maps to specific component options. + */ + private List components; + + public ProductBundleConsolidatedOptionSelectionInput build() { + ProductBundleConsolidatedOptionSelectionInput result = new ProductBundleConsolidatedOptionSelectionInput(); + result.optionValue = this.optionValue; + result.components = this.components; + return result; + } + + /** + * The value for this consolidated option selection (e.g., 'Small', 'Medium', 'Large'). + */ + public Builder optionValue(String optionValue) { + this.optionValue = optionValue; + return this; + } + + /** + * The component mappings that define how this option value maps to specific component options. + */ + public Builder components(List components) { + this.components = components; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductBundleCreateInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductBundleCreateInput.java index c57e286d..1bdd0727 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductBundleCreateInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductBundleCreateInput.java @@ -15,6 +15,11 @@ public class ProductBundleCreateInput { */ private String title; + /** + * The consolidated options of the componentized product to create, if provided. + */ + private List consolidatedOptions; + /** * The component products to bundle with the bundle product. */ @@ -34,6 +39,18 @@ public void setTitle(String title) { this.title = title; } + /** + * The consolidated options of the componentized product to create, if provided. + */ + public List getConsolidatedOptions() { + return consolidatedOptions; + } + + public void setConsolidatedOptions( + List consolidatedOptions) { + this.consolidatedOptions = consolidatedOptions; + } + /** * The component products to bundle with the bundle product. */ @@ -47,7 +64,7 @@ public void setComponents(List components) { @Override public String toString() { - return "ProductBundleCreateInput{title='" + title + "', components='" + components + "'}"; + return "ProductBundleCreateInput{title='" + title + "', consolidatedOptions='" + consolidatedOptions + "', components='" + components + "'}"; } @Override @@ -56,12 +73,13 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) return false; ProductBundleCreateInput that = (ProductBundleCreateInput) o; return Objects.equals(title, that.title) && + Objects.equals(consolidatedOptions, that.consolidatedOptions) && Objects.equals(components, that.components); } @Override public int hashCode() { - return Objects.hash(title, components); + return Objects.hash(title, consolidatedOptions, components); } public static Builder newBuilder() { @@ -74,6 +92,11 @@ public static class Builder { */ private String title; + /** + * The consolidated options of the componentized product to create, if provided. + */ + private List consolidatedOptions; + /** * The component products to bundle with the bundle product. */ @@ -82,6 +105,7 @@ public static class Builder { public ProductBundleCreateInput build() { ProductBundleCreateInput result = new ProductBundleCreateInput(); result.title = this.title; + result.consolidatedOptions = this.consolidatedOptions; result.components = this.components; return result; } @@ -94,6 +118,15 @@ public Builder title(String title) { return this; } + /** + * The consolidated options of the componentized product to create, if provided. + */ + public Builder consolidatedOptions( + List consolidatedOptions) { + this.consolidatedOptions = consolidatedOptions; + return this; + } + /** * The component products to bundle with the bundle product. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductBundleCreatePayload.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductBundleCreatePayload.java index ce0df602..84b52f1e 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductBundleCreatePayload.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductBundleCreatePayload.java @@ -11,7 +11,7 @@ */ public class ProductBundleCreatePayload { /** - * The asynchronous ProductBundleOperation creating the componentized product. + * The asynchronous ProductBundleOperation creating the product bundle or componentized product. */ private ProductBundleOperation productBundleOperation; @@ -24,7 +24,7 @@ public ProductBundleCreatePayload() { } /** - * The asynchronous ProductBundleOperation creating the componentized product. + * The asynchronous ProductBundleOperation creating the product bundle or componentized product. */ public ProductBundleOperation getProductBundleOperation() { return productBundleOperation; @@ -70,7 +70,7 @@ public static Builder newBuilder() { public static class Builder { /** - * The asynchronous ProductBundleOperation creating the componentized product. + * The asynchronous ProductBundleOperation creating the product bundle or componentized product. */ private ProductBundleOperation productBundleOperation; @@ -87,7 +87,7 @@ public ProductBundleCreatePayload build() { } /** - * The asynchronous ProductBundleOperation creating the componentized product. + * The asynchronous ProductBundleOperation creating the product bundle or componentized product. */ public Builder productBundleOperation(ProductBundleOperation productBundleOperation) { this.productBundleOperation = productBundleOperation; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductBundleUpdateInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductBundleUpdateInput.java index 3a2e1492..bde68a6d 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductBundleUpdateInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductBundleUpdateInput.java @@ -20,6 +20,11 @@ public class ProductBundleUpdateInput { */ private String title; + /** + * The consolidated options of the componentized product to update, if provided. + */ + private List consolidatedOptions; + /** * The components to update existing ones. If none provided, no changes occur. * Note: This replaces, not adds to, current components. @@ -51,6 +56,18 @@ public void setTitle(String title) { this.title = title; } + /** + * The consolidated options of the componentized product to update, if provided. + */ + public List getConsolidatedOptions() { + return consolidatedOptions; + } + + public void setConsolidatedOptions( + List consolidatedOptions) { + this.consolidatedOptions = consolidatedOptions; + } + /** * The components to update existing ones. If none provided, no changes occur. * Note: This replaces, not adds to, current components. @@ -65,7 +82,7 @@ public void setComponents(List components) { @Override public String toString() { - return "ProductBundleUpdateInput{productId='" + productId + "', title='" + title + "', components='" + components + "'}"; + return "ProductBundleUpdateInput{productId='" + productId + "', title='" + title + "', consolidatedOptions='" + consolidatedOptions + "', components='" + components + "'}"; } @Override @@ -75,12 +92,13 @@ public boolean equals(Object o) { ProductBundleUpdateInput that = (ProductBundleUpdateInput) o; return Objects.equals(productId, that.productId) && Objects.equals(title, that.title) && + Objects.equals(consolidatedOptions, that.consolidatedOptions) && Objects.equals(components, that.components); } @Override public int hashCode() { - return Objects.hash(productId, title, components); + return Objects.hash(productId, title, consolidatedOptions, components); } public static Builder newBuilder() { @@ -98,6 +116,11 @@ public static class Builder { */ private String title; + /** + * The consolidated options of the componentized product to update, if provided. + */ + private List consolidatedOptions; + /** * The components to update existing ones. If none provided, no changes occur. * Note: This replaces, not adds to, current components. @@ -108,6 +131,7 @@ public ProductBundleUpdateInput build() { ProductBundleUpdateInput result = new ProductBundleUpdateInput(); result.productId = this.productId; result.title = this.title; + result.consolidatedOptions = this.consolidatedOptions; result.components = this.components; return result; } @@ -128,6 +152,15 @@ public Builder title(String title) { return this; } + /** + * The consolidated options of the componentized product to update, if provided. + */ + public Builder consolidatedOptions( + List consolidatedOptions) { + this.consolidatedOptions = consolidatedOptions; + return this; + } + /** * The components to update existing ones. If none provided, no changes occur. * Note: This replaces, not adds to, current components. diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductBundleUpdatePayload.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductBundleUpdatePayload.java index c352a95b..75f60a7d 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductBundleUpdatePayload.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductBundleUpdatePayload.java @@ -11,7 +11,7 @@ */ public class ProductBundleUpdatePayload { /** - * The asynchronous ProductBundleOperation updating the componentized product. + * The asynchronous ProductBundleOperation updating the product bundle or componentized product. */ private ProductBundleOperation productBundleOperation; @@ -24,7 +24,7 @@ public ProductBundleUpdatePayload() { } /** - * The asynchronous ProductBundleOperation updating the componentized product. + * The asynchronous ProductBundleOperation updating the product bundle or componentized product. */ public ProductBundleOperation getProductBundleOperation() { return productBundleOperation; @@ -70,7 +70,7 @@ public static Builder newBuilder() { public static class Builder { /** - * The asynchronous ProductBundleOperation updating the componentized product. + * The asynchronous ProductBundleOperation updating the product bundle or componentized product. */ private ProductBundleOperation productBundleOperation; @@ -87,7 +87,7 @@ public ProductBundleUpdatePayload build() { } /** - * The asynchronous ProductBundleOperation updating the componentized product. + * The asynchronous ProductBundleOperation updating the product bundle or componentized product. */ public Builder productBundleOperation(ProductBundleOperation productBundleOperation) { this.productBundleOperation = productBundleOperation; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductCategory.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductCategory.java index f30d017f..32cde747 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductCategory.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductCategory.java @@ -6,7 +6,8 @@ import java.util.Objects; /** - * The details of a specific product category within the [Shopify product taxonomy](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17). + * The details of a specific product category within Shopify's [standardized product taxonomy](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17). + * Provides access to the associated [`ProductTaxonomyNode`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductTaxonomyNode). */ public class ProductCategory { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductComponentType.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductComponentType.java new file mode 100644 index 00000000..c7cbbc6b --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductComponentType.java @@ -0,0 +1,197 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * The product component information. + */ +public class ProductComponentType { + /** + * The list of products' variants that are components. + */ + private ProductVariantConnection componentVariants; + + /** + * The number of component variants for the product component. + */ + private Count componentVariantsCount; + + /** + * The list of products' variants that are not components. + */ + private ProductVariantConnection nonComponentVariants; + + /** + * The number of non_components variants for the product component. + */ + private Count nonComponentVariantsCount; + + /** + * The product that's a component. + */ + private Product product; + + public ProductComponentType() { + } + + /** + * The list of products' variants that are components. + */ + public ProductVariantConnection getComponentVariants() { + return componentVariants; + } + + public void setComponentVariants(ProductVariantConnection componentVariants) { + this.componentVariants = componentVariants; + } + + /** + * The number of component variants for the product component. + */ + public Count getComponentVariantsCount() { + return componentVariantsCount; + } + + public void setComponentVariantsCount(Count componentVariantsCount) { + this.componentVariantsCount = componentVariantsCount; + } + + /** + * The list of products' variants that are not components. + */ + public ProductVariantConnection getNonComponentVariants() { + return nonComponentVariants; + } + + public void setNonComponentVariants(ProductVariantConnection nonComponentVariants) { + this.nonComponentVariants = nonComponentVariants; + } + + /** + * The number of non_components variants for the product component. + */ + public Count getNonComponentVariantsCount() { + return nonComponentVariantsCount; + } + + public void setNonComponentVariantsCount(Count nonComponentVariantsCount) { + this.nonComponentVariantsCount = nonComponentVariantsCount; + } + + /** + * The product that's a component. + */ + public Product getProduct() { + return product; + } + + public void setProduct(Product product) { + this.product = product; + } + + @Override + public String toString() { + return "ProductComponentType{componentVariants='" + componentVariants + "', componentVariantsCount='" + componentVariantsCount + "', nonComponentVariants='" + nonComponentVariants + "', nonComponentVariantsCount='" + nonComponentVariantsCount + "', product='" + product + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ProductComponentType that = (ProductComponentType) o; + return Objects.equals(componentVariants, that.componentVariants) && + Objects.equals(componentVariantsCount, that.componentVariantsCount) && + Objects.equals(nonComponentVariants, that.nonComponentVariants) && + Objects.equals(nonComponentVariantsCount, that.nonComponentVariantsCount) && + Objects.equals(product, that.product); + } + + @Override + public int hashCode() { + return Objects.hash(componentVariants, componentVariantsCount, nonComponentVariants, nonComponentVariantsCount, product); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The list of products' variants that are components. + */ + private ProductVariantConnection componentVariants; + + /** + * The number of component variants for the product component. + */ + private Count componentVariantsCount; + + /** + * The list of products' variants that are not components. + */ + private ProductVariantConnection nonComponentVariants; + + /** + * The number of non_components variants for the product component. + */ + private Count nonComponentVariantsCount; + + /** + * The product that's a component. + */ + private Product product; + + public ProductComponentType build() { + ProductComponentType result = new ProductComponentType(); + result.componentVariants = this.componentVariants; + result.componentVariantsCount = this.componentVariantsCount; + result.nonComponentVariants = this.nonComponentVariants; + result.nonComponentVariantsCount = this.nonComponentVariantsCount; + result.product = this.product; + return result; + } + + /** + * The list of products' variants that are components. + */ + public Builder componentVariants(ProductVariantConnection componentVariants) { + this.componentVariants = componentVariants; + return this; + } + + /** + * The number of component variants for the product component. + */ + public Builder componentVariantsCount(Count componentVariantsCount) { + this.componentVariantsCount = componentVariantsCount; + return this; + } + + /** + * The list of products' variants that are not components. + */ + public Builder nonComponentVariants(ProductVariantConnection nonComponentVariants) { + this.nonComponentVariants = nonComponentVariants; + return this; + } + + /** + * The number of non_components variants for the product component. + */ + public Builder nonComponentVariantsCount(Count nonComponentVariantsCount) { + this.nonComponentVariantsCount = nonComponentVariantsCount; + return this; + } + + /** + * The product that's a component. + */ + public Builder product(Product product) { + this.product = product; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductComponentTypeConnection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductComponentTypeConnection.java new file mode 100644 index 00000000..e5b36399 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductComponentTypeConnection.java @@ -0,0 +1,152 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * An auto-generated type for paginating through multiple ProductComponentTypes. + */ +public class ProductComponentTypeConnection { + /** + * The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + */ + private List edges; + + /** + * A list of nodes that are contained in ProductComponentTypeEdge. You can fetch + * data about an individual node, or you can follow the edges to fetch data about + * a collection of related nodes. At each node, you specify the fields that you + * want to retrieve. + */ + private List nodes; + + /** + * An object that’s used to retrieve [cursor + * information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + */ + private PageInfo pageInfo; + + public ProductComponentTypeConnection() { + } + + /** + * The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + */ + public List getEdges() { + return edges; + } + + public void setEdges(List edges) { + this.edges = edges; + } + + /** + * A list of nodes that are contained in ProductComponentTypeEdge. You can fetch + * data about an individual node, or you can follow the edges to fetch data about + * a collection of related nodes. At each node, you specify the fields that you + * want to retrieve. + */ + public List getNodes() { + return nodes; + } + + public void setNodes(List nodes) { + this.nodes = nodes; + } + + /** + * An object that’s used to retrieve [cursor + * information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + */ + public PageInfo getPageInfo() { + return pageInfo; + } + + public void setPageInfo(PageInfo pageInfo) { + this.pageInfo = pageInfo; + } + + @Override + public String toString() { + return "ProductComponentTypeConnection{edges='" + edges + "', nodes='" + nodes + "', pageInfo='" + pageInfo + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ProductComponentTypeConnection that = (ProductComponentTypeConnection) o; + return Objects.equals(edges, that.edges) && + Objects.equals(nodes, that.nodes) && + Objects.equals(pageInfo, that.pageInfo); + } + + @Override + public int hashCode() { + return Objects.hash(edges, nodes, pageInfo); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + */ + private List edges; + + /** + * A list of nodes that are contained in ProductComponentTypeEdge. You can fetch + * data about an individual node, or you can follow the edges to fetch data about + * a collection of related nodes. At each node, you specify the fields that you + * want to retrieve. + */ + private List nodes; + + /** + * An object that’s used to retrieve [cursor + * information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + */ + private PageInfo pageInfo; + + public ProductComponentTypeConnection build() { + ProductComponentTypeConnection result = new ProductComponentTypeConnection(); + result.edges = this.edges; + result.nodes = this.nodes; + result.pageInfo = this.pageInfo; + return result; + } + + /** + * The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + */ + public Builder edges(List edges) { + this.edges = edges; + return this; + } + + /** + * A list of nodes that are contained in ProductComponentTypeEdge. You can fetch + * data about an individual node, or you can follow the edges to fetch data about + * a collection of related nodes. At each node, you specify the fields that you + * want to retrieve. + */ + public Builder nodes(List nodes) { + this.nodes = nodes; + return this; + } + + /** + * An object that’s used to retrieve [cursor + * information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + */ + public Builder pageInfo(PageInfo pageInfo) { + this.pageInfo = pageInfo; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductComponentTypeEdge.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductComponentTypeEdge.java new file mode 100644 index 00000000..b21aa9fd --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductComponentTypeEdge.java @@ -0,0 +1,104 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * An auto-generated type which holds one ProductComponentType and a cursor during pagination. + */ +public class ProductComponentTypeEdge { + /** + * The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + */ + private String cursor; + + /** + * The item at the end of ProductComponentTypeEdge. + */ + private ProductComponentType node; + + public ProductComponentTypeEdge() { + } + + /** + * The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + */ + public String getCursor() { + return cursor; + } + + public void setCursor(String cursor) { + this.cursor = cursor; + } + + /** + * The item at the end of ProductComponentTypeEdge. + */ + public ProductComponentType getNode() { + return node; + } + + public void setNode(ProductComponentType node) { + this.node = node; + } + + @Override + public String toString() { + return "ProductComponentTypeEdge{cursor='" + cursor + "', node='" + node + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ProductComponentTypeEdge that = (ProductComponentTypeEdge) o; + return Objects.equals(cursor, that.cursor) && + Objects.equals(node, that.node); + } + + @Override + public int hashCode() { + return Objects.hash(cursor, node); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + */ + private String cursor; + + /** + * The item at the end of ProductComponentTypeEdge. + */ + private ProductComponentType node; + + public ProductComponentTypeEdge build() { + ProductComponentTypeEdge result = new ProductComponentTypeEdge(); + result.cursor = this.cursor; + result.node = this.node; + return result; + } + + /** + * The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + */ + public Builder cursor(String cursor) { + this.cursor = cursor; + return this; + } + + /** + * The item at the end of ProductComponentTypeEdge. + */ + public Builder node(ProductComponentType node) { + this.node = node; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductContextualPricing.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductContextualPricing.java index 399c7481..e01bd527 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductContextualPricing.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductContextualPricing.java @@ -6,10 +6,10 @@ import java.util.Objects; /** - * The price of a product in a specific country. - * Prices vary between countries. - * Refer to [Product](https://shopify.dev/docs/api/admin-graphql/latest/queries/product?example=Get+the+price+range+for+a+product+for+buyers+from+Canada) - * for more information on how to use this object. + * The price of a [product](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) + * in a specific country. Shows the minimum and maximum variant prices through the + * price range and the count of fixed quantity rules that apply to the product's + * variants in the given pricing context. */ public class ProductContextualPricing { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductCreateInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductCreateInput.java index 07ccc77c..f162f720 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductCreateInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductCreateInput.java @@ -18,10 +18,12 @@ public class ProductCreateInput { private String descriptionHtml; /** - * A unique, human-readable string of the product's title. A handle can contain - * letters, hyphens (`-`), and numbers, but no spaces. - * The handle is used in the online store URL for the product. - * For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`. + * A unique, human-readable string that's used to identify the product in URLs. A + * handle can contain letters, hyphens (`-`), and numbers, but no spaces. + * If no handle is explicitly provided, then the title is used to construct the product's handle. + * For example, if a product is titled "Black Sunglasses" and no handle is + * provided, then the handle `black-sunglasses` is generated (unless that handle + * is already taken, in which case a suffix is added to make the handle unique). */ private String handle; @@ -38,13 +40,7 @@ public class ProductCreateInput { private String productType; /** - * The ID of the [category](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) - * that's associated with the product. - */ - private String category; - - /** - * A comma-separated list of searchable keywords that are + * A list of searchable keywords that are * associated with the product. For example, a merchant might apply the `sports` * and `summer` tags to products that are associated with sportwear for summer. * @@ -68,8 +64,10 @@ public class ProductCreateInput { private String giftCardTemplateSuffix; /** - * The name for the product that displays to customers. The title is used to construct the product's handle. - * For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`. + * The name for the product that displays to customers. If no handle is + * explicitly provided, then the title is used to construct the product's handle. + * For example, if a product is titled "Black Sunglasses" and no handle is + * provided, then the handle `black-sunglasses` is generated. */ private String title; @@ -78,6 +76,12 @@ public class ProductCreateInput { */ private String vendor; + /** + * The ID of the [category](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) + * that's associated with the product. + */ + private String category; + /** * Whether the product is a gift card. */ @@ -145,10 +149,12 @@ public void setDescriptionHtml(String descriptionHtml) { } /** - * A unique, human-readable string of the product's title. A handle can contain - * letters, hyphens (`-`), and numbers, but no spaces. - * The handle is used in the online store URL for the product. - * For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`. + * A unique, human-readable string that's used to identify the product in URLs. A + * handle can contain letters, hyphens (`-`), and numbers, but no spaces. + * If no handle is explicitly provided, then the title is used to construct the product's handle. + * For example, if a product is titled "Black Sunglasses" and no handle is + * provided, then the handle `black-sunglasses` is generated (unless that handle + * is already taken, in which case a suffix is added to make the handle unique). */ public String getHandle() { return handle; @@ -183,19 +189,7 @@ public void setProductType(String productType) { } /** - * The ID of the [category](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) - * that's associated with the product. - */ - public String getCategory() { - return category; - } - - public void setCategory(String category) { - this.category = category; - } - - /** - * A comma-separated list of searchable keywords that are + * A list of searchable keywords that are * associated with the product. For example, a merchant might apply the `sports` * and `summer` tags to products that are associated with sportwear for summer. * @@ -237,8 +231,10 @@ public void setGiftCardTemplateSuffix(String giftCardTemplateSuffix) { } /** - * The name for the product that displays to customers. The title is used to construct the product's handle. - * For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`. + * The name for the product that displays to customers. If no handle is + * explicitly provided, then the title is used to construct the product's handle. + * For example, if a product is titled "Black Sunglasses" and no handle is + * provided, then the handle `black-sunglasses` is generated. */ public String getTitle() { return title; @@ -259,6 +255,18 @@ public void setVendor(String vendor) { this.vendor = vendor; } + /** + * The ID of the [category](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) + * that's associated with the product. + */ + public String getCategory() { + return category; + } + + public void setCategory(String category) { + this.category = category; + } + /** * Whether the product is a gift card. */ @@ -360,7 +368,7 @@ public void setClaimOwnership(ProductClaimOwnershipInput claimOwnership) { @Override public String toString() { - return "ProductCreateInput{descriptionHtml='" + descriptionHtml + "', handle='" + handle + "', seo='" + seo + "', productType='" + productType + "', category='" + category + "', tags='" + tags + "', templateSuffix='" + templateSuffix + "', giftCardTemplateSuffix='" + giftCardTemplateSuffix + "', title='" + title + "', vendor='" + vendor + "', giftCard='" + giftCard + "', collectionsToJoin='" + collectionsToJoin + "', combinedListingRole='" + combinedListingRole + "', metafields='" + metafields + "', productOptions='" + productOptions + "', status='" + status + "', requiresSellingPlan='" + requiresSellingPlan + "', claimOwnership='" + claimOwnership + "'}"; + return "ProductCreateInput{descriptionHtml='" + descriptionHtml + "', handle='" + handle + "', seo='" + seo + "', productType='" + productType + "', tags='" + tags + "', templateSuffix='" + templateSuffix + "', giftCardTemplateSuffix='" + giftCardTemplateSuffix + "', title='" + title + "', vendor='" + vendor + "', category='" + category + "', giftCard='" + giftCard + "', collectionsToJoin='" + collectionsToJoin + "', combinedListingRole='" + combinedListingRole + "', metafields='" + metafields + "', productOptions='" + productOptions + "', status='" + status + "', requiresSellingPlan='" + requiresSellingPlan + "', claimOwnership='" + claimOwnership + "'}"; } @Override @@ -372,12 +380,12 @@ public boolean equals(Object o) { Objects.equals(handle, that.handle) && Objects.equals(seo, that.seo) && Objects.equals(productType, that.productType) && - Objects.equals(category, that.category) && Objects.equals(tags, that.tags) && Objects.equals(templateSuffix, that.templateSuffix) && Objects.equals(giftCardTemplateSuffix, that.giftCardTemplateSuffix) && Objects.equals(title, that.title) && Objects.equals(vendor, that.vendor) && + Objects.equals(category, that.category) && Objects.equals(giftCard, that.giftCard) && Objects.equals(collectionsToJoin, that.collectionsToJoin) && Objects.equals(combinedListingRole, that.combinedListingRole) && @@ -390,7 +398,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(descriptionHtml, handle, seo, productType, category, tags, templateSuffix, giftCardTemplateSuffix, title, vendor, giftCard, collectionsToJoin, combinedListingRole, metafields, productOptions, status, requiresSellingPlan, claimOwnership); + return Objects.hash(descriptionHtml, handle, seo, productType, tags, templateSuffix, giftCardTemplateSuffix, title, vendor, category, giftCard, collectionsToJoin, combinedListingRole, metafields, productOptions, status, requiresSellingPlan, claimOwnership); } public static Builder newBuilder() { @@ -405,10 +413,12 @@ public static class Builder { private String descriptionHtml; /** - * A unique, human-readable string of the product's title. A handle can contain - * letters, hyphens (`-`), and numbers, but no spaces. - * The handle is used in the online store URL for the product. - * For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`. + * A unique, human-readable string that's used to identify the product in URLs. A + * handle can contain letters, hyphens (`-`), and numbers, but no spaces. + * If no handle is explicitly provided, then the title is used to construct the product's handle. + * For example, if a product is titled "Black Sunglasses" and no handle is + * provided, then the handle `black-sunglasses` is generated (unless that handle + * is already taken, in which case a suffix is added to make the handle unique). */ private String handle; @@ -425,13 +435,7 @@ public static class Builder { private String productType; /** - * The ID of the [category](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) - * that's associated with the product. - */ - private String category; - - /** - * A comma-separated list of searchable keywords that are + * A list of searchable keywords that are * associated with the product. For example, a merchant might apply the `sports` * and `summer` tags to products that are associated with sportwear for summer. * @@ -455,8 +459,10 @@ public static class Builder { private String giftCardTemplateSuffix; /** - * The name for the product that displays to customers. The title is used to construct the product's handle. - * For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`. + * The name for the product that displays to customers. If no handle is + * explicitly provided, then the title is used to construct the product's handle. + * For example, if a product is titled "Black Sunglasses" and no handle is + * provided, then the handle `black-sunglasses` is generated. */ private String title; @@ -465,6 +471,12 @@ public static class Builder { */ private String vendor; + /** + * The ID of the [category](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) + * that's associated with the product. + */ + private String category; + /** * Whether the product is a gift card. */ @@ -522,12 +534,12 @@ public ProductCreateInput build() { result.handle = this.handle; result.seo = this.seo; result.productType = this.productType; - result.category = this.category; result.tags = this.tags; result.templateSuffix = this.templateSuffix; result.giftCardTemplateSuffix = this.giftCardTemplateSuffix; result.title = this.title; result.vendor = this.vendor; + result.category = this.category; result.giftCard = this.giftCard; result.collectionsToJoin = this.collectionsToJoin; result.combinedListingRole = this.combinedListingRole; @@ -549,10 +561,12 @@ public Builder descriptionHtml(String descriptionHtml) { } /** - * A unique, human-readable string of the product's title. A handle can contain - * letters, hyphens (`-`), and numbers, but no spaces. - * The handle is used in the online store URL for the product. - * For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`. + * A unique, human-readable string that's used to identify the product in URLs. A + * handle can contain letters, hyphens (`-`), and numbers, but no spaces. + * If no handle is explicitly provided, then the title is used to construct the product's handle. + * For example, if a product is titled "Black Sunglasses" and no handle is + * provided, then the handle `black-sunglasses` is generated (unless that handle + * is already taken, in which case a suffix is added to make the handle unique). */ public Builder handle(String handle) { this.handle = handle; @@ -578,16 +592,7 @@ public Builder productType(String productType) { } /** - * The ID of the [category](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) - * that's associated with the product. - */ - public Builder category(String category) { - this.category = category; - return this; - } - - /** - * A comma-separated list of searchable keywords that are + * A list of searchable keywords that are * associated with the product. For example, a merchant might apply the `sports` * and `summer` tags to products that are associated with sportwear for summer. * @@ -620,8 +625,10 @@ public Builder giftCardTemplateSuffix(String giftCardTemplateSuffix) { } /** - * The name for the product that displays to customers. The title is used to construct the product's handle. - * For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`. + * The name for the product that displays to customers. If no handle is + * explicitly provided, then the title is used to construct the product's handle. + * For example, if a product is titled "Black Sunglasses" and no handle is + * provided, then the handle `black-sunglasses` is generated. */ public Builder title(String title) { this.title = title; @@ -636,6 +643,15 @@ public Builder vendor(String vendor) { return this; } + /** + * The ID of the [category](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) + * that's associated with the product. + */ + public Builder category(String category) { + this.category = category; + return this; + } + /** * Whether the product is a gift card. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductInput.java index 1630453e..8aed6b0b 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductInput.java @@ -18,10 +18,12 @@ public class ProductInput { private String descriptionHtml; /** - * A unique, human-readable string of the product's title. A handle can contain - * letters, hyphens (`-`), and numbers, but no spaces. - * The handle is used in the online store URL for the product. - * For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`. + * A unique, human-readable string that's used to identify the product in URLs. A + * handle can contain letters, hyphens (`-`), and numbers, but no spaces. + * If no handle is explicitly provided, then the title is used to construct the product's handle. + * For example, if a product is titled "Black Sunglasses" and no handle is + * provided, then the handle `black-sunglasses` is generated (unless that handle + * is already taken, in which case a suffix is added to make the handle unique). */ private String handle; @@ -38,13 +40,7 @@ public class ProductInput { private String productType; /** - * The ID of the [category](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) - * that's associated with the product. - */ - private String category; - - /** - * A comma-separated list of searchable keywords that are + * A list of searchable keywords that are * associated with the product. For example, a merchant might apply the `sports` * and `summer` tags to products that are associated with sportwear for summer. * @@ -68,8 +64,10 @@ public class ProductInput { private String giftCardTemplateSuffix; /** - * The name for the product that displays to customers. The title is used to construct the product's handle. - * For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`. + * The name for the product that displays to customers. If no handle is + * explicitly provided, then the title is used to construct the product's handle. + * For example, if a product is titled "Black Sunglasses" and no handle is + * provided, then the handle `black-sunglasses` is generated. */ private String title; @@ -78,6 +76,12 @@ public class ProductInput { */ private String vendor; + /** + * The ID of the [category](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) + * that's associated with the product. + */ + private String category; + /** * Whether the product is a gift card. */ @@ -170,10 +174,12 @@ public void setDescriptionHtml(String descriptionHtml) { } /** - * A unique, human-readable string of the product's title. A handle can contain - * letters, hyphens (`-`), and numbers, but no spaces. - * The handle is used in the online store URL for the product. - * For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`. + * A unique, human-readable string that's used to identify the product in URLs. A + * handle can contain letters, hyphens (`-`), and numbers, but no spaces. + * If no handle is explicitly provided, then the title is used to construct the product's handle. + * For example, if a product is titled "Black Sunglasses" and no handle is + * provided, then the handle `black-sunglasses` is generated (unless that handle + * is already taken, in which case a suffix is added to make the handle unique). */ public String getHandle() { return handle; @@ -208,19 +214,7 @@ public void setProductType(String productType) { } /** - * The ID of the [category](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) - * that's associated with the product. - */ - public String getCategory() { - return category; - } - - public void setCategory(String category) { - this.category = category; - } - - /** - * A comma-separated list of searchable keywords that are + * A list of searchable keywords that are * associated with the product. For example, a merchant might apply the `sports` * and `summer` tags to products that are associated with sportwear for summer. * @@ -262,8 +256,10 @@ public void setGiftCardTemplateSuffix(String giftCardTemplateSuffix) { } /** - * The name for the product that displays to customers. The title is used to construct the product's handle. - * For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`. + * The name for the product that displays to customers. If no handle is + * explicitly provided, then the title is used to construct the product's handle. + * For example, if a product is titled "Black Sunglasses" and no handle is + * provided, then the handle `black-sunglasses` is generated. */ public String getTitle() { return title; @@ -284,6 +280,18 @@ public void setVendor(String vendor) { this.vendor = vendor; } + /** + * The ID of the [category](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) + * that's associated with the product. + */ + public String getCategory() { + return category; + } + + public void setCategory(String category) { + this.category = category; + } + /** * Whether the product is a gift card. */ @@ -428,7 +436,7 @@ public void setClaimOwnership(ProductClaimOwnershipInput claimOwnership) { @Override public String toString() { - return "ProductInput{descriptionHtml='" + descriptionHtml + "', handle='" + handle + "', seo='" + seo + "', productType='" + productType + "', category='" + category + "', tags='" + tags + "', templateSuffix='" + templateSuffix + "', giftCardTemplateSuffix='" + giftCardTemplateSuffix + "', title='" + title + "', vendor='" + vendor + "', giftCard='" + giftCard + "', redirectNewHandle='" + redirectNewHandle + "', collectionsToJoin='" + collectionsToJoin + "', collectionsToLeave='" + collectionsToLeave + "', combinedListingRole='" + combinedListingRole + "', id='" + id + "', metafields='" + metafields + "', productOptions='" + productOptions + "', status='" + status + "', requiresSellingPlan='" + requiresSellingPlan + "', claimOwnership='" + claimOwnership + "'}"; + return "ProductInput{descriptionHtml='" + descriptionHtml + "', handle='" + handle + "', seo='" + seo + "', productType='" + productType + "', tags='" + tags + "', templateSuffix='" + templateSuffix + "', giftCardTemplateSuffix='" + giftCardTemplateSuffix + "', title='" + title + "', vendor='" + vendor + "', category='" + category + "', giftCard='" + giftCard + "', redirectNewHandle='" + redirectNewHandle + "', collectionsToJoin='" + collectionsToJoin + "', collectionsToLeave='" + collectionsToLeave + "', combinedListingRole='" + combinedListingRole + "', id='" + id + "', metafields='" + metafields + "', productOptions='" + productOptions + "', status='" + status + "', requiresSellingPlan='" + requiresSellingPlan + "', claimOwnership='" + claimOwnership + "'}"; } @Override @@ -440,12 +448,12 @@ public boolean equals(Object o) { Objects.equals(handle, that.handle) && Objects.equals(seo, that.seo) && Objects.equals(productType, that.productType) && - Objects.equals(category, that.category) && Objects.equals(tags, that.tags) && Objects.equals(templateSuffix, that.templateSuffix) && Objects.equals(giftCardTemplateSuffix, that.giftCardTemplateSuffix) && Objects.equals(title, that.title) && Objects.equals(vendor, that.vendor) && + Objects.equals(category, that.category) && Objects.equals(giftCard, that.giftCard) && Objects.equals(redirectNewHandle, that.redirectNewHandle) && Objects.equals(collectionsToJoin, that.collectionsToJoin) && @@ -461,7 +469,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(descriptionHtml, handle, seo, productType, category, tags, templateSuffix, giftCardTemplateSuffix, title, vendor, giftCard, redirectNewHandle, collectionsToJoin, collectionsToLeave, combinedListingRole, id, metafields, productOptions, status, requiresSellingPlan, claimOwnership); + return Objects.hash(descriptionHtml, handle, seo, productType, tags, templateSuffix, giftCardTemplateSuffix, title, vendor, category, giftCard, redirectNewHandle, collectionsToJoin, collectionsToLeave, combinedListingRole, id, metafields, productOptions, status, requiresSellingPlan, claimOwnership); } public static Builder newBuilder() { @@ -476,10 +484,12 @@ public static class Builder { private String descriptionHtml; /** - * A unique, human-readable string of the product's title. A handle can contain - * letters, hyphens (`-`), and numbers, but no spaces. - * The handle is used in the online store URL for the product. - * For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`. + * A unique, human-readable string that's used to identify the product in URLs. A + * handle can contain letters, hyphens (`-`), and numbers, but no spaces. + * If no handle is explicitly provided, then the title is used to construct the product's handle. + * For example, if a product is titled "Black Sunglasses" and no handle is + * provided, then the handle `black-sunglasses` is generated (unless that handle + * is already taken, in which case a suffix is added to make the handle unique). */ private String handle; @@ -496,13 +506,7 @@ public static class Builder { private String productType; /** - * The ID of the [category](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) - * that's associated with the product. - */ - private String category; - - /** - * A comma-separated list of searchable keywords that are + * A list of searchable keywords that are * associated with the product. For example, a merchant might apply the `sports` * and `summer` tags to products that are associated with sportwear for summer. * @@ -526,8 +530,10 @@ public static class Builder { private String giftCardTemplateSuffix; /** - * The name for the product that displays to customers. The title is used to construct the product's handle. - * For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`. + * The name for the product that displays to customers. If no handle is + * explicitly provided, then the title is used to construct the product's handle. + * For example, if a product is titled "Black Sunglasses" and no handle is + * provided, then the handle `black-sunglasses` is generated. */ private String title; @@ -536,6 +542,12 @@ public static class Builder { */ private String vendor; + /** + * The ID of the [category](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) + * that's associated with the product. + */ + private String category; + /** * Whether the product is a gift card. */ @@ -618,12 +630,12 @@ public ProductInput build() { result.handle = this.handle; result.seo = this.seo; result.productType = this.productType; - result.category = this.category; result.tags = this.tags; result.templateSuffix = this.templateSuffix; result.giftCardTemplateSuffix = this.giftCardTemplateSuffix; result.title = this.title; result.vendor = this.vendor; + result.category = this.category; result.giftCard = this.giftCard; result.redirectNewHandle = this.redirectNewHandle; result.collectionsToJoin = this.collectionsToJoin; @@ -648,10 +660,12 @@ public Builder descriptionHtml(String descriptionHtml) { } /** - * A unique, human-readable string of the product's title. A handle can contain - * letters, hyphens (`-`), and numbers, but no spaces. - * The handle is used in the online store URL for the product. - * For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`. + * A unique, human-readable string that's used to identify the product in URLs. A + * handle can contain letters, hyphens (`-`), and numbers, but no spaces. + * If no handle is explicitly provided, then the title is used to construct the product's handle. + * For example, if a product is titled "Black Sunglasses" and no handle is + * provided, then the handle `black-sunglasses` is generated (unless that handle + * is already taken, in which case a suffix is added to make the handle unique). */ public Builder handle(String handle) { this.handle = handle; @@ -677,16 +691,7 @@ public Builder productType(String productType) { } /** - * The ID of the [category](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) - * that's associated with the product. - */ - public Builder category(String category) { - this.category = category; - return this; - } - - /** - * A comma-separated list of searchable keywords that are + * A list of searchable keywords that are * associated with the product. For example, a merchant might apply the `sports` * and `summer` tags to products that are associated with sportwear for summer. * @@ -719,8 +724,10 @@ public Builder giftCardTemplateSuffix(String giftCardTemplateSuffix) { } /** - * The name for the product that displays to customers. The title is used to construct the product's handle. - * For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`. + * The name for the product that displays to customers. If no handle is + * explicitly provided, then the title is used to construct the product's handle. + * For example, if a product is titled "Black Sunglasses" and no handle is + * provided, then the handle `black-sunglasses` is generated. */ public Builder title(String title) { this.title = title; @@ -735,6 +742,15 @@ public Builder vendor(String vendor) { return this; } + /** + * The ID of the [category](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) + * that's associated with the product. + */ + public Builder category(String category) { + this.category = category; + return this; + } + /** * Whether the product is a gift card. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductOperation.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductOperation.java index c2872172..c9231400 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductOperation.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductOperation.java @@ -4,7 +4,10 @@ import com.fasterxml.jackson.annotation.JsonTypeInfo; /** - * An entity that represents details of an asynchronous operation on a product. + * An interface representing asynchronous operations on products. Tracks the status + * and details of background product mutations like `productSet`, `productDelete`, + * `productDuplicate`, and `productBundle` operations. Provides status field + * (CREATED, ACTIVE, COMPLETE) and product field to monitor long-running product operations. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NAME, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductOption.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductOption.java index a3207282..cca5b586 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductOption.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductOption.java @@ -8,9 +8,15 @@ import java.util.Objects; /** - * The product property names. For example, "Size", "Color", and "Material". - * Variants are selected based on permutations of these options. - * The limit for each product property name is 255 characters. + * A product attribute that customers can choose from, such as "Size", "Color", or "Material". + * [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) + * objects use options to define the different variations available for purchase. + * Each option has a name and a set of possible values that combine to create [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) objects. + * + * The option includes its display position, associated values, and optional [`LinkedMetafield`](https://shopify.dev/docs/api/admin-graphql/latest/objects/LinkedMetafield) + * for structured data. Options support translations for international selling and track which [`ProductOptionValue`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductOptionValue) + * objects that variants actively use versus unused values that exist without + * associated variants. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductOptionValue.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductOptionValue.java index 35efa0c7..3b08425b 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductOptionValue.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductOptionValue.java @@ -8,7 +8,15 @@ import java.util.Objects; /** - * The product option value names. For example, "Red", "Blue", and "Green" for a "Color" option. + * A specific value for a [`ProductOption`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductOption), + * such as "Red" or "Blue" for a "Color" option. Each value can be assigned to [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) + * objects to create different versions of a + * [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product). + * + * The value tracks whether any variants currently use it through the [`hasVariants`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductOptionValue#field-hasVariants) + * field. Values can include visual representations through swatches that display + * colors or images. When linked to a [`Metafield`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Metafield), the [`linkedMetafieldValue`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductOptionValue#field-linkedMetafieldValue) + * provides additional structured data for the option value. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductResourceFeedbackInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductResourceFeedbackInput.java index fd3a6177..56730ab3 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductResourceFeedbackInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductResourceFeedbackInput.java @@ -37,7 +37,7 @@ public class ProductResourceFeedbackInput { * A concise set of copy strings to be displayed to merchants. Used to guide * merchants in resolving problems that your app encounters when trying to make * use of their products. - * You can specify up to four messages. Each message is limited to 100 characters. + * You can specify up to ten messages. Each message is limited to 100 characters. */ private List messages; @@ -94,7 +94,7 @@ public void setProductUpdatedAt(OffsetDateTime productUpdatedAt) { * A concise set of copy strings to be displayed to merchants. Used to guide * merchants in resolving problems that your app encounters when trying to make * use of their products. - * You can specify up to four messages. Each message is limited to 100 characters. + * You can specify up to ten messages. Each message is limited to 100 characters. */ public List getMessages() { return messages; @@ -157,7 +157,7 @@ public static class Builder { * A concise set of copy strings to be displayed to merchants. Used to guide * merchants in resolving problems that your app encounters when trying to make * use of their products. - * You can specify up to four messages. Each message is limited to 100 characters. + * You can specify up to ten messages. Each message is limited to 100 characters. */ private List messages; @@ -209,7 +209,7 @@ public Builder productUpdatedAt(OffsetDateTime productUpdatedAt) { * A concise set of copy strings to be displayed to merchants. Used to guide * merchants in resolving problems that your app encounters when trying to make * use of their products. - * You can specify up to four messages. Each message is limited to 100 characters. + * You can specify up to ten messages. Each message is limited to 100 characters. */ public Builder messages(List messages) { this.messages = messages; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductSetInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductSetInput.java index 4e07437f..d570dab8 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductSetInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductSetInput.java @@ -18,10 +18,12 @@ public class ProductSetInput { private String descriptionHtml; /** - * A unique, human-readable string of the product's title. A handle can contain - * letters, hyphens (`-`), and numbers, but no spaces. - * The handle is used in the online store URL for the product. - * For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`. + * A unique, human-readable string that's used to identify the product in URLs. A + * handle can contain letters, hyphens (`-`), and numbers, but no spaces. + * If no handle is explicitly provided, then the title is used to construct the product's handle. + * For example, if a product is titled "Black Sunglasses" and no handle is + * provided, then the handle `black-sunglasses` is generated (unless that handle + * is already taken, in which case a suffix is added to make the handle unique). */ private String handle; @@ -38,13 +40,7 @@ public class ProductSetInput { private String productType; /** - * The ID of the [category](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) - * that's associated with the product. - */ - private String category; - - /** - * A comma-separated list of searchable keywords that are + * A list of searchable keywords that are * associated with the product. For example, a merchant might apply the `sports` * and `summer` tags to products that are associated with sportwear for summer. * @@ -68,8 +64,10 @@ public class ProductSetInput { private String giftCardTemplateSuffix; /** - * The name for the product that displays to customers. The title is used to construct the product's handle. - * For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`. + * The name for the product that displays to customers. If no handle is + * explicitly provided, then the title is used to construct the product's handle. + * For example, if a product is titled "Black Sunglasses" and no handle is + * provided, then the handle `black-sunglasses` is generated. */ private String title; @@ -78,6 +76,12 @@ public class ProductSetInput { */ private String vendor; + /** + * The ID of the [category](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) + * that's associated with the product. + */ + private String category; + /** * Whether the product is a gift card. */ @@ -89,6 +93,11 @@ public class ProductSetInput { */ private Boolean redirectNewHandle; + /** + * The status of the product. + */ + private ProductStatus status; + /** * The IDs of collections that this product will be a member of. */ @@ -96,23 +105,29 @@ public class ProductSetInput { /** * The metafields to associate with this product. + * + * Complexity cost: 0.4 per metafield. */ private List metafields; /** - * A list of variants associated with the product. + * The files to associate with the product. + * + * Complexity cost: 1.9 per file. */ - private List variants; + private List files; /** - * The files to associate with the product. + * List of custom product options and option values (maximum of 3 per product). */ - private List files; + private List productOptions; /** - * The status of the product. + * A list of variants associated with the product. + * + * Complexity cost: 0.2 per variant. */ - private ProductStatus status; + private List variants; /** * Whether the product can only be purchased with a selling plan (subscription). @@ -122,11 +137,6 @@ public class ProductSetInput { */ private Boolean requiresSellingPlan; - /** - * List of custom product options and option values (maximum of 3 per product). - */ - private List productOptions; - /** * The input field to enable an app to provide additional product features. * For example, you can specify @@ -157,10 +167,12 @@ public void setDescriptionHtml(String descriptionHtml) { } /** - * A unique, human-readable string of the product's title. A handle can contain - * letters, hyphens (`-`), and numbers, but no spaces. - * The handle is used in the online store URL for the product. - * For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`. + * A unique, human-readable string that's used to identify the product in URLs. A + * handle can contain letters, hyphens (`-`), and numbers, but no spaces. + * If no handle is explicitly provided, then the title is used to construct the product's handle. + * For example, if a product is titled "Black Sunglasses" and no handle is + * provided, then the handle `black-sunglasses` is generated (unless that handle + * is already taken, in which case a suffix is added to make the handle unique). */ public String getHandle() { return handle; @@ -195,19 +207,7 @@ public void setProductType(String productType) { } /** - * The ID of the [category](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) - * that's associated with the product. - */ - public String getCategory() { - return category; - } - - public void setCategory(String category) { - this.category = category; - } - - /** - * A comma-separated list of searchable keywords that are + * A list of searchable keywords that are * associated with the product. For example, a merchant might apply the `sports` * and `summer` tags to products that are associated with sportwear for summer. * @@ -249,8 +249,10 @@ public void setGiftCardTemplateSuffix(String giftCardTemplateSuffix) { } /** - * The name for the product that displays to customers. The title is used to construct the product's handle. - * For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`. + * The name for the product that displays to customers. If no handle is + * explicitly provided, then the title is used to construct the product's handle. + * For example, if a product is titled "Black Sunglasses" and no handle is + * provided, then the handle `black-sunglasses` is generated. */ public String getTitle() { return title; @@ -271,6 +273,18 @@ public void setVendor(String vendor) { this.vendor = vendor; } + /** + * The ID of the [category](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) + * that's associated with the product. + */ + public String getCategory() { + return category; + } + + public void setCategory(String category) { + this.category = category; + } + /** * Whether the product is a gift card. */ @@ -294,6 +308,17 @@ public void setRedirectNewHandle(Boolean redirectNewHandle) { this.redirectNewHandle = redirectNewHandle; } + /** + * The status of the product. + */ + public ProductStatus getStatus() { + return status; + } + + public void setStatus(ProductStatus status) { + this.status = status; + } + /** * The IDs of collections that this product will be a member of. */ @@ -307,6 +332,8 @@ public void setCollections(List collections) { /** * The metafields to associate with this product. + * + * Complexity cost: 0.4 per metafield. */ public List getMetafields() { return metafields; @@ -317,36 +344,40 @@ public void setMetafields(List metafields) { } /** - * A list of variants associated with the product. + * The files to associate with the product. + * + * Complexity cost: 1.9 per file. */ - public List getVariants() { - return variants; + public List getFiles() { + return files; } - public void setVariants(List variants) { - this.variants = variants; + public void setFiles(List files) { + this.files = files; } /** - * The files to associate with the product. + * List of custom product options and option values (maximum of 3 per product). */ - public List getFiles() { - return files; + public List getProductOptions() { + return productOptions; } - public void setFiles(List files) { - this.files = files; + public void setProductOptions(List productOptions) { + this.productOptions = productOptions; } /** - * The status of the product. + * A list of variants associated with the product. + * + * Complexity cost: 0.2 per variant. */ - public ProductStatus getStatus() { - return status; + public List getVariants() { + return variants; } - public void setStatus(ProductStatus status) { - this.status = status; + public void setVariants(List variants) { + this.variants = variants; } /** @@ -363,17 +394,6 @@ public void setRequiresSellingPlan(Boolean requiresSellingPlan) { this.requiresSellingPlan = requiresSellingPlan; } - /** - * List of custom product options and option values (maximum of 3 per product). - */ - public List getProductOptions() { - return productOptions; - } - - public void setProductOptions(List productOptions) { - this.productOptions = productOptions; - } - /** * The input field to enable an app to provide additional product features. * For example, you can specify @@ -402,7 +422,7 @@ public void setCombinedListingRole(CombinedListingsRole combinedListingRole) { @Override public String toString() { - return "ProductSetInput{descriptionHtml='" + descriptionHtml + "', handle='" + handle + "', seo='" + seo + "', productType='" + productType + "', category='" + category + "', tags='" + tags + "', templateSuffix='" + templateSuffix + "', giftCardTemplateSuffix='" + giftCardTemplateSuffix + "', title='" + title + "', vendor='" + vendor + "', giftCard='" + giftCard + "', redirectNewHandle='" + redirectNewHandle + "', collections='" + collections + "', metafields='" + metafields + "', variants='" + variants + "', files='" + files + "', status='" + status + "', requiresSellingPlan='" + requiresSellingPlan + "', productOptions='" + productOptions + "', claimOwnership='" + claimOwnership + "', combinedListingRole='" + combinedListingRole + "'}"; + return "ProductSetInput{descriptionHtml='" + descriptionHtml + "', handle='" + handle + "', seo='" + seo + "', productType='" + productType + "', tags='" + tags + "', templateSuffix='" + templateSuffix + "', giftCardTemplateSuffix='" + giftCardTemplateSuffix + "', title='" + title + "', vendor='" + vendor + "', category='" + category + "', giftCard='" + giftCard + "', redirectNewHandle='" + redirectNewHandle + "', status='" + status + "', collections='" + collections + "', metafields='" + metafields + "', files='" + files + "', productOptions='" + productOptions + "', variants='" + variants + "', requiresSellingPlan='" + requiresSellingPlan + "', claimOwnership='" + claimOwnership + "', combinedListingRole='" + combinedListingRole + "'}"; } @Override @@ -414,28 +434,28 @@ public boolean equals(Object o) { Objects.equals(handle, that.handle) && Objects.equals(seo, that.seo) && Objects.equals(productType, that.productType) && - Objects.equals(category, that.category) && Objects.equals(tags, that.tags) && Objects.equals(templateSuffix, that.templateSuffix) && Objects.equals(giftCardTemplateSuffix, that.giftCardTemplateSuffix) && Objects.equals(title, that.title) && Objects.equals(vendor, that.vendor) && + Objects.equals(category, that.category) && Objects.equals(giftCard, that.giftCard) && Objects.equals(redirectNewHandle, that.redirectNewHandle) && + Objects.equals(status, that.status) && Objects.equals(collections, that.collections) && Objects.equals(metafields, that.metafields) && - Objects.equals(variants, that.variants) && Objects.equals(files, that.files) && - Objects.equals(status, that.status) && - Objects.equals(requiresSellingPlan, that.requiresSellingPlan) && Objects.equals(productOptions, that.productOptions) && + Objects.equals(variants, that.variants) && + Objects.equals(requiresSellingPlan, that.requiresSellingPlan) && Objects.equals(claimOwnership, that.claimOwnership) && Objects.equals(combinedListingRole, that.combinedListingRole); } @Override public int hashCode() { - return Objects.hash(descriptionHtml, handle, seo, productType, category, tags, templateSuffix, giftCardTemplateSuffix, title, vendor, giftCard, redirectNewHandle, collections, metafields, variants, files, status, requiresSellingPlan, productOptions, claimOwnership, combinedListingRole); + return Objects.hash(descriptionHtml, handle, seo, productType, tags, templateSuffix, giftCardTemplateSuffix, title, vendor, category, giftCard, redirectNewHandle, status, collections, metafields, files, productOptions, variants, requiresSellingPlan, claimOwnership, combinedListingRole); } public static Builder newBuilder() { @@ -450,10 +470,12 @@ public static class Builder { private String descriptionHtml; /** - * A unique, human-readable string of the product's title. A handle can contain - * letters, hyphens (`-`), and numbers, but no spaces. - * The handle is used in the online store URL for the product. - * For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`. + * A unique, human-readable string that's used to identify the product in URLs. A + * handle can contain letters, hyphens (`-`), and numbers, but no spaces. + * If no handle is explicitly provided, then the title is used to construct the product's handle. + * For example, if a product is titled "Black Sunglasses" and no handle is + * provided, then the handle `black-sunglasses` is generated (unless that handle + * is already taken, in which case a suffix is added to make the handle unique). */ private String handle; @@ -470,13 +492,7 @@ public static class Builder { private String productType; /** - * The ID of the [category](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) - * that's associated with the product. - */ - private String category; - - /** - * A comma-separated list of searchable keywords that are + * A list of searchable keywords that are * associated with the product. For example, a merchant might apply the `sports` * and `summer` tags to products that are associated with sportwear for summer. * @@ -500,8 +516,10 @@ public static class Builder { private String giftCardTemplateSuffix; /** - * The name for the product that displays to customers. The title is used to construct the product's handle. - * For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`. + * The name for the product that displays to customers. If no handle is + * explicitly provided, then the title is used to construct the product's handle. + * For example, if a product is titled "Black Sunglasses" and no handle is + * provided, then the handle `black-sunglasses` is generated. */ private String title; @@ -510,6 +528,12 @@ public static class Builder { */ private String vendor; + /** + * The ID of the [category](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) + * that's associated with the product. + */ + private String category; + /** * Whether the product is a gift card. */ @@ -521,6 +545,11 @@ public static class Builder { */ private Boolean redirectNewHandle; + /** + * The status of the product. + */ + private ProductStatus status; + /** * The IDs of collections that this product will be a member of. */ @@ -528,23 +557,29 @@ public static class Builder { /** * The metafields to associate with this product. + * + * Complexity cost: 0.4 per metafield. */ private List metafields; /** - * A list of variants associated with the product. + * The files to associate with the product. + * + * Complexity cost: 1.9 per file. */ - private List variants; + private List files; /** - * The files to associate with the product. + * List of custom product options and option values (maximum of 3 per product). */ - private List files; + private List productOptions; /** - * The status of the product. + * A list of variants associated with the product. + * + * Complexity cost: 0.2 per variant. */ - private ProductStatus status; + private List variants; /** * Whether the product can only be purchased with a selling plan (subscription). @@ -554,11 +589,6 @@ public static class Builder { */ private Boolean requiresSellingPlan; - /** - * List of custom product options and option values (maximum of 3 per product). - */ - private List productOptions; - /** * The input field to enable an app to provide additional product features. * For example, you can specify @@ -579,21 +609,21 @@ public ProductSetInput build() { result.handle = this.handle; result.seo = this.seo; result.productType = this.productType; - result.category = this.category; result.tags = this.tags; result.templateSuffix = this.templateSuffix; result.giftCardTemplateSuffix = this.giftCardTemplateSuffix; result.title = this.title; result.vendor = this.vendor; + result.category = this.category; result.giftCard = this.giftCard; result.redirectNewHandle = this.redirectNewHandle; + result.status = this.status; result.collections = this.collections; result.metafields = this.metafields; - result.variants = this.variants; result.files = this.files; - result.status = this.status; - result.requiresSellingPlan = this.requiresSellingPlan; result.productOptions = this.productOptions; + result.variants = this.variants; + result.requiresSellingPlan = this.requiresSellingPlan; result.claimOwnership = this.claimOwnership; result.combinedListingRole = this.combinedListingRole; return result; @@ -609,10 +639,12 @@ public Builder descriptionHtml(String descriptionHtml) { } /** - * A unique, human-readable string of the product's title. A handle can contain - * letters, hyphens (`-`), and numbers, but no spaces. - * The handle is used in the online store URL for the product. - * For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`. + * A unique, human-readable string that's used to identify the product in URLs. A + * handle can contain letters, hyphens (`-`), and numbers, but no spaces. + * If no handle is explicitly provided, then the title is used to construct the product's handle. + * For example, if a product is titled "Black Sunglasses" and no handle is + * provided, then the handle `black-sunglasses` is generated (unless that handle + * is already taken, in which case a suffix is added to make the handle unique). */ public Builder handle(String handle) { this.handle = handle; @@ -638,16 +670,7 @@ public Builder productType(String productType) { } /** - * The ID of the [category](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) - * that's associated with the product. - */ - public Builder category(String category) { - this.category = category; - return this; - } - - /** - * A comma-separated list of searchable keywords that are + * A list of searchable keywords that are * associated with the product. For example, a merchant might apply the `sports` * and `summer` tags to products that are associated with sportwear for summer. * @@ -680,8 +703,10 @@ public Builder giftCardTemplateSuffix(String giftCardTemplateSuffix) { } /** - * The name for the product that displays to customers. The title is used to construct the product's handle. - * For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`. + * The name for the product that displays to customers. If no handle is + * explicitly provided, then the title is used to construct the product's handle. + * For example, if a product is titled "Black Sunglasses" and no handle is + * provided, then the handle `black-sunglasses` is generated. */ public Builder title(String title) { this.title = title; @@ -696,6 +721,15 @@ public Builder vendor(String vendor) { return this; } + /** + * The ID of the [category](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) + * that's associated with the product. + */ + public Builder category(String category) { + this.category = category; + return this; + } + /** * Whether the product is a gift card. */ @@ -713,6 +747,14 @@ public Builder redirectNewHandle(Boolean redirectNewHandle) { return this; } + /** + * The status of the product. + */ + public Builder status(ProductStatus status) { + this.status = status; + return this; + } + /** * The IDs of collections that this product will be a member of. */ @@ -723,6 +765,8 @@ public Builder collections(List collections) { /** * The metafields to associate with this product. + * + * Complexity cost: 0.4 per metafield. */ public Builder metafields(List metafields) { this.metafields = metafields; @@ -730,26 +774,30 @@ public Builder metafields(List metafields) { } /** - * A list of variants associated with the product. + * The files to associate with the product. + * + * Complexity cost: 1.9 per file. */ - public Builder variants(List variants) { - this.variants = variants; + public Builder files(List files) { + this.files = files; return this; } /** - * The files to associate with the product. + * List of custom product options and option values (maximum of 3 per product). */ - public Builder files(List files) { - this.files = files; + public Builder productOptions(List productOptions) { + this.productOptions = productOptions; return this; } /** - * The status of the product. + * A list of variants associated with the product. + * + * Complexity cost: 0.2 per variant. */ - public Builder status(ProductStatus status) { - this.status = status; + public Builder variants(List variants) { + this.variants = variants; return this; } @@ -764,14 +812,6 @@ public Builder requiresSellingPlan(Boolean requiresSellingPlan) { return this; } - /** - * List of custom product options and option values (maximum of 3 per product). - */ - public Builder productOptions(List productOptions) { - this.productOptions = productOptions; - return this; - } - /** * The input field to enable an app to provide additional product features. * For example, you can specify diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductSetUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductSetUserErrorCode.java index 507d8a2e..1a102c52 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductSetUserErrorCode.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductSetUserErrorCode.java @@ -64,11 +64,15 @@ public enum ProductSetUserErrorCode { DUPLICATE_LINKED_OPTION, + DUPLICATED_METAFIELD_VALUE, + LINKED_OPTIONS_NOT_SUPPORTED_FOR_SHOP, LINKED_METAFIELD_DEFINITION_NOT_FOUND, DUPLICATED_VALUE, - HANDLE_NOT_UNIQUE + HANDLE_NOT_UNIQUE, + + INVENTORY_QUANTITIES_LIMIT_EXCEEDED } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductStatus.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductStatus.java index 853711fc..43c4fd34 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductStatus.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductStatus.java @@ -8,5 +8,7 @@ public enum ProductStatus { ARCHIVED, - DRAFT + DRAFT, + + UNLISTED } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductUpdateInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductUpdateInput.java index 86a45fa7..f1e36670 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductUpdateInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductUpdateInput.java @@ -18,10 +18,12 @@ public class ProductUpdateInput { private String descriptionHtml; /** - * A unique, human-readable string of the product's title. A handle can contain - * letters, hyphens (`-`), and numbers, but no spaces. - * The handle is used in the online store URL for the product. - * For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`. + * A unique, human-readable string that's used to identify the product in URLs. A + * handle can contain letters, hyphens (`-`), and numbers, but no spaces. + * If no handle is explicitly provided, then the title is used to construct the product's handle. + * For example, if a product is titled "Black Sunglasses" and no handle is + * provided, then the handle `black-sunglasses` is generated (unless that handle + * is already taken, in which case a suffix is added to make the handle unique). */ private String handle; @@ -38,13 +40,7 @@ public class ProductUpdateInput { private String productType; /** - * The ID of the [category](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) - * that's associated with the product. - */ - private String category; - - /** - * A comma-separated list of searchable keywords that are + * A list of searchable keywords that are * associated with the product. For example, a merchant might apply the `sports` * and `summer` tags to products that are associated with sportwear for summer. * @@ -68,8 +64,10 @@ public class ProductUpdateInput { private String giftCardTemplateSuffix; /** - * The name for the product that displays to customers. The title is used to construct the product's handle. - * For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`. + * The name for the product that displays to customers. If no handle is + * explicitly provided, then the title is used to construct the product's handle. + * For example, if a product is titled "Black Sunglasses" and no handle is + * provided, then the handle `black-sunglasses` is generated. */ private String title; @@ -78,6 +76,12 @@ public class ProductUpdateInput { */ private String vendor; + /** + * The ID of the [category](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) + * that's associated with the product. + */ + private String category; + /** * Whether a redirect is required after a new handle has been provided. * If `true`, then the old handle is redirected to the new one automatically. @@ -142,10 +146,12 @@ public void setDescriptionHtml(String descriptionHtml) { } /** - * A unique, human-readable string of the product's title. A handle can contain - * letters, hyphens (`-`), and numbers, but no spaces. - * The handle is used in the online store URL for the product. - * For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`. + * A unique, human-readable string that's used to identify the product in URLs. A + * handle can contain letters, hyphens (`-`), and numbers, but no spaces. + * If no handle is explicitly provided, then the title is used to construct the product's handle. + * For example, if a product is titled "Black Sunglasses" and no handle is + * provided, then the handle `black-sunglasses` is generated (unless that handle + * is already taken, in which case a suffix is added to make the handle unique). */ public String getHandle() { return handle; @@ -180,19 +186,7 @@ public void setProductType(String productType) { } /** - * The ID of the [category](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) - * that's associated with the product. - */ - public String getCategory() { - return category; - } - - public void setCategory(String category) { - this.category = category; - } - - /** - * A comma-separated list of searchable keywords that are + * A list of searchable keywords that are * associated with the product. For example, a merchant might apply the `sports` * and `summer` tags to products that are associated with sportwear for summer. * @@ -234,8 +228,10 @@ public void setGiftCardTemplateSuffix(String giftCardTemplateSuffix) { } /** - * The name for the product that displays to customers. The title is used to construct the product's handle. - * For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`. + * The name for the product that displays to customers. If no handle is + * explicitly provided, then the title is used to construct the product's handle. + * For example, if a product is titled "Black Sunglasses" and no handle is + * provided, then the handle `black-sunglasses` is generated. */ public String getTitle() { return title; @@ -256,6 +252,18 @@ public void setVendor(String vendor) { this.vendor = vendor; } + /** + * The ID of the [category](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) + * that's associated with the product. + */ + public String getCategory() { + return category; + } + + public void setCategory(String category) { + this.category = category; + } + /** * Whether a redirect is required after a new handle has been provided. * If `true`, then the old handle is redirected to the new one automatically. @@ -355,7 +363,7 @@ public void setRequiresSellingPlan(Boolean requiresSellingPlan) { @Override public String toString() { - return "ProductUpdateInput{descriptionHtml='" + descriptionHtml + "', handle='" + handle + "', seo='" + seo + "', productType='" + productType + "', category='" + category + "', tags='" + tags + "', templateSuffix='" + templateSuffix + "', giftCardTemplateSuffix='" + giftCardTemplateSuffix + "', title='" + title + "', vendor='" + vendor + "', redirectNewHandle='" + redirectNewHandle + "', id='" + id + "', collectionsToJoin='" + collectionsToJoin + "', collectionsToLeave='" + collectionsToLeave + "', deleteConflictingConstrainedMetafields='" + deleteConflictingConstrainedMetafields + "', metafields='" + metafields + "', status='" + status + "', requiresSellingPlan='" + requiresSellingPlan + "'}"; + return "ProductUpdateInput{descriptionHtml='" + descriptionHtml + "', handle='" + handle + "', seo='" + seo + "', productType='" + productType + "', tags='" + tags + "', templateSuffix='" + templateSuffix + "', giftCardTemplateSuffix='" + giftCardTemplateSuffix + "', title='" + title + "', vendor='" + vendor + "', category='" + category + "', redirectNewHandle='" + redirectNewHandle + "', id='" + id + "', collectionsToJoin='" + collectionsToJoin + "', collectionsToLeave='" + collectionsToLeave + "', deleteConflictingConstrainedMetafields='" + deleteConflictingConstrainedMetafields + "', metafields='" + metafields + "', status='" + status + "', requiresSellingPlan='" + requiresSellingPlan + "'}"; } @Override @@ -367,12 +375,12 @@ public boolean equals(Object o) { Objects.equals(handle, that.handle) && Objects.equals(seo, that.seo) && Objects.equals(productType, that.productType) && - Objects.equals(category, that.category) && Objects.equals(tags, that.tags) && Objects.equals(templateSuffix, that.templateSuffix) && Objects.equals(giftCardTemplateSuffix, that.giftCardTemplateSuffix) && Objects.equals(title, that.title) && Objects.equals(vendor, that.vendor) && + Objects.equals(category, that.category) && Objects.equals(redirectNewHandle, that.redirectNewHandle) && Objects.equals(id, that.id) && Objects.equals(collectionsToJoin, that.collectionsToJoin) && @@ -385,7 +393,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(descriptionHtml, handle, seo, productType, category, tags, templateSuffix, giftCardTemplateSuffix, title, vendor, redirectNewHandle, id, collectionsToJoin, collectionsToLeave, deleteConflictingConstrainedMetafields, metafields, status, requiresSellingPlan); + return Objects.hash(descriptionHtml, handle, seo, productType, tags, templateSuffix, giftCardTemplateSuffix, title, vendor, category, redirectNewHandle, id, collectionsToJoin, collectionsToLeave, deleteConflictingConstrainedMetafields, metafields, status, requiresSellingPlan); } public static Builder newBuilder() { @@ -400,10 +408,12 @@ public static class Builder { private String descriptionHtml; /** - * A unique, human-readable string of the product's title. A handle can contain - * letters, hyphens (`-`), and numbers, but no spaces. - * The handle is used in the online store URL for the product. - * For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`. + * A unique, human-readable string that's used to identify the product in URLs. A + * handle can contain letters, hyphens (`-`), and numbers, but no spaces. + * If no handle is explicitly provided, then the title is used to construct the product's handle. + * For example, if a product is titled "Black Sunglasses" and no handle is + * provided, then the handle `black-sunglasses` is generated (unless that handle + * is already taken, in which case a suffix is added to make the handle unique). */ private String handle; @@ -420,13 +430,7 @@ public static class Builder { private String productType; /** - * The ID of the [category](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) - * that's associated with the product. - */ - private String category; - - /** - * A comma-separated list of searchable keywords that are + * A list of searchable keywords that are * associated with the product. For example, a merchant might apply the `sports` * and `summer` tags to products that are associated with sportwear for summer. * @@ -450,8 +454,10 @@ public static class Builder { private String giftCardTemplateSuffix; /** - * The name for the product that displays to customers. The title is used to construct the product's handle. - * For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`. + * The name for the product that displays to customers. If no handle is + * explicitly provided, then the title is used to construct the product's handle. + * For example, if a product is titled "Black Sunglasses" and no handle is + * provided, then the handle `black-sunglasses` is generated. */ private String title; @@ -460,6 +466,12 @@ public static class Builder { */ private String vendor; + /** + * The ID of the [category](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) + * that's associated with the product. + */ + private String category; + /** * Whether a redirect is required after a new handle has been provided. * If `true`, then the old handle is redirected to the new one automatically. @@ -514,12 +526,12 @@ public ProductUpdateInput build() { result.handle = this.handle; result.seo = this.seo; result.productType = this.productType; - result.category = this.category; result.tags = this.tags; result.templateSuffix = this.templateSuffix; result.giftCardTemplateSuffix = this.giftCardTemplateSuffix; result.title = this.title; result.vendor = this.vendor; + result.category = this.category; result.redirectNewHandle = this.redirectNewHandle; result.id = this.id; result.collectionsToJoin = this.collectionsToJoin; @@ -541,10 +553,12 @@ public Builder descriptionHtml(String descriptionHtml) { } /** - * A unique, human-readable string of the product's title. A handle can contain - * letters, hyphens (`-`), and numbers, but no spaces. - * The handle is used in the online store URL for the product. - * For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`. + * A unique, human-readable string that's used to identify the product in URLs. A + * handle can contain letters, hyphens (`-`), and numbers, but no spaces. + * If no handle is explicitly provided, then the title is used to construct the product's handle. + * For example, if a product is titled "Black Sunglasses" and no handle is + * provided, then the handle `black-sunglasses` is generated (unless that handle + * is already taken, in which case a suffix is added to make the handle unique). */ public Builder handle(String handle) { this.handle = handle; @@ -570,16 +584,7 @@ public Builder productType(String productType) { } /** - * The ID of the [category](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) - * that's associated with the product. - */ - public Builder category(String category) { - this.category = category; - return this; - } - - /** - * A comma-separated list of searchable keywords that are + * A list of searchable keywords that are * associated with the product. For example, a merchant might apply the `sports` * and `summer` tags to products that are associated with sportwear for summer. * @@ -612,8 +617,10 @@ public Builder giftCardTemplateSuffix(String giftCardTemplateSuffix) { } /** - * The name for the product that displays to customers. The title is used to construct the product's handle. - * For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`. + * The name for the product that displays to customers. If no handle is + * explicitly provided, then the title is used to construct the product's handle. + * For example, if a product is titled "Black Sunglasses" and no handle is + * provided, then the handle `black-sunglasses` is generated. */ public Builder title(String title) { this.title = title; @@ -628,6 +635,15 @@ public Builder vendor(String vendor) { return this; } + /** + * The ID of the [category](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) + * that's associated with the product. + */ + public Builder category(String category) { + this.category = category; + return this; + } + /** * Whether a redirect is required after a new handle has been provided. * If `true`, then the old handle is redirected to the new one automatically. diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductVariant.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductVariant.java index 6f0b8db0..8ffff45e 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductVariant.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductVariant.java @@ -10,7 +10,33 @@ import java.util.Objects; /** - * Represents a product variant. + * The `ProductVariant` object represents a version of a + * [product](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) + * that comes in more than one [option](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductOption), + * such as size or color. For example, if a merchant sells t-shirts with options for size and color, then a small, + * blue t-shirt would be one product variant and a large, blue t-shirt would be another. + * + * Use the `ProductVariant` object to manage the full lifecycle and configuration of a product's variants. Common + * use cases for using the `ProductVariant` object include: + * + * - Tracking inventory for each variant + * - Setting unique prices for each variant + * - Assigning barcodes and SKUs to connect variants to fulfillment services + * - Attaching variant-specific images and media + * - Setting delivery and tax requirements + * - Supporting product bundles, subscriptions, and selling plans + * + * A `ProductVariant` is associated with a parent + * [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) object. + * `ProductVariant` serves as the central link between a product's merchandising configuration, inventory, + * pricing, fulfillment, and sales channels within the GraphQL Admin API schema. Each variant + * can reference other GraphQL types such as: + * + * - [`InventoryItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryItem): Used for inventory tracking + * - [`Image`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Image): Used for variant-specific images + * - [`SellingPlanGroup`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SellingPlanGroup): Used for subscriptions and selling plans + * + * Learn more about [Shopify's product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/product-model-components). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE @@ -136,6 +162,11 @@ public class ProductVariant implements CommentEventEmbed, DeliveryPromisePartici */ private Product product; + /** + * A list of products that have product variants that contain this variant as a product component. + */ + private ProductConnection productParents; + /** * A list of the product variant components. */ @@ -175,6 +206,11 @@ public class ProductVariant implements CommentEventEmbed, DeliveryPromisePartici */ private Count sellingPlanGroupsCount; + /** + * Whether to show the unit price for this product variant. + */ + private boolean showUnitPrice; + /** * A case-sensitive identifier for the product variant in the shop. * Required in order to connect to a fulfillment service. @@ -184,14 +220,14 @@ public class ProductVariant implements CommentEventEmbed, DeliveryPromisePartici /** * The Storefront GraphQL API ID of the `ProductVariant`. * - * As of the `2022-04` version release, the Storefront GraphQL API will no longer - * return Base64 encoded IDs to match the behavior of the Admin GraphQL API. - * Therefore, you can safely use the `id` field's value instead. + * The Storefront GraphQL API will no longer return Base64 encoded IDs to match + * the behavior of the Admin GraphQL API. Therefore, you can safely use the `id` + * field's value instead. */ private String storefrontId; /** - * The tax code for the product variant. + * Avalara tax code for the product variant. Applies only to the stores that have the Avalara AvaTax app installed. */ private String taxCode; @@ -210,6 +246,11 @@ public class ProductVariant implements CommentEventEmbed, DeliveryPromisePartici */ private List translations; + /** + * The unit price value for the variant based on the variant measurement. + */ + private MoneyV2 unitPrice; + /** * The unit price measurement for the variant. */ @@ -481,6 +522,17 @@ public void setProduct(Product product) { this.product = product; } + /** + * A list of products that have product variants that contain this variant as a product component. + */ + public ProductConnection getProductParents() { + return productParents; + } + + public void setProductParents(ProductConnection productParents) { + this.productParents = productParents; + } + /** * A list of the product variant components. */ @@ -563,6 +615,17 @@ public void setSellingPlanGroupsCount(Count sellingPlanGroupsCount) { this.sellingPlanGroupsCount = sellingPlanGroupsCount; } + /** + * Whether to show the unit price for this product variant. + */ + public boolean getShowUnitPrice() { + return showUnitPrice; + } + + public void setShowUnitPrice(boolean showUnitPrice) { + this.showUnitPrice = showUnitPrice; + } + /** * A case-sensitive identifier for the product variant in the shop. * Required in order to connect to a fulfillment service. @@ -578,9 +641,9 @@ public void setSku(String sku) { /** * The Storefront GraphQL API ID of the `ProductVariant`. * - * As of the `2022-04` version release, the Storefront GraphQL API will no longer - * return Base64 encoded IDs to match the behavior of the Admin GraphQL API. - * Therefore, you can safely use the `id` field's value instead. + * The Storefront GraphQL API will no longer return Base64 encoded IDs to match + * the behavior of the Admin GraphQL API. Therefore, you can safely use the `id` + * field's value instead. */ public String getStorefrontId() { return storefrontId; @@ -591,7 +654,7 @@ public void setStorefrontId(String storefrontId) { } /** - * The tax code for the product variant. + * Avalara tax code for the product variant. Applies only to the stores that have the Avalara AvaTax app installed. */ public String getTaxCode() { return taxCode; @@ -634,6 +697,17 @@ public void setTranslations(List translations) { this.translations = translations; } + /** + * The unit price value for the variant based on the variant measurement. + */ + public MoneyV2 getUnitPrice() { + return unitPrice; + } + + public void setUnitPrice(MoneyV2 unitPrice) { + this.unitPrice = unitPrice; + } + /** * The unit price measurement for the variant. */ @@ -658,7 +732,7 @@ public void setUpdatedAt(OffsetDateTime updatedAt) { @Override public String toString() { - return "ProductVariant{availableForSale='" + availableForSale + "', barcode='" + barcode + "', compareAtPrice='" + compareAtPrice + "', contextualPricing='" + contextualPricing + "', createdAt='" + createdAt + "', defaultCursor='" + defaultCursor + "', deliveryProfile='" + deliveryProfile + "', displayName='" + displayName + "', events='" + events + "', id='" + id + "', image='" + image + "', inventoryItem='" + inventoryItem + "', inventoryPolicy='" + inventoryPolicy + "', inventoryQuantity='" + inventoryQuantity + "', legacyResourceId='" + legacyResourceId + "', media='" + media + "', metafield='" + metafield + "', metafieldDefinitions='" + metafieldDefinitions + "', metafields='" + metafields + "', position='" + position + "', presentmentPrices='" + presentmentPrices + "', price='" + price + "', product='" + product + "', productVariantComponents='" + productVariantComponents + "', requiresComponents='" + requiresComponents + "', selectedOptions='" + selectedOptions + "', sellableOnlineQuantity='" + sellableOnlineQuantity + "', sellingPlanGroupCount='" + sellingPlanGroupCount + "', sellingPlanGroups='" + sellingPlanGroups + "', sellingPlanGroupsCount='" + sellingPlanGroupsCount + "', sku='" + sku + "', storefrontId='" + storefrontId + "', taxCode='" + taxCode + "', taxable='" + taxable + "', title='" + title + "', translations='" + translations + "', unitPriceMeasurement='" + unitPriceMeasurement + "', updatedAt='" + updatedAt + "'}"; + return "ProductVariant{availableForSale='" + availableForSale + "', barcode='" + barcode + "', compareAtPrice='" + compareAtPrice + "', contextualPricing='" + contextualPricing + "', createdAt='" + createdAt + "', defaultCursor='" + defaultCursor + "', deliveryProfile='" + deliveryProfile + "', displayName='" + displayName + "', events='" + events + "', id='" + id + "', image='" + image + "', inventoryItem='" + inventoryItem + "', inventoryPolicy='" + inventoryPolicy + "', inventoryQuantity='" + inventoryQuantity + "', legacyResourceId='" + legacyResourceId + "', media='" + media + "', metafield='" + metafield + "', metafieldDefinitions='" + metafieldDefinitions + "', metafields='" + metafields + "', position='" + position + "', presentmentPrices='" + presentmentPrices + "', price='" + price + "', product='" + product + "', productParents='" + productParents + "', productVariantComponents='" + productVariantComponents + "', requiresComponents='" + requiresComponents + "', selectedOptions='" + selectedOptions + "', sellableOnlineQuantity='" + sellableOnlineQuantity + "', sellingPlanGroupCount='" + sellingPlanGroupCount + "', sellingPlanGroups='" + sellingPlanGroups + "', sellingPlanGroupsCount='" + sellingPlanGroupsCount + "', showUnitPrice='" + showUnitPrice + "', sku='" + sku + "', storefrontId='" + storefrontId + "', taxCode='" + taxCode + "', taxable='" + taxable + "', title='" + title + "', translations='" + translations + "', unitPrice='" + unitPrice + "', unitPriceMeasurement='" + unitPriceMeasurement + "', updatedAt='" + updatedAt + "'}"; } @Override @@ -689,6 +763,7 @@ public boolean equals(Object o) { Objects.equals(presentmentPrices, that.presentmentPrices) && Objects.equals(price, that.price) && Objects.equals(product, that.product) && + Objects.equals(productParents, that.productParents) && Objects.equals(productVariantComponents, that.productVariantComponents) && requiresComponents == that.requiresComponents && Objects.equals(selectedOptions, that.selectedOptions) && @@ -696,19 +771,21 @@ public boolean equals(Object o) { sellingPlanGroupCount == that.sellingPlanGroupCount && Objects.equals(sellingPlanGroups, that.sellingPlanGroups) && Objects.equals(sellingPlanGroupsCount, that.sellingPlanGroupsCount) && + showUnitPrice == that.showUnitPrice && Objects.equals(sku, that.sku) && Objects.equals(storefrontId, that.storefrontId) && Objects.equals(taxCode, that.taxCode) && taxable == that.taxable && Objects.equals(title, that.title) && Objects.equals(translations, that.translations) && + Objects.equals(unitPrice, that.unitPrice) && Objects.equals(unitPriceMeasurement, that.unitPriceMeasurement) && Objects.equals(updatedAt, that.updatedAt); } @Override public int hashCode() { - return Objects.hash(availableForSale, barcode, compareAtPrice, contextualPricing, createdAt, defaultCursor, deliveryProfile, displayName, events, id, image, inventoryItem, inventoryPolicy, inventoryQuantity, legacyResourceId, media, metafield, metafieldDefinitions, metafields, position, presentmentPrices, price, product, productVariantComponents, requiresComponents, selectedOptions, sellableOnlineQuantity, sellingPlanGroupCount, sellingPlanGroups, sellingPlanGroupsCount, sku, storefrontId, taxCode, taxable, title, translations, unitPriceMeasurement, updatedAt); + return Objects.hash(availableForSale, barcode, compareAtPrice, contextualPricing, createdAt, defaultCursor, deliveryProfile, displayName, events, id, image, inventoryItem, inventoryPolicy, inventoryQuantity, legacyResourceId, media, metafield, metafieldDefinitions, metafields, position, presentmentPrices, price, product, productParents, productVariantComponents, requiresComponents, selectedOptions, sellableOnlineQuantity, sellingPlanGroupCount, sellingPlanGroups, sellingPlanGroupsCount, showUnitPrice, sku, storefrontId, taxCode, taxable, title, translations, unitPrice, unitPriceMeasurement, updatedAt); } public static Builder newBuilder() { @@ -836,6 +913,11 @@ public static class Builder { */ private Product product; + /** + * A list of products that have product variants that contain this variant as a product component. + */ + private ProductConnection productParents; + /** * A list of the product variant components. */ @@ -875,6 +957,11 @@ public static class Builder { */ private Count sellingPlanGroupsCount; + /** + * Whether to show the unit price for this product variant. + */ + private boolean showUnitPrice; + /** * A case-sensitive identifier for the product variant in the shop. * Required in order to connect to a fulfillment service. @@ -884,14 +971,14 @@ public static class Builder { /** * The Storefront GraphQL API ID of the `ProductVariant`. * - * As of the `2022-04` version release, the Storefront GraphQL API will no longer - * return Base64 encoded IDs to match the behavior of the Admin GraphQL API. - * Therefore, you can safely use the `id` field's value instead. + * The Storefront GraphQL API will no longer return Base64 encoded IDs to match + * the behavior of the Admin GraphQL API. Therefore, you can safely use the `id` + * field's value instead. */ private String storefrontId; /** - * The tax code for the product variant. + * Avalara tax code for the product variant. Applies only to the stores that have the Avalara AvaTax app installed. */ private String taxCode; @@ -910,6 +997,11 @@ public static class Builder { */ private List translations; + /** + * The unit price value for the variant based on the variant measurement. + */ + private MoneyV2 unitPrice; + /** * The unit price measurement for the variant. */ @@ -945,6 +1037,7 @@ public ProductVariant build() { result.presentmentPrices = this.presentmentPrices; result.price = this.price; result.product = this.product; + result.productParents = this.productParents; result.productVariantComponents = this.productVariantComponents; result.requiresComponents = this.requiresComponents; result.selectedOptions = this.selectedOptions; @@ -952,12 +1045,14 @@ public ProductVariant build() { result.sellingPlanGroupCount = this.sellingPlanGroupCount; result.sellingPlanGroups = this.sellingPlanGroups; result.sellingPlanGroupsCount = this.sellingPlanGroupsCount; + result.showUnitPrice = this.showUnitPrice; result.sku = this.sku; result.storefrontId = this.storefrontId; result.taxCode = this.taxCode; result.taxable = this.taxable; result.title = this.title; result.translations = this.translations; + result.unitPrice = this.unitPrice; result.unitPriceMeasurement = this.unitPriceMeasurement; result.updatedAt = this.updatedAt; return result; @@ -1152,6 +1247,14 @@ public Builder product(Product product) { return this; } + /** + * A list of products that have product variants that contain this variant as a product component. + */ + public Builder productParents(ProductConnection productParents) { + this.productParents = productParents; + return this; + } + /** * A list of the product variant components. */ @@ -1213,6 +1316,14 @@ public Builder sellingPlanGroupsCount(Count sellingPlanGroupsCount) { return this; } + /** + * Whether to show the unit price for this product variant. + */ + public Builder showUnitPrice(boolean showUnitPrice) { + this.showUnitPrice = showUnitPrice; + return this; + } + /** * A case-sensitive identifier for the product variant in the shop. * Required in order to connect to a fulfillment service. @@ -1225,9 +1336,9 @@ public Builder sku(String sku) { /** * The Storefront GraphQL API ID of the `ProductVariant`. * - * As of the `2022-04` version release, the Storefront GraphQL API will no longer - * return Base64 encoded IDs to match the behavior of the Admin GraphQL API. - * Therefore, you can safely use the `id` field's value instead. + * The Storefront GraphQL API will no longer return Base64 encoded IDs to match + * the behavior of the Admin GraphQL API. Therefore, you can safely use the `id` + * field's value instead. */ public Builder storefrontId(String storefrontId) { this.storefrontId = storefrontId; @@ -1235,7 +1346,7 @@ public Builder storefrontId(String storefrontId) { } /** - * The tax code for the product variant. + * Avalara tax code for the product variant. Applies only to the stores that have the Avalara AvaTax app installed. */ public Builder taxCode(String taxCode) { this.taxCode = taxCode; @@ -1266,6 +1377,14 @@ public Builder translations(List translations) { return this; } + /** + * The unit price value for the variant based on the variant measurement. + */ + public Builder unitPrice(MoneyV2 unitPrice) { + this.unitPrice = unitPrice; + return this; + } + /** * The unit price measurement for the variant. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductVariantComponent.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductVariantComponent.java index 40a6a2cf..cfe5331c 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductVariantComponent.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductVariantComponent.java @@ -7,7 +7,10 @@ import java.util.Objects; /** - * A product variant component associated with a product variant. + * A product variant component that is included within a bundle. + * + * These are the individual product variants that make up a bundle product, + * where each component has a specific required quantity. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductVariantContextualPricing.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductVariantContextualPricing.java index a9b0946c..d0d8ae6e 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductVariantContextualPricing.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductVariantContextualPricing.java @@ -30,6 +30,11 @@ public class ProductVariantContextualPricing { */ private QuantityRule quantityRule; + /** + * The unit price value for the given context based on the variant measurement. + */ + private MoneyV2 unitPrice; + public ProductVariantContextualPricing() { } @@ -77,9 +82,20 @@ public void setQuantityRule(QuantityRule quantityRule) { this.quantityRule = quantityRule; } + /** + * The unit price value for the given context based on the variant measurement. + */ + public MoneyV2 getUnitPrice() { + return unitPrice; + } + + public void setUnitPrice(MoneyV2 unitPrice) { + this.unitPrice = unitPrice; + } + @Override public String toString() { - return "ProductVariantContextualPricing{compareAtPrice='" + compareAtPrice + "', price='" + price + "', quantityPriceBreaks='" + quantityPriceBreaks + "', quantityRule='" + quantityRule + "'}"; + return "ProductVariantContextualPricing{compareAtPrice='" + compareAtPrice + "', price='" + price + "', quantityPriceBreaks='" + quantityPriceBreaks + "', quantityRule='" + quantityRule + "', unitPrice='" + unitPrice + "'}"; } @Override @@ -90,12 +106,13 @@ public boolean equals(Object o) { return Objects.equals(compareAtPrice, that.compareAtPrice) && Objects.equals(price, that.price) && Objects.equals(quantityPriceBreaks, that.quantityPriceBreaks) && - Objects.equals(quantityRule, that.quantityRule); + Objects.equals(quantityRule, that.quantityRule) && + Objects.equals(unitPrice, that.unitPrice); } @Override public int hashCode() { - return Objects.hash(compareAtPrice, price, quantityPriceBreaks, quantityRule); + return Objects.hash(compareAtPrice, price, quantityPriceBreaks, quantityRule, unitPrice); } public static Builder newBuilder() { @@ -123,12 +140,18 @@ public static class Builder { */ private QuantityRule quantityRule; + /** + * The unit price value for the given context based on the variant measurement. + */ + private MoneyV2 unitPrice; + public ProductVariantContextualPricing build() { ProductVariantContextualPricing result = new ProductVariantContextualPricing(); result.compareAtPrice = this.compareAtPrice; result.price = this.price; result.quantityPriceBreaks = this.quantityPriceBreaks; result.quantityRule = this.quantityRule; + result.unitPrice = this.unitPrice; return result; } @@ -163,5 +186,13 @@ public Builder quantityRule(QuantityRule quantityRule) { this.quantityRule = quantityRule; return this; } + + /** + * The unit price value for the given context based on the variant measurement. + */ + public Builder unitPrice(MoneyV2 unitPrice) { + this.unitPrice = unitPrice; + return this; + } } } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductVariantSetInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductVariantSetInput.java index 3a94c5bd..5e266de6 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductVariantSetInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductVariantSetInput.java @@ -13,74 +13,81 @@ */ public class ProductVariantSetInput { /** - * Whether a product variant requires components. The default value is `false`. - * If `true`, then the product variant can only be purchased as a parent bundle with components and it will be omitted - * from channels that don't support bundles. + * Specifies the product variant to update or create a new variant if absent. */ - private Boolean requiresComponents; + private String id; /** - * The value of the barcode associated with the product. + * The custom properties that a shop owner uses to define product variants. */ - private String barcode; + private List optionValues; /** - * The compare-at price of the variant. + * The price of the variant. */ - private String compareAtPrice; + private String price; /** - * Specifies the product variant to update or create a new variant if absent. + * The compare-at price of the variant. */ - private String id; + private String compareAtPrice; /** - * The file to associate with the variant. - * Any file specified here must also be specified in the `files` input for the product. + * The SKU for the variant. Case-sensitive string. */ - private FileSetInput file; + private String sku; /** - * Whether customers are allowed to place an order for the product variant when it's out of stock. Defaults to `DENY`. + * The value of the barcode associated with the product. */ - private ProductVariantInventoryPolicy inventoryPolicy; + private String barcode; /** - * The inventory quantities at each location where the variant is stocked. - * If you're updating an existing variant, then you can only update the - * quantities at locations where the variant is already stocked. + * The order of the product variant in the list of product variants. The first position in the list is 1. */ - private List inventoryQuantities; + private Integer position; /** - * The inventory item associated with the variant, used for unit cost. + * The file to associate with the variant. + * + * Complexity cost: 0.6 per variant file. + * + * Any file specified here must also be specified in the `files` input for the product. */ - private InventoryItemInput inventoryItem; + private FileSetInput file; /** * Additional customizable information about the product variant. + * + * Complexity cost: 0.4 per variant metafield. */ private List metafields; /** - * The custom properties that a shop owner uses to define product variants. + * Whether a product variant requires components. The default value is `false`. + * If `true`, then the product variant can only be purchased as a parent bundle with components and it will be omitted + * from channels that don't support bundles. */ - private List optionValues; + private Boolean requiresComponents; /** - * The order of the product variant in the list of product variants. The first position in the list is 1. + * Whether customers are allowed to place an order for the product variant when it's out of stock. Defaults to `DENY`. */ - private Integer position; + private ProductVariantInventoryPolicy inventoryPolicy; /** - * The price of the variant. + * The inventory quantities at each location where the variant is stocked. + * If you're updating an existing variant, then you can only update the + * quantities at locations where the variant is already stocked. + * + * The total number of inventory quantities across all variants in the mutation can't exceed 50000. */ - private String price; + private List inventoryQuantities; /** - * The SKU for the variant. Case-sensitive string. + * The inventory item associated with the variant, used for unit cost. */ - private String sku; + private InventoryItemInput inventoryItem; /** * Whether the variant is taxable. @@ -92,104 +99,115 @@ public class ProductVariantSetInput { */ private String taxCode; + /** + * The unit price measurement for the product variant. + */ + private UnitPriceMeasurementInput unitPriceMeasurement; + + /** + * Whether or not unit price should be shown for this product variant. + */ + private Boolean showUnitPrice; + public ProductVariantSetInput() { } /** - * Whether a product variant requires components. The default value is `false`. - * If `true`, then the product variant can only be purchased as a parent bundle with components and it will be omitted - * from channels that don't support bundles. + * Specifies the product variant to update or create a new variant if absent. */ - public Boolean getRequiresComponents() { - return requiresComponents; + public String getId() { + return id; } - public void setRequiresComponents(Boolean requiresComponents) { - this.requiresComponents = requiresComponents; + public void setId(String id) { + this.id = id; } /** - * The value of the barcode associated with the product. + * The custom properties that a shop owner uses to define product variants. */ - public String getBarcode() { - return barcode; + public List getOptionValues() { + return optionValues; } - public void setBarcode(String barcode) { - this.barcode = barcode; + public void setOptionValues(List optionValues) { + this.optionValues = optionValues; } /** - * The compare-at price of the variant. + * The price of the variant. */ - public String getCompareAtPrice() { - return compareAtPrice; + public String getPrice() { + return price; } - public void setCompareAtPrice(String compareAtPrice) { - this.compareAtPrice = compareAtPrice; + public void setPrice(String price) { + this.price = price; } /** - * Specifies the product variant to update or create a new variant if absent. + * The compare-at price of the variant. */ - public String getId() { - return id; + public String getCompareAtPrice() { + return compareAtPrice; } - public void setId(String id) { - this.id = id; + public void setCompareAtPrice(String compareAtPrice) { + this.compareAtPrice = compareAtPrice; } /** - * The file to associate with the variant. - * Any file specified here must also be specified in the `files` input for the product. + * The SKU for the variant. Case-sensitive string. */ - public FileSetInput getFile() { - return file; + public String getSku() { + return sku; } - public void setFile(FileSetInput file) { - this.file = file; + public void setSku(String sku) { + this.sku = sku; } /** - * Whether customers are allowed to place an order for the product variant when it's out of stock. Defaults to `DENY`. + * The value of the barcode associated with the product. */ - public ProductVariantInventoryPolicy getInventoryPolicy() { - return inventoryPolicy; + public String getBarcode() { + return barcode; } - public void setInventoryPolicy(ProductVariantInventoryPolicy inventoryPolicy) { - this.inventoryPolicy = inventoryPolicy; + public void setBarcode(String barcode) { + this.barcode = barcode; } /** - * The inventory quantities at each location where the variant is stocked. - * If you're updating an existing variant, then you can only update the - * quantities at locations where the variant is already stocked. + * The order of the product variant in the list of product variants. The first position in the list is 1. */ - public List getInventoryQuantities() { - return inventoryQuantities; + public Integer getPosition() { + return position; } - public void setInventoryQuantities(List inventoryQuantities) { - this.inventoryQuantities = inventoryQuantities; + public void setPosition(Integer position) { + this.position = position; } /** - * The inventory item associated with the variant, used for unit cost. + * The file to associate with the variant. + * + * Complexity cost: 0.6 per variant file. + * + * Any file specified here must also be specified in the `files` input for the product. */ - public InventoryItemInput getInventoryItem() { - return inventoryItem; + public FileSetInput getFile() { + return file; } - public void setInventoryItem(InventoryItemInput inventoryItem) { - this.inventoryItem = inventoryItem; + public void setFile(FileSetInput file) { + this.file = file; } /** * Additional customizable information about the product variant. + * + * Complexity cost: 0.4 per variant metafield. */ public List getMetafields() { return metafields; @@ -200,47 +218,53 @@ public void setMetafields(List metafields) { } /** - * The custom properties that a shop owner uses to define product variants. + * Whether a product variant requires components. The default value is `false`. + * If `true`, then the product variant can only be purchased as a parent bundle with components and it will be omitted + * from channels that don't support bundles. */ - public List getOptionValues() { - return optionValues; + public Boolean getRequiresComponents() { + return requiresComponents; } - public void setOptionValues(List optionValues) { - this.optionValues = optionValues; + public void setRequiresComponents(Boolean requiresComponents) { + this.requiresComponents = requiresComponents; } /** - * The order of the product variant in the list of product variants. The first position in the list is 1. + * Whether customers are allowed to place an order for the product variant when it's out of stock. Defaults to `DENY`. */ - public Integer getPosition() { - return position; + public ProductVariantInventoryPolicy getInventoryPolicy() { + return inventoryPolicy; } - public void setPosition(Integer position) { - this.position = position; + public void setInventoryPolicy(ProductVariantInventoryPolicy inventoryPolicy) { + this.inventoryPolicy = inventoryPolicy; } /** - * The price of the variant. + * The inventory quantities at each location where the variant is stocked. + * If you're updating an existing variant, then you can only update the + * quantities at locations where the variant is already stocked. + * + * The total number of inventory quantities across all variants in the mutation can't exceed 50000. */ - public String getPrice() { - return price; + public List getInventoryQuantities() { + return inventoryQuantities; } - public void setPrice(String price) { - this.price = price; + public void setInventoryQuantities(List inventoryQuantities) { + this.inventoryQuantities = inventoryQuantities; } /** - * The SKU for the variant. Case-sensitive string. + * The inventory item associated with the variant, used for unit cost. */ - public String getSku() { - return sku; + public InventoryItemInput getInventoryItem() { + return inventoryItem; } - public void setSku(String sku) { - this.sku = sku; + public void setInventoryItem(InventoryItemInput inventoryItem) { + this.inventoryItem = inventoryItem; } /** @@ -265,9 +289,31 @@ public void setTaxCode(String taxCode) { this.taxCode = taxCode; } + /** + * The unit price measurement for the product variant. + */ + public UnitPriceMeasurementInput getUnitPriceMeasurement() { + return unitPriceMeasurement; + } + + public void setUnitPriceMeasurement(UnitPriceMeasurementInput unitPriceMeasurement) { + this.unitPriceMeasurement = unitPriceMeasurement; + } + + /** + * Whether or not unit price should be shown for this product variant. + */ + public Boolean getShowUnitPrice() { + return showUnitPrice; + } + + public void setShowUnitPrice(Boolean showUnitPrice) { + this.showUnitPrice = showUnitPrice; + } + @Override public String toString() { - return "ProductVariantSetInput{requiresComponents='" + requiresComponents + "', barcode='" + barcode + "', compareAtPrice='" + compareAtPrice + "', id='" + id + "', file='" + file + "', inventoryPolicy='" + inventoryPolicy + "', inventoryQuantities='" + inventoryQuantities + "', inventoryItem='" + inventoryItem + "', metafields='" + metafields + "', optionValues='" + optionValues + "', position='" + position + "', price='" + price + "', sku='" + sku + "', taxable='" + taxable + "', taxCode='" + taxCode + "'}"; + return "ProductVariantSetInput{id='" + id + "', optionValues='" + optionValues + "', price='" + price + "', compareAtPrice='" + compareAtPrice + "', sku='" + sku + "', barcode='" + barcode + "', position='" + position + "', file='" + file + "', metafields='" + metafields + "', requiresComponents='" + requiresComponents + "', inventoryPolicy='" + inventoryPolicy + "', inventoryQuantities='" + inventoryQuantities + "', inventoryItem='" + inventoryItem + "', taxable='" + taxable + "', taxCode='" + taxCode + "', unitPriceMeasurement='" + unitPriceMeasurement + "', showUnitPrice='" + showUnitPrice + "'}"; } @Override @@ -275,26 +321,28 @@ public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; ProductVariantSetInput that = (ProductVariantSetInput) o; - return Objects.equals(requiresComponents, that.requiresComponents) && - Objects.equals(barcode, that.barcode) && + return Objects.equals(id, that.id) && + Objects.equals(optionValues, that.optionValues) && + Objects.equals(price, that.price) && Objects.equals(compareAtPrice, that.compareAtPrice) && - Objects.equals(id, that.id) && + Objects.equals(sku, that.sku) && + Objects.equals(barcode, that.barcode) && + Objects.equals(position, that.position) && Objects.equals(file, that.file) && + Objects.equals(metafields, that.metafields) && + Objects.equals(requiresComponents, that.requiresComponents) && Objects.equals(inventoryPolicy, that.inventoryPolicy) && Objects.equals(inventoryQuantities, that.inventoryQuantities) && Objects.equals(inventoryItem, that.inventoryItem) && - Objects.equals(metafields, that.metafields) && - Objects.equals(optionValues, that.optionValues) && - Objects.equals(position, that.position) && - Objects.equals(price, that.price) && - Objects.equals(sku, that.sku) && Objects.equals(taxable, that.taxable) && - Objects.equals(taxCode, that.taxCode); + Objects.equals(taxCode, that.taxCode) && + Objects.equals(unitPriceMeasurement, that.unitPriceMeasurement) && + Objects.equals(showUnitPrice, that.showUnitPrice); } @Override public int hashCode() { - return Objects.hash(requiresComponents, barcode, compareAtPrice, id, file, inventoryPolicy, inventoryQuantities, inventoryItem, metafields, optionValues, position, price, sku, taxable, taxCode); + return Objects.hash(id, optionValues, price, compareAtPrice, sku, barcode, position, file, metafields, requiresComponents, inventoryPolicy, inventoryQuantities, inventoryItem, taxable, taxCode, unitPriceMeasurement, showUnitPrice); } public static Builder newBuilder() { @@ -303,74 +351,81 @@ public static Builder newBuilder() { public static class Builder { /** - * Whether a product variant requires components. The default value is `false`. - * If `true`, then the product variant can only be purchased as a parent bundle with components and it will be omitted - * from channels that don't support bundles. + * Specifies the product variant to update or create a new variant if absent. */ - private Boolean requiresComponents; + private String id; /** - * The value of the barcode associated with the product. + * The custom properties that a shop owner uses to define product variants. */ - private String barcode; + private List optionValues; /** - * The compare-at price of the variant. + * The price of the variant. */ - private String compareAtPrice; + private String price; /** - * Specifies the product variant to update or create a new variant if absent. + * The compare-at price of the variant. */ - private String id; + private String compareAtPrice; /** - * The file to associate with the variant. - * Any file specified here must also be specified in the `files` input for the product. + * The SKU for the variant. Case-sensitive string. */ - private FileSetInput file; + private String sku; /** - * Whether customers are allowed to place an order for the product variant when it's out of stock. Defaults to `DENY`. + * The value of the barcode associated with the product. */ - private ProductVariantInventoryPolicy inventoryPolicy; + private String barcode; /** - * The inventory quantities at each location where the variant is stocked. - * If you're updating an existing variant, then you can only update the - * quantities at locations where the variant is already stocked. + * The order of the product variant in the list of product variants. The first position in the list is 1. */ - private List inventoryQuantities; + private Integer position; /** - * The inventory item associated with the variant, used for unit cost. + * The file to associate with the variant. + * + * Complexity cost: 0.6 per variant file. + * + * Any file specified here must also be specified in the `files` input for the product. */ - private InventoryItemInput inventoryItem; + private FileSetInput file; /** * Additional customizable information about the product variant. + * + * Complexity cost: 0.4 per variant metafield. */ private List metafields; /** - * The custom properties that a shop owner uses to define product variants. + * Whether a product variant requires components. The default value is `false`. + * If `true`, then the product variant can only be purchased as a parent bundle with components and it will be omitted + * from channels that don't support bundles. */ - private List optionValues; + private Boolean requiresComponents; /** - * The order of the product variant in the list of product variants. The first position in the list is 1. + * Whether customers are allowed to place an order for the product variant when it's out of stock. Defaults to `DENY`. */ - private Integer position; + private ProductVariantInventoryPolicy inventoryPolicy; /** - * The price of the variant. + * The inventory quantities at each location where the variant is stocked. + * If you're updating an existing variant, then you can only update the + * quantities at locations where the variant is already stocked. + * + * The total number of inventory quantities across all variants in the mutation can't exceed 50000. */ - private String price; + private List inventoryQuantities; /** - * The SKU for the variant. Case-sensitive string. + * The inventory item associated with the variant, used for unit cost. */ - private String sku; + private InventoryItemInput inventoryItem; /** * Whether the variant is taxable. @@ -382,97 +437,110 @@ public static class Builder { */ private String taxCode; + /** + * The unit price measurement for the product variant. + */ + private UnitPriceMeasurementInput unitPriceMeasurement; + + /** + * Whether or not unit price should be shown for this product variant. + */ + private Boolean showUnitPrice; + public ProductVariantSetInput build() { ProductVariantSetInput result = new ProductVariantSetInput(); - result.requiresComponents = this.requiresComponents; - result.barcode = this.barcode; - result.compareAtPrice = this.compareAtPrice; result.id = this.id; + result.optionValues = this.optionValues; + result.price = this.price; + result.compareAtPrice = this.compareAtPrice; + result.sku = this.sku; + result.barcode = this.barcode; + result.position = this.position; result.file = this.file; + result.metafields = this.metafields; + result.requiresComponents = this.requiresComponents; result.inventoryPolicy = this.inventoryPolicy; result.inventoryQuantities = this.inventoryQuantities; result.inventoryItem = this.inventoryItem; - result.metafields = this.metafields; - result.optionValues = this.optionValues; - result.position = this.position; - result.price = this.price; - result.sku = this.sku; result.taxable = this.taxable; result.taxCode = this.taxCode; + result.unitPriceMeasurement = this.unitPriceMeasurement; + result.showUnitPrice = this.showUnitPrice; return result; } /** - * Whether a product variant requires components. The default value is `false`. - * If `true`, then the product variant can only be purchased as a parent bundle with components and it will be omitted - * from channels that don't support bundles. + * Specifies the product variant to update or create a new variant if absent. */ - public Builder requiresComponents(Boolean requiresComponents) { - this.requiresComponents = requiresComponents; + public Builder id(String id) { + this.id = id; return this; } /** - * The value of the barcode associated with the product. + * The custom properties that a shop owner uses to define product variants. */ - public Builder barcode(String barcode) { - this.barcode = barcode; + public Builder optionValues(List optionValues) { + this.optionValues = optionValues; return this; } /** - * The compare-at price of the variant. + * The price of the variant. */ - public Builder compareAtPrice(String compareAtPrice) { - this.compareAtPrice = compareAtPrice; + public Builder price(String price) { + this.price = price; return this; } /** - * Specifies the product variant to update or create a new variant if absent. + * The compare-at price of the variant. */ - public Builder id(String id) { - this.id = id; + public Builder compareAtPrice(String compareAtPrice) { + this.compareAtPrice = compareAtPrice; return this; } /** - * The file to associate with the variant. - * Any file specified here must also be specified in the `files` input for the product. + * The SKU for the variant. Case-sensitive string. */ - public Builder file(FileSetInput file) { - this.file = file; + public Builder sku(String sku) { + this.sku = sku; return this; } /** - * Whether customers are allowed to place an order for the product variant when it's out of stock. Defaults to `DENY`. + * The value of the barcode associated with the product. */ - public Builder inventoryPolicy(ProductVariantInventoryPolicy inventoryPolicy) { - this.inventoryPolicy = inventoryPolicy; + public Builder barcode(String barcode) { + this.barcode = barcode; return this; } /** - * The inventory quantities at each location where the variant is stocked. - * If you're updating an existing variant, then you can only update the - * quantities at locations where the variant is already stocked. + * The order of the product variant in the list of product variants. The first position in the list is 1. */ - public Builder inventoryQuantities(List inventoryQuantities) { - this.inventoryQuantities = inventoryQuantities; + public Builder position(Integer position) { + this.position = position; return this; } /** - * The inventory item associated with the variant, used for unit cost. + * The file to associate with the variant. + * + * Complexity cost: 0.6 per variant file. + * + * Any file specified here must also be specified in the `files` input for the product. */ - public Builder inventoryItem(InventoryItemInput inventoryItem) { - this.inventoryItem = inventoryItem; + public Builder file(FileSetInput file) { + this.file = file; return this; } /** * Additional customizable information about the product variant. + * + * Complexity cost: 0.4 per variant metafield. */ public Builder metafields(List metafields) { this.metafields = metafields; @@ -480,34 +548,40 @@ public Builder metafields(List metafields) { } /** - * The custom properties that a shop owner uses to define product variants. + * Whether a product variant requires components. The default value is `false`. + * If `true`, then the product variant can only be purchased as a parent bundle with components and it will be omitted + * from channels that don't support bundles. */ - public Builder optionValues(List optionValues) { - this.optionValues = optionValues; + public Builder requiresComponents(Boolean requiresComponents) { + this.requiresComponents = requiresComponents; return this; } /** - * The order of the product variant in the list of product variants. The first position in the list is 1. + * Whether customers are allowed to place an order for the product variant when it's out of stock. Defaults to `DENY`. */ - public Builder position(Integer position) { - this.position = position; + public Builder inventoryPolicy(ProductVariantInventoryPolicy inventoryPolicy) { + this.inventoryPolicy = inventoryPolicy; return this; } /** - * The price of the variant. + * The inventory quantities at each location where the variant is stocked. + * If you're updating an existing variant, then you can only update the + * quantities at locations where the variant is already stocked. + * + * The total number of inventory quantities across all variants in the mutation can't exceed 50000. */ - public Builder price(String price) { - this.price = price; + public Builder inventoryQuantities(List inventoryQuantities) { + this.inventoryQuantities = inventoryQuantities; return this; } /** - * The SKU for the variant. Case-sensitive string. + * The inventory item associated with the variant, used for unit cost. */ - public Builder sku(String sku) { - this.sku = sku; + public Builder inventoryItem(InventoryItemInput inventoryItem) { + this.inventoryItem = inventoryItem; return this; } @@ -526,5 +600,21 @@ public Builder taxCode(String taxCode) { this.taxCode = taxCode; return this; } + + /** + * The unit price measurement for the product variant. + */ + public Builder unitPriceMeasurement(UnitPriceMeasurementInput unitPriceMeasurement) { + this.unitPriceMeasurement = unitPriceMeasurement; + return this; + } + + /** + * Whether or not unit price should be shown for this product variant. + */ + public Builder showUnitPrice(Boolean showUnitPrice) { + this.showUnitPrice = showUnitPrice; + return this; + } } } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductVariantsBulkCreateStrategy.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductVariantsBulkCreateStrategy.java index 50037d1a..9b3239be 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductVariantsBulkCreateStrategy.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductVariantsBulkCreateStrategy.java @@ -6,5 +6,7 @@ public enum ProductVariantsBulkCreateStrategy { DEFAULT, - REMOVE_STANDALONE_VARIANT + REMOVE_STANDALONE_VARIANT, + + PRESERVE_STANDALONE_VARIANT } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductVariantsBulkCreateUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductVariantsBulkCreateUserErrorCode.java index c94944de..5771427d 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductVariantsBulkCreateUserErrorCode.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductVariantsBulkCreateUserErrorCode.java @@ -38,5 +38,7 @@ public enum ProductVariantsBulkCreateUserErrorCode { UNSUPPORTED_COMBINED_LISTING_PARENT_OPERATION, - CANNOT_SET_NAME_FOR_LINKED_OPTION_VALUE + CANNOT_SET_NAME_FOR_LINKED_OPTION_VALUE, + + INVENTORY_QUANTITIES_LIMIT_EXCEEDED } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductVariantsBulkInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductVariantsBulkInput.java index 10af90b5..894051b4 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductVariantsBulkInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductVariantsBulkInput.java @@ -43,6 +43,11 @@ public class ProductVariantsBulkInput { */ private List inventoryQuantities; + /** + * Adjust inventory quantities with deltas. + */ + private List quantityAdjustments; + /** * The inventory item associated with the variant, used for unit cost. */ @@ -78,6 +83,16 @@ public class ProductVariantsBulkInput { */ private String taxCode; + /** + * The unit price measurement for the product variant. + */ + private UnitPriceMeasurementInput unitPriceMeasurement; + + /** + * Whether the unit price should be shown for this product variant. + */ + private Boolean showUnitPrice; + /** * Whether a product variant requires components. The default value is `false`. * If `true`, then the product variant can only be purchased as a parent bundle with components and it will be @@ -156,6 +171,17 @@ public void setInventoryQuantities(List inventoryQuantities this.inventoryQuantities = inventoryQuantities; } + /** + * Adjust inventory quantities with deltas. + */ + public List getQuantityAdjustments() { + return quantityAdjustments; + } + + public void setQuantityAdjustments(List quantityAdjustments) { + this.quantityAdjustments = quantityAdjustments; + } + /** * The inventory item associated with the variant, used for unit cost. */ @@ -233,6 +259,28 @@ public void setTaxCode(String taxCode) { this.taxCode = taxCode; } + /** + * The unit price measurement for the product variant. + */ + public UnitPriceMeasurementInput getUnitPriceMeasurement() { + return unitPriceMeasurement; + } + + public void setUnitPriceMeasurement(UnitPriceMeasurementInput unitPriceMeasurement) { + this.unitPriceMeasurement = unitPriceMeasurement; + } + + /** + * Whether the unit price should be shown for this product variant. + */ + public Boolean getShowUnitPrice() { + return showUnitPrice; + } + + public void setShowUnitPrice(Boolean showUnitPrice) { + this.showUnitPrice = showUnitPrice; + } + /** * Whether a product variant requires components. The default value is `false`. * If `true`, then the product variant can only be purchased as a parent bundle with components and it will be @@ -248,7 +296,7 @@ public void setRequiresComponents(Boolean requiresComponents) { @Override public String toString() { - return "ProductVariantsBulkInput{barcode='" + barcode + "', compareAtPrice='" + compareAtPrice + "', id='" + id + "', mediaSrc='" + mediaSrc + "', inventoryPolicy='" + inventoryPolicy + "', inventoryQuantities='" + inventoryQuantities + "', inventoryItem='" + inventoryItem + "', mediaId='" + mediaId + "', metafields='" + metafields + "', optionValues='" + optionValues + "', price='" + price + "', taxable='" + taxable + "', taxCode='" + taxCode + "', requiresComponents='" + requiresComponents + "'}"; + return "ProductVariantsBulkInput{barcode='" + barcode + "', compareAtPrice='" + compareAtPrice + "', id='" + id + "', mediaSrc='" + mediaSrc + "', inventoryPolicy='" + inventoryPolicy + "', inventoryQuantities='" + inventoryQuantities + "', quantityAdjustments='" + quantityAdjustments + "', inventoryItem='" + inventoryItem + "', mediaId='" + mediaId + "', metafields='" + metafields + "', optionValues='" + optionValues + "', price='" + price + "', taxable='" + taxable + "', taxCode='" + taxCode + "', unitPriceMeasurement='" + unitPriceMeasurement + "', showUnitPrice='" + showUnitPrice + "', requiresComponents='" + requiresComponents + "'}"; } @Override @@ -262,6 +310,7 @@ public boolean equals(Object o) { Objects.equals(mediaSrc, that.mediaSrc) && Objects.equals(inventoryPolicy, that.inventoryPolicy) && Objects.equals(inventoryQuantities, that.inventoryQuantities) && + Objects.equals(quantityAdjustments, that.quantityAdjustments) && Objects.equals(inventoryItem, that.inventoryItem) && Objects.equals(mediaId, that.mediaId) && Objects.equals(metafields, that.metafields) && @@ -269,12 +318,14 @@ public boolean equals(Object o) { Objects.equals(price, that.price) && Objects.equals(taxable, that.taxable) && Objects.equals(taxCode, that.taxCode) && + Objects.equals(unitPriceMeasurement, that.unitPriceMeasurement) && + Objects.equals(showUnitPrice, that.showUnitPrice) && Objects.equals(requiresComponents, that.requiresComponents); } @Override public int hashCode() { - return Objects.hash(barcode, compareAtPrice, id, mediaSrc, inventoryPolicy, inventoryQuantities, inventoryItem, mediaId, metafields, optionValues, price, taxable, taxCode, requiresComponents); + return Objects.hash(barcode, compareAtPrice, id, mediaSrc, inventoryPolicy, inventoryQuantities, quantityAdjustments, inventoryItem, mediaId, metafields, optionValues, price, taxable, taxCode, unitPriceMeasurement, showUnitPrice, requiresComponents); } public static Builder newBuilder() { @@ -314,6 +365,11 @@ public static class Builder { */ private List inventoryQuantities; + /** + * Adjust inventory quantities with deltas. + */ + private List quantityAdjustments; + /** * The inventory item associated with the variant, used for unit cost. */ @@ -349,6 +405,16 @@ public static class Builder { */ private String taxCode; + /** + * The unit price measurement for the product variant. + */ + private UnitPriceMeasurementInput unitPriceMeasurement; + + /** + * Whether the unit price should be shown for this product variant. + */ + private Boolean showUnitPrice; + /** * Whether a product variant requires components. The default value is `false`. * If `true`, then the product variant can only be purchased as a parent bundle with components and it will be @@ -364,6 +430,7 @@ public ProductVariantsBulkInput build() { result.mediaSrc = this.mediaSrc; result.inventoryPolicy = this.inventoryPolicy; result.inventoryQuantities = this.inventoryQuantities; + result.quantityAdjustments = this.quantityAdjustments; result.inventoryItem = this.inventoryItem; result.mediaId = this.mediaId; result.metafields = this.metafields; @@ -371,6 +438,8 @@ public ProductVariantsBulkInput build() { result.price = this.price; result.taxable = this.taxable; result.taxCode = this.taxCode; + result.unitPriceMeasurement = this.unitPriceMeasurement; + result.showUnitPrice = this.showUnitPrice; result.requiresComponents = this.requiresComponents; return result; } @@ -425,6 +494,14 @@ public Builder inventoryQuantities(List inventoryQuantities return this; } + /** + * Adjust inventory quantities with deltas. + */ + public Builder quantityAdjustments(List quantityAdjustments) { + this.quantityAdjustments = quantityAdjustments; + return this; + } + /** * The inventory item associated with the variant, used for unit cost. */ @@ -481,6 +558,22 @@ public Builder taxCode(String taxCode) { return this; } + /** + * The unit price measurement for the product variant. + */ + public Builder unitPriceMeasurement(UnitPriceMeasurementInput unitPriceMeasurement) { + this.unitPriceMeasurement = unitPriceMeasurement; + return this; + } + + /** + * Whether the unit price should be shown for this product variant. + */ + public Builder showUnitPrice(Boolean showUnitPrice) { + this.showUnitPrice = showUnitPrice; + return this; + } + /** * Whether a product variant requires components. The default value is `false`. * If `true`, then the product variant can only be purchased as a parent bundle with components and it will be diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductVariantsBulkUpdateUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductVariantsBulkUpdateUserErrorCode.java index 71734a3f..d2eb2d80 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductVariantsBulkUpdateUserErrorCode.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ProductVariantsBulkUpdateUserErrorCode.java @@ -54,5 +54,7 @@ public enum ProductVariantsBulkUpdateUserErrorCode { CANNOT_SET_NAME_FOR_LINKED_OPTION_VALUE, - UNSUPPORTED_COMBINED_LISTING_PARENT_OPERATION + UNSUPPORTED_COMBINED_LISTING_PARENT_OPERATION, + + INVENTORY_QUANTITIES_LIMIT_EXCEEDED } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PubSubWebhookSubscriptionInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PubSubWebhookSubscriptionInput.java index bbeca1c8..63be45ee 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PubSubWebhookSubscriptionInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PubSubWebhookSubscriptionInput.java @@ -10,23 +10,15 @@ * The input fields for a PubSub webhook subscription. */ public class PubSubWebhookSubscriptionInput { - /** - * The Pub/Sub project ID. - */ - private String pubSubProject; - - /** - * The Pub/Sub topic ID. - */ - private String pubSubTopic; - /** * The format in which the webhook subscription should send the data. */ private WebhookSubscriptionFormat format; /** - * The list of fields to be included in the webhook subscription. + * The list of fields to be included in the webhook subscription. Only the fields + * specified will be included in the webhook payload. If null, then all fields + * will be included. Learn more about [modifying webhook payloads](https://shopify.dev/docs/apps/build/webhooks/customize/modify_payloads). */ private List includeFields; @@ -47,29 +39,17 @@ public class PubSubWebhookSubscriptionInput { */ private List metafields; - public PubSubWebhookSubscriptionInput() { - } - /** * The Pub/Sub project ID. */ - public String getPubSubProject() { - return pubSubProject; - } - - public void setPubSubProject(String pubSubProject) { - this.pubSubProject = pubSubProject; - } + private String pubSubProject; /** * The Pub/Sub topic ID. */ - public String getPubSubTopic() { - return pubSubTopic; - } + private String pubSubTopic; - public void setPubSubTopic(String pubSubTopic) { - this.pubSubTopic = pubSubTopic; + public PubSubWebhookSubscriptionInput() { } /** @@ -84,7 +64,9 @@ public void setFormat(WebhookSubscriptionFormat format) { } /** - * The list of fields to be included in the webhook subscription. + * The list of fields to be included in the webhook subscription. Only the fields + * specified will be included in the webhook payload. If null, then all fields + * will be included. Learn more about [modifying webhook payloads](https://shopify.dev/docs/apps/build/webhooks/customize/modify_payloads). */ public List getIncludeFields() { return includeFields; @@ -129,9 +111,31 @@ public void setMetafields(List metafields this.metafields = metafields; } + /** + * The Pub/Sub project ID. + */ + public String getPubSubProject() { + return pubSubProject; + } + + public void setPubSubProject(String pubSubProject) { + this.pubSubProject = pubSubProject; + } + + /** + * The Pub/Sub topic ID. + */ + public String getPubSubTopic() { + return pubSubTopic; + } + + public void setPubSubTopic(String pubSubTopic) { + this.pubSubTopic = pubSubTopic; + } + @Override public String toString() { - return "PubSubWebhookSubscriptionInput{pubSubProject='" + pubSubProject + "', pubSubTopic='" + pubSubTopic + "', format='" + format + "', includeFields='" + includeFields + "', filter='" + filter + "', metafieldNamespaces='" + metafieldNamespaces + "', metafields='" + metafields + "'}"; + return "PubSubWebhookSubscriptionInput{format='" + format + "', includeFields='" + includeFields + "', filter='" + filter + "', metafieldNamespaces='" + metafieldNamespaces + "', metafields='" + metafields + "', pubSubProject='" + pubSubProject + "', pubSubTopic='" + pubSubTopic + "'}"; } @Override @@ -139,18 +143,18 @@ public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; PubSubWebhookSubscriptionInput that = (PubSubWebhookSubscriptionInput) o; - return Objects.equals(pubSubProject, that.pubSubProject) && - Objects.equals(pubSubTopic, that.pubSubTopic) && - Objects.equals(format, that.format) && + return Objects.equals(format, that.format) && Objects.equals(includeFields, that.includeFields) && Objects.equals(filter, that.filter) && Objects.equals(metafieldNamespaces, that.metafieldNamespaces) && - Objects.equals(metafields, that.metafields); + Objects.equals(metafields, that.metafields) && + Objects.equals(pubSubProject, that.pubSubProject) && + Objects.equals(pubSubTopic, that.pubSubTopic); } @Override public int hashCode() { - return Objects.hash(pubSubProject, pubSubTopic, format, includeFields, filter, metafieldNamespaces, metafields); + return Objects.hash(format, includeFields, filter, metafieldNamespaces, metafields, pubSubProject, pubSubTopic); } public static Builder newBuilder() { @@ -158,23 +162,15 @@ public static Builder newBuilder() { } public static class Builder { - /** - * The Pub/Sub project ID. - */ - private String pubSubProject; - - /** - * The Pub/Sub topic ID. - */ - private String pubSubTopic; - /** * The format in which the webhook subscription should send the data. */ private WebhookSubscriptionFormat format; /** - * The list of fields to be included in the webhook subscription. + * The list of fields to be included in the webhook subscription. Only the fields + * specified will be included in the webhook payload. If null, then all fields + * will be included. Learn more about [modifying webhook payloads](https://shopify.dev/docs/apps/build/webhooks/customize/modify_payloads). */ private List includeFields; @@ -195,34 +191,28 @@ public static class Builder { */ private List metafields; + /** + * The Pub/Sub project ID. + */ + private String pubSubProject; + + /** + * The Pub/Sub topic ID. + */ + private String pubSubTopic; + public PubSubWebhookSubscriptionInput build() { PubSubWebhookSubscriptionInput result = new PubSubWebhookSubscriptionInput(); - result.pubSubProject = this.pubSubProject; - result.pubSubTopic = this.pubSubTopic; result.format = this.format; result.includeFields = this.includeFields; result.filter = this.filter; result.metafieldNamespaces = this.metafieldNamespaces; result.metafields = this.metafields; + result.pubSubProject = this.pubSubProject; + result.pubSubTopic = this.pubSubTopic; return result; } - /** - * The Pub/Sub project ID. - */ - public Builder pubSubProject(String pubSubProject) { - this.pubSubProject = pubSubProject; - return this; - } - - /** - * The Pub/Sub topic ID. - */ - public Builder pubSubTopic(String pubSubTopic) { - this.pubSubTopic = pubSubTopic; - return this; - } - /** * The format in which the webhook subscription should send the data. */ @@ -232,7 +222,9 @@ public Builder format(WebhookSubscriptionFormat format) { } /** - * The list of fields to be included in the webhook subscription. + * The list of fields to be included in the webhook subscription. Only the fields + * specified will be included in the webhook payload. If null, then all fields + * will be included. Learn more about [modifying webhook payloads](https://shopify.dev/docs/apps/build/webhooks/customize/modify_payloads). */ public Builder includeFields(List includeFields) { this.includeFields = includeFields; @@ -264,5 +256,21 @@ public Builder metafields(List metafields this.metafields = metafields; return this; } + + /** + * The Pub/Sub project ID. + */ + public Builder pubSubProject(String pubSubProject) { + this.pubSubProject = pubSubProject; + return this; + } + + /** + * The Pub/Sub topic ID. + */ + public Builder pubSubTopic(String pubSubTopic) { + this.pubSubTopic = pubSubTopic; + return this; + } } } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PubSubWebhookSubscriptionUpdateUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PubSubWebhookSubscriptionUpdateUserErrorCode.java index 39a72415..311e9312 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PubSubWebhookSubscriptionUpdateUserErrorCode.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/PubSubWebhookSubscriptionUpdateUserErrorCode.java @@ -4,5 +4,7 @@ * Possible error codes that can be returned by `PubSubWebhookSubscriptionUpdateUserError`. */ public enum PubSubWebhookSubscriptionUpdateUserErrorCode { - INVALID_PARAMETERS + INVALID_PARAMETERS, + + TAKEN } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Publication.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Publication.java index efebee0b..6168982c 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Publication.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Publication.java @@ -7,7 +7,18 @@ import java.util.Objects; /** - * A publication is a group of products and collections that is published to an app. + * A group of [products](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) and [collections](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection) + * that are published to an app. + * + * Each publication manages which products and collections display on its associated + * [`Channel`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Channel). + * Merchants can automatically publish products when they're created if [`autoPublish`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication#field-Publication.fields.autoPublish) + * is enabled, or manually control publication through publication records. + * + * Publications support scheduled publishing through future publish dates for + * online store channels, allowing merchants to coordinate product launches and + * promotional campaigns. The [`catalog`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication#field-Publication.fields.catalog) + * field links to pricing and availability rules specific to that publication's context. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE @@ -29,7 +40,8 @@ public class Publication implements com.shopify.admin.types.Node { private Catalog catalog; /** - * The collection publications for the list of collections published to the publication. + * The list of collection publication records, each representing the publication + * status and details for a collection published to this publication (typically channel). */ private ResourcePublicationConnection collectionPublicationsV3; @@ -53,6 +65,11 @@ public class Publication implements com.shopify.admin.types.Node { */ private ProductConnection includedProducts; + /** + * The count of products included in the publication. Limited to a maximum of 10000 by default. + */ + private Count includedProductsCount; + /** * Name of the publication. */ @@ -115,7 +132,8 @@ public void setCatalog(Catalog catalog) { } /** - * The collection publications for the list of collections published to the publication. + * The list of collection publication records, each representing the publication + * status and details for a collection published to this publication (typically channel). */ public ResourcePublicationConnection getCollectionPublicationsV3() { return collectionPublicationsV3; @@ -169,6 +187,17 @@ public void setIncludedProducts(ProductConnection includedProducts) { this.includedProducts = includedProducts; } + /** + * The count of products included in the publication. Limited to a maximum of 10000 by default. + */ + public Count getIncludedProductsCount() { + return includedProductsCount; + } + + public void setIncludedProductsCount(Count includedProductsCount) { + this.includedProductsCount = includedProductsCount; + } + /** * Name of the publication. */ @@ -226,7 +255,7 @@ public void setSupportsFuturePublishing(boolean supportsFuturePublishing) { @Override public String toString() { - return "Publication{app='" + app + "', autoPublish='" + autoPublish + "', catalog='" + catalog + "', collectionPublicationsV3='" + collectionPublicationsV3 + "', collections='" + collections + "', hasCollection='" + hasCollection + "', id='" + id + "', includedProducts='" + includedProducts + "', name='" + name + "', operation='" + operation + "', productPublicationsV3='" + productPublicationsV3 + "', products='" + products + "', supportsFuturePublishing='" + supportsFuturePublishing + "'}"; + return "Publication{app='" + app + "', autoPublish='" + autoPublish + "', catalog='" + catalog + "', collectionPublicationsV3='" + collectionPublicationsV3 + "', collections='" + collections + "', hasCollection='" + hasCollection + "', id='" + id + "', includedProducts='" + includedProducts + "', includedProductsCount='" + includedProductsCount + "', name='" + name + "', operation='" + operation + "', productPublicationsV3='" + productPublicationsV3 + "', products='" + products + "', supportsFuturePublishing='" + supportsFuturePublishing + "'}"; } @Override @@ -242,6 +271,7 @@ public boolean equals(Object o) { hasCollection == that.hasCollection && Objects.equals(id, that.id) && Objects.equals(includedProducts, that.includedProducts) && + Objects.equals(includedProductsCount, that.includedProductsCount) && Objects.equals(name, that.name) && Objects.equals(operation, that.operation) && Objects.equals(productPublicationsV3, that.productPublicationsV3) && @@ -251,7 +281,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(app, autoPublish, catalog, collectionPublicationsV3, collections, hasCollection, id, includedProducts, name, operation, productPublicationsV3, products, supportsFuturePublishing); + return Objects.hash(app, autoPublish, catalog, collectionPublicationsV3, collections, hasCollection, id, includedProducts, includedProductsCount, name, operation, productPublicationsV3, products, supportsFuturePublishing); } public static Builder newBuilder() { @@ -275,7 +305,8 @@ public static class Builder { private Catalog catalog; /** - * The collection publications for the list of collections published to the publication. + * The list of collection publication records, each representing the publication + * status and details for a collection published to this publication (typically channel). */ private ResourcePublicationConnection collectionPublicationsV3; @@ -299,6 +330,11 @@ public static class Builder { */ private ProductConnection includedProducts; + /** + * The count of products included in the publication. Limited to a maximum of 10000 by default. + */ + private Count includedProductsCount; + /** * Name of the publication. */ @@ -334,6 +370,7 @@ public Publication build() { result.hasCollection = this.hasCollection; result.id = this.id; result.includedProducts = this.includedProducts; + result.includedProductsCount = this.includedProductsCount; result.name = this.name; result.operation = this.operation; result.productPublicationsV3 = this.productPublicationsV3; @@ -367,7 +404,8 @@ public Builder catalog(Catalog catalog) { } /** - * The collection publications for the list of collections published to the publication. + * The list of collection publication records, each representing the publication + * status and details for a collection published to this publication (typically channel). */ public Builder collectionPublicationsV3( ResourcePublicationConnection collectionPublicationsV3) { @@ -407,6 +445,14 @@ public Builder includedProducts(ProductConnection includedProducts) { return this; } + /** + * The count of products included in the publication. Limited to a maximum of 10000 by default. + */ + public Builder includedProductsCount(Count includedProductsCount) { + this.includedProductsCount = includedProductsCount; + return this; + } + /** * Name of the publication. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Refund.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Refund.java index fd2b79e0..dac0fb41 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Refund.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Refund.java @@ -9,8 +9,41 @@ import java.util.Objects; /** - * The record of the line items and transactions that were refunded to a customer, - * along with restocking instructions for refunded line items. + * The `Refund` object represents a financial record of money returned to a customer from an order. + * It provides a comprehensive view of all refunded amounts, transactions, and restocking instructions + * associated with returning products or correcting order issues. + * + * The `Refund` object provides information to: + * + * - Process customer returns and issue payments back to customers + * - Handle partial or full refunds for line items with optional inventory restocking + * - Refund shipping costs, duties, and additional fees + * - Issue store credit refunds as an alternative to original payment method returns + * - Track and reconcile all financial transactions related to refunds + * + * Each `Refund` object maintains detailed records of what was refunded, how much was refunded, + * which payment transactions were involved, and any inventory restocking that occurred. The refund + * can include multiple components such as product line items, shipping charges, taxes, duties, and + * additional fees, all calculated with proper currency handling for international orders. + * + * Refunds are always associated with an [order](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) + * and can optionally be linked to a [return](https://shopify.dev/docs/api/admin-graphql/latest/objects/Return) + * if the refund was initiated through the returns process. The refund tracks both the presentment currency + * (what the customer sees) and the shop currency for accurate financial reporting. + * + * > Note: + * > The existence of a `Refund` object doesn't guarantee that the money has been returned to the customer. + * > The actual financial processing happens through associated + * > [`OrderTransaction`](https://shopify.dev/docs/api/admin-graphql/latest/objects/OrderTransaction) + * > objects, which can be in various states, such as pending, processing, success, or failure. + * > To determine if money has actually been refunded, check the + * > [status](https://shopify.dev/docs/api/admin-graphql/latest/objects/OrderTransaction#field-OrderTransaction.fields.status) + * > of the associated transactions. + * + * Learn more about + * [managing returns](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/build-return-management), + * [refunding duties](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/view-and-refund-duties), and + * [processing refunds](https://shopify.dev/docs/api/admin-graphql/latest/mutations/refundCreate). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE @@ -51,6 +84,11 @@ public class Refund implements com.shopify.admin.types.LegacyInteroperability, c */ private OrderAdjustmentConnection orderAdjustments; + /** + * The date and time when the refund was processed. + */ + private OffsetDateTime processedAt; + /** * The `RefundLineItem` resources attached to the refund. */ @@ -171,6 +209,17 @@ public void setOrderAdjustments(OrderAdjustmentConnection orderAdjustments) { this.orderAdjustments = orderAdjustments; } + /** + * The date and time when the refund was processed. + */ + public OffsetDateTime getProcessedAt() { + return processedAt; + } + + public void setProcessedAt(OffsetDateTime processedAt) { + this.processedAt = processedAt; + } + /** * The `RefundLineItem` resources attached to the refund. */ @@ -261,7 +310,7 @@ public void setUpdatedAt(OffsetDateTime updatedAt) { @Override public String toString() { - return "Refund{createdAt='" + createdAt + "', duties='" + duties + "', id='" + id + "', legacyResourceId='" + legacyResourceId + "', note='" + note + "', order='" + order + "', orderAdjustments='" + orderAdjustments + "', refundLineItems='" + refundLineItems + "', refundShippingLines='" + refundShippingLines + "', return='" + _return + "', staffMember='" + staffMember + "', totalRefunded='" + totalRefunded + "', totalRefundedSet='" + totalRefundedSet + "', transactions='" + transactions + "', updatedAt='" + updatedAt + "'}"; + return "Refund{createdAt='" + createdAt + "', duties='" + duties + "', id='" + id + "', legacyResourceId='" + legacyResourceId + "', note='" + note + "', order='" + order + "', orderAdjustments='" + orderAdjustments + "', processedAt='" + processedAt + "', refundLineItems='" + refundLineItems + "', refundShippingLines='" + refundShippingLines + "', return='" + _return + "', staffMember='" + staffMember + "', totalRefunded='" + totalRefunded + "', totalRefundedSet='" + totalRefundedSet + "', transactions='" + transactions + "', updatedAt='" + updatedAt + "'}"; } @Override @@ -276,6 +325,7 @@ public boolean equals(Object o) { Objects.equals(note, that.note) && Objects.equals(order, that.order) && Objects.equals(orderAdjustments, that.orderAdjustments) && + Objects.equals(processedAt, that.processedAt) && Objects.equals(refundLineItems, that.refundLineItems) && Objects.equals(refundShippingLines, that.refundShippingLines) && Objects.equals(_return, that._return) && @@ -288,7 +338,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(createdAt, duties, id, legacyResourceId, note, order, orderAdjustments, refundLineItems, refundShippingLines, _return, staffMember, totalRefunded, totalRefundedSet, transactions, updatedAt); + return Objects.hash(createdAt, duties, id, legacyResourceId, note, order, orderAdjustments, processedAt, refundLineItems, refundShippingLines, _return, staffMember, totalRefunded, totalRefundedSet, transactions, updatedAt); } public static Builder newBuilder() { @@ -331,6 +381,11 @@ public static class Builder { */ private OrderAdjustmentConnection orderAdjustments; + /** + * The date and time when the refund was processed. + */ + private OffsetDateTime processedAt; + /** * The `RefundLineItem` resources attached to the refund. */ @@ -380,6 +435,7 @@ public Refund build() { result.note = this.note; result.order = this.order; result.orderAdjustments = this.orderAdjustments; + result.processedAt = this.processedAt; result.refundLineItems = this.refundLineItems; result.refundShippingLines = this.refundShippingLines; result._return = this._return; @@ -447,6 +503,14 @@ public Builder orderAdjustments(OrderAdjustmentConnection orderAdjustments) { return this; } + /** + * The date and time when the refund was processed. + */ + public Builder processedAt(OffsetDateTime processedAt) { + this.processedAt = processedAt; + return this; + } + /** * The `RefundLineItem` resources attached to the refund. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/RefundInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/RefundInput.java index 1db0b986..fc56c4ae 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/RefundInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/RefundInput.java @@ -4,6 +4,8 @@ import java.lang.Object; import java.lang.Override; import java.lang.String; +import java.time.OffsetDateTime; +import java.util.Collections; import java.util.List; import java.util.Objects; @@ -38,6 +40,11 @@ public class RefundInput { */ private ShippingRefundInput shipping; + /** + * The date and time when the refund is being processed. If not provided, it will be set to the current time. + */ + private OffsetDateTime processedAt; + /** * A list of line items to refund. */ @@ -53,11 +60,21 @@ public class RefundInput { */ private List transactions; + /** + * A list of instructions to process the financial outcome of the refund. + */ + private List refundMethods = Collections.emptyList(); + /** * An optional reason for a discrepancy between calculated and actual refund amounts. */ private OrderAdjustmentInputDiscrepancyReason discrepancyReason; + /** + * Whether to allow the total refunded amount to surpass the amount paid for the order. + */ + private Boolean allowOverRefunding = false; + public RefundInput() { } @@ -118,6 +135,17 @@ public void setShipping(ShippingRefundInput shipping) { this.shipping = shipping; } + /** + * The date and time when the refund is being processed. If not provided, it will be set to the current time. + */ + public OffsetDateTime getProcessedAt() { + return processedAt; + } + + public void setProcessedAt(OffsetDateTime processedAt) { + this.processedAt = processedAt; + } + /** * A list of line items to refund. */ @@ -151,6 +179,17 @@ public void setTransactions(List transactions) { this.transactions = transactions; } + /** + * A list of instructions to process the financial outcome of the refund. + */ + public List getRefundMethods() { + return refundMethods; + } + + public void setRefundMethods(List refundMethods) { + this.refundMethods = refundMethods; + } + /** * An optional reason for a discrepancy between calculated and actual refund amounts. */ @@ -162,9 +201,20 @@ public void setDiscrepancyReason(OrderAdjustmentInputDiscrepancyReason discrepan this.discrepancyReason = discrepancyReason; } + /** + * Whether to allow the total refunded amount to surpass the amount paid for the order. + */ + public Boolean getAllowOverRefunding() { + return allowOverRefunding; + } + + public void setAllowOverRefunding(Boolean allowOverRefunding) { + this.allowOverRefunding = allowOverRefunding; + } + @Override public String toString() { - return "RefundInput{currency='" + currency + "', orderId='" + orderId + "', note='" + note + "', notify='" + notify + "', shipping='" + shipping + "', refundLineItems='" + refundLineItems + "', refundDuties='" + refundDuties + "', transactions='" + transactions + "', discrepancyReason='" + discrepancyReason + "'}"; + return "RefundInput{currency='" + currency + "', orderId='" + orderId + "', note='" + note + "', notify='" + notify + "', shipping='" + shipping + "', processedAt='" + processedAt + "', refundLineItems='" + refundLineItems + "', refundDuties='" + refundDuties + "', transactions='" + transactions + "', refundMethods='" + refundMethods + "', discrepancyReason='" + discrepancyReason + "', allowOverRefunding='" + allowOverRefunding + "'}"; } @Override @@ -177,15 +227,18 @@ public boolean equals(Object o) { Objects.equals(note, that.note) && Objects.equals(notify, that.notify) && Objects.equals(shipping, that.shipping) && + Objects.equals(processedAt, that.processedAt) && Objects.equals(refundLineItems, that.refundLineItems) && Objects.equals(refundDuties, that.refundDuties) && Objects.equals(transactions, that.transactions) && - Objects.equals(discrepancyReason, that.discrepancyReason); + Objects.equals(refundMethods, that.refundMethods) && + Objects.equals(discrepancyReason, that.discrepancyReason) && + Objects.equals(allowOverRefunding, that.allowOverRefunding); } @Override public int hashCode() { - return Objects.hash(currency, orderId, note, notify, shipping, refundLineItems, refundDuties, transactions, discrepancyReason); + return Objects.hash(currency, orderId, note, notify, shipping, processedAt, refundLineItems, refundDuties, transactions, refundMethods, discrepancyReason, allowOverRefunding); } public static Builder newBuilder() { @@ -220,6 +273,11 @@ public static class Builder { */ private ShippingRefundInput shipping; + /** + * The date and time when the refund is being processed. If not provided, it will be set to the current time. + */ + private OffsetDateTime processedAt; + /** * A list of line items to refund. */ @@ -235,11 +293,21 @@ public static class Builder { */ private List transactions; + /** + * A list of instructions to process the financial outcome of the refund. + */ + private List refundMethods = Collections.emptyList(); + /** * An optional reason for a discrepancy between calculated and actual refund amounts. */ private OrderAdjustmentInputDiscrepancyReason discrepancyReason; + /** + * Whether to allow the total refunded amount to surpass the amount paid for the order. + */ + private Boolean allowOverRefunding = false; + public RefundInput build() { RefundInput result = new RefundInput(); result.currency = this.currency; @@ -247,10 +315,13 @@ public RefundInput build() { result.note = this.note; result.notify = this.notify; result.shipping = this.shipping; + result.processedAt = this.processedAt; result.refundLineItems = this.refundLineItems; result.refundDuties = this.refundDuties; result.transactions = this.transactions; + result.refundMethods = this.refundMethods; result.discrepancyReason = this.discrepancyReason; + result.allowOverRefunding = this.allowOverRefunding; return result; } @@ -296,6 +367,14 @@ public Builder shipping(ShippingRefundInput shipping) { return this; } + /** + * The date and time when the refund is being processed. If not provided, it will be set to the current time. + */ + public Builder processedAt(OffsetDateTime processedAt) { + this.processedAt = processedAt; + return this; + } + /** * A list of line items to refund. */ @@ -320,6 +399,14 @@ public Builder transactions(List transactions) { return this; } + /** + * A list of instructions to process the financial outcome of the refund. + */ + public Builder refundMethods(List refundMethods) { + this.refundMethods = refundMethods; + return this; + } + /** * An optional reason for a discrepancy between calculated and actual refund amounts. */ @@ -327,5 +414,13 @@ public Builder discrepancyReason(OrderAdjustmentInputDiscrepancyReason discrepan this.discrepancyReason = discrepancyReason; return this; } + + /** + * Whether to allow the total refunded amount to surpass the amount paid for the order. + */ + public Builder allowOverRefunding(Boolean allowOverRefunding) { + this.allowOverRefunding = allowOverRefunding; + return this; + } } } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/RefundLineItem.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/RefundLineItem.java index 75d936f1..54979219 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/RefundLineItem.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/RefundLineItem.java @@ -6,7 +6,18 @@ import java.util.Objects; /** - * A line item that's included in a refund. + * A [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) or [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) + * being refunded from an order. Each refund line item tracks the quantity, + * pricing, and restocking details for items returned to the merchant. + * + * The refund line item links to the original + * [`LineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItem) from + * the [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) + * and includes financial information such as the refunded price, subtotal, and + * taxes in both shop and presentment currencies. The [`restockType`](https://shopify.dev/docs/api/admin-graphql/latest/objects/RefundLineItem#field-RefundLineItem.fields.restockType) + * field indicates whether and how the merchant restocks the returned items to + * inventory, while the [`location`](https://shopify.dev/docs/api/admin-graphql/latest/objects/RefundLineItem#field-RefundLineItem.fields.location) + * field specifies where restocking occurs. */ public class RefundLineItem { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/RefundMethodAllocation.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/RefundMethodAllocation.java new file mode 100644 index 00000000..1e64f1c9 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/RefundMethodAllocation.java @@ -0,0 +1,10 @@ +package com.shopify.admin.types; + +/** + * The different methods that a refund amount can be allocated to. + */ +public enum RefundMethodAllocation { + ORIGINAL_PAYMENT_METHODS, + + STORE_CREDIT +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/RefundMethodInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/RefundMethodInput.java new file mode 100644 index 00000000..97df556c --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/RefundMethodInput.java @@ -0,0 +1,73 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * The input fields for processing the financial outcome of a refund. + */ +public class RefundMethodInput { + /** + * The details of the refund to store credit. + */ + private StoreCreditRefundInput storeCreditRefund; + + public RefundMethodInput() { + } + + /** + * The details of the refund to store credit. + */ + public StoreCreditRefundInput getStoreCreditRefund() { + return storeCreditRefund; + } + + public void setStoreCreditRefund(StoreCreditRefundInput storeCreditRefund) { + this.storeCreditRefund = storeCreditRefund; + } + + @Override + public String toString() { + return "RefundMethodInput{storeCreditRefund='" + storeCreditRefund + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + RefundMethodInput that = (RefundMethodInput) o; + return Objects.equals(storeCreditRefund, that.storeCreditRefund); + } + + @Override + public int hashCode() { + return Objects.hash(storeCreditRefund); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The details of the refund to store credit. + */ + private StoreCreditRefundInput storeCreditRefund; + + public RefundMethodInput build() { + RefundMethodInput result = new RefundMethodInput(); + result.storeCreditRefund = this.storeCreditRefund; + return result; + } + + /** + * The details of the refund to store credit. + */ + public Builder storeCreditRefund(StoreCreditRefundInput storeCreditRefund) { + this.storeCreditRefund = storeCreditRefund; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/RefundReturnOutcome.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/RefundReturnOutcome.java new file mode 100644 index 00000000..9235f3e3 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/RefundReturnOutcome.java @@ -0,0 +1,140 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * The financial transfer details for a return outcome that results in a refund. + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NONE +) +public class RefundReturnOutcome implements ReturnOutcomeFinancialTransfer { + /** + * The total monetary value to be refunded in shop and presentment currencies. + */ + private MoneyBag amount; + + /** + * A list of suggested refund methods. + */ + private List suggestedRefundMethods; + + /** + * A list of suggested order transactions. + */ + private List suggestedTransactions; + + public RefundReturnOutcome() { + } + + /** + * The total monetary value to be refunded in shop and presentment currencies. + */ + public MoneyBag getAmount() { + return amount; + } + + public void setAmount(MoneyBag amount) { + this.amount = amount; + } + + /** + * A list of suggested refund methods. + */ + public List getSuggestedRefundMethods() { + return suggestedRefundMethods; + } + + public void setSuggestedRefundMethods(List suggestedRefundMethods) { + this.suggestedRefundMethods = suggestedRefundMethods; + } + + /** + * A list of suggested order transactions. + */ + public List getSuggestedTransactions() { + return suggestedTransactions; + } + + public void setSuggestedTransactions(List suggestedTransactions) { + this.suggestedTransactions = suggestedTransactions; + } + + @Override + public String toString() { + return "RefundReturnOutcome{amount='" + amount + "', suggestedRefundMethods='" + suggestedRefundMethods + "', suggestedTransactions='" + suggestedTransactions + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + RefundReturnOutcome that = (RefundReturnOutcome) o; + return Objects.equals(amount, that.amount) && + Objects.equals(suggestedRefundMethods, that.suggestedRefundMethods) && + Objects.equals(suggestedTransactions, that.suggestedTransactions); + } + + @Override + public int hashCode() { + return Objects.hash(amount, suggestedRefundMethods, suggestedTransactions); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The total monetary value to be refunded in shop and presentment currencies. + */ + private MoneyBag amount; + + /** + * A list of suggested refund methods. + */ + private List suggestedRefundMethods; + + /** + * A list of suggested order transactions. + */ + private List suggestedTransactions; + + public RefundReturnOutcome build() { + RefundReturnOutcome result = new RefundReturnOutcome(); + result.amount = this.amount; + result.suggestedRefundMethods = this.suggestedRefundMethods; + result.suggestedTransactions = this.suggestedTransactions; + return result; + } + + /** + * The total monetary value to be refunded in shop and presentment currencies. + */ + public Builder amount(MoneyBag amount) { + this.amount = amount; + return this; + } + + /** + * A list of suggested refund methods. + */ + public Builder suggestedRefundMethods(List suggestedRefundMethods) { + this.suggestedRefundMethods = suggestedRefundMethods; + return this; + } + + /** + * A list of suggested order transactions. + */ + public Builder suggestedTransactions(List suggestedTransactions) { + this.suggestedTransactions = suggestedTransactions; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/RemoveFromReturnPayload.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/RemoveFromReturnPayload.java new file mode 100644 index 00000000..1649751d --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/RemoveFromReturnPayload.java @@ -0,0 +1,105 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * Return type for `removeFromReturn` mutation. + */ +public class RemoveFromReturnPayload { + /** + * The modified return. + */ + private Return _return; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public RemoveFromReturnPayload() { + } + + /** + * The modified return. + */ + public Return getReturn() { + return _return; + } + + public void setReturn(Return _return) { + this._return = _return; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public List getUserErrors() { + return userErrors; + } + + public void setUserErrors(List userErrors) { + this.userErrors = userErrors; + } + + @Override + public String toString() { + return "RemoveFromReturnPayload{return='" + _return + "', userErrors='" + userErrors + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + RemoveFromReturnPayload that = (RemoveFromReturnPayload) o; + return Objects.equals(_return, that._return) && + Objects.equals(userErrors, that.userErrors); + } + + @Override + public int hashCode() { + return Objects.hash(_return, userErrors); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The modified return. + */ + private Return _return; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public RemoveFromReturnPayload build() { + RemoveFromReturnPayload result = new RemoveFromReturnPayload(); + result._return = this._return; + result.userErrors = this.userErrors; + return result; + } + + /** + * The modified return. + */ + public Builder _return(Return _return) { + this._return = _return; + return this; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public Builder userErrors(List userErrors) { + this.userErrors = userErrors; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ResolvedPriceInclusivity.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ResolvedPriceInclusivity.java new file mode 100644 index 00000000..bb10a756 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ResolvedPriceInclusivity.java @@ -0,0 +1,104 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * The resolved price inclusivity attributes. + */ +public class ResolvedPriceInclusivity { + /** + * Whether duties are included in the price. + */ + private boolean dutiesIncluded; + + /** + * Whether taxes are included in the price. + */ + private boolean taxesIncluded; + + public ResolvedPriceInclusivity() { + } + + /** + * Whether duties are included in the price. + */ + public boolean getDutiesIncluded() { + return dutiesIncluded; + } + + public void setDutiesIncluded(boolean dutiesIncluded) { + this.dutiesIncluded = dutiesIncluded; + } + + /** + * Whether taxes are included in the price. + */ + public boolean getTaxesIncluded() { + return taxesIncluded; + } + + public void setTaxesIncluded(boolean taxesIncluded) { + this.taxesIncluded = taxesIncluded; + } + + @Override + public String toString() { + return "ResolvedPriceInclusivity{dutiesIncluded='" + dutiesIncluded + "', taxesIncluded='" + taxesIncluded + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ResolvedPriceInclusivity that = (ResolvedPriceInclusivity) o; + return dutiesIncluded == that.dutiesIncluded && + taxesIncluded == that.taxesIncluded; + } + + @Override + public int hashCode() { + return Objects.hash(dutiesIncluded, taxesIncluded); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * Whether duties are included in the price. + */ + private boolean dutiesIncluded; + + /** + * Whether taxes are included in the price. + */ + private boolean taxesIncluded; + + public ResolvedPriceInclusivity build() { + ResolvedPriceInclusivity result = new ResolvedPriceInclusivity(); + result.dutiesIncluded = this.dutiesIncluded; + result.taxesIncluded = this.taxesIncluded; + return result; + } + + /** + * Whether duties are included in the price. + */ + public Builder dutiesIncluded(boolean dutiesIncluded) { + this.dutiesIncluded = dutiesIncluded; + return this; + } + + /** + * Whether taxes are included in the price. + */ + public Builder taxesIncluded(boolean taxesIncluded) { + this.taxesIncluded = taxesIncluded; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Return.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Return.java index 740fad6d..8eb18a56 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Return.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Return.java @@ -4,16 +4,43 @@ import java.lang.Object; import java.lang.Override; import java.lang.String; +import java.time.OffsetDateTime; import java.util.List; import java.util.Objects; /** - * Represents a return. + * The `Return` object represents the intent of a buyer to ship one or more items from an order back to a merchant + * or a third-party fulfillment location. A return is associated with an + * [order](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) + * and can include multiple return [line items](https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItem). + * Each return has a [status](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps#return-statuses), + * which indicates the state of the return. + * + * Use the `Return` object to capture the financial, logistical, + * and business intent of a return. For example, you can identify eligible items for a return and issue customers + * a refund for returned items on behalf of the merchant. + * + * Learn more about providing a + * [return management workflow](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/build-return-management) + * for merchants. You can also manage [exchanges](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/manage-exchanges), + * [reverse fulfillment orders](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/manage-reverse-fulfillment-orders), + * and [reverse deliveries](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/manage-reverse-deliveries) + * on behalf of merchants. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE ) public class Return implements com.shopify.admin.types.Node { + /** + * The date and time when the return was closed. + */ + private OffsetDateTime closedAt; + + /** + * The date and time when the return was created. + */ + private OffsetDateTime createdAt; + /** * Additional information about the declined return. */ @@ -44,6 +71,11 @@ public class Return implements com.shopify.admin.types.Node { */ private RefundConnection refunds; + /** + * The date and time when the return was approved. + */ + private OffsetDateTime requestApprovedAt; + /** * The return line items attached to the return. */ @@ -59,11 +91,21 @@ public class Return implements com.shopify.admin.types.Node { */ private ReverseFulfillmentOrderConnection reverseFulfillmentOrders; + /** + * The staff member that created the return. + */ + private StaffMember staffMember; + /** * The status of the return. */ private ReturnStatus status; + /** + * A suggested financial outcome for the return. + */ + private SuggestedReturnFinancialOutcome suggestedFinancialOutcome; + /** * A suggested refund for the return. */ @@ -74,9 +116,36 @@ public class Return implements com.shopify.admin.types.Node { */ private int totalQuantity; + /** + * The order transactions created from the return. + */ + private OrderTransactionConnection transactions; + public Return() { } + /** + * The date and time when the return was closed. + */ + public OffsetDateTime getClosedAt() { + return closedAt; + } + + public void setClosedAt(OffsetDateTime closedAt) { + this.closedAt = closedAt; + } + + /** + * The date and time when the return was created. + */ + public OffsetDateTime getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(OffsetDateTime createdAt) { + this.createdAt = createdAt; + } + /** * Additional information about the declined return. */ @@ -143,6 +212,17 @@ public void setRefunds(RefundConnection refunds) { this.refunds = refunds; } + /** + * The date and time when the return was approved. + */ + public OffsetDateTime getRequestApprovedAt() { + return requestApprovedAt; + } + + public void setRequestApprovedAt(OffsetDateTime requestApprovedAt) { + this.requestApprovedAt = requestApprovedAt; + } + /** * The return line items attached to the return. */ @@ -177,6 +257,17 @@ public void setReverseFulfillmentOrders( this.reverseFulfillmentOrders = reverseFulfillmentOrders; } + /** + * The staff member that created the return. + */ + public StaffMember getStaffMember() { + return staffMember; + } + + public void setStaffMember(StaffMember staffMember) { + this.staffMember = staffMember; + } + /** * The status of the return. */ @@ -188,6 +279,18 @@ public void setStatus(ReturnStatus status) { this.status = status; } + /** + * A suggested financial outcome for the return. + */ + public SuggestedReturnFinancialOutcome getSuggestedFinancialOutcome() { + return suggestedFinancialOutcome; + } + + public void setSuggestedFinancialOutcome( + SuggestedReturnFinancialOutcome suggestedFinancialOutcome) { + this.suggestedFinancialOutcome = suggestedFinancialOutcome; + } + /** * A suggested refund for the return. */ @@ -210,9 +313,20 @@ public void setTotalQuantity(int totalQuantity) { this.totalQuantity = totalQuantity; } + /** + * The order transactions created from the return. + */ + public OrderTransactionConnection getTransactions() { + return transactions; + } + + public void setTransactions(OrderTransactionConnection transactions) { + this.transactions = transactions; + } + @Override public String toString() { - return "Return{decline='" + decline + "', exchangeLineItems='" + exchangeLineItems + "', id='" + id + "', name='" + name + "', order='" + order + "', refunds='" + refunds + "', returnLineItems='" + returnLineItems + "', returnShippingFees='" + returnShippingFees + "', reverseFulfillmentOrders='" + reverseFulfillmentOrders + "', status='" + status + "', suggestedRefund='" + suggestedRefund + "', totalQuantity='" + totalQuantity + "'}"; + return "Return{closedAt='" + closedAt + "', createdAt='" + createdAt + "', decline='" + decline + "', exchangeLineItems='" + exchangeLineItems + "', id='" + id + "', name='" + name + "', order='" + order + "', refunds='" + refunds + "', requestApprovedAt='" + requestApprovedAt + "', returnLineItems='" + returnLineItems + "', returnShippingFees='" + returnShippingFees + "', reverseFulfillmentOrders='" + reverseFulfillmentOrders + "', staffMember='" + staffMember + "', status='" + status + "', suggestedFinancialOutcome='" + suggestedFinancialOutcome + "', suggestedRefund='" + suggestedRefund + "', totalQuantity='" + totalQuantity + "', transactions='" + transactions + "'}"; } @Override @@ -220,23 +334,29 @@ public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Return that = (Return) o; - return Objects.equals(decline, that.decline) && + return Objects.equals(closedAt, that.closedAt) && + Objects.equals(createdAt, that.createdAt) && + Objects.equals(decline, that.decline) && Objects.equals(exchangeLineItems, that.exchangeLineItems) && Objects.equals(id, that.id) && Objects.equals(name, that.name) && Objects.equals(order, that.order) && Objects.equals(refunds, that.refunds) && + Objects.equals(requestApprovedAt, that.requestApprovedAt) && Objects.equals(returnLineItems, that.returnLineItems) && Objects.equals(returnShippingFees, that.returnShippingFees) && Objects.equals(reverseFulfillmentOrders, that.reverseFulfillmentOrders) && + Objects.equals(staffMember, that.staffMember) && Objects.equals(status, that.status) && + Objects.equals(suggestedFinancialOutcome, that.suggestedFinancialOutcome) && Objects.equals(suggestedRefund, that.suggestedRefund) && - totalQuantity == that.totalQuantity; + totalQuantity == that.totalQuantity && + Objects.equals(transactions, that.transactions); } @Override public int hashCode() { - return Objects.hash(decline, exchangeLineItems, id, name, order, refunds, returnLineItems, returnShippingFees, reverseFulfillmentOrders, status, suggestedRefund, totalQuantity); + return Objects.hash(closedAt, createdAt, decline, exchangeLineItems, id, name, order, refunds, requestApprovedAt, returnLineItems, returnShippingFees, reverseFulfillmentOrders, staffMember, status, suggestedFinancialOutcome, suggestedRefund, totalQuantity, transactions); } public static Builder newBuilder() { @@ -244,6 +364,16 @@ public static Builder newBuilder() { } public static class Builder { + /** + * The date and time when the return was closed. + */ + private OffsetDateTime closedAt; + + /** + * The date and time when the return was created. + */ + private OffsetDateTime createdAt; + /** * Additional information about the declined return. */ @@ -274,6 +404,11 @@ public static class Builder { */ private RefundConnection refunds; + /** + * The date and time when the return was approved. + */ + private OffsetDateTime requestApprovedAt; + /** * The return line items attached to the return. */ @@ -289,11 +424,21 @@ public static class Builder { */ private ReverseFulfillmentOrderConnection reverseFulfillmentOrders; + /** + * The staff member that created the return. + */ + private StaffMember staffMember; + /** * The status of the return. */ private ReturnStatus status; + /** + * A suggested financial outcome for the return. + */ + private SuggestedReturnFinancialOutcome suggestedFinancialOutcome; + /** * A suggested refund for the return. */ @@ -304,23 +449,50 @@ public static class Builder { */ private int totalQuantity; + /** + * The order transactions created from the return. + */ + private OrderTransactionConnection transactions; + public Return build() { Return result = new Return(); + result.closedAt = this.closedAt; + result.createdAt = this.createdAt; result.decline = this.decline; result.exchangeLineItems = this.exchangeLineItems; result.id = this.id; result.name = this.name; result.order = this.order; result.refunds = this.refunds; + result.requestApprovedAt = this.requestApprovedAt; result.returnLineItems = this.returnLineItems; result.returnShippingFees = this.returnShippingFees; result.reverseFulfillmentOrders = this.reverseFulfillmentOrders; + result.staffMember = this.staffMember; result.status = this.status; + result.suggestedFinancialOutcome = this.suggestedFinancialOutcome; result.suggestedRefund = this.suggestedRefund; result.totalQuantity = this.totalQuantity; + result.transactions = this.transactions; return result; } + /** + * The date and time when the return was closed. + */ + public Builder closedAt(OffsetDateTime closedAt) { + this.closedAt = closedAt; + return this; + } + + /** + * The date and time when the return was created. + */ + public Builder createdAt(OffsetDateTime createdAt) { + this.createdAt = createdAt; + return this; + } + /** * Additional information about the declined return. */ @@ -369,6 +541,14 @@ public Builder refunds(RefundConnection refunds) { return this; } + /** + * The date and time when the return was approved. + */ + public Builder requestApprovedAt(OffsetDateTime requestApprovedAt) { + this.requestApprovedAt = requestApprovedAt; + return this; + } + /** * The return line items attached to the return. */ @@ -394,6 +574,14 @@ public Builder reverseFulfillmentOrders( return this; } + /** + * The staff member that created the return. + */ + public Builder staffMember(StaffMember staffMember) { + this.staffMember = staffMember; + return this; + } + /** * The status of the return. */ @@ -402,6 +590,15 @@ public Builder status(ReturnStatus status) { return this; } + /** + * A suggested financial outcome for the return. + */ + public Builder suggestedFinancialOutcome( + SuggestedReturnFinancialOutcome suggestedFinancialOutcome) { + this.suggestedFinancialOutcome = suggestedFinancialOutcome; + return this; + } + /** * A suggested refund for the return. */ @@ -417,5 +614,13 @@ public Builder totalQuantity(int totalQuantity) { this.totalQuantity = totalQuantity; return this; } + + /** + * The order transactions created from the return. + */ + public Builder transactions(OrderTransactionConnection transactions) { + this.transactions = transactions; + return this; + } } } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnErrorCode.java index fcbd7fbf..372de06b 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnErrorCode.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnErrorCode.java @@ -46,6 +46,8 @@ public enum ReturnErrorCode { INVALID_STATE, + MISSING_PERMISSION, + NOTIFICATION_FAILED, NOT_EDITABLE, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnLineItem.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnLineItem.java index a195765a..2f1497a0 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnLineItem.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnLineItem.java @@ -7,7 +7,15 @@ import java.util.Objects; /** - * A return line item. + * An item that a customer returns from a fulfilled order. Links to the original [`FulfillmentLineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentLineItem) + * and tracks quantities through the return process. + * + * The line item includes the customer's reason for returning the item and any + * additional notes. It also tracks processing status with separate quantities for + * items that are processable, processed, refundable, and refunded. You can apply + * optional restocking fees to cover handling costs. + * + * Learn more about [creating a return](https://shopify.dev/docs/api/admin-graphql/latest/mutations/returnCreate). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE @@ -28,6 +36,16 @@ public class ReturnLineItem implements com.shopify.admin.types.Node, com.shopify */ private String id; + /** + * The quantity that can be processed. + */ + private int processableQuantity; + + /** + * The quantity that has been processed. + */ + private int processedQuantity; + /** * The quantity being returned. */ @@ -53,6 +71,11 @@ public class ReturnLineItem implements com.shopify.admin.types.Node, com.shopify */ private ReturnReason returnReason; + /** + * The standardized reason for why the item is being returned. + */ + private ReturnReasonDefinition returnReasonDefinition; + /** * Additional information about the reason for the return. Maximum length: 255 characters. */ @@ -63,6 +86,11 @@ public class ReturnLineItem implements com.shopify.admin.types.Node, com.shopify */ private Weight totalWeight; + /** + * The quantity that has't been processed. + */ + private int unprocessedQuantity; + /** * The total line price after all discounts on the line item, including both line * item level discounts and code-based line item discounts, are applied. @@ -105,6 +133,28 @@ public void setId(String id) { this.id = id; } + /** + * The quantity that can be processed. + */ + public int getProcessableQuantity() { + return processableQuantity; + } + + public void setProcessableQuantity(int processableQuantity) { + this.processableQuantity = processableQuantity; + } + + /** + * The quantity that has been processed. + */ + public int getProcessedQuantity() { + return processedQuantity; + } + + public void setProcessedQuantity(int processedQuantity) { + this.processedQuantity = processedQuantity; + } + /** * The quantity being returned. */ @@ -160,6 +210,17 @@ public void setReturnReason(ReturnReason returnReason) { this.returnReason = returnReason; } + /** + * The standardized reason for why the item is being returned. + */ + public ReturnReasonDefinition getReturnReasonDefinition() { + return returnReasonDefinition; + } + + public void setReturnReasonDefinition(ReturnReasonDefinition returnReasonDefinition) { + this.returnReasonDefinition = returnReasonDefinition; + } + /** * Additional information about the reason for the return. Maximum length: 255 characters. */ @@ -182,6 +243,17 @@ public void setTotalWeight(Weight totalWeight) { this.totalWeight = totalWeight; } + /** + * The quantity that has't been processed. + */ + public int getUnprocessedQuantity() { + return unprocessedQuantity; + } + + public void setUnprocessedQuantity(int unprocessedQuantity) { + this.unprocessedQuantity = unprocessedQuantity; + } + /** * The total line price after all discounts on the line item, including both line * item level discounts and code-based line item discounts, are applied. @@ -196,7 +268,7 @@ public void setWithCodeDiscountedTotalPriceSet(MoneyBag withCodeDiscountedTotalP @Override public String toString() { - return "ReturnLineItem{customerNote='" + customerNote + "', fulfillmentLineItem='" + fulfillmentLineItem + "', id='" + id + "', quantity='" + quantity + "', refundableQuantity='" + refundableQuantity + "', refundedQuantity='" + refundedQuantity + "', restockingFee='" + restockingFee + "', returnReason='" + returnReason + "', returnReasonNote='" + returnReasonNote + "', totalWeight='" + totalWeight + "', withCodeDiscountedTotalPriceSet='" + withCodeDiscountedTotalPriceSet + "'}"; + return "ReturnLineItem{customerNote='" + customerNote + "', fulfillmentLineItem='" + fulfillmentLineItem + "', id='" + id + "', processableQuantity='" + processableQuantity + "', processedQuantity='" + processedQuantity + "', quantity='" + quantity + "', refundableQuantity='" + refundableQuantity + "', refundedQuantity='" + refundedQuantity + "', restockingFee='" + restockingFee + "', returnReason='" + returnReason + "', returnReasonDefinition='" + returnReasonDefinition + "', returnReasonNote='" + returnReasonNote + "', totalWeight='" + totalWeight + "', unprocessedQuantity='" + unprocessedQuantity + "', withCodeDiscountedTotalPriceSet='" + withCodeDiscountedTotalPriceSet + "'}"; } @Override @@ -207,19 +279,23 @@ public boolean equals(Object o) { return Objects.equals(customerNote, that.customerNote) && Objects.equals(fulfillmentLineItem, that.fulfillmentLineItem) && Objects.equals(id, that.id) && + processableQuantity == that.processableQuantity && + processedQuantity == that.processedQuantity && quantity == that.quantity && refundableQuantity == that.refundableQuantity && refundedQuantity == that.refundedQuantity && Objects.equals(restockingFee, that.restockingFee) && Objects.equals(returnReason, that.returnReason) && + Objects.equals(returnReasonDefinition, that.returnReasonDefinition) && Objects.equals(returnReasonNote, that.returnReasonNote) && Objects.equals(totalWeight, that.totalWeight) && + unprocessedQuantity == that.unprocessedQuantity && Objects.equals(withCodeDiscountedTotalPriceSet, that.withCodeDiscountedTotalPriceSet); } @Override public int hashCode() { - return Objects.hash(customerNote, fulfillmentLineItem, id, quantity, refundableQuantity, refundedQuantity, restockingFee, returnReason, returnReasonNote, totalWeight, withCodeDiscountedTotalPriceSet); + return Objects.hash(customerNote, fulfillmentLineItem, id, processableQuantity, processedQuantity, quantity, refundableQuantity, refundedQuantity, restockingFee, returnReason, returnReasonDefinition, returnReasonNote, totalWeight, unprocessedQuantity, withCodeDiscountedTotalPriceSet); } public static Builder newBuilder() { @@ -242,6 +318,16 @@ public static class Builder { */ private String id; + /** + * The quantity that can be processed. + */ + private int processableQuantity; + + /** + * The quantity that has been processed. + */ + private int processedQuantity; + /** * The quantity being returned. */ @@ -267,6 +353,11 @@ public static class Builder { */ private ReturnReason returnReason; + /** + * The standardized reason for why the item is being returned. + */ + private ReturnReasonDefinition returnReasonDefinition; + /** * Additional information about the reason for the return. Maximum length: 255 characters. */ @@ -277,6 +368,11 @@ public static class Builder { */ private Weight totalWeight; + /** + * The quantity that has't been processed. + */ + private int unprocessedQuantity; + /** * The total line price after all discounts on the line item, including both line * item level discounts and code-based line item discounts, are applied. @@ -288,13 +384,17 @@ public ReturnLineItem build() { result.customerNote = this.customerNote; result.fulfillmentLineItem = this.fulfillmentLineItem; result.id = this.id; + result.processableQuantity = this.processableQuantity; + result.processedQuantity = this.processedQuantity; result.quantity = this.quantity; result.refundableQuantity = this.refundableQuantity; result.refundedQuantity = this.refundedQuantity; result.restockingFee = this.restockingFee; result.returnReason = this.returnReason; + result.returnReasonDefinition = this.returnReasonDefinition; result.returnReasonNote = this.returnReasonNote; result.totalWeight = this.totalWeight; + result.unprocessedQuantity = this.unprocessedQuantity; result.withCodeDiscountedTotalPriceSet = this.withCodeDiscountedTotalPriceSet; return result; } @@ -323,6 +423,22 @@ public Builder id(String id) { return this; } + /** + * The quantity that can be processed. + */ + public Builder processableQuantity(int processableQuantity) { + this.processableQuantity = processableQuantity; + return this; + } + + /** + * The quantity that has been processed. + */ + public Builder processedQuantity(int processedQuantity) { + this.processedQuantity = processedQuantity; + return this; + } + /** * The quantity being returned. */ @@ -363,6 +479,14 @@ public Builder returnReason(ReturnReason returnReason) { return this; } + /** + * The standardized reason for why the item is being returned. + */ + public Builder returnReasonDefinition(ReturnReasonDefinition returnReasonDefinition) { + this.returnReasonDefinition = returnReasonDefinition; + return this; + } + /** * Additional information about the reason for the return. Maximum length: 255 characters. */ @@ -379,6 +503,14 @@ public Builder totalWeight(Weight totalWeight) { return this; } + /** + * The quantity that has't been processed. + */ + public Builder unprocessedQuantity(int unprocessedQuantity) { + this.unprocessedQuantity = unprocessedQuantity; + return this; + } + /** * The total line price after all discounts on the line item, including both line * item level discounts and code-based line item discounts, are applied. diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnLineItemInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnLineItemInput.java index bd9d326e..42466b7a 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnLineItemInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnLineItemInput.java @@ -15,9 +15,10 @@ public class ReturnLineItemInput { private int quantity; /** - * The reason for the item to be returned. + * The ID of a [`ReturnReasonDefinition`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ReturnReasonDefinition). Accepts any ID from the full library of reasons available via [`returnReasonDefinitions`](https://shopify.dev/docs/api/admin-graphql/latest/queries/returnReasonDefinitions), + * not limited to the suggested reasons for the line item. */ - private ReturnReason returnReason; + private String returnReasonDefinitionId; /** * A note about the reason that the item is being returned. @@ -51,14 +52,15 @@ public void setQuantity(int quantity) { } /** - * The reason for the item to be returned. + * The ID of a [`ReturnReasonDefinition`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ReturnReasonDefinition). Accepts any ID from the full library of reasons available via [`returnReasonDefinitions`](https://shopify.dev/docs/api/admin-graphql/latest/queries/returnReasonDefinitions), + * not limited to the suggested reasons for the line item. */ - public ReturnReason getReturnReason() { - return returnReason; + public String getReturnReasonDefinitionId() { + return returnReasonDefinitionId; } - public void setReturnReason(ReturnReason returnReason) { - this.returnReason = returnReason; + public void setReturnReasonDefinitionId(String returnReasonDefinitionId) { + this.returnReasonDefinitionId = returnReasonDefinitionId; } /** @@ -98,7 +100,7 @@ public void setRestockingFee(RestockingFeeInput restockingFee) { @Override public String toString() { - return "ReturnLineItemInput{quantity='" + quantity + "', returnReason='" + returnReason + "', returnReasonNote='" + returnReasonNote + "', fulfillmentLineItemId='" + fulfillmentLineItemId + "', restockingFee='" + restockingFee + "'}"; + return "ReturnLineItemInput{quantity='" + quantity + "', returnReasonDefinitionId='" + returnReasonDefinitionId + "', returnReasonNote='" + returnReasonNote + "', fulfillmentLineItemId='" + fulfillmentLineItemId + "', restockingFee='" + restockingFee + "'}"; } @Override @@ -107,7 +109,7 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) return false; ReturnLineItemInput that = (ReturnLineItemInput) o; return quantity == that.quantity && - Objects.equals(returnReason, that.returnReason) && + Objects.equals(returnReasonDefinitionId, that.returnReasonDefinitionId) && Objects.equals(returnReasonNote, that.returnReasonNote) && Objects.equals(fulfillmentLineItemId, that.fulfillmentLineItemId) && Objects.equals(restockingFee, that.restockingFee); @@ -115,7 +117,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(quantity, returnReason, returnReasonNote, fulfillmentLineItemId, restockingFee); + return Objects.hash(quantity, returnReasonDefinitionId, returnReasonNote, fulfillmentLineItemId, restockingFee); } public static Builder newBuilder() { @@ -129,9 +131,10 @@ public static class Builder { private int quantity; /** - * The reason for the item to be returned. + * The ID of a [`ReturnReasonDefinition`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ReturnReasonDefinition). Accepts any ID from the full library of reasons available via [`returnReasonDefinitions`](https://shopify.dev/docs/api/admin-graphql/latest/queries/returnReasonDefinitions), + * not limited to the suggested reasons for the line item. */ - private ReturnReason returnReason; + private String returnReasonDefinitionId; /** * A note about the reason that the item is being returned. @@ -153,7 +156,7 @@ public static class Builder { public ReturnLineItemInput build() { ReturnLineItemInput result = new ReturnLineItemInput(); result.quantity = this.quantity; - result.returnReason = this.returnReason; + result.returnReasonDefinitionId = this.returnReasonDefinitionId; result.returnReasonNote = this.returnReasonNote; result.fulfillmentLineItemId = this.fulfillmentLineItemId; result.restockingFee = this.restockingFee; @@ -169,10 +172,11 @@ public Builder quantity(int quantity) { } /** - * The reason for the item to be returned. + * The ID of a [`ReturnReasonDefinition`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ReturnReasonDefinition). Accepts any ID from the full library of reasons available via [`returnReasonDefinitions`](https://shopify.dev/docs/api/admin-graphql/latest/queries/returnReasonDefinitions), + * not limited to the suggested reasons for the line item. */ - public Builder returnReason(ReturnReason returnReason) { - this.returnReason = returnReason; + public Builder returnReasonDefinitionId(String returnReasonDefinitionId) { + this.returnReasonDefinitionId = returnReasonDefinitionId; return this; } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnLineItemType.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnLineItemType.java index 8e6a6f91..f72c72ac 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnLineItemType.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnLineItemType.java @@ -27,6 +27,16 @@ public interface ReturnLineItemType { */ String getId(); + /** + * The quantity that can be processed. + */ + int getProcessableQuantity(); + + /** + * The quantity that has been processed. + */ + int getProcessedQuantity(); + /** * The quantity being returned. */ @@ -47,8 +57,18 @@ public interface ReturnLineItemType { */ ReturnReason getReturnReason(); + /** + * The standardized reason for why the item is being returned. + */ + ReturnReasonDefinition getReturnReasonDefinition(); + /** * Additional information about the reason for the return. Maximum length: 255 characters. */ String getReturnReasonNote(); + + /** + * The quantity that has't been processed. + */ + int getUnprocessedQuantity(); } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnOutcomeFinancialTransfer.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnOutcomeFinancialTransfer.java new file mode 100644 index 00000000..ce38bfb9 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnOutcomeFinancialTransfer.java @@ -0,0 +1,16 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.PROPERTY, + property = "__typename" +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = InvoiceReturnOutcome.class, name = "InvoiceReturnOutcome"), + @JsonSubTypes.Type(value = RefundReturnOutcome.class, name = "RefundReturnOutcome") +}) +public interface ReturnOutcomeFinancialTransfer { +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnProcessExchangeLineItemInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnProcessExchangeLineItemInput.java new file mode 100644 index 00000000..504fb8e2 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnProcessExchangeLineItemInput.java @@ -0,0 +1,104 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * The input fields for an exchange line item. + */ +public class ReturnProcessExchangeLineItemInput { + /** + * The ID of the exchange line item. + */ + private String id; + + /** + * The quantity of the exchange line item. + */ + private int quantity; + + public ReturnProcessExchangeLineItemInput() { + } + + /** + * The ID of the exchange line item. + */ + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + /** + * The quantity of the exchange line item. + */ + public int getQuantity() { + return quantity; + } + + public void setQuantity(int quantity) { + this.quantity = quantity; + } + + @Override + public String toString() { + return "ReturnProcessExchangeLineItemInput{id='" + id + "', quantity='" + quantity + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ReturnProcessExchangeLineItemInput that = (ReturnProcessExchangeLineItemInput) o; + return Objects.equals(id, that.id) && + quantity == that.quantity; + } + + @Override + public int hashCode() { + return Objects.hash(id, quantity); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The ID of the exchange line item. + */ + private String id; + + /** + * The quantity of the exchange line item. + */ + private int quantity; + + public ReturnProcessExchangeLineItemInput build() { + ReturnProcessExchangeLineItemInput result = new ReturnProcessExchangeLineItemInput(); + result.id = this.id; + result.quantity = this.quantity; + return result; + } + + /** + * The ID of the exchange line item. + */ + public Builder id(String id) { + this.id = id; + return this; + } + + /** + * The quantity of the exchange line item. + */ + public Builder quantity(int quantity) { + this.quantity = quantity; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnProcessFinancialTransferInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnProcessFinancialTransferInput.java new file mode 100644 index 00000000..f799cd58 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnProcessFinancialTransferInput.java @@ -0,0 +1,73 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * The input fields for the financial transfer for the return. + */ +public class ReturnProcessFinancialTransferInput { + /** + * Issue a refund for the return. + */ + private ReturnProcessRefundInput issueRefund; + + public ReturnProcessFinancialTransferInput() { + } + + /** + * Issue a refund for the return. + */ + public ReturnProcessRefundInput getIssueRefund() { + return issueRefund; + } + + public void setIssueRefund(ReturnProcessRefundInput issueRefund) { + this.issueRefund = issueRefund; + } + + @Override + public String toString() { + return "ReturnProcessFinancialTransferInput{issueRefund='" + issueRefund + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ReturnProcessFinancialTransferInput that = (ReturnProcessFinancialTransferInput) o; + return Objects.equals(issueRefund, that.issueRefund); + } + + @Override + public int hashCode() { + return Objects.hash(issueRefund); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * Issue a refund for the return. + */ + private ReturnProcessRefundInput issueRefund; + + public ReturnProcessFinancialTransferInput build() { + ReturnProcessFinancialTransferInput result = new ReturnProcessFinancialTransferInput(); + result.issueRefund = this.issueRefund; + return result; + } + + /** + * Issue a refund for the return. + */ + public Builder issueRefund(ReturnProcessRefundInput issueRefund) { + this.issueRefund = issueRefund; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnProcessInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnProcessInput.java new file mode 100644 index 00000000..573f97f5 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnProcessInput.java @@ -0,0 +1,324 @@ +package com.shopify.admin.types; + +import java.lang.Boolean; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Collections; +import java.util.List; +import java.util.Objects; + +/** + * The input fields for processing a return. + */ +public class ReturnProcessInput { + /** + * The ID of the return to be processed. + */ + private String returnId; + + /** + * The return line items list to be handled. + */ + private List returnLineItems = Collections.emptyList(); + + /** + * The exchange line items list to be handled. + */ + private List exchangeLineItems = Collections.emptyList(); + + /** + * The refund duties list to be handled. + */ + private List refundDuties = Collections.emptyList(); + + /** + * The shipping cost to refund. + */ + private RefundShippingInput refundShipping; + + /** + * ID of the tip line item. + */ + private String tipLineId; + + /** + * The note for the return. + */ + private String note; + + /** + * Whether to notify the customer about the return. + */ + private Boolean notifyCustomer = false; + + /** + * The financial transfer for the return. + */ + private ReturnProcessFinancialTransferInput financialTransfer; + + public ReturnProcessInput() { + } + + /** + * The ID of the return to be processed. + */ + public String getReturnId() { + return returnId; + } + + public void setReturnId(String returnId) { + this.returnId = returnId; + } + + /** + * The return line items list to be handled. + */ + public List getReturnLineItems() { + return returnLineItems; + } + + public void setReturnLineItems(List returnLineItems) { + this.returnLineItems = returnLineItems; + } + + /** + * The exchange line items list to be handled. + */ + public List getExchangeLineItems() { + return exchangeLineItems; + } + + public void setExchangeLineItems(List exchangeLineItems) { + this.exchangeLineItems = exchangeLineItems; + } + + /** + * The refund duties list to be handled. + */ + public List getRefundDuties() { + return refundDuties; + } + + public void setRefundDuties(List refundDuties) { + this.refundDuties = refundDuties; + } + + /** + * The shipping cost to refund. + */ + public RefundShippingInput getRefundShipping() { + return refundShipping; + } + + public void setRefundShipping(RefundShippingInput refundShipping) { + this.refundShipping = refundShipping; + } + + /** + * ID of the tip line item. + */ + public String getTipLineId() { + return tipLineId; + } + + public void setTipLineId(String tipLineId) { + this.tipLineId = tipLineId; + } + + /** + * The note for the return. + */ + public String getNote() { + return note; + } + + public void setNote(String note) { + this.note = note; + } + + /** + * Whether to notify the customer about the return. + */ + public Boolean getNotifyCustomer() { + return notifyCustomer; + } + + public void setNotifyCustomer(Boolean notifyCustomer) { + this.notifyCustomer = notifyCustomer; + } + + /** + * The financial transfer for the return. + */ + public ReturnProcessFinancialTransferInput getFinancialTransfer() { + return financialTransfer; + } + + public void setFinancialTransfer(ReturnProcessFinancialTransferInput financialTransfer) { + this.financialTransfer = financialTransfer; + } + + @Override + public String toString() { + return "ReturnProcessInput{returnId='" + returnId + "', returnLineItems='" + returnLineItems + "', exchangeLineItems='" + exchangeLineItems + "', refundDuties='" + refundDuties + "', refundShipping='" + refundShipping + "', tipLineId='" + tipLineId + "', note='" + note + "', notifyCustomer='" + notifyCustomer + "', financialTransfer='" + financialTransfer + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ReturnProcessInput that = (ReturnProcessInput) o; + return Objects.equals(returnId, that.returnId) && + Objects.equals(returnLineItems, that.returnLineItems) && + Objects.equals(exchangeLineItems, that.exchangeLineItems) && + Objects.equals(refundDuties, that.refundDuties) && + Objects.equals(refundShipping, that.refundShipping) && + Objects.equals(tipLineId, that.tipLineId) && + Objects.equals(note, that.note) && + Objects.equals(notifyCustomer, that.notifyCustomer) && + Objects.equals(financialTransfer, that.financialTransfer); + } + + @Override + public int hashCode() { + return Objects.hash(returnId, returnLineItems, exchangeLineItems, refundDuties, refundShipping, tipLineId, note, notifyCustomer, financialTransfer); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The ID of the return to be processed. + */ + private String returnId; + + /** + * The return line items list to be handled. + */ + private List returnLineItems = Collections.emptyList(); + + /** + * The exchange line items list to be handled. + */ + private List exchangeLineItems = Collections.emptyList(); + + /** + * The refund duties list to be handled. + */ + private List refundDuties = Collections.emptyList(); + + /** + * The shipping cost to refund. + */ + private RefundShippingInput refundShipping; + + /** + * ID of the tip line item. + */ + private String tipLineId; + + /** + * The note for the return. + */ + private String note; + + /** + * Whether to notify the customer about the return. + */ + private Boolean notifyCustomer = false; + + /** + * The financial transfer for the return. + */ + private ReturnProcessFinancialTransferInput financialTransfer; + + public ReturnProcessInput build() { + ReturnProcessInput result = new ReturnProcessInput(); + result.returnId = this.returnId; + result.returnLineItems = this.returnLineItems; + result.exchangeLineItems = this.exchangeLineItems; + result.refundDuties = this.refundDuties; + result.refundShipping = this.refundShipping; + result.tipLineId = this.tipLineId; + result.note = this.note; + result.notifyCustomer = this.notifyCustomer; + result.financialTransfer = this.financialTransfer; + return result; + } + + /** + * The ID of the return to be processed. + */ + public Builder returnId(String returnId) { + this.returnId = returnId; + return this; + } + + /** + * The return line items list to be handled. + */ + public Builder returnLineItems(List returnLineItems) { + this.returnLineItems = returnLineItems; + return this; + } + + /** + * The exchange line items list to be handled. + */ + public Builder exchangeLineItems(List exchangeLineItems) { + this.exchangeLineItems = exchangeLineItems; + return this; + } + + /** + * The refund duties list to be handled. + */ + public Builder refundDuties(List refundDuties) { + this.refundDuties = refundDuties; + return this; + } + + /** + * The shipping cost to refund. + */ + public Builder refundShipping(RefundShippingInput refundShipping) { + this.refundShipping = refundShipping; + return this; + } + + /** + * ID of the tip line item. + */ + public Builder tipLineId(String tipLineId) { + this.tipLineId = tipLineId; + return this; + } + + /** + * The note for the return. + */ + public Builder note(String note) { + this.note = note; + return this; + } + + /** + * Whether to notify the customer about the return. + */ + public Builder notifyCustomer(Boolean notifyCustomer) { + this.notifyCustomer = notifyCustomer; + return this; + } + + /** + * The financial transfer for the return. + */ + public Builder financialTransfer(ReturnProcessFinancialTransferInput financialTransfer) { + this.financialTransfer = financialTransfer; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnProcessPayload.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnProcessPayload.java new file mode 100644 index 00000000..6f662fd7 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnProcessPayload.java @@ -0,0 +1,105 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * Return type for `returnProcess` mutation. + */ +public class ReturnProcessPayload { + /** + * The processed return. + */ + private Return _return; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public ReturnProcessPayload() { + } + + /** + * The processed return. + */ + public Return getReturn() { + return _return; + } + + public void setReturn(Return _return) { + this._return = _return; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public List getUserErrors() { + return userErrors; + } + + public void setUserErrors(List userErrors) { + this.userErrors = userErrors; + } + + @Override + public String toString() { + return "ReturnProcessPayload{return='" + _return + "', userErrors='" + userErrors + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ReturnProcessPayload that = (ReturnProcessPayload) o; + return Objects.equals(_return, that._return) && + Objects.equals(userErrors, that.userErrors); + } + + @Override + public int hashCode() { + return Objects.hash(_return, userErrors); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The processed return. + */ + private Return _return; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public ReturnProcessPayload build() { + ReturnProcessPayload result = new ReturnProcessPayload(); + result._return = this._return; + result.userErrors = this.userErrors; + return result; + } + + /** + * The processed return. + */ + public Builder _return(Return _return) { + this._return = _return; + return this; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public Builder userErrors(List userErrors) { + this.userErrors = userErrors; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnProcessRefundInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnProcessRefundInput.java new file mode 100644 index 00000000..e6bd3030 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnProcessRefundInput.java @@ -0,0 +1,138 @@ +package com.shopify.admin.types; + +import java.lang.Boolean; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Collections; +import java.util.List; +import java.util.Objects; + +/** + * The input fields for the refund for the return. + */ +public class ReturnProcessRefundInput { + /** + * Whether to allow the total refunded amount to surpass the amount paid for the order. + */ + private Boolean allowOverRefunding = false; + + /** + * The order transactions for the refund. + */ + private List orderTransactions; + + /** + * A list of instructions to process the financial outcome of the refund. + */ + private List refundMethods = Collections.emptyList(); + + public ReturnProcessRefundInput() { + } + + /** + * Whether to allow the total refunded amount to surpass the amount paid for the order. + */ + public Boolean getAllowOverRefunding() { + return allowOverRefunding; + } + + public void setAllowOverRefunding(Boolean allowOverRefunding) { + this.allowOverRefunding = allowOverRefunding; + } + + /** + * The order transactions for the refund. + */ + public List getOrderTransactions() { + return orderTransactions; + } + + public void setOrderTransactions(List orderTransactions) { + this.orderTransactions = orderTransactions; + } + + /** + * A list of instructions to process the financial outcome of the refund. + */ + public List getRefundMethods() { + return refundMethods; + } + + public void setRefundMethods(List refundMethods) { + this.refundMethods = refundMethods; + } + + @Override + public String toString() { + return "ReturnProcessRefundInput{allowOverRefunding='" + allowOverRefunding + "', orderTransactions='" + orderTransactions + "', refundMethods='" + refundMethods + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ReturnProcessRefundInput that = (ReturnProcessRefundInput) o; + return Objects.equals(allowOverRefunding, that.allowOverRefunding) && + Objects.equals(orderTransactions, that.orderTransactions) && + Objects.equals(refundMethods, that.refundMethods); + } + + @Override + public int hashCode() { + return Objects.hash(allowOverRefunding, orderTransactions, refundMethods); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * Whether to allow the total refunded amount to surpass the amount paid for the order. + */ + private Boolean allowOverRefunding = false; + + /** + * The order transactions for the refund. + */ + private List orderTransactions; + + /** + * A list of instructions to process the financial outcome of the refund. + */ + private List refundMethods = Collections.emptyList(); + + public ReturnProcessRefundInput build() { + ReturnProcessRefundInput result = new ReturnProcessRefundInput(); + result.allowOverRefunding = this.allowOverRefunding; + result.orderTransactions = this.orderTransactions; + result.refundMethods = this.refundMethods; + return result; + } + + /** + * Whether to allow the total refunded amount to surpass the amount paid for the order. + */ + public Builder allowOverRefunding(Boolean allowOverRefunding) { + this.allowOverRefunding = allowOverRefunding; + return this; + } + + /** + * The order transactions for the refund. + */ + public Builder orderTransactions(List orderTransactions) { + this.orderTransactions = orderTransactions; + return this; + } + + /** + * A list of instructions to process the financial outcome of the refund. + */ + public Builder refundMethods(List refundMethods) { + this.refundMethods = refundMethods; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnProcessReturnLineItemInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnProcessReturnLineItemInput.java new file mode 100644 index 00000000..3d40cf34 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnProcessReturnLineItemInput.java @@ -0,0 +1,136 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * The input fields for a return line item. + */ +public class ReturnProcessReturnLineItemInput { + /** + * The ID of the return line item. + */ + private String id; + + /** + * The quantity of the return line item. + */ + private int quantity; + + /** + * The dispositions for the return line item. + */ + private List dispositions; + + public ReturnProcessReturnLineItemInput() { + } + + /** + * The ID of the return line item. + */ + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + /** + * The quantity of the return line item. + */ + public int getQuantity() { + return quantity; + } + + public void setQuantity(int quantity) { + this.quantity = quantity; + } + + /** + * The dispositions for the return line item. + */ + public List getDispositions() { + return dispositions; + } + + public void setDispositions(List dispositions) { + this.dispositions = dispositions; + } + + @Override + public String toString() { + return "ReturnProcessReturnLineItemInput{id='" + id + "', quantity='" + quantity + "', dispositions='" + dispositions + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ReturnProcessReturnLineItemInput that = (ReturnProcessReturnLineItemInput) o; + return Objects.equals(id, that.id) && + quantity == that.quantity && + Objects.equals(dispositions, that.dispositions); + } + + @Override + public int hashCode() { + return Objects.hash(id, quantity, dispositions); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The ID of the return line item. + */ + private String id; + + /** + * The quantity of the return line item. + */ + private int quantity; + + /** + * The dispositions for the return line item. + */ + private List dispositions; + + public ReturnProcessReturnLineItemInput build() { + ReturnProcessReturnLineItemInput result = new ReturnProcessReturnLineItemInput(); + result.id = this.id; + result.quantity = this.quantity; + result.dispositions = this.dispositions; + return result; + } + + /** + * The ID of the return line item. + */ + public Builder id(String id) { + this.id = id; + return this; + } + + /** + * The quantity of the return line item. + */ + public Builder quantity(int quantity) { + this.quantity = quantity; + return this; + } + + /** + * The dispositions for the return line item. + */ + public Builder dispositions(List dispositions) { + this.dispositions = dispositions; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnProcessingStatusFilterInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnProcessingStatusFilterInput.java new file mode 100644 index 00000000..e04799fc --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnProcessingStatusFilterInput.java @@ -0,0 +1,10 @@ +package com.shopify.admin.types; + +/** + * Filter line items based on processing status. + */ +public enum ReturnProcessingStatusFilterInput { + PROCESSED, + + PROCESSABLE +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnReasonDefinition.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnReasonDefinition.java new file mode 100644 index 00000000..dc879b33 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnReasonDefinition.java @@ -0,0 +1,219 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * A standardized reason for returning an item. + * + * - Shopify offers an expanded library of return reasons available to all merchants + * - For each product, Shopify suggests a curated subset of reasons based on the product's category + * - Suggested reasons aren't the only valid options. When creating a return via + * the API, you can use any reason from the [full library](https://shopify.dev/docs/api/admin-graphql/latest/queries/returnReasonDefinitions). + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NONE +) +public class ReturnReasonDefinition implements com.shopify.admin.types.Node { + /** + * Whether the return reason has been removed from taxonomy. + * + * Deleted reasons should not be presented to customers when creating new returns, but may still + * appear on existing returns that were created before the reason was deleted. This field enables + * graceful deprecation of return reasons without breaking historical data. + */ + private boolean deleted; + + /** + * A unique, human-readable, stable identifier for the return reason. + * + * Example values include "arrived-late", "comfort", "too-tight", "color-too-bright", and "quality". + * The handle remains consistent across API versions and localizations, making it suitable for programmatic use. + */ + private String handle; + + /** + * A globally-unique ID. + */ + private String id; + + /** + * The localized, user-facing name of the return reason. + * + * This field returns the reason name in the requested locale, automatically falling back to + * English if no translation is available. Use this field when displaying return reasons to + * customers or merchants. + */ + private String name; + + public ReturnReasonDefinition() { + } + + /** + * Whether the return reason has been removed from taxonomy. + * + * Deleted reasons should not be presented to customers when creating new returns, but may still + * appear on existing returns that were created before the reason was deleted. This field enables + * graceful deprecation of return reasons without breaking historical data. + */ + public boolean getDeleted() { + return deleted; + } + + public void setDeleted(boolean deleted) { + this.deleted = deleted; + } + + /** + * A unique, human-readable, stable identifier for the return reason. + * + * Example values include "arrived-late", "comfort", "too-tight", "color-too-bright", and "quality". + * The handle remains consistent across API versions and localizations, making it suitable for programmatic use. + */ + public String getHandle() { + return handle; + } + + public void setHandle(String handle) { + this.handle = handle; + } + + /** + * A globally-unique ID. + */ + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + /** + * The localized, user-facing name of the return reason. + * + * This field returns the reason name in the requested locale, automatically falling back to + * English if no translation is available. Use this field when displaying return reasons to + * customers or merchants. + */ + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + @Override + public String toString() { + return "ReturnReasonDefinition{deleted='" + deleted + "', handle='" + handle + "', id='" + id + "', name='" + name + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ReturnReasonDefinition that = (ReturnReasonDefinition) o; + return deleted == that.deleted && + Objects.equals(handle, that.handle) && + Objects.equals(id, that.id) && + Objects.equals(name, that.name); + } + + @Override + public int hashCode() { + return Objects.hash(deleted, handle, id, name); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * Whether the return reason has been removed from taxonomy. + * + * Deleted reasons should not be presented to customers when creating new returns, but may still + * appear on existing returns that were created before the reason was deleted. This field enables + * graceful deprecation of return reasons without breaking historical data. + */ + private boolean deleted; + + /** + * A unique, human-readable, stable identifier for the return reason. + * + * Example values include "arrived-late", "comfort", "too-tight", "color-too-bright", and "quality". + * The handle remains consistent across API versions and localizations, making it suitable for programmatic use. + */ + private String handle; + + /** + * A globally-unique ID. + */ + private String id; + + /** + * The localized, user-facing name of the return reason. + * + * This field returns the reason name in the requested locale, automatically falling back to + * English if no translation is available. Use this field when displaying return reasons to + * customers or merchants. + */ + private String name; + + public ReturnReasonDefinition build() { + ReturnReasonDefinition result = new ReturnReasonDefinition(); + result.deleted = this.deleted; + result.handle = this.handle; + result.id = this.id; + result.name = this.name; + return result; + } + + /** + * Whether the return reason has been removed from taxonomy. + * + * Deleted reasons should not be presented to customers when creating new returns, but may still + * appear on existing returns that were created before the reason was deleted. This field enables + * graceful deprecation of return reasons without breaking historical data. + */ + public Builder deleted(boolean deleted) { + this.deleted = deleted; + return this; + } + + /** + * A unique, human-readable, stable identifier for the return reason. + * + * Example values include "arrived-late", "comfort", "too-tight", "color-too-bright", and "quality". + * The handle remains consistent across API versions and localizations, making it suitable for programmatic use. + */ + public Builder handle(String handle) { + this.handle = handle; + return this; + } + + /** + * A globally-unique ID. + */ + public Builder id(String id) { + this.id = id; + return this; + } + + /** + * The localized, user-facing name of the return reason. + * + * This field returns the reason name in the requested locale, automatically falling back to + * English if no translation is available. Use this field when displaying return reasons to + * customers or merchants. + */ + public Builder name(String name) { + this.name = name; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnReasonDefinitionConnection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnReasonDefinitionConnection.java new file mode 100644 index 00000000..3722da78 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnReasonDefinitionConnection.java @@ -0,0 +1,152 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * An auto-generated type for paginating through multiple ReturnReasonDefinitions. + */ +public class ReturnReasonDefinitionConnection { + /** + * The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + */ + private List edges; + + /** + * A list of nodes that are contained in ReturnReasonDefinitionEdge. You can + * fetch data about an individual node, or you can follow the edges to fetch data + * about a collection of related nodes. At each node, you specify the fields that + * you want to retrieve. + */ + private List nodes; + + /** + * An object that’s used to retrieve [cursor + * information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + */ + private PageInfo pageInfo; + + public ReturnReasonDefinitionConnection() { + } + + /** + * The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + */ + public List getEdges() { + return edges; + } + + public void setEdges(List edges) { + this.edges = edges; + } + + /** + * A list of nodes that are contained in ReturnReasonDefinitionEdge. You can + * fetch data about an individual node, or you can follow the edges to fetch data + * about a collection of related nodes. At each node, you specify the fields that + * you want to retrieve. + */ + public List getNodes() { + return nodes; + } + + public void setNodes(List nodes) { + this.nodes = nodes; + } + + /** + * An object that’s used to retrieve [cursor + * information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + */ + public PageInfo getPageInfo() { + return pageInfo; + } + + public void setPageInfo(PageInfo pageInfo) { + this.pageInfo = pageInfo; + } + + @Override + public String toString() { + return "ReturnReasonDefinitionConnection{edges='" + edges + "', nodes='" + nodes + "', pageInfo='" + pageInfo + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ReturnReasonDefinitionConnection that = (ReturnReasonDefinitionConnection) o; + return Objects.equals(edges, that.edges) && + Objects.equals(nodes, that.nodes) && + Objects.equals(pageInfo, that.pageInfo); + } + + @Override + public int hashCode() { + return Objects.hash(edges, nodes, pageInfo); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + */ + private List edges; + + /** + * A list of nodes that are contained in ReturnReasonDefinitionEdge. You can + * fetch data about an individual node, or you can follow the edges to fetch data + * about a collection of related nodes. At each node, you specify the fields that + * you want to retrieve. + */ + private List nodes; + + /** + * An object that’s used to retrieve [cursor + * information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + */ + private PageInfo pageInfo; + + public ReturnReasonDefinitionConnection build() { + ReturnReasonDefinitionConnection result = new ReturnReasonDefinitionConnection(); + result.edges = this.edges; + result.nodes = this.nodes; + result.pageInfo = this.pageInfo; + return result; + } + + /** + * The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + */ + public Builder edges(List edges) { + this.edges = edges; + return this; + } + + /** + * A list of nodes that are contained in ReturnReasonDefinitionEdge. You can + * fetch data about an individual node, or you can follow the edges to fetch data + * about a collection of related nodes. At each node, you specify the fields that + * you want to retrieve. + */ + public Builder nodes(List nodes) { + this.nodes = nodes; + return this; + } + + /** + * An object that’s used to retrieve [cursor + * information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + */ + public Builder pageInfo(PageInfo pageInfo) { + this.pageInfo = pageInfo; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnReasonDefinitionEdge.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnReasonDefinitionEdge.java new file mode 100644 index 00000000..87aa3cfa --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnReasonDefinitionEdge.java @@ -0,0 +1,104 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * An auto-generated type which holds one ReturnReasonDefinition and a cursor during pagination. + */ +public class ReturnReasonDefinitionEdge { + /** + * The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + */ + private String cursor; + + /** + * The item at the end of ReturnReasonDefinitionEdge. + */ + private ReturnReasonDefinition node; + + public ReturnReasonDefinitionEdge() { + } + + /** + * The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + */ + public String getCursor() { + return cursor; + } + + public void setCursor(String cursor) { + this.cursor = cursor; + } + + /** + * The item at the end of ReturnReasonDefinitionEdge. + */ + public ReturnReasonDefinition getNode() { + return node; + } + + public void setNode(ReturnReasonDefinition node) { + this.node = node; + } + + @Override + public String toString() { + return "ReturnReasonDefinitionEdge{cursor='" + cursor + "', node='" + node + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ReturnReasonDefinitionEdge that = (ReturnReasonDefinitionEdge) o; + return Objects.equals(cursor, that.cursor) && + Objects.equals(node, that.node); + } + + @Override + public int hashCode() { + return Objects.hash(cursor, node); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + */ + private String cursor; + + /** + * The item at the end of ReturnReasonDefinitionEdge. + */ + private ReturnReasonDefinition node; + + public ReturnReasonDefinitionEdge build() { + ReturnReasonDefinitionEdge result = new ReturnReasonDefinitionEdge(); + result.cursor = this.cursor; + result.node = this.node; + return result; + } + + /** + * The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + */ + public Builder cursor(String cursor) { + this.cursor = cursor; + return this; + } + + /** + * The item at the end of ReturnReasonDefinitionEdge. + */ + public Builder node(ReturnReasonDefinition node) { + this.node = node; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnReasonDefinitionSortKeys.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnReasonDefinitionSortKeys.java new file mode 100644 index 00000000..8f23848d --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnReasonDefinitionSortKeys.java @@ -0,0 +1,12 @@ +package com.shopify.admin.types; + +/** + * The set of valid sort keys for the ReturnReasonDefinition query. + */ +public enum ReturnReasonDefinitionSortKeys { + HANDLE, + + ID, + + NAME +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnRequestLineItemInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnRequestLineItemInput.java index ad187e4f..6ea1fb4b 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnRequestLineItemInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnRequestLineItemInput.java @@ -26,9 +26,10 @@ public class ReturnRequestLineItemInput { private RestockingFeeInput restockingFee; /** - * The reason why the line item is being returned. + * The ID of a [`ReturnReasonDefinition`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ReturnReasonDefinition). Accepts any ID from the full library of reasons available via [`returnReasonDefinitions`](https://shopify.dev/docs/api/admin-graphql/latest/queries/returnReasonDefinitions), + * not limited to the suggested reasons for the line item. */ - private ReturnReason returnReason; + private String returnReasonDefinitionId; /** * A note from the customer that describes the item to be returned. @@ -75,14 +76,15 @@ public void setRestockingFee(RestockingFeeInput restockingFee) { } /** - * The reason why the line item is being returned. + * The ID of a [`ReturnReasonDefinition`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ReturnReasonDefinition). Accepts any ID from the full library of reasons available via [`returnReasonDefinitions`](https://shopify.dev/docs/api/admin-graphql/latest/queries/returnReasonDefinitions), + * not limited to the suggested reasons for the line item. */ - public ReturnReason getReturnReason() { - return returnReason; + public String getReturnReasonDefinitionId() { + return returnReasonDefinitionId; } - public void setReturnReason(ReturnReason returnReason) { - this.returnReason = returnReason; + public void setReturnReasonDefinitionId(String returnReasonDefinitionId) { + this.returnReasonDefinitionId = returnReasonDefinitionId; } /** @@ -100,7 +102,7 @@ public void setCustomerNote(String customerNote) { @Override public String toString() { - return "ReturnRequestLineItemInput{fulfillmentLineItemId='" + fulfillmentLineItemId + "', quantity='" + quantity + "', restockingFee='" + restockingFee + "', returnReason='" + returnReason + "', customerNote='" + customerNote + "'}"; + return "ReturnRequestLineItemInput{fulfillmentLineItemId='" + fulfillmentLineItemId + "', quantity='" + quantity + "', restockingFee='" + restockingFee + "', returnReasonDefinitionId='" + returnReasonDefinitionId + "', customerNote='" + customerNote + "'}"; } @Override @@ -111,13 +113,13 @@ public boolean equals(Object o) { return Objects.equals(fulfillmentLineItemId, that.fulfillmentLineItemId) && quantity == that.quantity && Objects.equals(restockingFee, that.restockingFee) && - Objects.equals(returnReason, that.returnReason) && + Objects.equals(returnReasonDefinitionId, that.returnReasonDefinitionId) && Objects.equals(customerNote, that.customerNote); } @Override public int hashCode() { - return Objects.hash(fulfillmentLineItemId, quantity, restockingFee, returnReason, customerNote); + return Objects.hash(fulfillmentLineItemId, quantity, restockingFee, returnReasonDefinitionId, customerNote); } public static Builder newBuilder() { @@ -142,9 +144,10 @@ public static class Builder { private RestockingFeeInput restockingFee; /** - * The reason why the line item is being returned. + * The ID of a [`ReturnReasonDefinition`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ReturnReasonDefinition). Accepts any ID from the full library of reasons available via [`returnReasonDefinitions`](https://shopify.dev/docs/api/admin-graphql/latest/queries/returnReasonDefinitions), + * not limited to the suggested reasons for the line item. */ - private ReturnReason returnReason; + private String returnReasonDefinitionId; /** * A note from the customer that describes the item to be returned. @@ -158,7 +161,7 @@ public ReturnRequestLineItemInput build() { result.fulfillmentLineItemId = this.fulfillmentLineItemId; result.quantity = this.quantity; result.restockingFee = this.restockingFee; - result.returnReason = this.returnReason; + result.returnReasonDefinitionId = this.returnReasonDefinitionId; result.customerNote = this.customerNote; return result; } @@ -189,10 +192,11 @@ public Builder restockingFee(RestockingFeeInput restockingFee) { } /** - * The reason why the line item is being returned. + * The ID of a [`ReturnReasonDefinition`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ReturnReasonDefinition). Accepts any ID from the full library of reasons available via [`returnReasonDefinitions`](https://shopify.dev/docs/api/admin-graphql/latest/queries/returnReasonDefinitions), + * not limited to the suggested reasons for the line item. */ - public Builder returnReason(ReturnReason returnReason) { - this.returnReason = returnReason; + public Builder returnReasonDefinitionId(String returnReasonDefinitionId) { + this.returnReasonDefinitionId = returnReasonDefinitionId; return this; } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnableFulfillment.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnableFulfillment.java index 39afa899..2d879f6b 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnableFulfillment.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReturnableFulfillment.java @@ -7,8 +7,15 @@ import java.util.Objects; /** - * A returnable fulfillment, which is an order that has been delivered - * and is eligible to be returned to the merchant. + * A delivered order that's eligible to be returned to the merchant. Provides the + * items from completed fulfillments that customers can select when initiating a return. + * + * Use returnable fulfillments to determine which items are eligible for return + * before creating a + * [`Return`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Return) with the [`returnCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/returnCreate) + * mutation. The line items show quantities that are available for return. + * + * Learn more about [building return management workflows](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/build-return-management). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReverseFulfillmentOrderDisposition.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReverseFulfillmentOrderDisposition.java index 02ec837f..2e0cc68c 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReverseFulfillmentOrderDisposition.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ReverseFulfillmentOrderDisposition.java @@ -4,6 +4,7 @@ import java.lang.Object; import java.lang.Override; import java.lang.String; +import java.time.OffsetDateTime; import java.util.Objects; /** @@ -13,6 +14,11 @@ use = JsonTypeInfo.Id.NONE ) public class ReverseFulfillmentOrderDisposition implements com.shopify.admin.types.Node { + /** + * The date and time when the disposition was created. + */ + private OffsetDateTime createdAt; + /** * A globally-unique ID. */ @@ -36,6 +42,17 @@ public class ReverseFulfillmentOrderDisposition implements com.shopify.admin.typ public ReverseFulfillmentOrderDisposition() { } + /** + * The date and time when the disposition was created. + */ + public OffsetDateTime getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(OffsetDateTime createdAt) { + this.createdAt = createdAt; + } + /** * A globally-unique ID. */ @@ -82,7 +99,7 @@ public void setType(ReverseFulfillmentOrderDispositionType type) { @Override public String toString() { - return "ReverseFulfillmentOrderDisposition{id='" + id + "', location='" + location + "', quantity='" + quantity + "', type='" + type + "'}"; + return "ReverseFulfillmentOrderDisposition{createdAt='" + createdAt + "', id='" + id + "', location='" + location + "', quantity='" + quantity + "', type='" + type + "'}"; } @Override @@ -90,7 +107,8 @@ public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; ReverseFulfillmentOrderDisposition that = (ReverseFulfillmentOrderDisposition) o; - return Objects.equals(id, that.id) && + return Objects.equals(createdAt, that.createdAt) && + Objects.equals(id, that.id) && Objects.equals(location, that.location) && quantity == that.quantity && Objects.equals(type, that.type); @@ -98,7 +116,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(id, location, quantity, type); + return Objects.hash(createdAt, id, location, quantity, type); } public static Builder newBuilder() { @@ -106,6 +124,11 @@ public static Builder newBuilder() { } public static class Builder { + /** + * The date and time when the disposition was created. + */ + private OffsetDateTime createdAt; + /** * A globally-unique ID. */ @@ -128,6 +151,7 @@ public static class Builder { public ReverseFulfillmentOrderDisposition build() { ReverseFulfillmentOrderDisposition result = new ReverseFulfillmentOrderDisposition(); + result.createdAt = this.createdAt; result.id = this.id; result.location = this.location; result.quantity = this.quantity; @@ -135,6 +159,14 @@ public ReverseFulfillmentOrderDisposition build() { return result; } + /** + * The date and time when the disposition was created. + */ + public Builder createdAt(OffsetDateTime createdAt) { + this.createdAt = createdAt; + return this; + } + /** * A globally-unique ID. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SavedSearch.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SavedSearch.java index d5bbe909..01275d83 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SavedSearch.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SavedSearch.java @@ -8,7 +8,16 @@ import java.util.Objects; /** - * A saved search is a representation of a search query saved in the admin. + * A representation of a search query in the Shopify admin used on resource index + * views. Preserves complex queries with search terms and filters, enabling + * merchants to quickly access frequently used data views. For example, a saved + * search can be applied to the product index table to filter products. The query + * string combines free-text search terms with structured filters to narrow results + * based on resource attributes. + * + * The search applies to a specific resource type such as [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer), + * [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product), + * [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order), or [`Collection`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection) objects. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ScriptTag.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ScriptTag.java index b640c0da..71caca18 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ScriptTag.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ScriptTag.java @@ -9,10 +9,9 @@ /** *
<h4>Theme app extensions</h4> - *

Your app might not pass App Store review if it uses script tags instead of - * theme app extensions. All new apps, and apps that integrate with Online Store - * 2.0 themes, should use theme app extensions, such as app blocks or app embed - * blocks. Script tags are an alternative you can use with only vintage themes. If your app integrates with a Shopify theme and you plan to submit it to the + * Shopify App Store, you must use theme app extensions instead of Script tags. + * Script tags can only be used with vintage themes. Learn more.

* diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SearchResult.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SearchResult.java index 5f1205df..21f8c71c 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SearchResult.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SearchResult.java @@ -20,7 +20,7 @@ public class SearchResult { private Image image; /** - * Returns the ID of the resource returned in the search result. + * Returns the resource represented by the search result. */ private Node reference; @@ -60,7 +60,7 @@ public void setImage(Image image) { } /** - * Returns the ID of the resource returned in the search result. + * Returns the resource represented by the search result. */ public Node getReference() { return reference; @@ -130,7 +130,7 @@ public static class Builder { private Image image; /** - * Returns the ID of the resource returned in the search result. + * Returns the resource represented by the search result. */ private Node reference; @@ -171,7 +171,7 @@ public Builder image(Image image) { } /** - * Returns the ID of the resource returned in the search result. + * Returns the resource represented by the search result. */ public Builder reference(Node reference) { this.reference = reference; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Segment.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Segment.java index 480f4dfd..38b4ed10 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Segment.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Segment.java @@ -8,7 +8,15 @@ import java.util.Objects; /** - * A dynamic collection of customers based on specific criteria. + * A group of [customers](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer) + * that meet specific criteria defined through [ShopifyQL + * query](https://shopify.dev/docs/api/shopifyql/segment-query-language-reference) + * conditions. Common use cases for segments include customer analytics, targeted + * marketing campaigns, and automated discount eligibility. + * + * The segment's [`query`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Segment#field-query) field contains ShopifyQL conditions that determine membership, such as purchase + * history, location, or engagement patterns. Tracks when the segment was created with [`creationDate`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Segment#field-creationDate) + * and when it was last modified with [`lastEditDate`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Segment#field-lastEditDate). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SegmentEnumFilter.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SegmentEnumFilter.java index 05dc9677..59025401 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SegmentEnumFilter.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SegmentEnumFilter.java @@ -7,7 +7,18 @@ import java.util.Objects; /** - * A filter with a set of possible values that's been added to a segment query. + * Categorical filter options for building customer segments using predefined value + * sets like countries, subscription statuses, or order frequencies. + * + * For example, a "Customer Location" enum filter provides options like "United States," "Canada," and "United Kingdom." + * + * Use this object to: + * - Access available categorical filter options + * - Understand filter capabilities and constraints + * - Build user interfaces for segment creation + * + * Includes localized display names, indicates whether multiple values can be + * selected, and provides technical query names for API operations. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SegmentEventFilterParameter.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SegmentEventFilterParameter.java index 202c1195..5d287c0c 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SegmentEventFilterParameter.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SegmentEventFilterParameter.java @@ -1,5 +1,6 @@ package com.shopify.admin.types; +import java.lang.Double; import java.lang.Object; import java.lang.Override; import java.lang.String; @@ -24,6 +25,16 @@ public class SegmentEventFilterParameter { */ private String localizedName; + /** + * The parameter maximum value range. + */ + private Double maxRange; + + /** + * The parameter minimum value range. + */ + private Double minRange; + /** * Whether the parameter is optional. */ @@ -75,6 +86,28 @@ public void setLocalizedName(String localizedName) { this.localizedName = localizedName; } + /** + * The parameter maximum value range. + */ + public Double getMaxRange() { + return maxRange; + } + + public void setMaxRange(Double maxRange) { + this.maxRange = maxRange; + } + + /** + * The parameter minimum value range. + */ + public Double getMinRange() { + return minRange; + } + + public void setMinRange(Double minRange) { + this.minRange = minRange; + } + /** * Whether the parameter is optional. */ @@ -110,7 +143,7 @@ public void setQueryName(String queryName) { @Override public String toString() { - return "SegmentEventFilterParameter{acceptsMultipleValues='" + acceptsMultipleValues + "', localizedDescription='" + localizedDescription + "', localizedName='" + localizedName + "', optional='" + optional + "', parameterType='" + parameterType + "', queryName='" + queryName + "'}"; + return "SegmentEventFilterParameter{acceptsMultipleValues='" + acceptsMultipleValues + "', localizedDescription='" + localizedDescription + "', localizedName='" + localizedName + "', maxRange='" + maxRange + "', minRange='" + minRange + "', optional='" + optional + "', parameterType='" + parameterType + "', queryName='" + queryName + "'}"; } @Override @@ -121,6 +154,8 @@ public boolean equals(Object o) { return acceptsMultipleValues == that.acceptsMultipleValues && Objects.equals(localizedDescription, that.localizedDescription) && Objects.equals(localizedName, that.localizedName) && + Objects.equals(maxRange, that.maxRange) && + Objects.equals(minRange, that.minRange) && optional == that.optional && Objects.equals(parameterType, that.parameterType) && Objects.equals(queryName, that.queryName); @@ -128,7 +163,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(acceptsMultipleValues, localizedDescription, localizedName, optional, parameterType, queryName); + return Objects.hash(acceptsMultipleValues, localizedDescription, localizedName, maxRange, minRange, optional, parameterType, queryName); } public static Builder newBuilder() { @@ -151,6 +186,16 @@ public static class Builder { */ private String localizedName; + /** + * The parameter maximum value range. + */ + private Double maxRange; + + /** + * The parameter minimum value range. + */ + private Double minRange; + /** * Whether the parameter is optional. */ @@ -171,6 +216,8 @@ public SegmentEventFilterParameter build() { result.acceptsMultipleValues = this.acceptsMultipleValues; result.localizedDescription = this.localizedDescription; result.localizedName = this.localizedName; + result.maxRange = this.maxRange; + result.minRange = this.minRange; result.optional = this.optional; result.parameterType = this.parameterType; result.queryName = this.queryName; @@ -201,6 +248,22 @@ public Builder localizedName(String localizedName) { return this; } + /** + * The parameter maximum value range. + */ + public Builder maxRange(Double maxRange) { + this.maxRange = maxRange; + return this; + } + + /** + * The parameter minimum value range. + */ + public Builder minRange(Double minRange) { + this.minRange = minRange; + return this; + } + /** * Whether the parameter is optional. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SegmentFloatFilter.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SegmentFloatFilter.java index b41e7a65..9bd424fb 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SegmentFloatFilter.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SegmentFloatFilter.java @@ -1,6 +1,7 @@ package com.shopify.admin.types; import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Double; import java.lang.Object; import java.lang.Override; import java.lang.String; @@ -18,6 +19,16 @@ public class SegmentFloatFilter implements com.shopify.admin.types.SegmentFilter */ private String localizedName; + /** + * The maximum range a filter can have. + */ + private Double maxRange; + + /** + * The minimum range a filter can have. + */ + private Double minRange; + /** * Whether a file can have multiple values for a single customer. */ @@ -42,6 +53,28 @@ public void setLocalizedName(String localizedName) { this.localizedName = localizedName; } + /** + * The maximum range a filter can have. + */ + public Double getMaxRange() { + return maxRange; + } + + public void setMaxRange(Double maxRange) { + this.maxRange = maxRange; + } + + /** + * The minimum range a filter can have. + */ + public Double getMinRange() { + return minRange; + } + + public void setMinRange(Double minRange) { + this.minRange = minRange; + } + /** * Whether a file can have multiple values for a single customer. */ @@ -66,7 +99,7 @@ public void setQueryName(String queryName) { @Override public String toString() { - return "SegmentFloatFilter{localizedName='" + localizedName + "', multiValue='" + multiValue + "', queryName='" + queryName + "'}"; + return "SegmentFloatFilter{localizedName='" + localizedName + "', maxRange='" + maxRange + "', minRange='" + minRange + "', multiValue='" + multiValue + "', queryName='" + queryName + "'}"; } @Override @@ -75,13 +108,15 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) return false; SegmentFloatFilter that = (SegmentFloatFilter) o; return Objects.equals(localizedName, that.localizedName) && + Objects.equals(maxRange, that.maxRange) && + Objects.equals(minRange, that.minRange) && multiValue == that.multiValue && Objects.equals(queryName, that.queryName); } @Override public int hashCode() { - return Objects.hash(localizedName, multiValue, queryName); + return Objects.hash(localizedName, maxRange, minRange, multiValue, queryName); } public static Builder newBuilder() { @@ -94,6 +129,16 @@ public static class Builder { */ private String localizedName; + /** + * The maximum range a filter can have. + */ + private Double maxRange; + + /** + * The minimum range a filter can have. + */ + private Double minRange; + /** * Whether a file can have multiple values for a single customer. */ @@ -107,6 +152,8 @@ public static class Builder { public SegmentFloatFilter build() { SegmentFloatFilter result = new SegmentFloatFilter(); result.localizedName = this.localizedName; + result.maxRange = this.maxRange; + result.minRange = this.minRange; result.multiValue = this.multiValue; result.queryName = this.queryName; return result; @@ -120,6 +167,22 @@ public Builder localizedName(String localizedName) { return this; } + /** + * The maximum range a filter can have. + */ + public Builder maxRange(Double maxRange) { + this.maxRange = maxRange; + return this; + } + + /** + * The minimum range a filter can have. + */ + public Builder minRange(Double minRange) { + this.minRange = minRange; + return this; + } + /** * Whether a file can have multiple values for a single customer. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SegmentIntegerFilter.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SegmentIntegerFilter.java index 9921190d..3bb9225e 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SegmentIntegerFilter.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SegmentIntegerFilter.java @@ -1,6 +1,7 @@ package com.shopify.admin.types; import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Double; import java.lang.Object; import java.lang.Override; import java.lang.String; @@ -18,6 +19,16 @@ public class SegmentIntegerFilter implements com.shopify.admin.types.SegmentFilt */ private String localizedName; + /** + * The maximum range a filter can have. + */ + private Double maxRange; + + /** + * The minimum range a filter can have. + */ + private Double minRange; + /** * Whether a file can have multiple values for a single customer. */ @@ -42,6 +53,28 @@ public void setLocalizedName(String localizedName) { this.localizedName = localizedName; } + /** + * The maximum range a filter can have. + */ + public Double getMaxRange() { + return maxRange; + } + + public void setMaxRange(Double maxRange) { + this.maxRange = maxRange; + } + + /** + * The minimum range a filter can have. + */ + public Double getMinRange() { + return minRange; + } + + public void setMinRange(Double minRange) { + this.minRange = minRange; + } + /** * Whether a file can have multiple values for a single customer. */ @@ -66,7 +99,7 @@ public void setQueryName(String queryName) { @Override public String toString() { - return "SegmentIntegerFilter{localizedName='" + localizedName + "', multiValue='" + multiValue + "', queryName='" + queryName + "'}"; + return "SegmentIntegerFilter{localizedName='" + localizedName + "', maxRange='" + maxRange + "', minRange='" + minRange + "', multiValue='" + multiValue + "', queryName='" + queryName + "'}"; } @Override @@ -75,13 +108,15 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) return false; SegmentIntegerFilter that = (SegmentIntegerFilter) o; return Objects.equals(localizedName, that.localizedName) && + Objects.equals(maxRange, that.maxRange) && + Objects.equals(minRange, that.minRange) && multiValue == that.multiValue && Objects.equals(queryName, that.queryName); } @Override public int hashCode() { - return Objects.hash(localizedName, multiValue, queryName); + return Objects.hash(localizedName, maxRange, minRange, multiValue, queryName); } public static Builder newBuilder() { @@ -94,6 +129,16 @@ public static class Builder { */ private String localizedName; + /** + * The maximum range a filter can have. + */ + private Double maxRange; + + /** + * The minimum range a filter can have. + */ + private Double minRange; + /** * Whether a file can have multiple values for a single customer. */ @@ -107,6 +152,8 @@ public static class Builder { public SegmentIntegerFilter build() { SegmentIntegerFilter result = new SegmentIntegerFilter(); result.localizedName = this.localizedName; + result.maxRange = this.maxRange; + result.minRange = this.minRange; result.multiValue = this.multiValue; result.queryName = this.queryName; return result; @@ -120,6 +167,22 @@ public Builder localizedName(String localizedName) { return this; } + /** + * The maximum range a filter can have. + */ + public Builder maxRange(Double maxRange) { + this.maxRange = maxRange; + return this; + } + + /** + * The minimum range a filter can have. + */ + public Builder minRange(Double minRange) { + this.minRange = minRange; + return this; + } + /** * Whether a file can have multiple values for a single customer. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SellingPlan.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SellingPlan.java index 6e10c08c..2b083a29 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SellingPlan.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SellingPlan.java @@ -10,12 +10,25 @@ import java.util.Objects; /** - * Represents how a product can be sold and purchased. Selling plans and associated records (selling plan groups - * and policies) are deleted 48 hours after a merchant uninstalls their subscriptions app. We recommend backing - * up these records if you need to restore them later. + * How a product can be sold and purchased through recurring billing or deferred + * purchase options. Defines the specific terms for subscriptions, pre-orders, or + * try-before-you-buy offers, including when to bill customers, when to fulfill + * orders, and what pricing adjustments to apply. * - * For more information on selling plans, refer to - * [*Creating and managing selling plans*](https://shopify.dev/docs/apps/selling-strategies/subscriptions/selling-plans). + * Each selling plan has billing, delivery, and pricing policies that control the + * purchase experience. The plan's [`options`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SellingPlan#field-SellingPlan.fields.options) and [`category`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SellingPlan#field-SellingPlan.fields.category) + * help merchants organize and report on different selling strategies. Plans are + * grouped within a [`SellingPlanGroup`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SellingPlanGroup) + * that associates them with + * [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) and [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) objects. + * + * > Caution: + * > Selling plans and associated records are automatically deleted 48 hours after + * a merchant uninstalls the + * [`App`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App) that + * created them. Back up these records if you need to restore them later. + * + * Learn more about [selling plans](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/selling-plans/build-a-selling-plan). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SellingPlanGroup.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SellingPlanGroup.java index 3c0072df..779fa967 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SellingPlanGroup.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SellingPlanGroup.java @@ -10,9 +10,20 @@ import java.util.Objects; /** - * Represents a selling method (for example, "Subscribe and save" or "Pre-paid"). Selling plan groups - * and associated records (selling plans and policies) are deleted 48 hours after a merchant - * uninstalls their subscriptions app. We recommend backing up these records if you need to restore them later. + * A selling method that defines how products can be sold through purchase options + * like subscriptions, pre-orders, or try-before-you-buy. Groups one or more [`SellingPlan`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SellingPlan) + * objects that share the same selling method and options. + * + * The group provides buyer-facing labels and merchant-facing descriptions for the + * selling method. Associates + * [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) and [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) + * objects with selling plan groups to offer them through these purchase options. + * + * > Caution: + * > Selling plan groups and their associated records are automatically deleted 48 + * hours after a merchant uninstalls the + * [`App`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App) that + * created them. Back up these records if you need to restore them later. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SellingPlanRemainingBalanceChargeTrigger.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SellingPlanRemainingBalanceChargeTrigger.java index 399e08c1..72936382 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SellingPlanRemainingBalanceChargeTrigger.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SellingPlanRemainingBalanceChargeTrigger.java @@ -8,5 +8,7 @@ public enum SellingPlanRemainingBalanceChargeTrigger { EXACT_TIME, - TIME_AFTER_CHECKOUT + TIME_AFTER_CHECKOUT, + + ON_FULFILLMENT } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShipmentLineItemSortKeys.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShipmentLineItemSortKeys.java new file mode 100644 index 00000000..c41dc636 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShipmentLineItemSortKeys.java @@ -0,0 +1,8 @@ +package com.shopify.admin.types; + +/** + * The set of valid sort keys for the ShipmentLineItem query. + */ +public enum ShipmentLineItemSortKeys { + ID +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShippingLine.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShippingLine.java index 651ca28c..e2f4c240 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShippingLine.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShippingLine.java @@ -8,7 +8,8 @@ import java.util.Objects; /** - * Represents the shipping details that the customer chose for their order. + * The shipping method that customers select for an order. Includes pricing + * details, carrier information, and any applied discounts or taxes. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE @@ -71,12 +72,16 @@ public class ShippingLine implements DraftOrderPlatformDiscountAllocationTarget private boolean isRemoved; /** - * The pre-tax shipping price without any discounts applied. + * The shipping price without any discounts applied. If the parent + * order.taxesIncluded field is true, then this price includes taxes. Otherwise, + * this field is the pre-tax price. */ private MoneyV2 originalPrice; /** - * The pre-tax shipping price without any discounts applied. + * The shipping price without any discounts applied. If the parent + * order.taxesIncluded field is true, then this price includes taxes. Otherwise, + * this field is the pre-tax price. */ private MoneyBag originalPriceSet; @@ -236,7 +241,9 @@ public void setIsRemoved(boolean isRemoved) { } /** - * The pre-tax shipping price without any discounts applied. + * The shipping price without any discounts applied. If the parent + * order.taxesIncluded field is true, then this price includes taxes. Otherwise, + * this field is the pre-tax price. */ public MoneyV2 getOriginalPrice() { return originalPrice; @@ -247,7 +254,9 @@ public void setOriginalPrice(MoneyV2 originalPrice) { } /** - * The pre-tax shipping price without any discounts applied. + * The shipping price without any discounts applied. If the parent + * order.taxesIncluded field is true, then this price includes taxes. Otherwise, + * this field is the pre-tax price. */ public MoneyBag getOriginalPriceSet() { return originalPriceSet; @@ -433,12 +442,16 @@ public static class Builder { private boolean isRemoved; /** - * The pre-tax shipping price without any discounts applied. + * The shipping price without any discounts applied. If the parent + * order.taxesIncluded field is true, then this price includes taxes. Otherwise, + * this field is the pre-tax price. */ private MoneyV2 originalPrice; /** - * The pre-tax shipping price without any discounts applied. + * The shipping price without any discounts applied. If the parent + * order.taxesIncluded field is true, then this price includes taxes. Otherwise, + * this field is the pre-tax price. */ private MoneyBag originalPriceSet; @@ -589,7 +602,9 @@ public Builder isRemoved(boolean isRemoved) { } /** - * The pre-tax shipping price without any discounts applied. + * The shipping price without any discounts applied. If the parent + * order.taxesIncluded field is true, then this price includes taxes. Otherwise, + * this field is the pre-tax price. */ public Builder originalPrice(MoneyV2 originalPrice) { this.originalPrice = originalPrice; @@ -597,7 +612,9 @@ public Builder originalPrice(MoneyV2 originalPrice) { } /** - * The pre-tax shipping price without any discounts applied. + * The shipping price without any discounts applied. If the parent + * order.taxesIncluded field is true, then this price includes taxes. Otherwise, + * this field is the pre-tax price. */ public Builder originalPriceSet(MoneyBag originalPriceSet) { this.originalPriceSet = originalPriceSet; diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShippingRate.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShippingRate.java index 8ba31c55..f5ed37c1 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShippingRate.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShippingRate.java @@ -6,7 +6,7 @@ import java.util.Objects; /** - * A shipping rate is an additional cost added to the cost of the products that were ordered. + * A shipping option associated with order delivery that includes pricing and service information. */ public class ShippingRate { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Shop.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Shop.java index fbee9f38..7774aed1 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Shop.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Shop.java @@ -9,12 +9,20 @@ import java.util.Objects; /** - * Represents a collection of general settings and information about the shop. + * The central configuration and settings hub for a Shopify store. Access business + * information, operational preferences, feature availability, and store-wide + * settings that control how the shop operates. + * + * Includes core business details like the shop name, contact emails, billing + * address, and currency settings. The shop configuration determines customer + * account requirements, available sales channels, enabled features, payment + * settings, and policy documents. Also provides access to shop-level resources + * such as staff members, fulfillment services, navigation settings, and storefront access tokens. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE ) -public class Shop implements MetafieldReferencer, com.shopify.admin.types.HasMetafields, com.shopify.admin.types.HasPublishedTranslations, com.shopify.admin.types.Node { +public class Shop implements MetafieldReferencer, com.shopify.admin.types.HasMetafieldDefinitions, com.shopify.admin.types.HasMetafields, com.shopify.admin.types.HasPublishedTranslations, com.shopify.admin.types.Node { /** * Account owner information. */ @@ -159,11 +167,6 @@ public class Shop implements MetafieldReferencer, com.shopify.admin.types.HasMet */ private StringConnection draftOrderTags; - /** - * List of saved draft orders on the shop. - */ - private DraftOrderConnection draftOrders; - /** * The shop owner's email address. * Shopify will use this email address to communicate with the shop owner. @@ -238,6 +241,11 @@ public class Shop implements MetafieldReferencer, com.shopify.admin.types.HasMet */ private Metafield metafield; + /** + * List of metafield definitions. + */ + private MetafieldDefinitionConnection metafieldDefinitions; + /** * A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) * that a merchant associates with a Shopify resource. @@ -360,6 +368,11 @@ public class Shop implements MetafieldReferencer, com.shopify.admin.types.HasMet */ private List shipsToCountries; + /** + * The shop's address information as it will appear to buyers. + */ + private ShopAddress shopAddress; + /** * The name of the shop owner. */ @@ -738,17 +751,6 @@ public void setDraftOrderTags(StringConnection draftOrderTags) { this.draftOrderTags = draftOrderTags; } - /** - * List of saved draft orders on the shop. - */ - public DraftOrderConnection getDraftOrders() { - return draftOrders; - } - - public void setDraftOrders(DraftOrderConnection draftOrders) { - this.draftOrders = draftOrders; - } - /** * The shop owner's email address. * Shopify will use this email address to communicate with the shop owner. @@ -908,6 +910,17 @@ public void setMetafield(Metafield metafield) { this.metafield = metafield; } + /** + * List of metafield definitions. + */ + public MetafieldDefinitionConnection getMetafieldDefinitions() { + return metafieldDefinitions; + } + + public void setMetafieldDefinitions(MetafieldDefinitionConnection metafieldDefinitions) { + this.metafieldDefinitions = metafieldDefinitions; + } + /** * A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) * that a merchant associates with a Shopify resource. @@ -1174,6 +1187,17 @@ public void setShipsToCountries(List shipsToCountries) { this.shipsToCountries = shipsToCountries; } + /** + * The shop's address information as it will appear to buyers. + */ + public ShopAddress getShopAddress() { + return shopAddress; + } + + public void setShopAddress(ShopAddress shopAddress) { + this.shopAddress = shopAddress; + } + /** * The name of the shop owner. */ @@ -1352,7 +1376,7 @@ public void setWeightUnit(WeightUnit weightUnit) { @Override public String toString() { - return "Shop{accountOwner='" + accountOwner + "', alerts='" + alerts + "', allProductCategories='" + allProductCategories + "', allProductCategoriesList='" + allProductCategoriesList + "', analyticsToken='" + analyticsToken + "', assignedFulfillmentOrders='" + assignedFulfillmentOrders + "', availableChannelApps='" + availableChannelApps + "', billingAddress='" + billingAddress + "', channelDefinitionsForInstalledChannels='" + channelDefinitionsForInstalledChannels + "', channels='" + channels + "', checkoutApiSupported='" + checkoutApiSupported + "', collections='" + collections + "', contactEmail='" + contactEmail + "', countriesInShippingZones='" + countriesInShippingZones + "', createdAt='" + createdAt + "', currencyCode='" + currencyCode + "', currencyFormats='" + currencyFormats + "', currencySettings='" + currencySettings + "', customerAccounts='" + customerAccounts + "', customerAccountsV2='" + customerAccountsV2 + "', customerTags='" + customerTags + "', customers='" + customers + "', description='" + description + "', domains='" + domains + "', draftOrderTags='" + draftOrderTags + "', draftOrders='" + draftOrders + "', email='" + email + "', enabledPresentmentCurrencies='" + enabledPresentmentCurrencies + "', entitlements='" + entitlements + "', features='" + features + "', fulfillmentOrders='" + fulfillmentOrders + "', fulfillmentServices='" + fulfillmentServices + "', ianaTimezone='" + ianaTimezone + "', id='" + id + "', inventoryItems='" + inventoryItems + "', limitedPendingOrderCount='" + limitedPendingOrderCount + "', locations='" + locations + "', marketingSmsConsentEnabledAtCheckout='" + marketingSmsConsentEnabledAtCheckout + "', merchantApprovalSignals='" + merchantApprovalSignals + "', metafield='" + metafield + "', metafields='" + metafields + "', myshopifyDomain='" + myshopifyDomain + "', name='" + name + "', navigationSettings='" + navigationSettings + "', orderNumberFormatPrefix='" + orderNumberFormatPrefix + "', orderNumberFormatSuffix='" + orderNumberFormatSuffix + "', orderTags='" + orderTags + "', orders='" + orders + "', paymentSettings='" + paymentSettings + "', plan='" + plan + "', primaryDomain='" + primaryDomain + "', productImages='" + productImages + "', productTags='" + productTags + "', productTypes='" + productTypes + "', productVariants='" + productVariants + "', productVendors='" + productVendors + "', products='" + products + "', publicationCount='" + publicationCount + "', resourceLimits='" + resourceLimits + "', richTextEditorUrl='" + richTextEditorUrl + "', search='" + search + "', searchFilters='" + searchFilters + "', setupRequired='" + setupRequired + "', shipsToCountries='" + shipsToCountries + "', shopOwnerName='" + shopOwnerName + "', shopPolicies='" + shopPolicies + "', staffMembers='" + staffMembers + "', storefrontAccessTokens='" + storefrontAccessTokens + "', storefrontUrl='" + storefrontUrl + "', taxShipping='" + taxShipping + "', taxesIncluded='" + taxesIncluded + "', timezoneAbbreviation='" + timezoneAbbreviation + "', timezoneOffset='" + timezoneOffset + "', timezoneOffsetMinutes='" + timezoneOffsetMinutes + "', transactionalSmsDisabled='" + transactionalSmsDisabled + "', translations='" + translations + "', unitSystem='" + unitSystem + "', updatedAt='" + updatedAt + "', url='" + url + "', weightUnit='" + weightUnit + "'}"; + return "Shop{accountOwner='" + accountOwner + "', alerts='" + alerts + "', allProductCategories='" + allProductCategories + "', allProductCategoriesList='" + allProductCategoriesList + "', analyticsToken='" + analyticsToken + "', assignedFulfillmentOrders='" + assignedFulfillmentOrders + "', availableChannelApps='" + availableChannelApps + "', billingAddress='" + billingAddress + "', channelDefinitionsForInstalledChannels='" + channelDefinitionsForInstalledChannels + "', channels='" + channels + "', checkoutApiSupported='" + checkoutApiSupported + "', collections='" + collections + "', contactEmail='" + contactEmail + "', countriesInShippingZones='" + countriesInShippingZones + "', createdAt='" + createdAt + "', currencyCode='" + currencyCode + "', currencyFormats='" + currencyFormats + "', currencySettings='" + currencySettings + "', customerAccounts='" + customerAccounts + "', customerAccountsV2='" + customerAccountsV2 + "', customerTags='" + customerTags + "', customers='" + customers + "', description='" + description + "', domains='" + domains + "', draftOrderTags='" + draftOrderTags + "', email='" + email + "', enabledPresentmentCurrencies='" + enabledPresentmentCurrencies + "', entitlements='" + entitlements + "', features='" + features + "', fulfillmentOrders='" + fulfillmentOrders + "', fulfillmentServices='" + fulfillmentServices + "', ianaTimezone='" + ianaTimezone + "', id='" + id + "', inventoryItems='" + inventoryItems + "', limitedPendingOrderCount='" + limitedPendingOrderCount + "', locations='" + locations + "', marketingSmsConsentEnabledAtCheckout='" + marketingSmsConsentEnabledAtCheckout + "', merchantApprovalSignals='" + merchantApprovalSignals + "', metafield='" + metafield + "', metafieldDefinitions='" + metafieldDefinitions + "', metafields='" + metafields + "', myshopifyDomain='" + myshopifyDomain + "', name='" + name + "', navigationSettings='" + navigationSettings + "', orderNumberFormatPrefix='" + orderNumberFormatPrefix + "', orderNumberFormatSuffix='" + orderNumberFormatSuffix + "', orderTags='" + orderTags + "', orders='" + orders + "', paymentSettings='" + paymentSettings + "', plan='" + plan + "', primaryDomain='" + primaryDomain + "', productImages='" + productImages + "', productTags='" + productTags + "', productTypes='" + productTypes + "', productVariants='" + productVariants + "', productVendors='" + productVendors + "', products='" + products + "', publicationCount='" + publicationCount + "', resourceLimits='" + resourceLimits + "', richTextEditorUrl='" + richTextEditorUrl + "', search='" + search + "', searchFilters='" + searchFilters + "', setupRequired='" + setupRequired + "', shipsToCountries='" + shipsToCountries + "', shopAddress='" + shopAddress + "', shopOwnerName='" + shopOwnerName + "', shopPolicies='" + shopPolicies + "', staffMembers='" + staffMembers + "', storefrontAccessTokens='" + storefrontAccessTokens + "', storefrontUrl='" + storefrontUrl + "', taxShipping='" + taxShipping + "', taxesIncluded='" + taxesIncluded + "', timezoneAbbreviation='" + timezoneAbbreviation + "', timezoneOffset='" + timezoneOffset + "', timezoneOffsetMinutes='" + timezoneOffsetMinutes + "', transactionalSmsDisabled='" + transactionalSmsDisabled + "', translations='" + translations + "', unitSystem='" + unitSystem + "', updatedAt='" + updatedAt + "', url='" + url + "', weightUnit='" + weightUnit + "'}"; } @Override @@ -1385,7 +1409,6 @@ public boolean equals(Object o) { Objects.equals(description, that.description) && Objects.equals(domains, that.domains) && Objects.equals(draftOrderTags, that.draftOrderTags) && - Objects.equals(draftOrders, that.draftOrders) && Objects.equals(email, that.email) && Objects.equals(enabledPresentmentCurrencies, that.enabledPresentmentCurrencies) && Objects.equals(entitlements, that.entitlements) && @@ -1400,6 +1423,7 @@ public boolean equals(Object o) { marketingSmsConsentEnabledAtCheckout == that.marketingSmsConsentEnabledAtCheckout && Objects.equals(merchantApprovalSignals, that.merchantApprovalSignals) && Objects.equals(metafield, that.metafield) && + Objects.equals(metafieldDefinitions, that.metafieldDefinitions) && Objects.equals(metafields, that.metafields) && Objects.equals(myshopifyDomain, that.myshopifyDomain) && Objects.equals(name, that.name) && @@ -1424,6 +1448,7 @@ public boolean equals(Object o) { Objects.equals(searchFilters, that.searchFilters) && setupRequired == that.setupRequired && Objects.equals(shipsToCountries, that.shipsToCountries) && + Objects.equals(shopAddress, that.shopAddress) && Objects.equals(shopOwnerName, that.shopOwnerName) && Objects.equals(shopPolicies, that.shopPolicies) && Objects.equals(staffMembers, that.staffMembers) && @@ -1444,7 +1469,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(accountOwner, alerts, allProductCategories, allProductCategoriesList, analyticsToken, assignedFulfillmentOrders, availableChannelApps, billingAddress, channelDefinitionsForInstalledChannels, channels, checkoutApiSupported, collections, contactEmail, countriesInShippingZones, createdAt, currencyCode, currencyFormats, currencySettings, customerAccounts, customerAccountsV2, customerTags, customers, description, domains, draftOrderTags, draftOrders, email, enabledPresentmentCurrencies, entitlements, features, fulfillmentOrders, fulfillmentServices, ianaTimezone, id, inventoryItems, limitedPendingOrderCount, locations, marketingSmsConsentEnabledAtCheckout, merchantApprovalSignals, metafield, metafields, myshopifyDomain, name, navigationSettings, orderNumberFormatPrefix, orderNumberFormatSuffix, orderTags, orders, paymentSettings, plan, primaryDomain, productImages, productTags, productTypes, productVariants, productVendors, products, publicationCount, resourceLimits, richTextEditorUrl, search, searchFilters, setupRequired, shipsToCountries, shopOwnerName, shopPolicies, staffMembers, storefrontAccessTokens, storefrontUrl, taxShipping, taxesIncluded, timezoneAbbreviation, timezoneOffset, timezoneOffsetMinutes, transactionalSmsDisabled, translations, unitSystem, updatedAt, url, weightUnit); + return Objects.hash(accountOwner, alerts, allProductCategories, allProductCategoriesList, analyticsToken, assignedFulfillmentOrders, availableChannelApps, billingAddress, channelDefinitionsForInstalledChannels, channels, checkoutApiSupported, collections, contactEmail, countriesInShippingZones, createdAt, currencyCode, currencyFormats, currencySettings, customerAccounts, customerAccountsV2, customerTags, customers, description, domains, draftOrderTags, email, enabledPresentmentCurrencies, entitlements, features, fulfillmentOrders, fulfillmentServices, ianaTimezone, id, inventoryItems, limitedPendingOrderCount, locations, marketingSmsConsentEnabledAtCheckout, merchantApprovalSignals, metafield, metafieldDefinitions, metafields, myshopifyDomain, name, navigationSettings, orderNumberFormatPrefix, orderNumberFormatSuffix, orderTags, orders, paymentSettings, plan, primaryDomain, productImages, productTags, productTypes, productVariants, productVendors, products, publicationCount, resourceLimits, richTextEditorUrl, search, searchFilters, setupRequired, shipsToCountries, shopAddress, shopOwnerName, shopPolicies, staffMembers, storefrontAccessTokens, storefrontUrl, taxShipping, taxesIncluded, timezoneAbbreviation, timezoneOffset, timezoneOffsetMinutes, transactionalSmsDisabled, translations, unitSystem, updatedAt, url, weightUnit); } public static Builder newBuilder() { @@ -1596,11 +1621,6 @@ public static class Builder { */ private StringConnection draftOrderTags; - /** - * List of saved draft orders on the shop. - */ - private DraftOrderConnection draftOrders; - /** * The shop owner's email address. * Shopify will use this email address to communicate with the shop owner. @@ -1675,6 +1695,11 @@ public static class Builder { */ private Metafield metafield; + /** + * List of metafield definitions. + */ + private MetafieldDefinitionConnection metafieldDefinitions; + /** * A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) * that a merchant associates with a Shopify resource. @@ -1797,6 +1822,11 @@ public static class Builder { */ private List shipsToCountries; + /** + * The shop's address information as it will appear to buyers. + */ + private ShopAddress shopAddress; + /** * The name of the shop owner. */ @@ -1904,7 +1934,6 @@ public Shop build() { result.description = this.description; result.domains = this.domains; result.draftOrderTags = this.draftOrderTags; - result.draftOrders = this.draftOrders; result.email = this.email; result.enabledPresentmentCurrencies = this.enabledPresentmentCurrencies; result.entitlements = this.entitlements; @@ -1919,6 +1948,7 @@ public Shop build() { result.marketingSmsConsentEnabledAtCheckout = this.marketingSmsConsentEnabledAtCheckout; result.merchantApprovalSignals = this.merchantApprovalSignals; result.metafield = this.metafield; + result.metafieldDefinitions = this.metafieldDefinitions; result.metafields = this.metafields; result.myshopifyDomain = this.myshopifyDomain; result.name = this.name; @@ -1943,6 +1973,7 @@ public Shop build() { result.searchFilters = this.searchFilters; result.setupRequired = this.setupRequired; result.shipsToCountries = this.shipsToCountries; + result.shopAddress = this.shopAddress; result.shopOwnerName = this.shopOwnerName; result.shopPolicies = this.shopPolicies; result.staffMembers = this.staffMembers; @@ -2182,14 +2213,6 @@ public Builder draftOrderTags(StringConnection draftOrderTags) { return this; } - /** - * List of saved draft orders on the shop. - */ - public Builder draftOrders(DraftOrderConnection draftOrders) { - this.draftOrders = draftOrders; - return this; - } - /** * The shop owner's email address. * Shopify will use this email address to communicate with the shop owner. @@ -2307,6 +2330,14 @@ public Builder metafield(Metafield metafield) { return this; } + /** + * List of metafield definitions. + */ + public Builder metafieldDefinitions(MetafieldDefinitionConnection metafieldDefinitions) { + this.metafieldDefinitions = metafieldDefinitions; + return this; + } + /** * A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) * that a merchant associates with a Shopify resource. @@ -2501,6 +2532,14 @@ public Builder shipsToCountries(List shipsToCountries) { return this; } + /** + * The shop's address information as it will appear to buyers. + */ + public Builder shopAddress(ShopAddress shopAddress) { + this.shopAddress = shopAddress; + return this; + } + /** * The name of the shop owner. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequest.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequest.java new file mode 100644 index 00000000..c5bff4c5 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequest.java @@ -0,0 +1,355 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * Represents a Shop Pay payment request. + */ +public class ShopPayPaymentRequest { + /** + * The discounts for the payment request order. + */ + private List discounts; + + /** + * The line items for the payment request. + */ + private List lineItems; + + /** + * The presentment currency for the payment request. + */ + private CurrencyCode presentmentCurrency; + + /** + * The delivery method type for the payment request. + */ + private ShopPayPaymentRequestDeliveryMethodType selectedDeliveryMethodType; + + /** + * The shipping address for the payment request. + */ + private ShopPayPaymentRequestContactField shippingAddress; + + /** + * The shipping lines for the payment request. + */ + private List shippingLines; + + /** + * The subtotal amount for the payment request. + */ + private MoneyV2 subtotal; + + /** + * The total amount for the payment request. + */ + private MoneyV2 total; + + /** + * The total shipping price for the payment request. + */ + private ShopPayPaymentRequestTotalShippingPrice totalShippingPrice; + + /** + * The total tax for the payment request. + */ + private MoneyV2 totalTax; + + public ShopPayPaymentRequest() { + } + + /** + * The discounts for the payment request order. + */ + public List getDiscounts() { + return discounts; + } + + public void setDiscounts(List discounts) { + this.discounts = discounts; + } + + /** + * The line items for the payment request. + */ + public List getLineItems() { + return lineItems; + } + + public void setLineItems(List lineItems) { + this.lineItems = lineItems; + } + + /** + * The presentment currency for the payment request. + */ + public CurrencyCode getPresentmentCurrency() { + return presentmentCurrency; + } + + public void setPresentmentCurrency(CurrencyCode presentmentCurrency) { + this.presentmentCurrency = presentmentCurrency; + } + + /** + * The delivery method type for the payment request. + */ + public ShopPayPaymentRequestDeliveryMethodType getSelectedDeliveryMethodType() { + return selectedDeliveryMethodType; + } + + public void setSelectedDeliveryMethodType( + ShopPayPaymentRequestDeliveryMethodType selectedDeliveryMethodType) { + this.selectedDeliveryMethodType = selectedDeliveryMethodType; + } + + /** + * The shipping address for the payment request. + */ + public ShopPayPaymentRequestContactField getShippingAddress() { + return shippingAddress; + } + + public void setShippingAddress(ShopPayPaymentRequestContactField shippingAddress) { + this.shippingAddress = shippingAddress; + } + + /** + * The shipping lines for the payment request. + */ + public List getShippingLines() { + return shippingLines; + } + + public void setShippingLines(List shippingLines) { + this.shippingLines = shippingLines; + } + + /** + * The subtotal amount for the payment request. + */ + public MoneyV2 getSubtotal() { + return subtotal; + } + + public void setSubtotal(MoneyV2 subtotal) { + this.subtotal = subtotal; + } + + /** + * The total amount for the payment request. + */ + public MoneyV2 getTotal() { + return total; + } + + public void setTotal(MoneyV2 total) { + this.total = total; + } + + /** + * The total shipping price for the payment request. + */ + public ShopPayPaymentRequestTotalShippingPrice getTotalShippingPrice() { + return totalShippingPrice; + } + + public void setTotalShippingPrice(ShopPayPaymentRequestTotalShippingPrice totalShippingPrice) { + this.totalShippingPrice = totalShippingPrice; + } + + /** + * The total tax for the payment request. + */ + public MoneyV2 getTotalTax() { + return totalTax; + } + + public void setTotalTax(MoneyV2 totalTax) { + this.totalTax = totalTax; + } + + @Override + public String toString() { + return "ShopPayPaymentRequest{discounts='" + discounts + "', lineItems='" + lineItems + "', presentmentCurrency='" + presentmentCurrency + "', selectedDeliveryMethodType='" + selectedDeliveryMethodType + "', shippingAddress='" + shippingAddress + "', shippingLines='" + shippingLines + "', subtotal='" + subtotal + "', total='" + total + "', totalShippingPrice='" + totalShippingPrice + "', totalTax='" + totalTax + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ShopPayPaymentRequest that = (ShopPayPaymentRequest) o; + return Objects.equals(discounts, that.discounts) && + Objects.equals(lineItems, that.lineItems) && + Objects.equals(presentmentCurrency, that.presentmentCurrency) && + Objects.equals(selectedDeliveryMethodType, that.selectedDeliveryMethodType) && + Objects.equals(shippingAddress, that.shippingAddress) && + Objects.equals(shippingLines, that.shippingLines) && + Objects.equals(subtotal, that.subtotal) && + Objects.equals(total, that.total) && + Objects.equals(totalShippingPrice, that.totalShippingPrice) && + Objects.equals(totalTax, that.totalTax); + } + + @Override + public int hashCode() { + return Objects.hash(discounts, lineItems, presentmentCurrency, selectedDeliveryMethodType, shippingAddress, shippingLines, subtotal, total, totalShippingPrice, totalTax); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The discounts for the payment request order. + */ + private List discounts; + + /** + * The line items for the payment request. + */ + private List lineItems; + + /** + * The presentment currency for the payment request. + */ + private CurrencyCode presentmentCurrency; + + /** + * The delivery method type for the payment request. + */ + private ShopPayPaymentRequestDeliveryMethodType selectedDeliveryMethodType; + + /** + * The shipping address for the payment request. + */ + private ShopPayPaymentRequestContactField shippingAddress; + + /** + * The shipping lines for the payment request. + */ + private List shippingLines; + + /** + * The subtotal amount for the payment request. + */ + private MoneyV2 subtotal; + + /** + * The total amount for the payment request. + */ + private MoneyV2 total; + + /** + * The total shipping price for the payment request. + */ + private ShopPayPaymentRequestTotalShippingPrice totalShippingPrice; + + /** + * The total tax for the payment request. + */ + private MoneyV2 totalTax; + + public ShopPayPaymentRequest build() { + ShopPayPaymentRequest result = new ShopPayPaymentRequest(); + result.discounts = this.discounts; + result.lineItems = this.lineItems; + result.presentmentCurrency = this.presentmentCurrency; + result.selectedDeliveryMethodType = this.selectedDeliveryMethodType; + result.shippingAddress = this.shippingAddress; + result.shippingLines = this.shippingLines; + result.subtotal = this.subtotal; + result.total = this.total; + result.totalShippingPrice = this.totalShippingPrice; + result.totalTax = this.totalTax; + return result; + } + + /** + * The discounts for the payment request order. + */ + public Builder discounts(List discounts) { + this.discounts = discounts; + return this; + } + + /** + * The line items for the payment request. + */ + public Builder lineItems(List lineItems) { + this.lineItems = lineItems; + return this; + } + + /** + * The presentment currency for the payment request. + */ + public Builder presentmentCurrency(CurrencyCode presentmentCurrency) { + this.presentmentCurrency = presentmentCurrency; + return this; + } + + /** + * The delivery method type for the payment request. + */ + public Builder selectedDeliveryMethodType( + ShopPayPaymentRequestDeliveryMethodType selectedDeliveryMethodType) { + this.selectedDeliveryMethodType = selectedDeliveryMethodType; + return this; + } + + /** + * The shipping address for the payment request. + */ + public Builder shippingAddress(ShopPayPaymentRequestContactField shippingAddress) { + this.shippingAddress = shippingAddress; + return this; + } + + /** + * The shipping lines for the payment request. + */ + public Builder shippingLines(List shippingLines) { + this.shippingLines = shippingLines; + return this; + } + + /** + * The subtotal amount for the payment request. + */ + public Builder subtotal(MoneyV2 subtotal) { + this.subtotal = subtotal; + return this; + } + + /** + * The total amount for the payment request. + */ + public Builder total(MoneyV2 total) { + this.total = total; + return this; + } + + /** + * The total shipping price for the payment request. + */ + public Builder totalShippingPrice(ShopPayPaymentRequestTotalShippingPrice totalShippingPrice) { + this.totalShippingPrice = totalShippingPrice; + return this; + } + + /** + * The total tax for the payment request. + */ + public Builder totalTax(MoneyV2 totalTax) { + this.totalTax = totalTax; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequestContactField.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequestContactField.java new file mode 100644 index 00000000..cd086efa --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequestContactField.java @@ -0,0 +1,383 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * Represents a contact field for a Shop Pay payment request. + */ +public class ShopPayPaymentRequestContactField { + /** + * The first address line of the contact field. + */ + private String address1; + + /** + * The second address line of the contact field. + */ + private String address2; + + /** + * The city of the contact field. + */ + private String city; + + /** + * The company name of the contact field. + */ + private String companyName; + + /** + * The country of the contact field. + */ + private String countryCode; + + /** + * The email of the contact field. + */ + private String email; + + /** + * The first name of the contact field. + */ + private String firstName; + + /** + * The last name of the contact field. + */ + private String lastName; + + /** + * The phone number of the contact field. + */ + private String phone; + + /** + * The postal code of the contact field. + */ + private String postalCode; + + /** + * The province of the contact field. + */ + private String provinceCode; + + public ShopPayPaymentRequestContactField() { + } + + /** + * The first address line of the contact field. + */ + public String getAddress1() { + return address1; + } + + public void setAddress1(String address1) { + this.address1 = address1; + } + + /** + * The second address line of the contact field. + */ + public String getAddress2() { + return address2; + } + + public void setAddress2(String address2) { + this.address2 = address2; + } + + /** + * The city of the contact field. + */ + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + + /** + * The company name of the contact field. + */ + public String getCompanyName() { + return companyName; + } + + public void setCompanyName(String companyName) { + this.companyName = companyName; + } + + /** + * The country of the contact field. + */ + public String getCountryCode() { + return countryCode; + } + + public void setCountryCode(String countryCode) { + this.countryCode = countryCode; + } + + /** + * The email of the contact field. + */ + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + /** + * The first name of the contact field. + */ + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + /** + * The last name of the contact field. + */ + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + /** + * The phone number of the contact field. + */ + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + /** + * The postal code of the contact field. + */ + public String getPostalCode() { + return postalCode; + } + + public void setPostalCode(String postalCode) { + this.postalCode = postalCode; + } + + /** + * The province of the contact field. + */ + public String getProvinceCode() { + return provinceCode; + } + + public void setProvinceCode(String provinceCode) { + this.provinceCode = provinceCode; + } + + @Override + public String toString() { + return "ShopPayPaymentRequestContactField{address1='" + address1 + "', address2='" + address2 + "', city='" + city + "', companyName='" + companyName + "', countryCode='" + countryCode + "', email='" + email + "', firstName='" + firstName + "', lastName='" + lastName + "', phone='" + phone + "', postalCode='" + postalCode + "', provinceCode='" + provinceCode + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ShopPayPaymentRequestContactField that = (ShopPayPaymentRequestContactField) o; + return Objects.equals(address1, that.address1) && + Objects.equals(address2, that.address2) && + Objects.equals(city, that.city) && + Objects.equals(companyName, that.companyName) && + Objects.equals(countryCode, that.countryCode) && + Objects.equals(email, that.email) && + Objects.equals(firstName, that.firstName) && + Objects.equals(lastName, that.lastName) && + Objects.equals(phone, that.phone) && + Objects.equals(postalCode, that.postalCode) && + Objects.equals(provinceCode, that.provinceCode); + } + + @Override + public int hashCode() { + return Objects.hash(address1, address2, city, companyName, countryCode, email, firstName, lastName, phone, postalCode, provinceCode); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The first address line of the contact field. + */ + private String address1; + + /** + * The second address line of the contact field. + */ + private String address2; + + /** + * The city of the contact field. + */ + private String city; + + /** + * The company name of the contact field. + */ + private String companyName; + + /** + * The country of the contact field. + */ + private String countryCode; + + /** + * The email of the contact field. + */ + private String email; + + /** + * The first name of the contact field. + */ + private String firstName; + + /** + * The last name of the contact field. + */ + private String lastName; + + /** + * The phone number of the contact field. + */ + private String phone; + + /** + * The postal code of the contact field. + */ + private String postalCode; + + /** + * The province of the contact field. + */ + private String provinceCode; + + public ShopPayPaymentRequestContactField build() { + ShopPayPaymentRequestContactField result = new ShopPayPaymentRequestContactField(); + result.address1 = this.address1; + result.address2 = this.address2; + result.city = this.city; + result.companyName = this.companyName; + result.countryCode = this.countryCode; + result.email = this.email; + result.firstName = this.firstName; + result.lastName = this.lastName; + result.phone = this.phone; + result.postalCode = this.postalCode; + result.provinceCode = this.provinceCode; + return result; + } + + /** + * The first address line of the contact field. + */ + public Builder address1(String address1) { + this.address1 = address1; + return this; + } + + /** + * The second address line of the contact field. + */ + public Builder address2(String address2) { + this.address2 = address2; + return this; + } + + /** + * The city of the contact field. + */ + public Builder city(String city) { + this.city = city; + return this; + } + + /** + * The company name of the contact field. + */ + public Builder companyName(String companyName) { + this.companyName = companyName; + return this; + } + + /** + * The country of the contact field. + */ + public Builder countryCode(String countryCode) { + this.countryCode = countryCode; + return this; + } + + /** + * The email of the contact field. + */ + public Builder email(String email) { + this.email = email; + return this; + } + + /** + * The first name of the contact field. + */ + public Builder firstName(String firstName) { + this.firstName = firstName; + return this; + } + + /** + * The last name of the contact field. + */ + public Builder lastName(String lastName) { + this.lastName = lastName; + return this; + } + + /** + * The phone number of the contact field. + */ + public Builder phone(String phone) { + this.phone = phone; + return this; + } + + /** + * The postal code of the contact field. + */ + public Builder postalCode(String postalCode) { + this.postalCode = postalCode; + return this; + } + + /** + * The province of the contact field. + */ + public Builder provinceCode(String provinceCode) { + this.provinceCode = provinceCode; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequestDeliveryMethodType.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequestDeliveryMethodType.java new file mode 100644 index 00000000..231baa37 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequestDeliveryMethodType.java @@ -0,0 +1,10 @@ +package com.shopify.admin.types; + +/** + * Represents the delivery method type for a Shop Pay payment request. + */ +public enum ShopPayPaymentRequestDeliveryMethodType { + SHIPPING, + + PICKUP +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequestDiscount.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequestDiscount.java new file mode 100644 index 00000000..54a65c93 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequestDiscount.java @@ -0,0 +1,104 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * Represents a discount for a Shop Pay payment request. + */ +public class ShopPayPaymentRequestDiscount { + /** + * The amount of the discount. + */ + private MoneyV2 amount; + + /** + * The label of the discount. + */ + private String label; + + public ShopPayPaymentRequestDiscount() { + } + + /** + * The amount of the discount. + */ + public MoneyV2 getAmount() { + return amount; + } + + public void setAmount(MoneyV2 amount) { + this.amount = amount; + } + + /** + * The label of the discount. + */ + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + + @Override + public String toString() { + return "ShopPayPaymentRequestDiscount{amount='" + amount + "', label='" + label + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ShopPayPaymentRequestDiscount that = (ShopPayPaymentRequestDiscount) o; + return Objects.equals(amount, that.amount) && + Objects.equals(label, that.label); + } + + @Override + public int hashCode() { + return Objects.hash(amount, label); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The amount of the discount. + */ + private MoneyV2 amount; + + /** + * The label of the discount. + */ + private String label; + + public ShopPayPaymentRequestDiscount build() { + ShopPayPaymentRequestDiscount result = new ShopPayPaymentRequestDiscount(); + result.amount = this.amount; + result.label = this.label; + return result; + } + + /** + * The amount of the discount. + */ + public Builder amount(MoneyV2 amount) { + this.amount = amount; + return this; + } + + /** + * The label of the discount. + */ + public Builder label(String label) { + this.label = label; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequestImage.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequestImage.java new file mode 100644 index 00000000..c4141729 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequestImage.java @@ -0,0 +1,104 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * Represents an image for a Shop Pay payment request line item. + */ +public class ShopPayPaymentRequestImage { + /** + * The alt text of the image. + */ + private String alt; + + /** + * The source URL of the image. + */ + private String url; + + public ShopPayPaymentRequestImage() { + } + + /** + * The alt text of the image. + */ + public String getAlt() { + return alt; + } + + public void setAlt(String alt) { + this.alt = alt; + } + + /** + * The source URL of the image. + */ + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + @Override + public String toString() { + return "ShopPayPaymentRequestImage{alt='" + alt + "', url='" + url + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ShopPayPaymentRequestImage that = (ShopPayPaymentRequestImage) o; + return Objects.equals(alt, that.alt) && + Objects.equals(url, that.url); + } + + @Override + public int hashCode() { + return Objects.hash(alt, url); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The alt text of the image. + */ + private String alt; + + /** + * The source URL of the image. + */ + private String url; + + public ShopPayPaymentRequestImage build() { + ShopPayPaymentRequestImage result = new ShopPayPaymentRequestImage(); + result.alt = this.alt; + result.url = this.url; + return result; + } + + /** + * The alt text of the image. + */ + public Builder alt(String alt) { + this.alt = alt; + return this; + } + + /** + * The source URL of the image. + */ + public Builder url(String url) { + this.url = url; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequestLineItem.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequestLineItem.java new file mode 100644 index 00000000..c0ffbc27 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequestLineItem.java @@ -0,0 +1,385 @@ +package com.shopify.admin.types; + +import java.lang.Boolean; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * Represents a line item for a Shop Pay payment request. + */ +public class ShopPayPaymentRequestLineItem { + /** + * The final item price for the line item. + */ + private MoneyV2 finalItemPrice; + + /** + * The final line price for the line item. + */ + private MoneyV2 finalLinePrice; + + /** + * The image of the line item. + */ + private ShopPayPaymentRequestImage image; + + /** + * The item discounts for the line item. + */ + private List itemDiscounts; + + /** + * The label of the line item. + */ + private String label; + + /** + * The line discounts for the line item. + */ + private List lineDiscounts; + + /** + * The original item price for the line item. + */ + private MoneyV2 originalItemPrice; + + /** + * The original line price for the line item. + */ + private MoneyV2 originalLinePrice; + + /** + * The quantity of the line item. + */ + private int quantity; + + /** + * Whether the line item requires shipping. + */ + private Boolean requiresShipping; + + /** + * The SKU of the line item. + */ + private String sku; + + public ShopPayPaymentRequestLineItem() { + } + + /** + * The final item price for the line item. + */ + public MoneyV2 getFinalItemPrice() { + return finalItemPrice; + } + + public void setFinalItemPrice(MoneyV2 finalItemPrice) { + this.finalItemPrice = finalItemPrice; + } + + /** + * The final line price for the line item. + */ + public MoneyV2 getFinalLinePrice() { + return finalLinePrice; + } + + public void setFinalLinePrice(MoneyV2 finalLinePrice) { + this.finalLinePrice = finalLinePrice; + } + + /** + * The image of the line item. + */ + public ShopPayPaymentRequestImage getImage() { + return image; + } + + public void setImage(ShopPayPaymentRequestImage image) { + this.image = image; + } + + /** + * The item discounts for the line item. + */ + public List getItemDiscounts() { + return itemDiscounts; + } + + public void setItemDiscounts(List itemDiscounts) { + this.itemDiscounts = itemDiscounts; + } + + /** + * The label of the line item. + */ + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + + /** + * The line discounts for the line item. + */ + public List getLineDiscounts() { + return lineDiscounts; + } + + public void setLineDiscounts(List lineDiscounts) { + this.lineDiscounts = lineDiscounts; + } + + /** + * The original item price for the line item. + */ + public MoneyV2 getOriginalItemPrice() { + return originalItemPrice; + } + + public void setOriginalItemPrice(MoneyV2 originalItemPrice) { + this.originalItemPrice = originalItemPrice; + } + + /** + * The original line price for the line item. + */ + public MoneyV2 getOriginalLinePrice() { + return originalLinePrice; + } + + public void setOriginalLinePrice(MoneyV2 originalLinePrice) { + this.originalLinePrice = originalLinePrice; + } + + /** + * The quantity of the line item. + */ + public int getQuantity() { + return quantity; + } + + public void setQuantity(int quantity) { + this.quantity = quantity; + } + + /** + * Whether the line item requires shipping. + */ + public Boolean getRequiresShipping() { + return requiresShipping; + } + + public void setRequiresShipping(Boolean requiresShipping) { + this.requiresShipping = requiresShipping; + } + + /** + * The SKU of the line item. + */ + public String getSku() { + return sku; + } + + public void setSku(String sku) { + this.sku = sku; + } + + @Override + public String toString() { + return "ShopPayPaymentRequestLineItem{finalItemPrice='" + finalItemPrice + "', finalLinePrice='" + finalLinePrice + "', image='" + image + "', itemDiscounts='" + itemDiscounts + "', label='" + label + "', lineDiscounts='" + lineDiscounts + "', originalItemPrice='" + originalItemPrice + "', originalLinePrice='" + originalLinePrice + "', quantity='" + quantity + "', requiresShipping='" + requiresShipping + "', sku='" + sku + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ShopPayPaymentRequestLineItem that = (ShopPayPaymentRequestLineItem) o; + return Objects.equals(finalItemPrice, that.finalItemPrice) && + Objects.equals(finalLinePrice, that.finalLinePrice) && + Objects.equals(image, that.image) && + Objects.equals(itemDiscounts, that.itemDiscounts) && + Objects.equals(label, that.label) && + Objects.equals(lineDiscounts, that.lineDiscounts) && + Objects.equals(originalItemPrice, that.originalItemPrice) && + Objects.equals(originalLinePrice, that.originalLinePrice) && + quantity == that.quantity && + Objects.equals(requiresShipping, that.requiresShipping) && + Objects.equals(sku, that.sku); + } + + @Override + public int hashCode() { + return Objects.hash(finalItemPrice, finalLinePrice, image, itemDiscounts, label, lineDiscounts, originalItemPrice, originalLinePrice, quantity, requiresShipping, sku); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The final item price for the line item. + */ + private MoneyV2 finalItemPrice; + + /** + * The final line price for the line item. + */ + private MoneyV2 finalLinePrice; + + /** + * The image of the line item. + */ + private ShopPayPaymentRequestImage image; + + /** + * The item discounts for the line item. + */ + private List itemDiscounts; + + /** + * The label of the line item. + */ + private String label; + + /** + * The line discounts for the line item. + */ + private List lineDiscounts; + + /** + * The original item price for the line item. + */ + private MoneyV2 originalItemPrice; + + /** + * The original line price for the line item. + */ + private MoneyV2 originalLinePrice; + + /** + * The quantity of the line item. + */ + private int quantity; + + /** + * Whether the line item requires shipping. + */ + private Boolean requiresShipping; + + /** + * The SKU of the line item. + */ + private String sku; + + public ShopPayPaymentRequestLineItem build() { + ShopPayPaymentRequestLineItem result = new ShopPayPaymentRequestLineItem(); + result.finalItemPrice = this.finalItemPrice; + result.finalLinePrice = this.finalLinePrice; + result.image = this.image; + result.itemDiscounts = this.itemDiscounts; + result.label = this.label; + result.lineDiscounts = this.lineDiscounts; + result.originalItemPrice = this.originalItemPrice; + result.originalLinePrice = this.originalLinePrice; + result.quantity = this.quantity; + result.requiresShipping = this.requiresShipping; + result.sku = this.sku; + return result; + } + + /** + * The final item price for the line item. + */ + public Builder finalItemPrice(MoneyV2 finalItemPrice) { + this.finalItemPrice = finalItemPrice; + return this; + } + + /** + * The final line price for the line item. + */ + public Builder finalLinePrice(MoneyV2 finalLinePrice) { + this.finalLinePrice = finalLinePrice; + return this; + } + + /** + * The image of the line item. + */ + public Builder image(ShopPayPaymentRequestImage image) { + this.image = image; + return this; + } + + /** + * The item discounts for the line item. + */ + public Builder itemDiscounts(List itemDiscounts) { + this.itemDiscounts = itemDiscounts; + return this; + } + + /** + * The label of the line item. + */ + public Builder label(String label) { + this.label = label; + return this; + } + + /** + * The line discounts for the line item. + */ + public Builder lineDiscounts(List lineDiscounts) { + this.lineDiscounts = lineDiscounts; + return this; + } + + /** + * The original item price for the line item. + */ + public Builder originalItemPrice(MoneyV2 originalItemPrice) { + this.originalItemPrice = originalItemPrice; + return this; + } + + /** + * The original line price for the line item. + */ + public Builder originalLinePrice(MoneyV2 originalLinePrice) { + this.originalLinePrice = originalLinePrice; + return this; + } + + /** + * The quantity of the line item. + */ + public Builder quantity(int quantity) { + this.quantity = quantity; + return this; + } + + /** + * Whether the line item requires shipping. + */ + public Builder requiresShipping(Boolean requiresShipping) { + this.requiresShipping = requiresShipping; + return this; + } + + /** + * The SKU of the line item. + */ + public Builder sku(String sku) { + this.sku = sku; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequestReceipt.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequestReceipt.java new file mode 100644 index 00000000..0d1cd400 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequestReceipt.java @@ -0,0 +1,229 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.time.OffsetDateTime; +import java.util.Objects; + +/** + * The receipt of Shop Pay payment request session submission. + */ +public class ShopPayPaymentRequestReceipt { + /** + * The date and time when the payment request receipt was created. + */ + private OffsetDateTime createdAt; + + /** + * The order that's associated with the payment request receipt. + */ + private Order order; + + /** + * The shop pay payment request object. + */ + private ShopPayPaymentRequest paymentRequest; + + /** + * The status of the payment request session submission. + */ + private ShopPayPaymentRequestReceiptProcessingStatus processingStatus; + + /** + * The source identifier provided in the `ShopPayPaymentRequestSessionCreate` mutation. + */ + private String sourceIdentifier; + + /** + * The token of the receipt, initially returned by an `ShopPayPaymentRequestSessionSubmit` mutation. + */ + private String token; + + public ShopPayPaymentRequestReceipt() { + } + + /** + * The date and time when the payment request receipt was created. + */ + public OffsetDateTime getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(OffsetDateTime createdAt) { + this.createdAt = createdAt; + } + + /** + * The order that's associated with the payment request receipt. + */ + public Order getOrder() { + return order; + } + + public void setOrder(Order order) { + this.order = order; + } + + /** + * The shop pay payment request object. + */ + public ShopPayPaymentRequest getPaymentRequest() { + return paymentRequest; + } + + public void setPaymentRequest(ShopPayPaymentRequest paymentRequest) { + this.paymentRequest = paymentRequest; + } + + /** + * The status of the payment request session submission. + */ + public ShopPayPaymentRequestReceiptProcessingStatus getProcessingStatus() { + return processingStatus; + } + + public void setProcessingStatus(ShopPayPaymentRequestReceiptProcessingStatus processingStatus) { + this.processingStatus = processingStatus; + } + + /** + * The source identifier provided in the `ShopPayPaymentRequestSessionCreate` mutation. + */ + public String getSourceIdentifier() { + return sourceIdentifier; + } + + public void setSourceIdentifier(String sourceIdentifier) { + this.sourceIdentifier = sourceIdentifier; + } + + /** + * The token of the receipt, initially returned by an `ShopPayPaymentRequestSessionSubmit` mutation. + */ + public String getToken() { + return token; + } + + public void setToken(String token) { + this.token = token; + } + + @Override + public String toString() { + return "ShopPayPaymentRequestReceipt{createdAt='" + createdAt + "', order='" + order + "', paymentRequest='" + paymentRequest + "', processingStatus='" + processingStatus + "', sourceIdentifier='" + sourceIdentifier + "', token='" + token + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ShopPayPaymentRequestReceipt that = (ShopPayPaymentRequestReceipt) o; + return Objects.equals(createdAt, that.createdAt) && + Objects.equals(order, that.order) && + Objects.equals(paymentRequest, that.paymentRequest) && + Objects.equals(processingStatus, that.processingStatus) && + Objects.equals(sourceIdentifier, that.sourceIdentifier) && + Objects.equals(token, that.token); + } + + @Override + public int hashCode() { + return Objects.hash(createdAt, order, paymentRequest, processingStatus, sourceIdentifier, token); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The date and time when the payment request receipt was created. + */ + private OffsetDateTime createdAt; + + /** + * The order that's associated with the payment request receipt. + */ + private Order order; + + /** + * The shop pay payment request object. + */ + private ShopPayPaymentRequest paymentRequest; + + /** + * The status of the payment request session submission. + */ + private ShopPayPaymentRequestReceiptProcessingStatus processingStatus; + + /** + * The source identifier provided in the `ShopPayPaymentRequestSessionCreate` mutation. + */ + private String sourceIdentifier; + + /** + * The token of the receipt, initially returned by an `ShopPayPaymentRequestSessionSubmit` mutation. + */ + private String token; + + public ShopPayPaymentRequestReceipt build() { + ShopPayPaymentRequestReceipt result = new ShopPayPaymentRequestReceipt(); + result.createdAt = this.createdAt; + result.order = this.order; + result.paymentRequest = this.paymentRequest; + result.processingStatus = this.processingStatus; + result.sourceIdentifier = this.sourceIdentifier; + result.token = this.token; + return result; + } + + /** + * The date and time when the payment request receipt was created. + */ + public Builder createdAt(OffsetDateTime createdAt) { + this.createdAt = createdAt; + return this; + } + + /** + * The order that's associated with the payment request receipt. + */ + public Builder order(Order order) { + this.order = order; + return this; + } + + /** + * The shop pay payment request object. + */ + public Builder paymentRequest(ShopPayPaymentRequest paymentRequest) { + this.paymentRequest = paymentRequest; + return this; + } + + /** + * The status of the payment request session submission. + */ + public Builder processingStatus(ShopPayPaymentRequestReceiptProcessingStatus processingStatus) { + this.processingStatus = processingStatus; + return this; + } + + /** + * The source identifier provided in the `ShopPayPaymentRequestSessionCreate` mutation. + */ + public Builder sourceIdentifier(String sourceIdentifier) { + this.sourceIdentifier = sourceIdentifier; + return this; + } + + /** + * The token of the receipt, initially returned by an `ShopPayPaymentRequestSessionSubmit` mutation. + */ + public Builder token(String token) { + this.token = token; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequestReceiptConnection.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequestReceiptConnection.java new file mode 100644 index 00000000..be95c1b3 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequestReceiptConnection.java @@ -0,0 +1,152 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * An auto-generated type for paginating through multiple ShopPayPaymentRequestReceipts. + */ +public class ShopPayPaymentRequestReceiptConnection { + /** + * The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + */ + private List edges; + + /** + * A list of nodes that are contained in ShopPayPaymentRequestReceiptEdge. You + * can fetch data about an individual node, or you can follow the edges to fetch + * data about a collection of related nodes. At each node, you specify the fields + * that you want to retrieve. + */ + private List nodes; + + /** + * An object that’s used to retrieve [cursor + * information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + */ + private PageInfo pageInfo; + + public ShopPayPaymentRequestReceiptConnection() { + } + + /** + * The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + */ + public List getEdges() { + return edges; + } + + public void setEdges(List edges) { + this.edges = edges; + } + + /** + * A list of nodes that are contained in ShopPayPaymentRequestReceiptEdge. You + * can fetch data about an individual node, or you can follow the edges to fetch + * data about a collection of related nodes. At each node, you specify the fields + * that you want to retrieve. + */ + public List getNodes() { + return nodes; + } + + public void setNodes(List nodes) { + this.nodes = nodes; + } + + /** + * An object that’s used to retrieve [cursor + * information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + */ + public PageInfo getPageInfo() { + return pageInfo; + } + + public void setPageInfo(PageInfo pageInfo) { + this.pageInfo = pageInfo; + } + + @Override + public String toString() { + return "ShopPayPaymentRequestReceiptConnection{edges='" + edges + "', nodes='" + nodes + "', pageInfo='" + pageInfo + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ShopPayPaymentRequestReceiptConnection that = (ShopPayPaymentRequestReceiptConnection) o; + return Objects.equals(edges, that.edges) && + Objects.equals(nodes, that.nodes) && + Objects.equals(pageInfo, that.pageInfo); + } + + @Override + public int hashCode() { + return Objects.hash(edges, nodes, pageInfo); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + */ + private List edges; + + /** + * A list of nodes that are contained in ShopPayPaymentRequestReceiptEdge. You + * can fetch data about an individual node, or you can follow the edges to fetch + * data about a collection of related nodes. At each node, you specify the fields + * that you want to retrieve. + */ + private List nodes; + + /** + * An object that’s used to retrieve [cursor + * information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + */ + private PageInfo pageInfo; + + public ShopPayPaymentRequestReceiptConnection build() { + ShopPayPaymentRequestReceiptConnection result = new ShopPayPaymentRequestReceiptConnection(); + result.edges = this.edges; + result.nodes = this.nodes; + result.pageInfo = this.pageInfo; + return result; + } + + /** + * The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + */ + public Builder edges(List edges) { + this.edges = edges; + return this; + } + + /** + * A list of nodes that are contained in ShopPayPaymentRequestReceiptEdge. You + * can fetch data about an individual node, or you can follow the edges to fetch + * data about a collection of related nodes. At each node, you specify the fields + * that you want to retrieve. + */ + public Builder nodes(List nodes) { + this.nodes = nodes; + return this; + } + + /** + * An object that’s used to retrieve [cursor + * information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + */ + public Builder pageInfo(PageInfo pageInfo) { + this.pageInfo = pageInfo; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequestReceiptEdge.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequestReceiptEdge.java new file mode 100644 index 00000000..afb8730a --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequestReceiptEdge.java @@ -0,0 +1,104 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * An auto-generated type which holds one ShopPayPaymentRequestReceipt and a cursor during pagination. + */ +public class ShopPayPaymentRequestReceiptEdge { + /** + * The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + */ + private String cursor; + + /** + * The item at the end of ShopPayPaymentRequestReceiptEdge. + */ + private ShopPayPaymentRequestReceipt node; + + public ShopPayPaymentRequestReceiptEdge() { + } + + /** + * The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + */ + public String getCursor() { + return cursor; + } + + public void setCursor(String cursor) { + this.cursor = cursor; + } + + /** + * The item at the end of ShopPayPaymentRequestReceiptEdge. + */ + public ShopPayPaymentRequestReceipt getNode() { + return node; + } + + public void setNode(ShopPayPaymentRequestReceipt node) { + this.node = node; + } + + @Override + public String toString() { + return "ShopPayPaymentRequestReceiptEdge{cursor='" + cursor + "', node='" + node + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ShopPayPaymentRequestReceiptEdge that = (ShopPayPaymentRequestReceiptEdge) o; + return Objects.equals(cursor, that.cursor) && + Objects.equals(node, that.node); + } + + @Override + public int hashCode() { + return Objects.hash(cursor, node); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + */ + private String cursor; + + /** + * The item at the end of ShopPayPaymentRequestReceiptEdge. + */ + private ShopPayPaymentRequestReceipt node; + + public ShopPayPaymentRequestReceiptEdge build() { + ShopPayPaymentRequestReceiptEdge result = new ShopPayPaymentRequestReceiptEdge(); + result.cursor = this.cursor; + result.node = this.node; + return result; + } + + /** + * The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + */ + public Builder cursor(String cursor) { + this.cursor = cursor; + return this; + } + + /** + * The item at the end of ShopPayPaymentRequestReceiptEdge. + */ + public Builder node(ShopPayPaymentRequestReceipt node) { + this.node = node; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequestReceiptProcessingStatus.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequestReceiptProcessingStatus.java new file mode 100644 index 00000000..fc504274 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequestReceiptProcessingStatus.java @@ -0,0 +1,137 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * The processing status of a Shop Pay payment request. + * Represents the different states a payment request can be in during its lifecycle, + * from initial creation through to completion or failure. + */ +public class ShopPayPaymentRequestReceiptProcessingStatus { + /** + * A standardized error code, independent of the payment provider. + */ + private ShopPayPaymentRequestReceiptProcessingStatusErrorCode errorCode; + + /** + * The message of the payment request receipt. + */ + private String message; + + /** + * The state of the payment request receipt. + */ + private ShopPayPaymentRequestReceiptProcessingStatusState state; + + public ShopPayPaymentRequestReceiptProcessingStatus() { + } + + /** + * A standardized error code, independent of the payment provider. + */ + public ShopPayPaymentRequestReceiptProcessingStatusErrorCode getErrorCode() { + return errorCode; + } + + public void setErrorCode(ShopPayPaymentRequestReceiptProcessingStatusErrorCode errorCode) { + this.errorCode = errorCode; + } + + /** + * The message of the payment request receipt. + */ + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + /** + * The state of the payment request receipt. + */ + public ShopPayPaymentRequestReceiptProcessingStatusState getState() { + return state; + } + + public void setState(ShopPayPaymentRequestReceiptProcessingStatusState state) { + this.state = state; + } + + @Override + public String toString() { + return "ShopPayPaymentRequestReceiptProcessingStatus{errorCode='" + errorCode + "', message='" + message + "', state='" + state + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ShopPayPaymentRequestReceiptProcessingStatus that = (ShopPayPaymentRequestReceiptProcessingStatus) o; + return Objects.equals(errorCode, that.errorCode) && + Objects.equals(message, that.message) && + Objects.equals(state, that.state); + } + + @Override + public int hashCode() { + return Objects.hash(errorCode, message, state); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * A standardized error code, independent of the payment provider. + */ + private ShopPayPaymentRequestReceiptProcessingStatusErrorCode errorCode; + + /** + * The message of the payment request receipt. + */ + private String message; + + /** + * The state of the payment request receipt. + */ + private ShopPayPaymentRequestReceiptProcessingStatusState state; + + public ShopPayPaymentRequestReceiptProcessingStatus build() { + ShopPayPaymentRequestReceiptProcessingStatus result = new ShopPayPaymentRequestReceiptProcessingStatus(); + result.errorCode = this.errorCode; + result.message = this.message; + result.state = this.state; + return result; + } + + /** + * A standardized error code, independent of the payment provider. + */ + public Builder errorCode(ShopPayPaymentRequestReceiptProcessingStatusErrorCode errorCode) { + this.errorCode = errorCode; + return this; + } + + /** + * The message of the payment request receipt. + */ + public Builder message(String message) { + this.message = message; + return this; + } + + /** + * The state of the payment request receipt. + */ + public Builder state(ShopPayPaymentRequestReceiptProcessingStatusState state) { + this.state = state; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequestReceiptProcessingStatusErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequestReceiptProcessingStatusErrorCode.java new file mode 100644 index 00000000..69e19f4e --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequestReceiptProcessingStatusErrorCode.java @@ -0,0 +1,52 @@ +package com.shopify.admin.types; + +/** + * A standardized error code, independent of the payment provider. + */ +public enum ShopPayPaymentRequestReceiptProcessingStatusErrorCode { + INCORRECT_NUMBER, + + INVALID_NUMBER, + + INVALID_EXPIRY_DATE, + + INVALID_CVC, + + EXPIRED_CARD, + + INCORRECT_CVC, + + INCORRECT_ZIP, + + INCORRECT_ADDRESS, + + INCORRECT_PIN, + + AMOUNT_TOO_SMALL, + + CARD_DECLINED, + + PROCESSING_ERROR, + + CALL_ISSUER, + + THREE_D_SECURE_FAILED, + + FRAUD_SUSPECTED, + + PICK_UP_CARD, + + CONFIG_ERROR, + + TEST_MODE_LIVE_CARD, + + UNSUPPORTED_FEATURE, + + GENERIC_ERROR, + + INVALID_COUNTRY, + + INVALID_AMOUNT, + + PAYMENT_METHOD_UNAVAILABLE +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequestReceiptProcessingStatusState.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequestReceiptProcessingStatusState.java new file mode 100644 index 00000000..d6601a9a --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequestReceiptProcessingStatusState.java @@ -0,0 +1,16 @@ +package com.shopify.admin.types; + +/** + * The state of the payment request receipt. + */ +public enum ShopPayPaymentRequestReceiptProcessingStatusState { + READY, + + PROCESSING, + + FAILED, + + COMPLETED, + + ACTION_REQUIRED +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequestReceiptsSortKeys.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequestReceiptsSortKeys.java new file mode 100644 index 00000000..ac00bb96 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequestReceiptsSortKeys.java @@ -0,0 +1,10 @@ +package com.shopify.admin.types; + +/** + * The set of valid sort keys for the ShopPayPaymentRequestReceipts query. + */ +public enum ShopPayPaymentRequestReceiptsSortKeys { + CREATED_AT, + + ID +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequestShippingLine.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequestShippingLine.java new file mode 100644 index 00000000..de28e557 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequestShippingLine.java @@ -0,0 +1,135 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * Represents a shipping line for a Shop Pay payment request. + */ +public class ShopPayPaymentRequestShippingLine { + /** + * The amount for the shipping line. + */ + private MoneyV2 amount; + + /** + * The code of the shipping line. + */ + private String code; + + /** + * The label of the shipping line. + */ + private String label; + + public ShopPayPaymentRequestShippingLine() { + } + + /** + * The amount for the shipping line. + */ + public MoneyV2 getAmount() { + return amount; + } + + public void setAmount(MoneyV2 amount) { + this.amount = amount; + } + + /** + * The code of the shipping line. + */ + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + /** + * The label of the shipping line. + */ + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + + @Override + public String toString() { + return "ShopPayPaymentRequestShippingLine{amount='" + amount + "', code='" + code + "', label='" + label + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ShopPayPaymentRequestShippingLine that = (ShopPayPaymentRequestShippingLine) o; + return Objects.equals(amount, that.amount) && + Objects.equals(code, that.code) && + Objects.equals(label, that.label); + } + + @Override + public int hashCode() { + return Objects.hash(amount, code, label); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The amount for the shipping line. + */ + private MoneyV2 amount; + + /** + * The code of the shipping line. + */ + private String code; + + /** + * The label of the shipping line. + */ + private String label; + + public ShopPayPaymentRequestShippingLine build() { + ShopPayPaymentRequestShippingLine result = new ShopPayPaymentRequestShippingLine(); + result.amount = this.amount; + result.code = this.code; + result.label = this.label; + return result; + } + + /** + * The amount for the shipping line. + */ + public Builder amount(MoneyV2 amount) { + this.amount = amount; + return this; + } + + /** + * The code of the shipping line. + */ + public Builder code(String code) { + this.code = code; + return this; + } + + /** + * The label of the shipping line. + */ + public Builder label(String label) { + this.label = label; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequestTotalShippingPrice.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequestTotalShippingPrice.java new file mode 100644 index 00000000..5d60ec07 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPayPaymentRequestTotalShippingPrice.java @@ -0,0 +1,136 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * Represents a shipping total for a Shop Pay payment request. + */ +public class ShopPayPaymentRequestTotalShippingPrice { + /** + * The discounts for the shipping total. + */ + private List discounts; + + /** + * The final total for the shipping line. + */ + private MoneyV2 finalTotal; + + /** + * The original total for the shipping line. + */ + private MoneyV2 originalTotal; + + public ShopPayPaymentRequestTotalShippingPrice() { + } + + /** + * The discounts for the shipping total. + */ + public List getDiscounts() { + return discounts; + } + + public void setDiscounts(List discounts) { + this.discounts = discounts; + } + + /** + * The final total for the shipping line. + */ + public MoneyV2 getFinalTotal() { + return finalTotal; + } + + public void setFinalTotal(MoneyV2 finalTotal) { + this.finalTotal = finalTotal; + } + + /** + * The original total for the shipping line. + */ + public MoneyV2 getOriginalTotal() { + return originalTotal; + } + + public void setOriginalTotal(MoneyV2 originalTotal) { + this.originalTotal = originalTotal; + } + + @Override + public String toString() { + return "ShopPayPaymentRequestTotalShippingPrice{discounts='" + discounts + "', finalTotal='" + finalTotal + "', originalTotal='" + originalTotal + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ShopPayPaymentRequestTotalShippingPrice that = (ShopPayPaymentRequestTotalShippingPrice) o; + return Objects.equals(discounts, that.discounts) && + Objects.equals(finalTotal, that.finalTotal) && + Objects.equals(originalTotal, that.originalTotal); + } + + @Override + public int hashCode() { + return Objects.hash(discounts, finalTotal, originalTotal); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The discounts for the shipping total. + */ + private List discounts; + + /** + * The final total for the shipping line. + */ + private MoneyV2 finalTotal; + + /** + * The original total for the shipping line. + */ + private MoneyV2 originalTotal; + + public ShopPayPaymentRequestTotalShippingPrice build() { + ShopPayPaymentRequestTotalShippingPrice result = new ShopPayPaymentRequestTotalShippingPrice(); + result.discounts = this.discounts; + result.finalTotal = this.finalTotal; + result.originalTotal = this.originalTotal; + return result; + } + + /** + * The discounts for the shipping total. + */ + public Builder discounts(List discounts) { + this.discounts = discounts; + return this; + } + + /** + * The final total for the shipping line. + */ + public Builder finalTotal(MoneyV2 finalTotal) { + this.finalTotal = finalTotal; + return this; + } + + /** + * The original total for the shipping line. + */ + public Builder originalTotal(MoneyV2 originalTotal) { + this.originalTotal = originalTotal; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPlan.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPlan.java index c87be050..b0c50207 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPlan.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopPlan.java @@ -6,7 +6,9 @@ import java.util.Objects; /** - * The billing plan of the shop. + * The shop's billing plan and subscription details. Indicates the plan tier (such + * as Basic, Advanced, or Plus), whether the shop has a Shopify Plus subscription, + * and if it's a dev store for testing. */ public class ShopPlan { /** @@ -19,6 +21,14 @@ public class ShopPlan { */ private boolean partnerDevelopment; + /** + * The public display name of the shop's billing plan. Possible values are: + * Advanced, Agentic, Agentic Enterprise, Basic, Development, Grow, Inactive, + * Lite, Other, Paused, Plus, Plus Trial, Retail, Shop Component, Shopify + * Finance, Staff Business, Starter, and Trial. + */ + private String publicDisplayName; + /** * Whether the shop has a Shopify Plus subscription. */ @@ -49,6 +59,20 @@ public void setPartnerDevelopment(boolean partnerDevelopment) { this.partnerDevelopment = partnerDevelopment; } + /** + * The public display name of the shop's billing plan. Possible values are: + * Advanced, Agentic, Agentic Enterprise, Basic, Development, Grow, Inactive, + * Lite, Other, Paused, Plus, Plus Trial, Retail, Shop Component, Shopify + * Finance, Staff Business, Starter, and Trial. + */ + public String getPublicDisplayName() { + return publicDisplayName; + } + + public void setPublicDisplayName(String publicDisplayName) { + this.publicDisplayName = publicDisplayName; + } + /** * Whether the shop has a Shopify Plus subscription. */ @@ -62,7 +86,7 @@ public void setShopifyPlus(boolean shopifyPlus) { @Override public String toString() { - return "ShopPlan{displayName='" + displayName + "', partnerDevelopment='" + partnerDevelopment + "', shopifyPlus='" + shopifyPlus + "'}"; + return "ShopPlan{displayName='" + displayName + "', partnerDevelopment='" + partnerDevelopment + "', publicDisplayName='" + publicDisplayName + "', shopifyPlus='" + shopifyPlus + "'}"; } @Override @@ -72,12 +96,13 @@ public boolean equals(Object o) { ShopPlan that = (ShopPlan) o; return Objects.equals(displayName, that.displayName) && partnerDevelopment == that.partnerDevelopment && + Objects.equals(publicDisplayName, that.publicDisplayName) && shopifyPlus == that.shopifyPlus; } @Override public int hashCode() { - return Objects.hash(displayName, partnerDevelopment, shopifyPlus); + return Objects.hash(displayName, partnerDevelopment, publicDisplayName, shopifyPlus); } public static Builder newBuilder() { @@ -95,6 +120,14 @@ public static class Builder { */ private boolean partnerDevelopment; + /** + * The public display name of the shop's billing plan. Possible values are: + * Advanced, Agentic, Agentic Enterprise, Basic, Development, Grow, Inactive, + * Lite, Other, Paused, Plus, Plus Trial, Retail, Shop Component, Shopify + * Finance, Staff Business, Starter, and Trial. + */ + private String publicDisplayName; + /** * Whether the shop has a Shopify Plus subscription. */ @@ -104,6 +137,7 @@ public ShopPlan build() { ShopPlan result = new ShopPlan(); result.displayName = this.displayName; result.partnerDevelopment = this.partnerDevelopment; + result.publicDisplayName = this.publicDisplayName; result.shopifyPlus = this.shopifyPlus; return result; } @@ -124,6 +158,17 @@ public Builder partnerDevelopment(boolean partnerDevelopment) { return this; } + /** + * The public display name of the shop's billing plan. Possible values are: + * Advanced, Agentic, Agentic Enterprise, Basic, Development, Grow, Inactive, + * Lite, Other, Paused, Plus, Plus Trial, Retail, Shop Component, Shopify + * Finance, Staff Business, Starter, and Trial. + */ + public Builder publicDisplayName(String publicDisplayName) { + this.publicDisplayName = publicDisplayName; + return this; + } + /** * Whether the shop has a Shopify Plus subscription. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopResourceFeedbackCreateUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopResourceFeedbackCreateUserErrorCode.java index 6a33df6d..ab5720b1 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopResourceFeedbackCreateUserErrorCode.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopResourceFeedbackCreateUserErrorCode.java @@ -12,5 +12,7 @@ public enum ShopResourceFeedbackCreateUserErrorCode { BLANK, - PRESENT + PRESENT, + + NOT_FOUND } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyFunction.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyFunction.java index 98393551..dd814259 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyFunction.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyFunction.java @@ -39,6 +39,11 @@ public class ShopifyFunction { */ private String description; + /** + * The handle of the Shopify Function. + */ + private String handle; + /** * The ID of the Shopify Function. */ @@ -128,6 +133,17 @@ public void setDescription(String description) { this.description = description; } + /** + * The handle of the Shopify Function. + */ + public String getHandle() { + return handle; + } + + public void setHandle(String handle) { + this.handle = handle; + } + /** * The ID of the Shopify Function. */ @@ -174,7 +190,7 @@ public void setUseCreationUi(boolean useCreationUi) { @Override public String toString() { - return "ShopifyFunction{apiType='" + apiType + "', apiVersion='" + apiVersion + "', app='" + app + "', appBridge='" + appBridge + "', appKey='" + appKey + "', description='" + description + "', id='" + id + "', inputQuery='" + inputQuery + "', title='" + title + "', useCreationUi='" + useCreationUi + "'}"; + return "ShopifyFunction{apiType='" + apiType + "', apiVersion='" + apiVersion + "', app='" + app + "', appBridge='" + appBridge + "', appKey='" + appKey + "', description='" + description + "', handle='" + handle + "', id='" + id + "', inputQuery='" + inputQuery + "', title='" + title + "', useCreationUi='" + useCreationUi + "'}"; } @Override @@ -188,6 +204,7 @@ public boolean equals(Object o) { Objects.equals(appBridge, that.appBridge) && Objects.equals(appKey, that.appKey) && Objects.equals(description, that.description) && + Objects.equals(handle, that.handle) && Objects.equals(id, that.id) && Objects.equals(inputQuery, that.inputQuery) && Objects.equals(title, that.title) && @@ -196,7 +213,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(apiType, apiVersion, app, appBridge, appKey, description, id, inputQuery, title, useCreationUi); + return Objects.hash(apiType, apiVersion, app, appBridge, appKey, description, handle, id, inputQuery, title, useCreationUi); } public static Builder newBuilder() { @@ -234,6 +251,11 @@ public static class Builder { */ private String description; + /** + * The handle of the Shopify Function. + */ + private String handle; + /** * The ID of the Shopify Function. */ @@ -262,6 +284,7 @@ public ShopifyFunction build() { result.appBridge = this.appBridge; result.appKey = this.appKey; result.description = this.description; + result.handle = this.handle; result.id = this.id; result.inputQuery = this.inputQuery; result.title = this.title; @@ -317,6 +340,14 @@ public Builder description(String description) { return this; } + /** + * The handle of the Shopify Function. + */ + public Builder handle(String handle) { + this.handle = handle; + return this; + } + /** * The ID of the Shopify Function. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsAccount.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsAccount.java index 381bbc97..728b644f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsAccount.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsAccount.java @@ -8,10 +8,16 @@ import java.util.Objects; /** - * Balance and payout information for a - * [Shopify Payments](https://help.shopify.com/manual/payments/shopify-payments/getting-paid-with-shopify-payments) - * account. Balance includes all balances for the currencies supported by the shop. - * You can also query for a list of payouts, where each payout includes the corresponding currencyCode field. + * Financial account information for merchants using Shopify Payments. Tracks + * current balances across all supported currencies, payout schedules, and [`ShopifyPaymentsBalanceTransaction`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsBalanceTransaction) records. + * + * The account includes configuration details such as [`ShopifyPaymentsBankAccount`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsBankAccount) + * objects for receiving [`ShopifyPaymentsPayout`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsPayout) + * transfers, statement descriptors that appear on customer credit card statements, and the [`ShopifyPaymentsPayoutSchedule`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsPayoutSchedule) + * that determines when funds transfer to your bank. Access balance transactions to + * review individual charges, refunds, and adjustments that affect your account + * balance. Query payouts to track money movement between your Shopify Payments + * balance and bank accounts. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsBalanceTransaction.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsBalanceTransaction.java index b614261e..03ad74a8 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsBalanceTransaction.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsBalanceTransaction.java @@ -9,7 +9,13 @@ import java.util.Objects; /** - * A transaction that contributes to a Shopify Payments account balance. + * A transaction that contributes to a Shopify Payments account balance. Records + * money movement from charges, refunds, payouts, adjustments, or other payment + * activities. Includes the gross amount, processing fees, and resulting net amount + * that affects the account balance. Links to the source of the transaction and associated [`ShopifyPaymentsPayout`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsPayout) + * details, with optional references to + * [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) + * objects or adjustment reasons when applicable. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsBusinessType.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsBusinessType.java index 64d42fec..cbe6001d 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsBusinessType.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsBusinessType.java @@ -46,5 +46,11 @@ public enum ShopifyPaymentsBusinessType { PUBLIC_PARTNERSHIP, + FREE_ZONE_ESTABLISHMENT, + + FREE_ZONE_LLC, + + SOLE_ESTABLISHMENT, + NOT_SET } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsDispute.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsDispute.java index 5f9ff949..d4fe3e0c 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsDispute.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsDispute.java @@ -20,6 +20,11 @@ public class ShopifyPaymentsDispute implements com.shopify.admin.types.LegacyInt */ private MoneyV2 amount; + /** + * The evidence associated with the dispute. + */ + private ShopifyPaymentsDisputeEvidence disputeEvidence; + /** * The deadline for evidence submission. */ @@ -84,6 +89,17 @@ public void setAmount(MoneyV2 amount) { this.amount = amount; } + /** + * The evidence associated with the dispute. + */ + public ShopifyPaymentsDisputeEvidence getDisputeEvidence() { + return disputeEvidence; + } + + public void setDisputeEvidence(ShopifyPaymentsDisputeEvidence disputeEvidence) { + this.disputeEvidence = disputeEvidence; + } + /** * The deadline for evidence submission. */ @@ -196,7 +212,7 @@ public void setType(DisputeType type) { @Override public String toString() { - return "ShopifyPaymentsDispute{amount='" + amount + "', evidenceDueBy='" + evidenceDueBy + "', evidenceSentOn='" + evidenceSentOn + "', finalizedOn='" + finalizedOn + "', id='" + id + "', initiatedAt='" + initiatedAt + "', legacyResourceId='" + legacyResourceId + "', order='" + order + "', reasonDetails='" + reasonDetails + "', status='" + status + "', type='" + type + "'}"; + return "ShopifyPaymentsDispute{amount='" + amount + "', disputeEvidence='" + disputeEvidence + "', evidenceDueBy='" + evidenceDueBy + "', evidenceSentOn='" + evidenceSentOn + "', finalizedOn='" + finalizedOn + "', id='" + id + "', initiatedAt='" + initiatedAt + "', legacyResourceId='" + legacyResourceId + "', order='" + order + "', reasonDetails='" + reasonDetails + "', status='" + status + "', type='" + type + "'}"; } @Override @@ -205,6 +221,7 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) return false; ShopifyPaymentsDispute that = (ShopifyPaymentsDispute) o; return Objects.equals(amount, that.amount) && + Objects.equals(disputeEvidence, that.disputeEvidence) && Objects.equals(evidenceDueBy, that.evidenceDueBy) && Objects.equals(evidenceSentOn, that.evidenceSentOn) && Objects.equals(finalizedOn, that.finalizedOn) && @@ -219,7 +236,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(amount, evidenceDueBy, evidenceSentOn, finalizedOn, id, initiatedAt, legacyResourceId, order, reasonDetails, status, type); + return Objects.hash(amount, disputeEvidence, evidenceDueBy, evidenceSentOn, finalizedOn, id, initiatedAt, legacyResourceId, order, reasonDetails, status, type); } public static Builder newBuilder() { @@ -232,6 +249,11 @@ public static class Builder { */ private MoneyV2 amount; + /** + * The evidence associated with the dispute. + */ + private ShopifyPaymentsDisputeEvidence disputeEvidence; + /** * The deadline for evidence submission. */ @@ -285,6 +307,7 @@ public static class Builder { public ShopifyPaymentsDispute build() { ShopifyPaymentsDispute result = new ShopifyPaymentsDispute(); result.amount = this.amount; + result.disputeEvidence = this.disputeEvidence; result.evidenceDueBy = this.evidenceDueBy; result.evidenceSentOn = this.evidenceSentOn; result.finalizedOn = this.finalizedOn; @@ -306,6 +329,14 @@ public Builder amount(MoneyV2 amount) { return this; } + /** + * The evidence associated with the dispute. + */ + public Builder disputeEvidence(ShopifyPaymentsDisputeEvidence disputeEvidence) { + this.disputeEvidence = disputeEvidence; + return this; + } + /** * The deadline for evidence submission. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsDisputeEvidenceFileType.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsDisputeEvidenceFileType.java index b864d0f9..0ffa8f4f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsDisputeEvidenceFileType.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsDisputeEvidenceFileType.java @@ -14,5 +14,7 @@ public enum ShopifyPaymentsDisputeEvidenceFileType { SHIPPING_DOCUMENTATION_FILE, - SERVICE_DOCUMENTATION_FILE + SERVICE_DOCUMENTATION_FILE, + + RESPONSE_SUMMARY_FILE } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsDisputeReason.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsDisputeReason.java index c0cf0dfe..02a70d4c 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsDisputeReason.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsDisputeReason.java @@ -28,5 +28,7 @@ public enum ShopifyPaymentsDisputeReason { DEBIT_NOT_AUTHORIZED, - CUSTOMER_INITIATED + CUSTOMER_INITIATED, + + NONCOMPLIANT } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsPayout.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsPayout.java index 082adaa3..85d8acd7 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsPayout.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsPayout.java @@ -8,8 +8,14 @@ import java.util.Objects; /** - * Payouts represent the movement of money between a merchant's Shopify - * Payments balance and their bank account. + * A transfer of funds between a merchant's Shopify Payments balance and their [`ShopifyPaymentsBankAccount`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsBankAccount). + * Provides the [net amount](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsPayout#field-ShopifyPaymentsPayout.fields.net), [issue date](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsPayout#field-ShopifyPaymentsPayout.fields.issuedAt), and current [`ShopifyPaymentsPayoutStatus`](https://shopify.dev/docs/api/admin-graphql/latest/enums/ShopifyPaymentsPayoutStatus). + * + * The payout includes a [`ShopifyPaymentsPayoutSummary`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsPayoutSummary) + * that breaks down fees and gross amounts by transaction type, such as charges, + * refunds, and adjustments. The [`ShopifyPaymentsPayoutTransactionType`](https://shopify.dev/docs/api/admin-graphql/latest/enums/ShopifyPaymentsPayoutTransactionType) + * indicates whether funds move into the bank account (deposit) or back to Shopify + * Payments (withdrawal). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE @@ -25,6 +31,11 @@ public class ShopifyPaymentsPayout implements com.shopify.admin.types.LegacyInte */ private BusinessEntity businessEntity; + /** + * A unique trace ID from the financial institution. Use this reference number to track the payout with your provider. + */ + private String externalTraceId; + /** * The total amount and currency of the payout. */ @@ -91,6 +102,17 @@ public void setBusinessEntity(BusinessEntity businessEntity) { this.businessEntity = businessEntity; } + /** + * A unique trace ID from the financial institution. Use this reference number to track the payout with your provider. + */ + public String getExternalTraceId() { + return externalTraceId; + } + + public void setExternalTraceId(String externalTraceId) { + this.externalTraceId = externalTraceId; + } + /** * The total amount and currency of the payout. */ @@ -182,7 +204,7 @@ public void setTransactionType(ShopifyPaymentsPayoutTransactionType transactionT @Override public String toString() { - return "ShopifyPaymentsPayout{bankAccount='" + bankAccount + "', businessEntity='" + businessEntity + "', gross='" + gross + "', id='" + id + "', issuedAt='" + issuedAt + "', legacyResourceId='" + legacyResourceId + "', net='" + net + "', status='" + status + "', summary='" + summary + "', transactionType='" + transactionType + "'}"; + return "ShopifyPaymentsPayout{bankAccount='" + bankAccount + "', businessEntity='" + businessEntity + "', externalTraceId='" + externalTraceId + "', gross='" + gross + "', id='" + id + "', issuedAt='" + issuedAt + "', legacyResourceId='" + legacyResourceId + "', net='" + net + "', status='" + status + "', summary='" + summary + "', transactionType='" + transactionType + "'}"; } @Override @@ -192,6 +214,7 @@ public boolean equals(Object o) { ShopifyPaymentsPayout that = (ShopifyPaymentsPayout) o; return Objects.equals(bankAccount, that.bankAccount) && Objects.equals(businessEntity, that.businessEntity) && + Objects.equals(externalTraceId, that.externalTraceId) && Objects.equals(gross, that.gross) && Objects.equals(id, that.id) && Objects.equals(issuedAt, that.issuedAt) && @@ -204,7 +227,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(bankAccount, businessEntity, gross, id, issuedAt, legacyResourceId, net, status, summary, transactionType); + return Objects.hash(bankAccount, businessEntity, externalTraceId, gross, id, issuedAt, legacyResourceId, net, status, summary, transactionType); } public static Builder newBuilder() { @@ -222,6 +245,11 @@ public static class Builder { */ private BusinessEntity businessEntity; + /** + * A unique trace ID from the financial institution. Use this reference number to track the payout with your provider. + */ + private String externalTraceId; + /** * The total amount and currency of the payout. */ @@ -267,6 +295,7 @@ public ShopifyPaymentsPayout build() { ShopifyPaymentsPayout result = new ShopifyPaymentsPayout(); result.bankAccount = this.bankAccount; result.businessEntity = this.businessEntity; + result.externalTraceId = this.externalTraceId; result.gross = this.gross; result.id = this.id; result.issuedAt = this.issuedAt; @@ -294,6 +323,14 @@ public Builder businessEntity(BusinessEntity businessEntity) { return this; } + /** + * A unique trace ID from the financial institution. Use this reference number to track the payout with your provider. + */ + public Builder externalTraceId(String externalTraceId) { + this.externalTraceId = externalTraceId; + return this; + } + /** * The total amount and currency of the payout. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsPayoutSummary.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsPayoutSummary.java index 300481e9..7a037016 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsPayoutSummary.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsPayoutSummary.java @@ -70,6 +70,11 @@ public class ShopifyPaymentsPayoutSummary { */ private MoneyV2 retriedPayoutsGross; + /** + * Total amount for all usdc rebate credit balance adjustments. + */ + private MoneyV2 usdcRebateCreditAmount; + public ShopifyPaymentsPayoutSummary() { } @@ -205,9 +210,20 @@ public void setRetriedPayoutsGross(MoneyV2 retriedPayoutsGross) { this.retriedPayoutsGross = retriedPayoutsGross; } + /** + * Total amount for all usdc rebate credit balance adjustments. + */ + public MoneyV2 getUsdcRebateCreditAmount() { + return usdcRebateCreditAmount; + } + + public void setUsdcRebateCreditAmount(MoneyV2 usdcRebateCreditAmount) { + this.usdcRebateCreditAmount = usdcRebateCreditAmount; + } + @Override public String toString() { - return "ShopifyPaymentsPayoutSummary{adjustmentsFee='" + adjustmentsFee + "', adjustmentsGross='" + adjustmentsGross + "', advanceFees='" + advanceFees + "', advanceGross='" + advanceGross + "', chargesFee='" + chargesFee + "', chargesGross='" + chargesGross + "', refundsFee='" + refundsFee + "', refundsFeeGross='" + refundsFeeGross + "', reservedFundsFee='" + reservedFundsFee + "', reservedFundsGross='" + reservedFundsGross + "', retriedPayoutsFee='" + retriedPayoutsFee + "', retriedPayoutsGross='" + retriedPayoutsGross + "'}"; + return "ShopifyPaymentsPayoutSummary{adjustmentsFee='" + adjustmentsFee + "', adjustmentsGross='" + adjustmentsGross + "', advanceFees='" + advanceFees + "', advanceGross='" + advanceGross + "', chargesFee='" + chargesFee + "', chargesGross='" + chargesGross + "', refundsFee='" + refundsFee + "', refundsFeeGross='" + refundsFeeGross + "', reservedFundsFee='" + reservedFundsFee + "', reservedFundsGross='" + reservedFundsGross + "', retriedPayoutsFee='" + retriedPayoutsFee + "', retriedPayoutsGross='" + retriedPayoutsGross + "', usdcRebateCreditAmount='" + usdcRebateCreditAmount + "'}"; } @Override @@ -226,12 +242,13 @@ public boolean equals(Object o) { Objects.equals(reservedFundsFee, that.reservedFundsFee) && Objects.equals(reservedFundsGross, that.reservedFundsGross) && Objects.equals(retriedPayoutsFee, that.retriedPayoutsFee) && - Objects.equals(retriedPayoutsGross, that.retriedPayoutsGross); + Objects.equals(retriedPayoutsGross, that.retriedPayoutsGross) && + Objects.equals(usdcRebateCreditAmount, that.usdcRebateCreditAmount); } @Override public int hashCode() { - return Objects.hash(adjustmentsFee, adjustmentsGross, advanceFees, advanceGross, chargesFee, chargesGross, refundsFee, refundsFeeGross, reservedFundsFee, reservedFundsGross, retriedPayoutsFee, retriedPayoutsGross); + return Objects.hash(adjustmentsFee, adjustmentsGross, advanceFees, advanceGross, chargesFee, chargesGross, refundsFee, refundsFeeGross, reservedFundsFee, reservedFundsGross, retriedPayoutsFee, retriedPayoutsGross, usdcRebateCreditAmount); } public static Builder newBuilder() { @@ -299,6 +316,11 @@ public static class Builder { */ private MoneyV2 retriedPayoutsGross; + /** + * Total amount for all usdc rebate credit balance adjustments. + */ + private MoneyV2 usdcRebateCreditAmount; + public ShopifyPaymentsPayoutSummary build() { ShopifyPaymentsPayoutSummary result = new ShopifyPaymentsPayoutSummary(); result.adjustmentsFee = this.adjustmentsFee; @@ -313,6 +335,7 @@ public ShopifyPaymentsPayoutSummary build() { result.reservedFundsGross = this.reservedFundsGross; result.retriedPayoutsFee = this.retriedPayoutsFee; result.retriedPayoutsGross = this.retriedPayoutsGross; + result.usdcRebateCreditAmount = this.usdcRebateCreditAmount; return result; } @@ -411,5 +434,13 @@ public Builder retriedPayoutsGross(MoneyV2 retriedPayoutsGross) { this.retriedPayoutsGross = retriedPayoutsGross; return this; } + + /** + * Total amount for all usdc rebate credit balance adjustments. + */ + public Builder usdcRebateCreditAmount(MoneyV2 usdcRebateCreditAmount) { + this.usdcRebateCreditAmount = usdcRebateCreditAmount; + return this; + } } } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsTransactionType.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsTransactionType.java index 25572628..9b773bda 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsTransactionType.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsTransactionType.java @@ -4,6 +4,14 @@ * The possible types of transactions. */ public enum ShopifyPaymentsTransactionType { + ACH_BANK_FAILURE_DEBIT_FEE, + + ACH_BANK_FAILURE_DEBIT_REVERSAL_FEE, + + ADS_PUBLISHER_CREDIT, + + ADS_PUBLISHER_CREDIT_REVERSAL, + CHARGEBACK_PROTECTION_CREDIT, CHARGEBACK_PROTECTION_CREDIT_REVERSAL, @@ -64,6 +72,14 @@ public enum ShopifyPaymentsTransactionType { TAX_ADJUSTMENT_CREDIT_REVERSAL, + AGENTIC_FEE_TAX_DEBIT, + + AGENTIC_FEE_TAX_DEBIT_REVERSAL, + + AGENTIC_FEE_TAX_CREDIT, + + AGENTIC_FEE_TAX_CREDIT_REVERSAL, + BILLING_DEBIT, BILLING_DEBIT_REVERSAL, @@ -100,6 +116,30 @@ public enum ShopifyPaymentsTransactionType { SHOPIFY_COLLECTIVE_CREDIT_REVERSAL, + LENDING_DEBIT, + + LENDING_DEBIT_REVERSAL, + + LENDING_CREDIT, + + LENDING_CREDIT_REVERSAL, + + LENDING_CAPITAL_REMITTANCE, + + LENDING_CAPITAL_REMITTANCE_REVERSAL, + + LENDING_CREDIT_REMITTANCE, + + LENDING_CREDIT_REMITTANCE_REVERSAL, + + LENDING_CAPITAL_REFUND, + + LENDING_CAPITAL_REFUND_REVERSAL, + + LENDING_CREDIT_REFUND, + + LENDING_CREDIT_REFUND_REVERSAL, + BALANCE_TRANSFER_INBOUND, MARKETS_PRO_CREDIT, @@ -140,6 +180,10 @@ public enum ShopifyPaymentsTransactionType { RISK_WITHDRAWAL, + REFERRAL_FEE, + + REFERRAL_FEE_TAX, + MERCHANT_TO_MERCHANT_DEBIT, MERCHANT_TO_MERCHANT_DEBIT_REVERSAL, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsVerification.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsVerification.java deleted file mode 100644 index c76d25a5..00000000 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsVerification.java +++ /dev/null @@ -1,140 +0,0 @@ -package com.shopify.admin.types; - -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import java.lang.Object; -import java.lang.Override; -import java.lang.String; -import java.util.Objects; - -/** - * Each subject (individual) of an account has a verification object giving - * information about the verification state. - */ -@JsonTypeInfo( - use = JsonTypeInfo.Id.NONE -) -public class ShopifyPaymentsVerification implements com.shopify.admin.types.Node { - /** - * A globally-unique ID. - */ - private String id; - - /** - * The status of the verification. - */ - private ShopifyPaymentsVerificationStatus status; - - /** - * The subject/individual who has to be verified. - */ - private ShopifyPaymentsVerificationSubject subject; - - public ShopifyPaymentsVerification() { - } - - /** - * A globally-unique ID. - */ - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - /** - * The status of the verification. - */ - public ShopifyPaymentsVerificationStatus getStatus() { - return status; - } - - public void setStatus(ShopifyPaymentsVerificationStatus status) { - this.status = status; - } - - /** - * The subject/individual who has to be verified. - */ - public ShopifyPaymentsVerificationSubject getSubject() { - return subject; - } - - public void setSubject(ShopifyPaymentsVerificationSubject subject) { - this.subject = subject; - } - - @Override - public String toString() { - return "ShopifyPaymentsVerification{id='" + id + "', status='" + status + "', subject='" + subject + "'}"; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - ShopifyPaymentsVerification that = (ShopifyPaymentsVerification) o; - return Objects.equals(id, that.id) && - Objects.equals(status, that.status) && - Objects.equals(subject, that.subject); - } - - @Override - public int hashCode() { - return Objects.hash(id, status, subject); - } - - public static Builder newBuilder() { - return new Builder(); - } - - public static class Builder { - /** - * A globally-unique ID. - */ - private String id; - - /** - * The status of the verification. - */ - private ShopifyPaymentsVerificationStatus status; - - /** - * The subject/individual who has to be verified. - */ - private ShopifyPaymentsVerificationSubject subject; - - public ShopifyPaymentsVerification build() { - ShopifyPaymentsVerification result = new ShopifyPaymentsVerification(); - result.id = this.id; - result.status = this.status; - result.subject = this.subject; - return result; - } - - /** - * A globally-unique ID. - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * The status of the verification. - */ - public Builder status(ShopifyPaymentsVerificationStatus status) { - this.status = status; - return this; - } - - /** - * The subject/individual who has to be verified. - */ - public Builder subject(ShopifyPaymentsVerificationSubject subject) { - this.subject = subject; - return this; - } - } -} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsVerificationStatus.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsVerificationStatus.java deleted file mode 100644 index bc3dcaa0..00000000 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsVerificationStatus.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.shopify.admin.types; - -/** - * The status of a verification. - */ -public enum ShopifyPaymentsVerificationStatus { - VERIFIED, - - UNVERIFIED, - - PENDING -} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsVerificationSubject.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsVerificationSubject.java deleted file mode 100644 index bf1973af..00000000 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyPaymentsVerificationSubject.java +++ /dev/null @@ -1,104 +0,0 @@ -package com.shopify.admin.types; - -import java.lang.Object; -import java.lang.Override; -import java.lang.String; -import java.util.Objects; - -/** - * The verification subject represents an individual that has to be verified. - */ -public class ShopifyPaymentsVerificationSubject { - /** - * The family name of the individual to verify. - */ - private String familyName; - - /** - * The given name of the individual to verify. - */ - private String givenName; - - public ShopifyPaymentsVerificationSubject() { - } - - /** - * The family name of the individual to verify. - */ - public String getFamilyName() { - return familyName; - } - - public void setFamilyName(String familyName) { - this.familyName = familyName; - } - - /** - * The given name of the individual to verify. - */ - public String getGivenName() { - return givenName; - } - - public void setGivenName(String givenName) { - this.givenName = givenName; - } - - @Override - public String toString() { - return "ShopifyPaymentsVerificationSubject{familyName='" + familyName + "', givenName='" + givenName + "'}"; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - ShopifyPaymentsVerificationSubject that = (ShopifyPaymentsVerificationSubject) o; - return Objects.equals(familyName, that.familyName) && - Objects.equals(givenName, that.givenName); - } - - @Override - public int hashCode() { - return Objects.hash(familyName, givenName); - } - - public static Builder newBuilder() { - return new Builder(); - } - - public static class Builder { - /** - * The family name of the individual to verify. - */ - private String familyName; - - /** - * The given name of the individual to verify. - */ - private String givenName; - - public ShopifyPaymentsVerificationSubject build() { - ShopifyPaymentsVerificationSubject result = new ShopifyPaymentsVerificationSubject(); - result.familyName = this.familyName; - result.givenName = this.givenName; - return result; - } - - /** - * The family name of the individual to verify. - */ - public Builder familyName(String familyName) { - this.familyName = familyName; - return this; - } - - /** - * The given name of the individual to verify. - */ - public Builder givenName(String givenName) { - this.givenName = givenName; - return this; - } - } -} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyqlQueryResponse.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyqlQueryResponse.java new file mode 100644 index 00000000..e52592b2 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyqlQueryResponse.java @@ -0,0 +1,105 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * A response to a ShopifyQL query. + */ +public class ShopifyqlQueryResponse { + /** + * A list of parse errors, if parsing fails. + */ + private List parseErrors; + + /** + * The result in a tabular format with column and row data. + */ + private ShopifyqlTableData tableData; + + public ShopifyqlQueryResponse() { + } + + /** + * A list of parse errors, if parsing fails. + */ + public List getParseErrors() { + return parseErrors; + } + + public void setParseErrors(List parseErrors) { + this.parseErrors = parseErrors; + } + + /** + * The result in a tabular format with column and row data. + */ + public ShopifyqlTableData getTableData() { + return tableData; + } + + public void setTableData(ShopifyqlTableData tableData) { + this.tableData = tableData; + } + + @Override + public String toString() { + return "ShopifyqlQueryResponse{parseErrors='" + parseErrors + "', tableData='" + tableData + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ShopifyqlQueryResponse that = (ShopifyqlQueryResponse) o; + return Objects.equals(parseErrors, that.parseErrors) && + Objects.equals(tableData, that.tableData); + } + + @Override + public int hashCode() { + return Objects.hash(parseErrors, tableData); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * A list of parse errors, if parsing fails. + */ + private List parseErrors; + + /** + * The result in a tabular format with column and row data. + */ + private ShopifyqlTableData tableData; + + public ShopifyqlQueryResponse build() { + ShopifyqlQueryResponse result = new ShopifyqlQueryResponse(); + result.parseErrors = this.parseErrors; + result.tableData = this.tableData; + return result; + } + + /** + * A list of parse errors, if parsing fails. + */ + public Builder parseErrors(List parseErrors) { + this.parseErrors = parseErrors; + return this; + } + + /** + * The result in a tabular format with column and row data. + */ + public Builder tableData(ShopifyqlTableData tableData) { + this.tableData = tableData; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyqlTableData.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyqlTableData.java new file mode 100644 index 00000000..49313f23 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyqlTableData.java @@ -0,0 +1,105 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * The result of a ShopifyQL query. + */ +public class ShopifyqlTableData { + /** + * The columns of the table. + */ + private List columns; + + /** + * The rows of the table. + */ + private String rows; + + public ShopifyqlTableData() { + } + + /** + * The columns of the table. + */ + public List getColumns() { + return columns; + } + + public void setColumns(List columns) { + this.columns = columns; + } + + /** + * The rows of the table. + */ + public String getRows() { + return rows; + } + + public void setRows(String rows) { + this.rows = rows; + } + + @Override + public String toString() { + return "ShopifyqlTableData{columns='" + columns + "', rows='" + rows + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ShopifyqlTableData that = (ShopifyqlTableData) o; + return Objects.equals(columns, that.columns) && + Objects.equals(rows, that.rows); + } + + @Override + public int hashCode() { + return Objects.hash(columns, rows); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The columns of the table. + */ + private List columns; + + /** + * The rows of the table. + */ + private String rows; + + public ShopifyqlTableData build() { + ShopifyqlTableData result = new ShopifyqlTableData(); + result.columns = this.columns; + result.rows = this.rows; + return result; + } + + /** + * The columns of the table. + */ + public Builder columns(List columns) { + this.columns = columns; + return this; + } + + /** + * The rows of the table. + */ + public Builder rows(String rows) { + this.rows = rows; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyqlTableDataColumn.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyqlTableDataColumn.java new file mode 100644 index 00000000..d5dbf29e --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ShopifyqlTableDataColumn.java @@ -0,0 +1,166 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * Represents a column in a ShopifyQL query response. + */ +public class ShopifyqlTableDataColumn { + /** + * The data type of the column. + */ + private ColumnDataType dataType; + + /** + * The human-readable display name of the column. + */ + private String displayName; + + /** + * The name of the column. + */ + private String name; + + /** + * The sub type of an array column. + */ + private ColumnDataType subType; + + public ShopifyqlTableDataColumn() { + } + + /** + * The data type of the column. + */ + public ColumnDataType getDataType() { + return dataType; + } + + public void setDataType(ColumnDataType dataType) { + this.dataType = dataType; + } + + /** + * The human-readable display name of the column. + */ + public String getDisplayName() { + return displayName; + } + + public void setDisplayName(String displayName) { + this.displayName = displayName; + } + + /** + * The name of the column. + */ + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + /** + * The sub type of an array column. + */ + public ColumnDataType getSubType() { + return subType; + } + + public void setSubType(ColumnDataType subType) { + this.subType = subType; + } + + @Override + public String toString() { + return "ShopifyqlTableDataColumn{dataType='" + dataType + "', displayName='" + displayName + "', name='" + name + "', subType='" + subType + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ShopifyqlTableDataColumn that = (ShopifyqlTableDataColumn) o; + return Objects.equals(dataType, that.dataType) && + Objects.equals(displayName, that.displayName) && + Objects.equals(name, that.name) && + Objects.equals(subType, that.subType); + } + + @Override + public int hashCode() { + return Objects.hash(dataType, displayName, name, subType); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The data type of the column. + */ + private ColumnDataType dataType; + + /** + * The human-readable display name of the column. + */ + private String displayName; + + /** + * The name of the column. + */ + private String name; + + /** + * The sub type of an array column. + */ + private ColumnDataType subType; + + public ShopifyqlTableDataColumn build() { + ShopifyqlTableDataColumn result = new ShopifyqlTableDataColumn(); + result.dataType = this.dataType; + result.displayName = this.displayName; + result.name = this.name; + result.subType = this.subType; + return result; + } + + /** + * The data type of the column. + */ + public Builder dataType(ColumnDataType dataType) { + this.dataType = dataType; + return this; + } + + /** + * The human-readable display name of the column. + */ + public Builder displayName(String displayName) { + this.displayName = displayName; + return this; + } + + /** + * The name of the column. + */ + public Builder name(String name) { + this.name = name; + return this; + } + + /** + * The sub type of an array column. + */ + public Builder subType(ColumnDataType subType) { + this.subType = subType; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/StaffMember.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/StaffMember.java index 4f8b9ec0..6e82b572 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/StaffMember.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/StaffMember.java @@ -8,8 +8,12 @@ import java.util.Objects; /** - * Represents the data about a staff member's Shopify account. Merchants can use - * staff member data to get more information about the staff members in their store. + * A user account that can access the Shopify admin to manage store operations. + * Includes personal information and account status. + * + * You can assign staff members to [`CompanyLocation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CompanyLocation) + * objects for [B2B operations](https://shopify.dev/docs/apps/build/b2b), limiting + * their actions to those locations. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/StagedUploadTargetGenerateUploadResource.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/StagedUploadTargetGenerateUploadResource.java index ec7436d1..7148b50d 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/StagedUploadTargetGenerateUploadResource.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/StagedUploadTargetGenerateUploadResource.java @@ -22,5 +22,7 @@ public enum StagedUploadTargetGenerateUploadResource { RETURN_LABEL, - URL_REDIRECT_IMPORT + URL_REDIRECT_IMPORT, + + DISPUTE_FILE_UPLOAD } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/StandardMetafieldDefinitionEnableUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/StandardMetafieldDefinitionEnableUserErrorCode.java index 5d11581c..c8454e7c 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/StandardMetafieldDefinitionEnableUserErrorCode.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/StandardMetafieldDefinitionEnableUserErrorCode.java @@ -20,6 +20,8 @@ public enum StandardMetafieldDefinitionEnableUserErrorCode { CAPABILITY_CANNOT_BE_DISABLED, + OWNER_TYPE_LIMIT_EXCEEDED_FOR_USE_AS_ADMIN_FILTERS, + UNSUPPORTED_PINNING, ADMIN_ACCESS_INPUT_NOT_ALLOWED, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/StoreCreditAccountCreditInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/StoreCreditAccountCreditInput.java index 262a4cf5..550e486e 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/StoreCreditAccountCreditInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/StoreCreditAccountCreditInput.java @@ -1,5 +1,6 @@ package com.shopify.admin.types; +import java.lang.Boolean; import java.lang.Object; import java.lang.Override; import java.lang.String; @@ -20,6 +21,12 @@ public class StoreCreditAccountCreditInput { */ private OffsetDateTime expiresAt; + /** + * Whether to send a notification to the account owner when the store credit is issued. + * Defaults to `false`. + */ + private Boolean notify = false; + public StoreCreditAccountCreditInput() { } @@ -45,9 +52,21 @@ public void setExpiresAt(OffsetDateTime expiresAt) { this.expiresAt = expiresAt; } + /** + * Whether to send a notification to the account owner when the store credit is issued. + * Defaults to `false`. + */ + public Boolean getNotify() { + return notify; + } + + public void setNotify(Boolean notify) { + this.notify = notify; + } + @Override public String toString() { - return "StoreCreditAccountCreditInput{creditAmount='" + creditAmount + "', expiresAt='" + expiresAt + "'}"; + return "StoreCreditAccountCreditInput{creditAmount='" + creditAmount + "', expiresAt='" + expiresAt + "', notify='" + notify + "'}"; } @Override @@ -56,12 +75,13 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) return false; StoreCreditAccountCreditInput that = (StoreCreditAccountCreditInput) o; return Objects.equals(creditAmount, that.creditAmount) && - Objects.equals(expiresAt, that.expiresAt); + Objects.equals(expiresAt, that.expiresAt) && + Objects.equals(notify, that.notify); } @Override public int hashCode() { - return Objects.hash(creditAmount, expiresAt); + return Objects.hash(creditAmount, expiresAt, notify); } public static Builder newBuilder() { @@ -79,10 +99,17 @@ public static class Builder { */ private OffsetDateTime expiresAt; + /** + * Whether to send a notification to the account owner when the store credit is issued. + * Defaults to `false`. + */ + private Boolean notify = false; + public StoreCreditAccountCreditInput build() { StoreCreditAccountCreditInput result = new StoreCreditAccountCreditInput(); result.creditAmount = this.creditAmount; result.expiresAt = this.expiresAt; + result.notify = this.notify; return result; } @@ -101,5 +128,14 @@ public Builder expiresAt(OffsetDateTime expiresAt) { this.expiresAt = expiresAt; return this; } + + /** + * Whether to send a notification to the account owner when the store credit is issued. + * Defaults to `false`. + */ + public Builder notify(Boolean notify) { + this.notify = notify; + return this; + } } } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/StoreCreditRefundInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/StoreCreditRefundInput.java new file mode 100644 index 00000000..9a00f738 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/StoreCreditRefundInput.java @@ -0,0 +1,105 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.time.OffsetDateTime; +import java.util.Objects; + +/** + * The input fields to process a refund to store credit. + */ +public class StoreCreditRefundInput { + /** + * The amount to be issued as store credit. + */ + private MoneyInput amount; + + /** + * An optional expiration date for the store credit being issued. + */ + private OffsetDateTime expiresAt; + + public StoreCreditRefundInput() { + } + + /** + * The amount to be issued as store credit. + */ + public MoneyInput getAmount() { + return amount; + } + + public void setAmount(MoneyInput amount) { + this.amount = amount; + } + + /** + * An optional expiration date for the store credit being issued. + */ + public OffsetDateTime getExpiresAt() { + return expiresAt; + } + + public void setExpiresAt(OffsetDateTime expiresAt) { + this.expiresAt = expiresAt; + } + + @Override + public String toString() { + return "StoreCreditRefundInput{amount='" + amount + "', expiresAt='" + expiresAt + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + StoreCreditRefundInput that = (StoreCreditRefundInput) o; + return Objects.equals(amount, that.amount) && + Objects.equals(expiresAt, that.expiresAt); + } + + @Override + public int hashCode() { + return Objects.hash(amount, expiresAt); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The amount to be issued as store credit. + */ + private MoneyInput amount; + + /** + * An optional expiration date for the store credit being issued. + */ + private OffsetDateTime expiresAt; + + public StoreCreditRefundInput build() { + StoreCreditRefundInput result = new StoreCreditRefundInput(); + result.amount = this.amount; + result.expiresAt = this.expiresAt; + return result; + } + + /** + * The amount to be issued as store credit. + */ + public Builder amount(MoneyInput amount) { + this.amount = amount; + return this; + } + + /** + * An optional expiration date for the store credit being issued. + */ + public Builder expiresAt(OffsetDateTime expiresAt) { + this.expiresAt = expiresAt; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/StorefrontAccessToken.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/StorefrontAccessToken.java index f6762b6a..c2aec6ff 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/StorefrontAccessToken.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/StorefrontAccessToken.java @@ -9,13 +9,19 @@ import java.util.Objects; /** - * A token that's used to delegate unauthenticated access scopes to clients that need to access - * the unauthenticated [Storefront API](https://shopify.dev/docs/api/storefront). + * A token that delegates unauthenticated access scopes to clients that need to + * access the [Storefront API](https://shopify.dev/docs/api/storefront). Storefront + * access tokens enable headless storefronts and custom applications to interact + * with a store on behalf of customers without requiring authentication. * - * An app can have a maximum of 100 active storefront access - * tokens for each shop. + * The token provides specific permissions, such as reading + * [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) + * data, managing carts, or creating + * [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer) + * accounts. An app can have a maximum of 100 active storefront access tokens for + * each [`Shop`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Shop). * - * [Get started with the Storefront API](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/getting-started). + * Learn more about [building with the Storefront API](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/getting-started). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SubscriptionBillingAttempt.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SubscriptionBillingAttempt.java index 78a7bf80..d874effa 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SubscriptionBillingAttempt.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SubscriptionBillingAttempt.java @@ -8,9 +8,14 @@ import java.util.Objects; /** - * A record of an execution of the subscription billing process. Billing attempts use - * idempotency keys to avoid duplicate order creation. A successful billing attempt - * will create an order. + * A record of an execution of the subscription billing process. Billing attempts + * use idempotency keys to avoid duplicate order creation. + * + * When a billing attempt completes successfully, it creates an + * [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order). The + * attempt includes associated payment transactions and any errors that occur + * during billing. If 3D Secure authentication is required, the `nextActionUrl` + * field provides the redirect URL for customer verification. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SubscriptionBillingAttemptErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SubscriptionBillingAttemptErrorCode.java index 007e2d99..d3508df2 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SubscriptionBillingAttemptErrorCode.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SubscriptionBillingAttemptErrorCode.java @@ -53,5 +53,9 @@ public enum SubscriptionBillingAttemptErrorCode { FRAUD_SUSPECTED, - NON_TEST_ORDER_LIMIT_REACHED + NON_TEST_ORDER_LIMIT_REACHED, + + FREE_GIFT_CARD_NOT_ALLOWED, + + INVALID_BILLING_ADDRESS } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SubscriptionBillingCycleSelector.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SubscriptionBillingCycleSelector.java index ba605bb6..7bd0b87d 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SubscriptionBillingCycleSelector.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SubscriptionBillingCycleSelector.java @@ -9,6 +9,7 @@ /** * The input fields to select SubscriptionBillingCycle by either date or index. + * Both past and future billing cycles can be selected. */ public class SubscriptionBillingCycleSelector { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SubscriptionContract.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SubscriptionContract.java index 23a8b3fd..a5eccf6d 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SubscriptionContract.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SubscriptionContract.java @@ -9,7 +9,21 @@ import java.util.Objects; /** - * Represents a Subscription Contract. + * A subscription contract that defines recurring purchases for a customer. Each + * contract specifies what products to deliver, when to bill and ship them, and at what price. + * + * The contract includes [`SubscriptionBillingPolicy`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SubscriptionBillingPolicy) and [`SubscriptionDeliveryPolicy`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SubscriptionDeliveryPolicy) + * that control the frequency of charges and fulfillments. [`SubscriptionLine`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SubscriptionLine) + * items define the products, quantities, and pricing for each recurring + * [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order). The + * contract tracks [`SubscriptionBillingAttempt`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SubscriptionBillingAttempt) + * records, payment status, and generated orders throughout its lifecycle. + * [`App`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App) instances + * manage contracts through various status transitions including active, paused, + * failed, cancelled, or expired states. + * + * Learn more about [building subscription contracts](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/contracts/build-a-subscription-contract) + * and [updating subscription contracts](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/contracts/update-a-subscription-contract). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SubscriptionDeliveryMethodLocalDelivery.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SubscriptionDeliveryMethodLocalDelivery.java index 5265adf6..e5d36443 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SubscriptionDeliveryMethodLocalDelivery.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SubscriptionDeliveryMethodLocalDelivery.java @@ -17,7 +17,7 @@ public class SubscriptionDeliveryMethodLocalDelivery implements SubscriptionDeli /** * The address to deliver to. */ - private SubscriptionMailingAddress address; + private MailingAddress address; /** * The details of the local delivery method to use. @@ -30,11 +30,11 @@ public SubscriptionDeliveryMethodLocalDelivery() { /** * The address to deliver to. */ - public SubscriptionMailingAddress getAddress() { + public MailingAddress getAddress() { return address; } - public void setAddress(SubscriptionMailingAddress address) { + public void setAddress(MailingAddress address) { this.address = address; } @@ -77,7 +77,7 @@ public static class Builder { /** * The address to deliver to. */ - private SubscriptionMailingAddress address; + private MailingAddress address; /** * The details of the local delivery method to use. @@ -94,7 +94,7 @@ public SubscriptionDeliveryMethodLocalDelivery build() { /** * The address to deliver to. */ - public Builder address(SubscriptionMailingAddress address) { + public Builder address(MailingAddress address) { this.address = address; return this; } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SubscriptionDeliveryMethodShipping.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SubscriptionDeliveryMethodShipping.java index 3975d051..89dbaff2 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SubscriptionDeliveryMethodShipping.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SubscriptionDeliveryMethodShipping.java @@ -16,7 +16,7 @@ public class SubscriptionDeliveryMethodShipping implements SubscriptionDeliveryM /** * The address to ship to. */ - private SubscriptionMailingAddress address; + private MailingAddress address; /** * The details of the shipping method to use. @@ -29,11 +29,11 @@ public SubscriptionDeliveryMethodShipping() { /** * The address to ship to. */ - public SubscriptionMailingAddress getAddress() { + public MailingAddress getAddress() { return address; } - public void setAddress(SubscriptionMailingAddress address) { + public void setAddress(MailingAddress address) { this.address = address; } @@ -75,7 +75,7 @@ public static class Builder { /** * The address to ship to. */ - private SubscriptionMailingAddress address; + private MailingAddress address; /** * The details of the shipping method to use. @@ -92,7 +92,7 @@ public SubscriptionDeliveryMethodShipping build() { /** * The address to ship to. */ - public Builder address(SubscriptionMailingAddress address) { + public Builder address(MailingAddress address) { this.address = address; return this; } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SubscriptionDraft.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SubscriptionDraft.java index c7db4ebc..dbcef4c4 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SubscriptionDraft.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SubscriptionDraft.java @@ -9,7 +9,34 @@ import java.util.Objects; /** - * Represents a Subscription Draft. + * The `SubscriptionDraft` object represents a draft version of a + * [subscription contract](https://shopify.dev/docs/api/admin-graphql/latest/objects/SubscriptionContract) + * before it's committed. It serves as a staging area for making changes to an existing subscription or creating + * a new one. The draft allows you to preview and modify various aspects of a subscription before applying the changes. + * + * Use the `SubscriptionDraft` object to: + * + * - Add, remove, or modify subscription lines and their quantities + * - Manage discounts (add, remove, or update manual and code-based discounts) + * - Configure delivery options and shipping methods + * - Set up billing and delivery policies + * - Manage customer payment methods + * - Add custom attributes and notes to generated orders + * - Configure billing cycles and next billing dates + * - Preview the projected state of the subscription + * + * Each `SubscriptionDraft` object maintains a projected state that shows how the subscription will look after the changes + * are committed. This allows you to preview the impact of your modifications before applying them. The draft can be + * associated with an existing subscription contract (for modifications) or used to create a new subscription. + * + * The draft remains in a draft state until it's committed, at which point the changes are applied to the subscription + * contract and the draft is no longer accessible. + * + * Learn more about + * [how subscription contracts work](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/contracts) + * and how to [build](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/contracts/build-a-subscription-contract), + * [update](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/contracts/update-a-subscription-contract), and + * [combine](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/contracts/combine-subscription-contracts) subscription contracts. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SubscriptionLine.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SubscriptionLine.java index 312882bd..47539f0b 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SubscriptionLine.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SubscriptionLine.java @@ -7,7 +7,16 @@ import java.util.Objects; /** - * Represents a Subscription Line. + * A product line item within a [`SubscriptionContract`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SubscriptionContract). + * Each line represents a specific product variant that the customer subscribes to, + * including its quantity, pricing, and whether shipping is required. + * + * The line maintains references to the [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant), [`SellingPlan`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SellingPlan), and custom [`Attribute`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Attribute) + * objects. It tracks the current price and any scheduled price changes through its [`pricingPolicy`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SubscriptionPricingPolicy). + * You can modify lines through [`SubscriptionDraft`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SubscriptionDraft) + * objects without affecting the original contract until you commit changes. + * + * Learn more about [subscription contracts](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/contracts) and [selling plans](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/selling-plans). */ public class SubscriptionLine { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SubscriptionMailingAddress.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SubscriptionMailingAddress.java deleted file mode 100644 index 5b8397de..00000000 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SubscriptionMailingAddress.java +++ /dev/null @@ -1,461 +0,0 @@ -package com.shopify.admin.types; - -import java.lang.Object; -import java.lang.Override; -import java.lang.String; -import java.util.Objects; - -/** - * Represents a Mailing Address on a Subscription. - */ -public class SubscriptionMailingAddress { - /** - * The first line of the address. Typically the street address or PO Box number. - */ - private String address1; - - /** - * The second line of the address. Typically the number of the apartment, suite, or unit. - */ - private String address2; - - /** - * The name of the city, district, village, or town. - */ - private String city; - - /** - * The name of the customer's company or organization. - */ - private String company; - - /** - * The name of the country. - */ - private String country; - - /** - * The two-letter code for the country of the address. - * - * For example, US. - */ - private CountryCode countryCode; - - /** - * The first name of the customer. - */ - private String firstName; - - /** - * The last name of the customer. - */ - private String lastName; - - /** - * The full name of the customer, based on firstName and lastName. - */ - private String name; - - /** - * A unique phone number for the customer. Formatted using E.164 standard. For example, _+16135551111_. - */ - private String phone; - - /** - * The region of the address, such as the province, state, or district. - */ - private String province; - - /** - * The alphanumeric code for the region. - * - * For example, ON. - */ - private String provinceCode; - - /** - * The zip or postal code of the address. - */ - private String zip; - - public SubscriptionMailingAddress() { - } - - /** - * The first line of the address. Typically the street address or PO Box number. - */ - public String getAddress1() { - return address1; - } - - public void setAddress1(String address1) { - this.address1 = address1; - } - - /** - * The second line of the address. Typically the number of the apartment, suite, or unit. - */ - public String getAddress2() { - return address2; - } - - public void setAddress2(String address2) { - this.address2 = address2; - } - - /** - * The name of the city, district, village, or town. - */ - public String getCity() { - return city; - } - - public void setCity(String city) { - this.city = city; - } - - /** - * The name of the customer's company or organization. - */ - public String getCompany() { - return company; - } - - public void setCompany(String company) { - this.company = company; - } - - /** - * The name of the country. - */ - public String getCountry() { - return country; - } - - public void setCountry(String country) { - this.country = country; - } - - /** - * The two-letter code for the country of the address. - * - * For example, US. - */ - public CountryCode getCountryCode() { - return countryCode; - } - - public void setCountryCode(CountryCode countryCode) { - this.countryCode = countryCode; - } - - /** - * The first name of the customer. - */ - public String getFirstName() { - return firstName; - } - - public void setFirstName(String firstName) { - this.firstName = firstName; - } - - /** - * The last name of the customer. - */ - public String getLastName() { - return lastName; - } - - public void setLastName(String lastName) { - this.lastName = lastName; - } - - /** - * The full name of the customer, based on firstName and lastName. - */ - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - /** - * A unique phone number for the customer. Formatted using E.164 standard. For example, _+16135551111_. - */ - public String getPhone() { - return phone; - } - - public void setPhone(String phone) { - this.phone = phone; - } - - /** - * The region of the address, such as the province, state, or district. - */ - public String getProvince() { - return province; - } - - public void setProvince(String province) { - this.province = province; - } - - /** - * The alphanumeric code for the region. - * - * For example, ON. - */ - public String getProvinceCode() { - return provinceCode; - } - - public void setProvinceCode(String provinceCode) { - this.provinceCode = provinceCode; - } - - /** - * The zip or postal code of the address. - */ - public String getZip() { - return zip; - } - - public void setZip(String zip) { - this.zip = zip; - } - - @Override - public String toString() { - return "SubscriptionMailingAddress{address1='" + address1 + "', address2='" + address2 + "', city='" + city + "', company='" + company + "', country='" + country + "', countryCode='" + countryCode + "', firstName='" + firstName + "', lastName='" + lastName + "', name='" + name + "', phone='" + phone + "', province='" + province + "', provinceCode='" + provinceCode + "', zip='" + zip + "'}"; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - SubscriptionMailingAddress that = (SubscriptionMailingAddress) o; - return Objects.equals(address1, that.address1) && - Objects.equals(address2, that.address2) && - Objects.equals(city, that.city) && - Objects.equals(company, that.company) && - Objects.equals(country, that.country) && - Objects.equals(countryCode, that.countryCode) && - Objects.equals(firstName, that.firstName) && - Objects.equals(lastName, that.lastName) && - Objects.equals(name, that.name) && - Objects.equals(phone, that.phone) && - Objects.equals(province, that.province) && - Objects.equals(provinceCode, that.provinceCode) && - Objects.equals(zip, that.zip); - } - - @Override - public int hashCode() { - return Objects.hash(address1, address2, city, company, country, countryCode, firstName, lastName, name, phone, province, provinceCode, zip); - } - - public static Builder newBuilder() { - return new Builder(); - } - - public static class Builder { - /** - * The first line of the address. Typically the street address or PO Box number. - */ - private String address1; - - /** - * The second line of the address. Typically the number of the apartment, suite, or unit. - */ - private String address2; - - /** - * The name of the city, district, village, or town. - */ - private String city; - - /** - * The name of the customer's company or organization. - */ - private String company; - - /** - * The name of the country. - */ - private String country; - - /** - * The two-letter code for the country of the address. - * - * For example, US. - */ - private CountryCode countryCode; - - /** - * The first name of the customer. - */ - private String firstName; - - /** - * The last name of the customer. - */ - private String lastName; - - /** - * The full name of the customer, based on firstName and lastName. - */ - private String name; - - /** - * A unique phone number for the customer. Formatted using E.164 standard. For example, _+16135551111_. - */ - private String phone; - - /** - * The region of the address, such as the province, state, or district. - */ - private String province; - - /** - * The alphanumeric code for the region. - * - * For example, ON. - */ - private String provinceCode; - - /** - * The zip or postal code of the address. - */ - private String zip; - - public SubscriptionMailingAddress build() { - SubscriptionMailingAddress result = new SubscriptionMailingAddress(); - result.address1 = this.address1; - result.address2 = this.address2; - result.city = this.city; - result.company = this.company; - result.country = this.country; - result.countryCode = this.countryCode; - result.firstName = this.firstName; - result.lastName = this.lastName; - result.name = this.name; - result.phone = this.phone; - result.province = this.province; - result.provinceCode = this.provinceCode; - result.zip = this.zip; - return result; - } - - /** - * The first line of the address. Typically the street address or PO Box number. - */ - public Builder address1(String address1) { - this.address1 = address1; - return this; - } - - /** - * The second line of the address. Typically the number of the apartment, suite, or unit. - */ - public Builder address2(String address2) { - this.address2 = address2; - return this; - } - - /** - * The name of the city, district, village, or town. - */ - public Builder city(String city) { - this.city = city; - return this; - } - - /** - * The name of the customer's company or organization. - */ - public Builder company(String company) { - this.company = company; - return this; - } - - /** - * The name of the country. - */ - public Builder country(String country) { - this.country = country; - return this; - } - - /** - * The two-letter code for the country of the address. - * - * For example, US. - */ - public Builder countryCode(CountryCode countryCode) { - this.countryCode = countryCode; - return this; - } - - /** - * The first name of the customer. - */ - public Builder firstName(String firstName) { - this.firstName = firstName; - return this; - } - - /** - * The last name of the customer. - */ - public Builder lastName(String lastName) { - this.lastName = lastName; - return this; - } - - /** - * The full name of the customer, based on firstName and lastName. - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * A unique phone number for the customer. Formatted using E.164 standard. For example, _+16135551111_. - */ - public Builder phone(String phone) { - this.phone = phone; - return this; - } - - /** - * The region of the address, such as the province, state, or district. - */ - public Builder province(String province) { - this.province = province; - return this; - } - - /** - * The alphanumeric code for the region. - * - * For example, ON. - */ - public Builder provinceCode(String provinceCode) { - this.provinceCode = provinceCode; - return this; - } - - /** - * The zip or postal code of the address. - */ - public Builder zip(String zip) { - this.zip = zip; - return this; - } - } -} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SuggestedOutcomeExchangeLineItemInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SuggestedOutcomeExchangeLineItemInput.java new file mode 100644 index 00000000..cac68858 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SuggestedOutcomeExchangeLineItemInput.java @@ -0,0 +1,104 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * The input fields for an exchange line item. + */ +public class SuggestedOutcomeExchangeLineItemInput { + /** + * The ID of the exchange line item. + */ + private String id; + + /** + * The quantity of the exchange line item. + */ + private int quantity; + + public SuggestedOutcomeExchangeLineItemInput() { + } + + /** + * The ID of the exchange line item. + */ + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + /** + * The quantity of the exchange line item. + */ + public int getQuantity() { + return quantity; + } + + public void setQuantity(int quantity) { + this.quantity = quantity; + } + + @Override + public String toString() { + return "SuggestedOutcomeExchangeLineItemInput{id='" + id + "', quantity='" + quantity + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + SuggestedOutcomeExchangeLineItemInput that = (SuggestedOutcomeExchangeLineItemInput) o; + return Objects.equals(id, that.id) && + quantity == that.quantity; + } + + @Override + public int hashCode() { + return Objects.hash(id, quantity); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The ID of the exchange line item. + */ + private String id; + + /** + * The quantity of the exchange line item. + */ + private int quantity; + + public SuggestedOutcomeExchangeLineItemInput build() { + SuggestedOutcomeExchangeLineItemInput result = new SuggestedOutcomeExchangeLineItemInput(); + result.id = this.id; + result.quantity = this.quantity; + return result; + } + + /** + * The ID of the exchange line item. + */ + public Builder id(String id) { + this.id = id; + return this; + } + + /** + * The quantity of the exchange line item. + */ + public Builder quantity(int quantity) { + this.quantity = quantity; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SuggestedOutcomeReturnLineItemInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SuggestedOutcomeReturnLineItemInput.java new file mode 100644 index 00000000..ffe76425 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SuggestedOutcomeReturnLineItemInput.java @@ -0,0 +1,104 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * The input fields for a return line item. + */ +public class SuggestedOutcomeReturnLineItemInput { + /** + * The ID of the return line item. + */ + private String id; + + /** + * The quantity of the return line item. + */ + private int quantity; + + public SuggestedOutcomeReturnLineItemInput() { + } + + /** + * The ID of the return line item. + */ + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + /** + * The quantity of the return line item. + */ + public int getQuantity() { + return quantity; + } + + public void setQuantity(int quantity) { + this.quantity = quantity; + } + + @Override + public String toString() { + return "SuggestedOutcomeReturnLineItemInput{id='" + id + "', quantity='" + quantity + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + SuggestedOutcomeReturnLineItemInput that = (SuggestedOutcomeReturnLineItemInput) o; + return Objects.equals(id, that.id) && + quantity == that.quantity; + } + + @Override + public int hashCode() { + return Objects.hash(id, quantity); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The ID of the return line item. + */ + private String id; + + /** + * The quantity of the return line item. + */ + private int quantity; + + public SuggestedOutcomeReturnLineItemInput build() { + SuggestedOutcomeReturnLineItemInput result = new SuggestedOutcomeReturnLineItemInput(); + result.id = this.id; + result.quantity = this.quantity; + return result; + } + + /** + * The ID of the return line item. + */ + public Builder id(String id) { + this.id = id; + return this; + } + + /** + * The quantity of the return line item. + */ + public Builder quantity(int quantity) { + this.quantity = quantity; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SuggestedRefund.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SuggestedRefund.java index 9490f926..4852f1bb 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SuggestedRefund.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SuggestedRefund.java @@ -7,8 +7,18 @@ import java.util.Objects; /** - * Represents a refund suggested by Shopify based on the items being reimbursed. - * You can then use the suggested refund object to generate an actual refund. + * A refund amount that Shopify suggests based on the items, duties, and shipping + * costs that customers return. Provides a breakdown of all monetary values + * including subtotals, taxes, discounts, and the maximum refundable amount. + * + * The suggested refund includes [`RefundLineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/RefundLineItem) + * objects to refund with their quantities and restock instructions, [`RefundDuty`](https://shopify.dev/docs/api/admin-graphql/latest/objects/RefundDuty) + * objects for duty reimbursements, and [`ShippingRefund`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShippingRefund) + * for shipping cost refunds. Provides [`SuggestedOrderTransaction`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SuggestedOrderTransaction) + * objects and the [`SuggestedRefundMethod`](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/SuggestedRefundMethod) + * interface to process the refund through the appropriate gateways. + * + * Learn more about [previewing and refunding duties](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/view-and-refund-duties#step-3-preview-a-refund-that-includes-duties). */ public class SuggestedRefund { /** @@ -61,6 +71,11 @@ public class SuggestedRefund { */ private MoneyBag subtotalSet; + /** + * A list of suggested refund methods. + */ + private List suggestedRefundMethods; + /** * A list of suggested order transactions. */ @@ -199,6 +214,17 @@ public void setSubtotalSet(MoneyBag subtotalSet) { this.subtotalSet = subtotalSet; } + /** + * A list of suggested refund methods. + */ + public List getSuggestedRefundMethods() { + return suggestedRefundMethods; + } + + public void setSuggestedRefundMethods(List suggestedRefundMethods) { + this.suggestedRefundMethods = suggestedRefundMethods; + } + /** * A list of suggested order transactions. */ @@ -256,7 +282,7 @@ public void setTotalTaxes(String totalTaxes) { @Override public String toString() { - return "SuggestedRefund{amount='" + amount + "', amountSet='" + amountSet + "', discountedSubtotalSet='" + discountedSubtotalSet + "', maximumRefundable='" + maximumRefundable + "', maximumRefundableSet='" + maximumRefundableSet + "', refundDuties='" + refundDuties + "', refundLineItems='" + refundLineItems + "', shipping='" + shipping + "', subtotal='" + subtotal + "', subtotalSet='" + subtotalSet + "', suggestedTransactions='" + suggestedTransactions + "', totalCartDiscountAmountSet='" + totalCartDiscountAmountSet + "', totalDutiesSet='" + totalDutiesSet + "', totalTaxSet='" + totalTaxSet + "', totalTaxes='" + totalTaxes + "'}"; + return "SuggestedRefund{amount='" + amount + "', amountSet='" + amountSet + "', discountedSubtotalSet='" + discountedSubtotalSet + "', maximumRefundable='" + maximumRefundable + "', maximumRefundableSet='" + maximumRefundableSet + "', refundDuties='" + refundDuties + "', refundLineItems='" + refundLineItems + "', shipping='" + shipping + "', subtotal='" + subtotal + "', subtotalSet='" + subtotalSet + "', suggestedRefundMethods='" + suggestedRefundMethods + "', suggestedTransactions='" + suggestedTransactions + "', totalCartDiscountAmountSet='" + totalCartDiscountAmountSet + "', totalDutiesSet='" + totalDutiesSet + "', totalTaxSet='" + totalTaxSet + "', totalTaxes='" + totalTaxes + "'}"; } @Override @@ -274,6 +300,7 @@ public boolean equals(Object o) { Objects.equals(shipping, that.shipping) && Objects.equals(subtotal, that.subtotal) && Objects.equals(subtotalSet, that.subtotalSet) && + Objects.equals(suggestedRefundMethods, that.suggestedRefundMethods) && Objects.equals(suggestedTransactions, that.suggestedTransactions) && Objects.equals(totalCartDiscountAmountSet, that.totalCartDiscountAmountSet) && Objects.equals(totalDutiesSet, that.totalDutiesSet) && @@ -283,7 +310,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(amount, amountSet, discountedSubtotalSet, maximumRefundable, maximumRefundableSet, refundDuties, refundLineItems, shipping, subtotal, subtotalSet, suggestedTransactions, totalCartDiscountAmountSet, totalDutiesSet, totalTaxSet, totalTaxes); + return Objects.hash(amount, amountSet, discountedSubtotalSet, maximumRefundable, maximumRefundableSet, refundDuties, refundLineItems, shipping, subtotal, subtotalSet, suggestedRefundMethods, suggestedTransactions, totalCartDiscountAmountSet, totalDutiesSet, totalTaxSet, totalTaxes); } public static Builder newBuilder() { @@ -341,6 +368,11 @@ public static class Builder { */ private MoneyBag subtotalSet; + /** + * A list of suggested refund methods. + */ + private List suggestedRefundMethods; + /** * A list of suggested order transactions. */ @@ -378,6 +410,7 @@ public SuggestedRefund build() { result.shipping = this.shipping; result.subtotal = this.subtotal; result.subtotalSet = this.subtotalSet; + result.suggestedRefundMethods = this.suggestedRefundMethods; result.suggestedTransactions = this.suggestedTransactions; result.totalCartDiscountAmountSet = this.totalCartDiscountAmountSet; result.totalDutiesSet = this.totalDutiesSet; @@ -466,6 +499,14 @@ public Builder subtotalSet(MoneyBag subtotalSet) { return this; } + /** + * A list of suggested refund methods. + */ + public Builder suggestedRefundMethods(List suggestedRefundMethods) { + this.suggestedRefundMethods = suggestedRefundMethods; + return this; + } + /** * A list of suggested order transactions. */ diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SuggestedRefundMethod.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SuggestedRefundMethod.java new file mode 100644 index 00000000..235cc8b7 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SuggestedRefundMethod.java @@ -0,0 +1,25 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; + +/** + * Generic attributes of a suggested refund method. + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + include = JsonTypeInfo.As.PROPERTY, + property = "__typename" +) +@JsonSubTypes(@JsonSubTypes.Type(value = SuggestedStoreCreditRefund.class, name = "SuggestedStoreCreditRefund")) +public interface SuggestedRefundMethod { + /** + * The suggested amount to refund in shop and presentment currencies. + */ + MoneyBag getAmount(); + + /** + * The maximum available amount to refund in shop and presentment currencies. + */ + MoneyBag getMaximumRefundable(); +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SuggestedReturnFinancialOutcome.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SuggestedReturnFinancialOutcome.java new file mode 100644 index 00000000..94992897 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SuggestedReturnFinancialOutcome.java @@ -0,0 +1,324 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * Represents a return financial outcome suggested by Shopify based on the items + * being reimbursed. You can then use the suggested outcome object to generate an + * actual refund or invoice for the return. + */ +public class SuggestedReturnFinancialOutcome { + /** + * The sum of all the discounted prices of the line items being refunded. + */ + private MoneyBag discountedSubtotal; + + /** + * The financial transfer details for the return outcome. + */ + private ReturnOutcomeFinancialTransfer financialTransfer; + + /** + * The total monetary value available to refund in shop and presentment currencies. + */ + private MoneyBag maximumRefundable; + + /** + * A list of duties to be refunded from the order. + */ + private List refundDuties; + + /** + * The shipping costs to be refunded from the order. + */ + private ShippingRefund shipping; + + /** + * The sum of all the additional fees being refunded in shop and presentment currencies. The value must be positive. + */ + private MoneyBag totalAdditionalFees; + + /** + * The total cart discount amount that was applied to all line items in this refund. + */ + private MoneyBag totalCartDiscountAmount; + + /** + * The sum of all the duties being refunded from the order in shop and presentment currencies. The value must be positive. + */ + private MoneyBag totalDuties; + + /** + * The sum of the taxes being refunded in shop and presentment currencies. The value must be positive. + */ + private MoneyBag totalTax; + + public SuggestedReturnFinancialOutcome() { + } + + /** + * The sum of all the discounted prices of the line items being refunded. + */ + public MoneyBag getDiscountedSubtotal() { + return discountedSubtotal; + } + + public void setDiscountedSubtotal(MoneyBag discountedSubtotal) { + this.discountedSubtotal = discountedSubtotal; + } + + /** + * The financial transfer details for the return outcome. + */ + public ReturnOutcomeFinancialTransfer getFinancialTransfer() { + return financialTransfer; + } + + public void setFinancialTransfer(ReturnOutcomeFinancialTransfer financialTransfer) { + this.financialTransfer = financialTransfer; + } + + /** + * The total monetary value available to refund in shop and presentment currencies. + */ + public MoneyBag getMaximumRefundable() { + return maximumRefundable; + } + + public void setMaximumRefundable(MoneyBag maximumRefundable) { + this.maximumRefundable = maximumRefundable; + } + + /** + * A list of duties to be refunded from the order. + */ + public List getRefundDuties() { + return refundDuties; + } + + public void setRefundDuties(List refundDuties) { + this.refundDuties = refundDuties; + } + + /** + * The shipping costs to be refunded from the order. + */ + public ShippingRefund getShipping() { + return shipping; + } + + public void setShipping(ShippingRefund shipping) { + this.shipping = shipping; + } + + /** + * The sum of all the additional fees being refunded in shop and presentment currencies. The value must be positive. + */ + public MoneyBag getTotalAdditionalFees() { + return totalAdditionalFees; + } + + public void setTotalAdditionalFees(MoneyBag totalAdditionalFees) { + this.totalAdditionalFees = totalAdditionalFees; + } + + /** + * The total cart discount amount that was applied to all line items in this refund. + */ + public MoneyBag getTotalCartDiscountAmount() { + return totalCartDiscountAmount; + } + + public void setTotalCartDiscountAmount(MoneyBag totalCartDiscountAmount) { + this.totalCartDiscountAmount = totalCartDiscountAmount; + } + + /** + * The sum of all the duties being refunded from the order in shop and presentment currencies. The value must be positive. + */ + public MoneyBag getTotalDuties() { + return totalDuties; + } + + public void setTotalDuties(MoneyBag totalDuties) { + this.totalDuties = totalDuties; + } + + /** + * The sum of the taxes being refunded in shop and presentment currencies. The value must be positive. + */ + public MoneyBag getTotalTax() { + return totalTax; + } + + public void setTotalTax(MoneyBag totalTax) { + this.totalTax = totalTax; + } + + @Override + public String toString() { + return "SuggestedReturnFinancialOutcome{discountedSubtotal='" + discountedSubtotal + "', financialTransfer='" + financialTransfer + "', maximumRefundable='" + maximumRefundable + "', refundDuties='" + refundDuties + "', shipping='" + shipping + "', totalAdditionalFees='" + totalAdditionalFees + "', totalCartDiscountAmount='" + totalCartDiscountAmount + "', totalDuties='" + totalDuties + "', totalTax='" + totalTax + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + SuggestedReturnFinancialOutcome that = (SuggestedReturnFinancialOutcome) o; + return Objects.equals(discountedSubtotal, that.discountedSubtotal) && + Objects.equals(financialTransfer, that.financialTransfer) && + Objects.equals(maximumRefundable, that.maximumRefundable) && + Objects.equals(refundDuties, that.refundDuties) && + Objects.equals(shipping, that.shipping) && + Objects.equals(totalAdditionalFees, that.totalAdditionalFees) && + Objects.equals(totalCartDiscountAmount, that.totalCartDiscountAmount) && + Objects.equals(totalDuties, that.totalDuties) && + Objects.equals(totalTax, that.totalTax); + } + + @Override + public int hashCode() { + return Objects.hash(discountedSubtotal, financialTransfer, maximumRefundable, refundDuties, shipping, totalAdditionalFees, totalCartDiscountAmount, totalDuties, totalTax); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The sum of all the discounted prices of the line items being refunded. + */ + private MoneyBag discountedSubtotal; + + /** + * The financial transfer details for the return outcome. + */ + private ReturnOutcomeFinancialTransfer financialTransfer; + + /** + * The total monetary value available to refund in shop and presentment currencies. + */ + private MoneyBag maximumRefundable; + + /** + * A list of duties to be refunded from the order. + */ + private List refundDuties; + + /** + * The shipping costs to be refunded from the order. + */ + private ShippingRefund shipping; + + /** + * The sum of all the additional fees being refunded in shop and presentment currencies. The value must be positive. + */ + private MoneyBag totalAdditionalFees; + + /** + * The total cart discount amount that was applied to all line items in this refund. + */ + private MoneyBag totalCartDiscountAmount; + + /** + * The sum of all the duties being refunded from the order in shop and presentment currencies. The value must be positive. + */ + private MoneyBag totalDuties; + + /** + * The sum of the taxes being refunded in shop and presentment currencies. The value must be positive. + */ + private MoneyBag totalTax; + + public SuggestedReturnFinancialOutcome build() { + SuggestedReturnFinancialOutcome result = new SuggestedReturnFinancialOutcome(); + result.discountedSubtotal = this.discountedSubtotal; + result.financialTransfer = this.financialTransfer; + result.maximumRefundable = this.maximumRefundable; + result.refundDuties = this.refundDuties; + result.shipping = this.shipping; + result.totalAdditionalFees = this.totalAdditionalFees; + result.totalCartDiscountAmount = this.totalCartDiscountAmount; + result.totalDuties = this.totalDuties; + result.totalTax = this.totalTax; + return result; + } + + /** + * The sum of all the discounted prices of the line items being refunded. + */ + public Builder discountedSubtotal(MoneyBag discountedSubtotal) { + this.discountedSubtotal = discountedSubtotal; + return this; + } + + /** + * The financial transfer details for the return outcome. + */ + public Builder financialTransfer(ReturnOutcomeFinancialTransfer financialTransfer) { + this.financialTransfer = financialTransfer; + return this; + } + + /** + * The total monetary value available to refund in shop and presentment currencies. + */ + public Builder maximumRefundable(MoneyBag maximumRefundable) { + this.maximumRefundable = maximumRefundable; + return this; + } + + /** + * A list of duties to be refunded from the order. + */ + public Builder refundDuties(List refundDuties) { + this.refundDuties = refundDuties; + return this; + } + + /** + * The shipping costs to be refunded from the order. + */ + public Builder shipping(ShippingRefund shipping) { + this.shipping = shipping; + return this; + } + + /** + * The sum of all the additional fees being refunded in shop and presentment currencies. The value must be positive. + */ + public Builder totalAdditionalFees(MoneyBag totalAdditionalFees) { + this.totalAdditionalFees = totalAdditionalFees; + return this; + } + + /** + * The total cart discount amount that was applied to all line items in this refund. + */ + public Builder totalCartDiscountAmount(MoneyBag totalCartDiscountAmount) { + this.totalCartDiscountAmount = totalCartDiscountAmount; + return this; + } + + /** + * The sum of all the duties being refunded from the order in shop and presentment currencies. The value must be positive. + */ + public Builder totalDuties(MoneyBag totalDuties) { + this.totalDuties = totalDuties; + return this; + } + + /** + * The sum of the taxes being refunded in shop and presentment currencies. The value must be positive. + */ + public Builder totalTax(MoneyBag totalTax) { + this.totalTax = totalTax; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SuggestedStoreCreditRefund.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SuggestedStoreCreditRefund.java new file mode 100644 index 00000000..1792f3ce --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/SuggestedStoreCreditRefund.java @@ -0,0 +1,140 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.time.OffsetDateTime; +import java.util.Objects; + +/** + * The suggested values for a refund to store credit. + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NONE +) +public class SuggestedStoreCreditRefund implements com.shopify.admin.types.SuggestedRefundMethod { + /** + * The suggested amount to refund in shop and presentment currencies. + */ + private MoneyBag amount; + + /** + * The suggested expiration date for the store credit. + */ + private OffsetDateTime expiresAt; + + /** + * The maximum available amount to refund in shop and presentment currencies. + */ + private MoneyBag maximumRefundable; + + public SuggestedStoreCreditRefund() { + } + + /** + * The suggested amount to refund in shop and presentment currencies. + */ + public MoneyBag getAmount() { + return amount; + } + + public void setAmount(MoneyBag amount) { + this.amount = amount; + } + + /** + * The suggested expiration date for the store credit. + */ + public OffsetDateTime getExpiresAt() { + return expiresAt; + } + + public void setExpiresAt(OffsetDateTime expiresAt) { + this.expiresAt = expiresAt; + } + + /** + * The maximum available amount to refund in shop and presentment currencies. + */ + public MoneyBag getMaximumRefundable() { + return maximumRefundable; + } + + public void setMaximumRefundable(MoneyBag maximumRefundable) { + this.maximumRefundable = maximumRefundable; + } + + @Override + public String toString() { + return "SuggestedStoreCreditRefund{amount='" + amount + "', expiresAt='" + expiresAt + "', maximumRefundable='" + maximumRefundable + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + SuggestedStoreCreditRefund that = (SuggestedStoreCreditRefund) o; + return Objects.equals(amount, that.amount) && + Objects.equals(expiresAt, that.expiresAt) && + Objects.equals(maximumRefundable, that.maximumRefundable); + } + + @Override + public int hashCode() { + return Objects.hash(amount, expiresAt, maximumRefundable); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The suggested amount to refund in shop and presentment currencies. + */ + private MoneyBag amount; + + /** + * The suggested expiration date for the store credit. + */ + private OffsetDateTime expiresAt; + + /** + * The maximum available amount to refund in shop and presentment currencies. + */ + private MoneyBag maximumRefundable; + + public SuggestedStoreCreditRefund build() { + SuggestedStoreCreditRefund result = new SuggestedStoreCreditRefund(); + result.amount = this.amount; + result.expiresAt = this.expiresAt; + result.maximumRefundable = this.maximumRefundable; + return result; + } + + /** + * The suggested amount to refund in shop and presentment currencies. + */ + public Builder amount(MoneyBag amount) { + this.amount = amount; + return this; + } + + /** + * The suggested expiration date for the store credit. + */ + public Builder expiresAt(OffsetDateTime expiresAt) { + this.expiresAt = expiresAt; + return this; + } + + /** + * The maximum available amount to refund in shop and presentment currencies. + */ + public Builder maximumRefundable(MoneyBag maximumRefundable) { + this.maximumRefundable = maximumRefundable; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/TaxLine.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/TaxLine.java index 53f78224..7db58ecd 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/TaxLine.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/TaxLine.java @@ -8,7 +8,14 @@ import java.util.Objects; /** - * Represents a single tax applied to the associated line item. + * A tax applied to a + * [`LineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItem) or [`ShippingLine`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShippingLine). + * Includes the tax amount, rate, title, and whether the channel that submitted the + * tax is liable for remitting it. + * + * The tax amount in both shop and presentment currencies after applying discounts. + * Includes information about the tax rate, whether the channel is liable for + * remitting the tax, and other tax-related details. */ public class TaxLine { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/TaxSummaryCreatePayload.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/TaxSummaryCreatePayload.java new file mode 100644 index 00000000..345a48c0 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/TaxSummaryCreatePayload.java @@ -0,0 +1,105 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * Return type for `taxSummaryCreate` mutation. + */ +public class TaxSummaryCreatePayload { + /** + * A list of orders that were successfully enqueued to create a tax summary. + */ + private List enqueuedOrders; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public TaxSummaryCreatePayload() { + } + + /** + * A list of orders that were successfully enqueued to create a tax summary. + */ + public List getEnqueuedOrders() { + return enqueuedOrders; + } + + public void setEnqueuedOrders(List enqueuedOrders) { + this.enqueuedOrders = enqueuedOrders; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public List getUserErrors() { + return userErrors; + } + + public void setUserErrors(List userErrors) { + this.userErrors = userErrors; + } + + @Override + public String toString() { + return "TaxSummaryCreatePayload{enqueuedOrders='" + enqueuedOrders + "', userErrors='" + userErrors + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + TaxSummaryCreatePayload that = (TaxSummaryCreatePayload) o; + return Objects.equals(enqueuedOrders, that.enqueuedOrders) && + Objects.equals(userErrors, that.userErrors); + } + + @Override + public int hashCode() { + return Objects.hash(enqueuedOrders, userErrors); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * A list of orders that were successfully enqueued to create a tax summary. + */ + private List enqueuedOrders; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public TaxSummaryCreatePayload build() { + TaxSummaryCreatePayload result = new TaxSummaryCreatePayload(); + result.enqueuedOrders = this.enqueuedOrders; + result.userErrors = this.userErrors; + return result; + } + + /** + * A list of orders that were successfully enqueued to create a tax summary. + */ + public Builder enqueuedOrders(List enqueuedOrders) { + this.enqueuedOrders = enqueuedOrders; + return this; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public Builder userErrors(List userErrors) { + this.userErrors = userErrors; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/TaxSummaryCreateUserError.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/TaxSummaryCreateUserError.java new file mode 100644 index 00000000..1059c44d --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/TaxSummaryCreateUserError.java @@ -0,0 +1,140 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * An error that occurs during the execution of `TaxSummaryCreate`. + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NONE +) +public class TaxSummaryCreateUserError implements com.shopify.admin.types.DisplayableError { + /** + * The error code. + */ + private TaxSummaryCreateUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public TaxSummaryCreateUserError() { + } + + /** + * The error code. + */ + public TaxSummaryCreateUserErrorCode getCode() { + return code; + } + + public void setCode(TaxSummaryCreateUserErrorCode code) { + this.code = code; + } + + /** + * The path to the input field that caused the error. + */ + public List getField() { + return field; + } + + public void setField(List field) { + this.field = field; + } + + /** + * The error message. + */ + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + @Override + public String toString() { + return "TaxSummaryCreateUserError{code='" + code + "', field='" + field + "', message='" + message + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + TaxSummaryCreateUserError that = (TaxSummaryCreateUserError) o; + return Objects.equals(code, that.code) && + Objects.equals(field, that.field) && + Objects.equals(message, that.message); + } + + @Override + public int hashCode() { + return Objects.hash(code, field, message); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The error code. + */ + private TaxSummaryCreateUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public TaxSummaryCreateUserError build() { + TaxSummaryCreateUserError result = new TaxSummaryCreateUserError(); + result.code = this.code; + result.field = this.field; + result.message = this.message; + return result; + } + + /** + * The error code. + */ + public Builder code(TaxSummaryCreateUserErrorCode code) { + this.code = code; + return this; + } + + /** + * The path to the input field that caused the error. + */ + public Builder field(List field) { + this.field = field; + return this; + } + + /** + * The error message. + */ + public Builder message(String message) { + this.message = message; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/TaxSummaryCreateUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/TaxSummaryCreateUserErrorCode.java new file mode 100644 index 00000000..d87be2de --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/TaxSummaryCreateUserErrorCode.java @@ -0,0 +1,10 @@ +package com.shopify.admin.types; + +/** + * Possible error codes that can be returned by `TaxSummaryCreateUserError`. + */ +public enum TaxSummaryCreateUserErrorCode { + ORDER_NOT_FOUND, + + GENERAL_ERROR +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Taxonomy.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Taxonomy.java index ff71b05e..c9c7a7a4 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Taxonomy.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Taxonomy.java @@ -6,7 +6,12 @@ import java.util.Objects; /** - * The Taxonomy resource lets you access the categories, attributes and values of a taxonomy tree. + * Represents Shopify's [standardized product taxonomy](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) + * tree. Provides categories that you can filter by search criteria or hierarchical relationships. + * + * You can search categories globally, retrieve children of a specific category, + * find siblings, or get descendants. When you specify no filter arguments, you get + * all top-level categories in the taxonomy. */ public class Taxonomy { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/TaxonomyCategory.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/TaxonomyCategory.java index d5a45093..1ca6cfcd 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/TaxonomyCategory.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/TaxonomyCategory.java @@ -8,7 +8,13 @@ import java.util.Objects; /** - * The details of a specific product category within the [Shopify product taxonomy](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17). + * A product category within Shopify's [standardized product taxonomy](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17). + * Provides hierarchical organization through parent-child relationships, with each + * category tracking its ancestors, children, and level in the taxonomy tree. + * + * Categories include attributes specific to their product type and navigation + * properties like whether they're root, leaf, or archived categories. The taxonomy + * enables consistent product classification across Shopify and integrated marketplaces. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ThemeDuplicatePayload.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ThemeDuplicatePayload.java new file mode 100644 index 00000000..a59cd3e1 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ThemeDuplicatePayload.java @@ -0,0 +1,105 @@ +package com.shopify.admin.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * Return type for `themeDuplicate` mutation. + */ +public class ThemeDuplicatePayload { + /** + * The newly duplicated theme. + */ + private OnlineStoreTheme newTheme; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public ThemeDuplicatePayload() { + } + + /** + * The newly duplicated theme. + */ + public OnlineStoreTheme getNewTheme() { + return newTheme; + } + + public void setNewTheme(OnlineStoreTheme newTheme) { + this.newTheme = newTheme; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public List getUserErrors() { + return userErrors; + } + + public void setUserErrors(List userErrors) { + this.userErrors = userErrors; + } + + @Override + public String toString() { + return "ThemeDuplicatePayload{newTheme='" + newTheme + "', userErrors='" + userErrors + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ThemeDuplicatePayload that = (ThemeDuplicatePayload) o; + return Objects.equals(newTheme, that.newTheme) && + Objects.equals(userErrors, that.userErrors); + } + + @Override + public int hashCode() { + return Objects.hash(newTheme, userErrors); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The newly duplicated theme. + */ + private OnlineStoreTheme newTheme; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + public ThemeDuplicatePayload build() { + ThemeDuplicatePayload result = new ThemeDuplicatePayload(); + result.newTheme = this.newTheme; + result.userErrors = this.userErrors; + return result; + } + + /** + * The newly duplicated theme. + */ + public Builder newTheme(OnlineStoreTheme newTheme) { + this.newTheme = newTheme; + return this; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public Builder userErrors(List userErrors) { + this.userErrors = userErrors; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ThemeDuplicateUserError.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ThemeDuplicateUserError.java new file mode 100644 index 00000000..de86eb62 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ThemeDuplicateUserError.java @@ -0,0 +1,140 @@ +package com.shopify.admin.types; + +import com.fasterxml.jackson.annotation.JsonTypeInfo; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * An error that occurs during the execution of `ThemeDuplicate`. + */ +@JsonTypeInfo( + use = JsonTypeInfo.Id.NONE +) +public class ThemeDuplicateUserError implements com.shopify.admin.types.DisplayableError { + /** + * The error code. + */ + private ThemeDuplicateUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public ThemeDuplicateUserError() { + } + + /** + * The error code. + */ + public ThemeDuplicateUserErrorCode getCode() { + return code; + } + + public void setCode(ThemeDuplicateUserErrorCode code) { + this.code = code; + } + + /** + * The path to the input field that caused the error. + */ + public List getField() { + return field; + } + + public void setField(List field) { + this.field = field; + } + + /** + * The error message. + */ + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + @Override + public String toString() { + return "ThemeDuplicateUserError{code='" + code + "', field='" + field + "', message='" + message + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ThemeDuplicateUserError that = (ThemeDuplicateUserError) o; + return Objects.equals(code, that.code) && + Objects.equals(field, that.field) && + Objects.equals(message, that.message); + } + + @Override + public int hashCode() { + return Objects.hash(code, field, message); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The error code. + */ + private ThemeDuplicateUserErrorCode code; + + /** + * The path to the input field that caused the error. + */ + private List field; + + /** + * The error message. + */ + private String message; + + public ThemeDuplicateUserError build() { + ThemeDuplicateUserError result = new ThemeDuplicateUserError(); + result.code = this.code; + result.field = this.field; + result.message = this.message; + return result; + } + + /** + * The error code. + */ + public Builder code(ThemeDuplicateUserErrorCode code) { + this.code = code; + return this; + } + + /** + * The path to the input field that caused the error. + */ + public Builder field(List field) { + this.field = field; + return this; + } + + /** + * The error message. + */ + public Builder message(String message) { + this.message = message; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ThemeDuplicateUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ThemeDuplicateUserErrorCode.java new file mode 100644 index 00000000..f524e369 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ThemeDuplicateUserErrorCode.java @@ -0,0 +1,8 @@ +package com.shopify.admin.types; + +/** + * Possible error codes that can be returned by `ThemeDuplicateUserError`. + */ +public enum ThemeDuplicateUserErrorCode { + NOT_FOUND +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/TransferSortKeys.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/TransferSortKeys.java new file mode 100644 index 00000000..873b9126 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/TransferSortKeys.java @@ -0,0 +1,22 @@ +package com.shopify.admin.types; + +/** + * The set of valid sort keys for the Transfer query. + */ +public enum TransferSortKeys { + CREATED_AT, + + DESTINATION_NAME, + + EXPECTED_SHIPMENT_ARRIVAL, + + ID, + + NAME, + + ORIGIN_NAME, + + SOURCE_NAME, + + STATUS +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/TranslatableResource.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/TranslatableResource.java index ac09efdb..c49d38ae 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/TranslatableResource.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/TranslatableResource.java @@ -7,7 +7,19 @@ import java.util.Objects; /** - * A resource that has translatable fields. + * A resource in Shopify that contains fields available for translation into + * different languages. Accesses the resource's translatable content, existing [`Translation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Translation) + * objects, and any nested resources that can also be translated. + * + * The [`TranslatableContent`](https://shopify.dev/docs/api/admin-graphql/latest/objects/TranslatableContent) includes field keys, values, and digest hashes needed when [registering translations](https://shopify.dev/docs/api/admin-graphql/latest/mutations/translationsRegister). + * + * You can retrieve translations for specific + * [`Locale`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Locale) and + * [`Market`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Market) + * configurations. Each translation includes an `outdated` flag indicating whether + * the original content has changed since that translation was last updated. + * + * Learn more about [managing translated content](https://shopify.dev/docs/apps/build/markets/manage-translated-content). */ public class TranslatableResource { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/TranslatableResourceType.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/TranslatableResourceType.java index 43a1f7e2..eb2c33a9 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/TranslatableResourceType.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/TranslatableResourceType.java @@ -6,10 +6,14 @@ public enum TranslatableResourceType { ARTICLE, + ARTICLE_IMAGE, + BLOG, COLLECTION, + COLLECTION_IMAGE, + DELIVERY_METHOD_DEFINITION, EMAIL_TEMPLATE, @@ -18,6 +22,8 @@ public enum TranslatableResourceType { LINK, + MEDIA_IMAGE, + MENU, METAFIELD, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Translation.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Translation.java index 6f622cfc..064ae4bf 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Translation.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Translation.java @@ -7,7 +7,20 @@ import java.util.Objects; /** - * Translation of a field of a resource. + * A localized version of a field on a resource. Translations enable merchants to + * provide content in multiple languages for + * [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) objects, [`Collection`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection) + * objects, and other store resources. + * + * Each translation specifies the locale, the field being translated (identified by + * its key), and the translated value. Translations can be market-specific, + * allowing different content for the same language across different markets, or + * available globally when no + * [`Market`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Market) is + * specified. The `outdated` flag indicates whether the original content has + * changed since this translation was last updated. + * + * Learn more about [managing translated content](https://shopify.dev/docs/apps/build/markets/manage-translated-content). */ public class Translation { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/UnitPriceMeasurementInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/UnitPriceMeasurementInput.java new file mode 100644 index 00000000..f09bb762 --- /dev/null +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/UnitPriceMeasurementInput.java @@ -0,0 +1,168 @@ +package com.shopify.admin.types; + +import java.lang.Double; +import java.lang.Integer; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * The input fields for the measurement used to calculate a unit price for a product variant (e.g. $9.99 / 100ml). + */ +public class UnitPriceMeasurementInput { + /** + * The quantity value for the unit price measurement. + */ + private Double quantityValue; + + /** + * The quantity unit for the unit price measurement. + */ + private UnitPriceMeasurementMeasuredUnit quantityUnit; + + /** + * The reference value for the unit price measurement. + */ + private Integer referenceValue; + + /** + * The reference unit for the unit price measurement. + */ + private UnitPriceMeasurementMeasuredUnit referenceUnit; + + public UnitPriceMeasurementInput() { + } + + /** + * The quantity value for the unit price measurement. + */ + public Double getQuantityValue() { + return quantityValue; + } + + public void setQuantityValue(Double quantityValue) { + this.quantityValue = quantityValue; + } + + /** + * The quantity unit for the unit price measurement. + */ + public UnitPriceMeasurementMeasuredUnit getQuantityUnit() { + return quantityUnit; + } + + public void setQuantityUnit(UnitPriceMeasurementMeasuredUnit quantityUnit) { + this.quantityUnit = quantityUnit; + } + + /** + * The reference value for the unit price measurement. + */ + public Integer getReferenceValue() { + return referenceValue; + } + + public void setReferenceValue(Integer referenceValue) { + this.referenceValue = referenceValue; + } + + /** + * The reference unit for the unit price measurement. + */ + public UnitPriceMeasurementMeasuredUnit getReferenceUnit() { + return referenceUnit; + } + + public void setReferenceUnit(UnitPriceMeasurementMeasuredUnit referenceUnit) { + this.referenceUnit = referenceUnit; + } + + @Override + public String toString() { + return "UnitPriceMeasurementInput{quantityValue='" + quantityValue + "', quantityUnit='" + quantityUnit + "', referenceValue='" + referenceValue + "', referenceUnit='" + referenceUnit + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + UnitPriceMeasurementInput that = (UnitPriceMeasurementInput) o; + return Objects.equals(quantityValue, that.quantityValue) && + Objects.equals(quantityUnit, that.quantityUnit) && + Objects.equals(referenceValue, that.referenceValue) && + Objects.equals(referenceUnit, that.referenceUnit); + } + + @Override + public int hashCode() { + return Objects.hash(quantityValue, quantityUnit, referenceValue, referenceUnit); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The quantity value for the unit price measurement. + */ + private Double quantityValue; + + /** + * The quantity unit for the unit price measurement. + */ + private UnitPriceMeasurementMeasuredUnit quantityUnit; + + /** + * The reference value for the unit price measurement. + */ + private Integer referenceValue; + + /** + * The reference unit for the unit price measurement. + */ + private UnitPriceMeasurementMeasuredUnit referenceUnit; + + public UnitPriceMeasurementInput build() { + UnitPriceMeasurementInput result = new UnitPriceMeasurementInput(); + result.quantityValue = this.quantityValue; + result.quantityUnit = this.quantityUnit; + result.referenceValue = this.referenceValue; + result.referenceUnit = this.referenceUnit; + return result; + } + + /** + * The quantity value for the unit price measurement. + */ + public Builder quantityValue(Double quantityValue) { + this.quantityValue = quantityValue; + return this; + } + + /** + * The quantity unit for the unit price measurement. + */ + public Builder quantityUnit(UnitPriceMeasurementMeasuredUnit quantityUnit) { + this.quantityUnit = quantityUnit; + return this; + } + + /** + * The reference value for the unit price measurement. + */ + public Builder referenceValue(Integer referenceValue) { + this.referenceValue = referenceValue; + return this; + } + + /** + * The reference unit for the unit price measurement. + */ + public Builder referenceUnit(UnitPriceMeasurementMeasuredUnit referenceUnit) { + this.referenceUnit = referenceUnit; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/UnitPriceMeasurementMeasuredType.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/UnitPriceMeasurementMeasuredType.java index 0303ce44..c9e269df 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/UnitPriceMeasurementMeasuredType.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/UnitPriceMeasurementMeasuredType.java @@ -10,5 +10,9 @@ public enum UnitPriceMeasurementMeasuredType { LENGTH, - AREA + AREA, + + COUNT, + + UNKNOWN } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/UnitPriceMeasurementMeasuredUnit.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/UnitPriceMeasurementMeasuredUnit.java index 85537d5c..677b9747 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/UnitPriceMeasurementMeasuredUnit.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/UnitPriceMeasurementMeasuredUnit.java @@ -12,17 +12,41 @@ public enum UnitPriceMeasurementMeasuredUnit { M3, + FLOZ, + + PT, + + QT, + + GAL, + MG, G, KG, + OZ, + + LB, + MM, CM, M, - M2 + IN, + + FT, + + YD, + + M2, + + FT2, + + ITEM, + + UNKNOWN } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/UnverifiedReturnLineItem.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/UnverifiedReturnLineItem.java index 810e69bc..01d0842f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/UnverifiedReturnLineItem.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/UnverifiedReturnLineItem.java @@ -23,6 +23,16 @@ public class UnverifiedReturnLineItem implements com.shopify.admin.types.Node, c */ private String id; + /** + * The quantity that can be processed. + */ + private int processableQuantity; + + /** + * The quantity that has been processed. + */ + private int processedQuantity; + /** * The quantity being returned. */ @@ -43,6 +53,11 @@ public class UnverifiedReturnLineItem implements com.shopify.admin.types.Node, c */ private ReturnReason returnReason; + /** + * The standardized reason for why the item is being returned. + */ + private ReturnReasonDefinition returnReasonDefinition; + /** * Additional information about the reason for the return. Maximum length: 255 characters. */ @@ -53,6 +68,11 @@ public class UnverifiedReturnLineItem implements com.shopify.admin.types.Node, c */ private MoneyV2 unitPrice; + /** + * The quantity that has't been processed. + */ + private int unprocessedQuantity; + public UnverifiedReturnLineItem() { } @@ -78,6 +98,28 @@ public void setId(String id) { this.id = id; } + /** + * The quantity that can be processed. + */ + public int getProcessableQuantity() { + return processableQuantity; + } + + public void setProcessableQuantity(int processableQuantity) { + this.processableQuantity = processableQuantity; + } + + /** + * The quantity that has been processed. + */ + public int getProcessedQuantity() { + return processedQuantity; + } + + public void setProcessedQuantity(int processedQuantity) { + this.processedQuantity = processedQuantity; + } + /** * The quantity being returned. */ @@ -122,6 +164,17 @@ public void setReturnReason(ReturnReason returnReason) { this.returnReason = returnReason; } + /** + * The standardized reason for why the item is being returned. + */ + public ReturnReasonDefinition getReturnReasonDefinition() { + return returnReasonDefinition; + } + + public void setReturnReasonDefinition(ReturnReasonDefinition returnReasonDefinition) { + this.returnReasonDefinition = returnReasonDefinition; + } + /** * Additional information about the reason for the return. Maximum length: 255 characters. */ @@ -144,9 +197,20 @@ public void setUnitPrice(MoneyV2 unitPrice) { this.unitPrice = unitPrice; } + /** + * The quantity that has't been processed. + */ + public int getUnprocessedQuantity() { + return unprocessedQuantity; + } + + public void setUnprocessedQuantity(int unprocessedQuantity) { + this.unprocessedQuantity = unprocessedQuantity; + } + @Override public String toString() { - return "UnverifiedReturnLineItem{customerNote='" + customerNote + "', id='" + id + "', quantity='" + quantity + "', refundableQuantity='" + refundableQuantity + "', refundedQuantity='" + refundedQuantity + "', returnReason='" + returnReason + "', returnReasonNote='" + returnReasonNote + "', unitPrice='" + unitPrice + "'}"; + return "UnverifiedReturnLineItem{customerNote='" + customerNote + "', id='" + id + "', processableQuantity='" + processableQuantity + "', processedQuantity='" + processedQuantity + "', quantity='" + quantity + "', refundableQuantity='" + refundableQuantity + "', refundedQuantity='" + refundedQuantity + "', returnReason='" + returnReason + "', returnReasonDefinition='" + returnReasonDefinition + "', returnReasonNote='" + returnReasonNote + "', unitPrice='" + unitPrice + "', unprocessedQuantity='" + unprocessedQuantity + "'}"; } @Override @@ -156,17 +220,21 @@ public boolean equals(Object o) { UnverifiedReturnLineItem that = (UnverifiedReturnLineItem) o; return Objects.equals(customerNote, that.customerNote) && Objects.equals(id, that.id) && + processableQuantity == that.processableQuantity && + processedQuantity == that.processedQuantity && quantity == that.quantity && refundableQuantity == that.refundableQuantity && refundedQuantity == that.refundedQuantity && Objects.equals(returnReason, that.returnReason) && + Objects.equals(returnReasonDefinition, that.returnReasonDefinition) && Objects.equals(returnReasonNote, that.returnReasonNote) && - Objects.equals(unitPrice, that.unitPrice); + Objects.equals(unitPrice, that.unitPrice) && + unprocessedQuantity == that.unprocessedQuantity; } @Override public int hashCode() { - return Objects.hash(customerNote, id, quantity, refundableQuantity, refundedQuantity, returnReason, returnReasonNote, unitPrice); + return Objects.hash(customerNote, id, processableQuantity, processedQuantity, quantity, refundableQuantity, refundedQuantity, returnReason, returnReasonDefinition, returnReasonNote, unitPrice, unprocessedQuantity); } public static Builder newBuilder() { @@ -184,6 +252,16 @@ public static class Builder { */ private String id; + /** + * The quantity that can be processed. + */ + private int processableQuantity; + + /** + * The quantity that has been processed. + */ + private int processedQuantity; + /** * The quantity being returned. */ @@ -204,6 +282,11 @@ public static class Builder { */ private ReturnReason returnReason; + /** + * The standardized reason for why the item is being returned. + */ + private ReturnReasonDefinition returnReasonDefinition; + /** * Additional information about the reason for the return. Maximum length: 255 characters. */ @@ -214,16 +297,25 @@ public static class Builder { */ private MoneyV2 unitPrice; + /** + * The quantity that has't been processed. + */ + private int unprocessedQuantity; + public UnverifiedReturnLineItem build() { UnverifiedReturnLineItem result = new UnverifiedReturnLineItem(); result.customerNote = this.customerNote; result.id = this.id; + result.processableQuantity = this.processableQuantity; + result.processedQuantity = this.processedQuantity; result.quantity = this.quantity; result.refundableQuantity = this.refundableQuantity; result.refundedQuantity = this.refundedQuantity; result.returnReason = this.returnReason; + result.returnReasonDefinition = this.returnReasonDefinition; result.returnReasonNote = this.returnReasonNote; result.unitPrice = this.unitPrice; + result.unprocessedQuantity = this.unprocessedQuantity; return result; } @@ -243,6 +335,22 @@ public Builder id(String id) { return this; } + /** + * The quantity that can be processed. + */ + public Builder processableQuantity(int processableQuantity) { + this.processableQuantity = processableQuantity; + return this; + } + + /** + * The quantity that has been processed. + */ + public Builder processedQuantity(int processedQuantity) { + this.processedQuantity = processedQuantity; + return this; + } + /** * The quantity being returned. */ @@ -275,6 +383,14 @@ public Builder returnReason(ReturnReason returnReason) { return this; } + /** + * The standardized reason for why the item is being returned. + */ + public Builder returnReasonDefinition(ReturnReasonDefinition returnReasonDefinition) { + this.returnReasonDefinition = returnReasonDefinition; + return this; + } + /** * Additional information about the reason for the return. Maximum length: 255 characters. */ @@ -290,5 +406,13 @@ public Builder unitPrice(MoneyV2 unitPrice) { this.unitPrice = unitPrice; return this; } + + /** + * The quantity that has't been processed. + */ + public Builder unprocessedQuantity(int unprocessedQuantity) { + this.unprocessedQuantity = unprocessedQuantity; + return this; + } } } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/UserError.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/UserError.java index 0a419af2..56af7d08 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/UserError.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/UserError.java @@ -8,7 +8,9 @@ import java.util.Objects; /** - * Represents an error in the input of a mutation. + * An error in the input of a mutation. Mutations return `UserError` objects to + * indicate validation failures, such as invalid field values or business logic + * violations, that prevent the operation from completing. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Validation.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Validation.java index 769c0e0a..f530111f 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Validation.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Validation.java @@ -7,7 +7,15 @@ import java.util.Objects; /** - * A checkout server side validation installed on the shop. + * A server-side validation that enforces business rules before customers complete + * their purchases. Each validation links to a [`ShopifyFunction`](https://shopify.dev/docs/api/functions/latest/cart-and-checkout-validation) + * that implements the validation logic. + * + * Validations run on Shopify's servers and are enforced throughout the checkout + * process. Validation errors always block checkout progress. The `blockOnFailure` + * setting determines whether runtime exceptions, like timeouts, also block + * checkout. Tracks runtime exception history for the validation function and + * supports custom data through [`Metafield`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Metafield) objects. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ValidationCreateInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ValidationCreateInput.java index f505cc7b..f2b8898d 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ValidationCreateInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ValidationCreateInput.java @@ -13,9 +13,9 @@ */ public class ValidationCreateInput { /** - * The function ID representing the extension to install. + * The function handle representing the extension to install. */ - private String functionId; + private String functionHandle; /** * Whether the validation should be live on the merchant checkout. @@ -41,14 +41,14 @@ public ValidationCreateInput() { } /** - * The function ID representing the extension to install. + * The function handle representing the extension to install. */ - public String getFunctionId() { - return functionId; + public String getFunctionHandle() { + return functionHandle; } - public void setFunctionId(String functionId) { - this.functionId = functionId; + public void setFunctionHandle(String functionHandle) { + this.functionHandle = functionHandle; } /** @@ -97,7 +97,7 @@ public void setTitle(String title) { @Override public String toString() { - return "ValidationCreateInput{functionId='" + functionId + "', enable='" + enable + "', blockOnFailure='" + blockOnFailure + "', metafields='" + metafields + "', title='" + title + "'}"; + return "ValidationCreateInput{functionHandle='" + functionHandle + "', enable='" + enable + "', blockOnFailure='" + blockOnFailure + "', metafields='" + metafields + "', title='" + title + "'}"; } @Override @@ -105,7 +105,7 @@ public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; ValidationCreateInput that = (ValidationCreateInput) o; - return Objects.equals(functionId, that.functionId) && + return Objects.equals(functionHandle, that.functionHandle) && Objects.equals(enable, that.enable) && Objects.equals(blockOnFailure, that.blockOnFailure) && Objects.equals(metafields, that.metafields) && @@ -114,7 +114,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(functionId, enable, blockOnFailure, metafields, title); + return Objects.hash(functionHandle, enable, blockOnFailure, metafields, title); } public static Builder newBuilder() { @@ -123,9 +123,9 @@ public static Builder newBuilder() { public static class Builder { /** - * The function ID representing the extension to install. + * The function handle representing the extension to install. */ - private String functionId; + private String functionHandle; /** * Whether the validation should be live on the merchant checkout. @@ -149,7 +149,7 @@ public static class Builder { public ValidationCreateInput build() { ValidationCreateInput result = new ValidationCreateInput(); - result.functionId = this.functionId; + result.functionHandle = this.functionHandle; result.enable = this.enable; result.blockOnFailure = this.blockOnFailure; result.metafields = this.metafields; @@ -158,10 +158,10 @@ public ValidationCreateInput build() { } /** - * The function ID representing the extension to install. + * The function handle representing the extension to install. */ - public Builder functionId(String functionId) { - this.functionId = functionId; + public Builder functionHandle(String functionHandle) { + this.functionHandle = functionHandle; return this; } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ValidationUserErrorCode.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ValidationUserErrorCode.java index f727a44d..ecec05f1 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ValidationUserErrorCode.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/ValidationUserErrorCode.java @@ -18,6 +18,10 @@ public enum ValidationUserErrorCode { MAX_VALIDATIONS_ACTIVATED, + MISSING_FUNCTION_IDENTIFIER, + + MULTIPLE_FUNCTION_IDENTIFIERS, + INVALID_TYPE, INVALID_VALUE, @@ -40,6 +44,8 @@ public enum ValidationUserErrorCode { TOO_SHORT, + INVALID, + CAPABILITY_VIOLATION, INTERNAL_ERROR diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/WebPresence.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/WebPresence.java deleted file mode 100644 index ce9fafc2..00000000 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/WebPresence.java +++ /dev/null @@ -1,300 +0,0 @@ -package com.shopify.admin.types; - -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import java.lang.Object; -import java.lang.Override; -import java.lang.String; -import java.util.List; -import java.util.Objects; - -/** - * This can be a domain (e.g. `example.ca`), subdomain (e.g. `ca.example.com`), or subfolders of the primary - * domain (e.g. `example.com/en-ca`). Each web presence comprises one or more language - * variants. - * - * Note: while the domain/subfolders defined by a web presence are not applicable to - * custom storefronts, which must manage their own domains and routing, the languages chosen - * here do govern [the languages available on the Storefront - * API](https://shopify.dev/custom-storefronts/internationalization/multiple-languages) for the countries - * using this web presence. - */ -@JsonTypeInfo( - use = JsonTypeInfo.Id.NONE -) -public class WebPresence implements com.shopify.admin.types.Node { - /** - * The ShopLocale object for the alternate locales. When a domain is used, these locales will be - * available as language-specific subfolders. For example, if English is an - * alternate locale, and `example.ca` is the domain, then - * `example.ca/en` will load in English. - */ - private List alternateLocales; - - /** - * The ShopLocale object 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 domain, then `example.ca` will load in French. - */ - private ShopLocale defaultLocale; - - /** - * The web presence’s domain. This field will be null if `subfolderSuffix` is present. - */ - private Domain domain; - - /** - * A globally-unique ID. - */ - private String id; - - /** - * The associated markets for this web presence. - */ - private MarketConnection markets; - - /** - * The list of root URLs for each of the web presence’s locales. - */ - private List rootUrls; - - /** - * The suffix of the subfolders defined by the web presence. - * Example: in `/en-us` the subfolder suffix is `us`. - * This field will be null if `domain` isn't null. - */ - private String subfolderSuffix; - - public WebPresence() { - } - - /** - * The ShopLocale object for the alternate locales. When a domain is used, these locales will be - * available as language-specific subfolders. For example, if English is an - * alternate locale, and `example.ca` is the domain, then - * `example.ca/en` will load in English. - */ - public List getAlternateLocales() { - return alternateLocales; - } - - public void setAlternateLocales(List alternateLocales) { - this.alternateLocales = alternateLocales; - } - - /** - * The ShopLocale object 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 domain, then `example.ca` will load in French. - */ - public ShopLocale getDefaultLocale() { - return defaultLocale; - } - - public void setDefaultLocale(ShopLocale defaultLocale) { - this.defaultLocale = defaultLocale; - } - - /** - * The web presence’s domain. This field will be null if `subfolderSuffix` is present. - */ - public Domain getDomain() { - return domain; - } - - public void setDomain(Domain domain) { - this.domain = domain; - } - - /** - * A globally-unique ID. - */ - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - /** - * The associated markets for this web presence. - */ - public MarketConnection getMarkets() { - return markets; - } - - public void setMarkets(MarketConnection markets) { - this.markets = markets; - } - - /** - * The list of root URLs for each of the web presence’s locales. - */ - public List getRootUrls() { - return rootUrls; - } - - public void setRootUrls(List rootUrls) { - this.rootUrls = rootUrls; - } - - /** - * The suffix of the subfolders defined by the web presence. - * Example: in `/en-us` the subfolder suffix is `us`. - * This field will be null if `domain` isn't null. - */ - public String getSubfolderSuffix() { - return subfolderSuffix; - } - - public void setSubfolderSuffix(String subfolderSuffix) { - this.subfolderSuffix = subfolderSuffix; - } - - @Override - public String toString() { - return "WebPresence{alternateLocales='" + alternateLocales + "', defaultLocale='" + defaultLocale + "', domain='" + domain + "', id='" + id + "', markets='" + markets + "', rootUrls='" + rootUrls + "', subfolderSuffix='" + subfolderSuffix + "'}"; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - WebPresence that = (WebPresence) o; - return Objects.equals(alternateLocales, that.alternateLocales) && - Objects.equals(defaultLocale, that.defaultLocale) && - Objects.equals(domain, that.domain) && - Objects.equals(id, that.id) && - Objects.equals(markets, that.markets) && - Objects.equals(rootUrls, that.rootUrls) && - Objects.equals(subfolderSuffix, that.subfolderSuffix); - } - - @Override - public int hashCode() { - return Objects.hash(alternateLocales, defaultLocale, domain, id, markets, rootUrls, subfolderSuffix); - } - - public static Builder newBuilder() { - return new Builder(); - } - - public static class Builder { - /** - * The ShopLocale object for the alternate locales. When a domain is used, these locales will be - * available as language-specific subfolders. For example, if English is an - * alternate locale, and `example.ca` is the domain, then - * `example.ca/en` will load in English. - */ - private List alternateLocales; - - /** - * The ShopLocale object 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 domain, then `example.ca` will load in French. - */ - private ShopLocale defaultLocale; - - /** - * The web presence’s domain. This field will be null if `subfolderSuffix` is present. - */ - private Domain domain; - - /** - * A globally-unique ID. - */ - private String id; - - /** - * The associated markets for this web presence. - */ - private MarketConnection markets; - - /** - * The list of root URLs for each of the web presence’s locales. - */ - private List rootUrls; - - /** - * The suffix of the subfolders defined by the web presence. - * Example: in `/en-us` the subfolder suffix is `us`. - * This field will be null if `domain` isn't null. - */ - private String subfolderSuffix; - - public WebPresence build() { - WebPresence result = new WebPresence(); - result.alternateLocales = this.alternateLocales; - result.defaultLocale = this.defaultLocale; - result.domain = this.domain; - result.id = this.id; - result.markets = this.markets; - result.rootUrls = this.rootUrls; - result.subfolderSuffix = this.subfolderSuffix; - return result; - } - - /** - * The ShopLocale object for the alternate locales. When a domain is used, these locales will be - * available as language-specific subfolders. For example, if English is an - * alternate locale, and `example.ca` is the domain, then - * `example.ca/en` will load in English. - */ - public Builder alternateLocales(List alternateLocales) { - this.alternateLocales = alternateLocales; - return this; - } - - /** - * The ShopLocale object 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 domain, then `example.ca` will load in French. - */ - public Builder defaultLocale(ShopLocale defaultLocale) { - this.defaultLocale = defaultLocale; - return this; - } - - /** - * The web presence’s domain. This field will be null if `subfolderSuffix` is present. - */ - public Builder domain(Domain domain) { - this.domain = domain; - return this; - } - - /** - * A globally-unique ID. - */ - public Builder id(String id) { - this.id = id; - return this; - } - - /** - * The associated markets for this web presence. - */ - public Builder markets(MarketConnection markets) { - this.markets = markets; - return this; - } - - /** - * The list of root URLs for each of the web presence’s locales. - */ - public Builder rootUrls(List rootUrls) { - this.rootUrls = rootUrls; - return this; - } - - /** - * The suffix of the subfolders defined by the web presence. - * Example: in `/en-us` the subfolder suffix is `us`. - * This field will be null if `domain` isn't null. - */ - public Builder subfolderSuffix(String subfolderSuffix) { - this.subfolderSuffix = subfolderSuffix; - return this; - } - } -} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/WebPresenceRootUrl.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/WebPresenceRootUrl.java deleted file mode 100644 index 4f19d13c..00000000 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/WebPresenceRootUrl.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.shopify.admin.types; - -import java.lang.Object; -import java.lang.Override; -import java.lang.String; -import java.util.Objects; - -/** - * The URL for the homepage of the online store in the context of the web presence and a - * particular locale. - */ -public class WebPresenceRootUrl { - /** - * The locale that the storefront loads in. - */ - private String locale; - - /** - * The URL. - */ - private String url; - - public WebPresenceRootUrl() { - } - - /** - * The locale that the storefront loads in. - */ - public String getLocale() { - return locale; - } - - public void setLocale(String locale) { - this.locale = locale; - } - - /** - * The URL. - */ - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - - @Override - public String toString() { - return "WebPresenceRootUrl{locale='" + locale + "', url='" + url + "'}"; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - WebPresenceRootUrl that = (WebPresenceRootUrl) o; - return Objects.equals(locale, that.locale) && - Objects.equals(url, that.url); - } - - @Override - public int hashCode() { - return Objects.hash(locale, url); - } - - public static Builder newBuilder() { - return new Builder(); - } - - public static class Builder { - /** - * The locale that the storefront loads in. - */ - private String locale; - - /** - * The URL. - */ - private String url; - - public WebPresenceRootUrl build() { - WebPresenceRootUrl result = new WebPresenceRootUrl(); - result.locale = this.locale; - result.url = this.url; - return result; - } - - /** - * The locale that the storefront loads in. - */ - public Builder locale(String locale) { - this.locale = locale; - return this; - } - - /** - * The URL. - */ - public Builder url(String url) { - this.url = url; - return this; - } - } -} diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/WebhookEventBridgeEndpoint.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/WebhookEventBridgeEndpoint.java index 84a7128b..1b6382ed 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/WebhookEventBridgeEndpoint.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/WebhookEventBridgeEndpoint.java @@ -7,7 +7,21 @@ import java.util.Objects; /** - * An Amazon EventBridge partner event source to which webhook subscriptions publish events. + * Connects your app to Amazon EventBridge so you can receive Shopify webhook + * events and process them through AWS's event-driven architecture. This gives you + * enterprise-grade scalability and lets you tap into the full AWS ecosystem for + * handling webhook traffic. + * + * For example, when a customer places an order, Shopify can publish the order + * creation event directly to your EventBridge partner source, allowing your AWS + * infrastructure to process the event through Lambda functions, SQS queues, or + * other AWS services. + * + * EventBridge endpoints provide enterprise-grade event routing and processing + * capabilities, making them ideal for apps that need to handle high-volume webhook + * traffic or integrate deeply with AWS services. + * + * Learn more about [webhook endpoints](https://shopify.dev/docs/apps/build/webhooks/subscribe/get-started). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/WebhookHttpEndpoint.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/WebhookHttpEndpoint.java index 49bfc17f..70b813f9 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/WebhookHttpEndpoint.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/WebhookHttpEndpoint.java @@ -7,7 +7,19 @@ import java.util.Objects; /** - * An HTTPS endpoint to which webhook subscriptions send POST requests. + * An HTTPS endpoint that receives webhook events as POST requests, letting your + * app respond to Shopify events in real-time. This is the most common webhook + * endpoint type, allowing apps to process Shopify events through standard HTTP callbacks. + * + * For example, when setting up order notifications, your app would provide an + * HTTPS URL like `https://yourapp.com/webhooks/orders/create` to receive order + * creation events as JSON payloads. + * + * HTTP endpoints offer straightforward webhook integration with immediate event + * delivery, making them suitable for apps that need real-time notifications + * without complex infrastructure requirements. + * + * Learn more about [HTTP webhook configuration](https://shopify.dev/docs/apps/build/webhooks/subscribe/https). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/WebhookPubSubEndpoint.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/WebhookPubSubEndpoint.java index 093c4cad..49c5cbf5 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/WebhookPubSubEndpoint.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/WebhookPubSubEndpoint.java @@ -7,7 +7,19 @@ import java.util.Objects; /** - * A Google Cloud Pub/Sub topic to which webhook subscriptions publish events. + * Individual Google Cloud Pub/Sub topics that receive webhook events for reliable, + * asynchronous processing. This endpoint type lets your app tap into Google + * Cloud's messaging infrastructure to handle events at scale. + * + * For example, when inventory levels change, Shopify can publish these events to + * your Pub/Sub topic `projects/your-project/topics/inventory-updates`, allowing + * your Google Cloud functions or services to process inventory changes at their own pace. + * + * Pub/Sub endpoints provide reliable message delivery to Google Cloud Pub/Sub, + * making them excellent for apps that need to handle variable webhook volumes or + * integrate with Google Cloud Platform services. + * + * Learn more about [Pub/Sub webhook configuration](https://shopify.dev/docs/apps/build/webhooks/subscribe/get-started). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/WebhookSubscription.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/WebhookSubscription.java index 6c5cbdcc..dfe321f5 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/WebhookSubscription.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/WebhookSubscription.java @@ -58,8 +58,9 @@ public class WebhookSubscription implements com.shopify.admin.types.LegacyIntero private String id; /** - * An optional array of top-level resource fields that should be serialized and - * sent in the webhook message. If null, then all fields will be sent. + * The list of fields to be included in the webhook subscription. Only the fields + * specified will be included in the webhook payload. If null, then all fields + * will be included. Learn more about [modifying webhook payloads](https://shopify.dev/docs/apps/build/webhooks/customize/modify-payloads). */ private List includeFields; @@ -90,6 +91,11 @@ public class WebhookSubscription implements com.shopify.admin.types.LegacyIntero */ private OffsetDateTime updatedAt; + /** + * The URI to which the webhook subscription will send events. + */ + private String uri; + public WebhookSubscription() { } @@ -174,8 +180,9 @@ public void setId(String id) { } /** - * An optional array of top-level resource fields that should be serialized and - * sent in the webhook message. If null, then all fields will be sent. + * The list of fields to be included in the webhook subscription. Only the fields + * specified will be included in the webhook payload. If null, then all fields + * will be included. Learn more about [modifying webhook payloads](https://shopify.dev/docs/apps/build/webhooks/customize/modify-payloads). */ public List getIncludeFields() { return includeFields; @@ -242,9 +249,20 @@ public void setUpdatedAt(OffsetDateTime updatedAt) { this.updatedAt = updatedAt; } + /** + * The URI to which the webhook subscription will send events. + */ + public String getUri() { + return uri; + } + + public void setUri(String uri) { + this.uri = uri; + } + @Override public String toString() { - return "WebhookSubscription{apiVersion='" + apiVersion + "', callbackUrl='" + callbackUrl + "', createdAt='" + createdAt + "', endpoint='" + endpoint + "', filter='" + filter + "', format='" + format + "', id='" + id + "', includeFields='" + includeFields + "', legacyResourceId='" + legacyResourceId + "', metafieldNamespaces='" + metafieldNamespaces + "', metafields='" + metafields + "', topic='" + topic + "', updatedAt='" + updatedAt + "'}"; + return "WebhookSubscription{apiVersion='" + apiVersion + "', callbackUrl='" + callbackUrl + "', createdAt='" + createdAt + "', endpoint='" + endpoint + "', filter='" + filter + "', format='" + format + "', id='" + id + "', includeFields='" + includeFields + "', legacyResourceId='" + legacyResourceId + "', metafieldNamespaces='" + metafieldNamespaces + "', metafields='" + metafields + "', topic='" + topic + "', updatedAt='" + updatedAt + "', uri='" + uri + "'}"; } @Override @@ -264,12 +282,13 @@ public boolean equals(Object o) { Objects.equals(metafieldNamespaces, that.metafieldNamespaces) && Objects.equals(metafields, that.metafields) && Objects.equals(topic, that.topic) && - Objects.equals(updatedAt, that.updatedAt); + Objects.equals(updatedAt, that.updatedAt) && + Objects.equals(uri, that.uri); } @Override public int hashCode() { - return Objects.hash(apiVersion, callbackUrl, createdAt, endpoint, filter, format, id, includeFields, legacyResourceId, metafieldNamespaces, metafields, topic, updatedAt); + return Objects.hash(apiVersion, callbackUrl, createdAt, endpoint, filter, format, id, includeFields, legacyResourceId, metafieldNamespaces, metafields, topic, updatedAt, uri); } public static Builder newBuilder() { @@ -316,8 +335,9 @@ public static class Builder { private String id; /** - * An optional array of top-level resource fields that should be serialized and - * sent in the webhook message. If null, then all fields will be sent. + * The list of fields to be included in the webhook subscription. Only the fields + * specified will be included in the webhook payload. If null, then all fields + * will be included. Learn more about [modifying webhook payloads](https://shopify.dev/docs/apps/build/webhooks/customize/modify-payloads). */ private List includeFields; @@ -348,6 +368,11 @@ public static class Builder { */ private OffsetDateTime updatedAt; + /** + * The URI to which the webhook subscription will send events. + */ + private String uri; + public WebhookSubscription build() { WebhookSubscription result = new WebhookSubscription(); result.apiVersion = this.apiVersion; @@ -363,6 +388,7 @@ public WebhookSubscription build() { result.metafields = this.metafields; result.topic = this.topic; result.updatedAt = this.updatedAt; + result.uri = this.uri; return result; } @@ -426,8 +452,9 @@ public Builder id(String id) { } /** - * An optional array of top-level resource fields that should be serialized and - * sent in the webhook message. If null, then all fields will be sent. + * The list of fields to be included in the webhook subscription. Only the fields + * specified will be included in the webhook payload. If null, then all fields + * will be included. Learn more about [modifying webhook payloads](https://shopify.dev/docs/apps/build/webhooks/customize/modify-payloads). */ public Builder includeFields(List includeFields) { this.includeFields = includeFields; @@ -475,5 +502,13 @@ public Builder updatedAt(OffsetDateTime updatedAt) { this.updatedAt = updatedAt; return this; } + + /** + * The URI to which the webhook subscription will send events. + */ + public Builder uri(String uri) { + this.uri = uri; + return this; + } } } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/WebhookSubscriptionInput.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/WebhookSubscriptionInput.java index 7e29ce3d..11bd741d 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/WebhookSubscriptionInput.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/WebhookSubscriptionInput.java @@ -10,18 +10,15 @@ * The input fields for a webhook subscription. */ public class WebhookSubscriptionInput { - /** - * URL where the webhook subscription should send the POST request when the event occurs. - */ - private String callbackUrl; - /** * The format in which the webhook subscription should send the data. */ private WebhookSubscriptionFormat format; /** - * The list of fields to be included in the webhook subscription. + * The list of fields to be included in the webhook subscription. Only the fields + * specified will be included in the webhook payload. If null, then all fields + * will be included. Learn more about [modifying webhook payloads](https://shopify.dev/docs/apps/build/webhooks/customize/modify_payloads). */ private List includeFields; @@ -42,18 +39,14 @@ public class WebhookSubscriptionInput { */ private List metafields; - public WebhookSubscriptionInput() { - } - /** - * URL where the webhook subscription should send the POST request when the event occurs. + * The URI where the webhook subscription should send events. Supports an HTTPS + * URL, a Google Pub/Sub URI (pubsub://{project-id}:{topic-id}) or an Amazon + * EventBridge event source ARN. */ - public String getCallbackUrl() { - return callbackUrl; - } + private String uri; - public void setCallbackUrl(String callbackUrl) { - this.callbackUrl = callbackUrl; + public WebhookSubscriptionInput() { } /** @@ -68,7 +61,9 @@ public void setFormat(WebhookSubscriptionFormat format) { } /** - * The list of fields to be included in the webhook subscription. + * The list of fields to be included in the webhook subscription. Only the fields + * specified will be included in the webhook payload. If null, then all fields + * will be included. Learn more about [modifying webhook payloads](https://shopify.dev/docs/apps/build/webhooks/customize/modify_payloads). */ public List getIncludeFields() { return includeFields; @@ -113,9 +108,22 @@ public void setMetafields(List metafields this.metafields = metafields; } + /** + * The URI where the webhook subscription should send events. Supports an HTTPS + * URL, a Google Pub/Sub URI (pubsub://{project-id}:{topic-id}) or an Amazon + * EventBridge event source ARN. + */ + public String getUri() { + return uri; + } + + public void setUri(String uri) { + this.uri = uri; + } + @Override public String toString() { - return "WebhookSubscriptionInput{callbackUrl='" + callbackUrl + "', format='" + format + "', includeFields='" + includeFields + "', filter='" + filter + "', metafieldNamespaces='" + metafieldNamespaces + "', metafields='" + metafields + "'}"; + return "WebhookSubscriptionInput{format='" + format + "', includeFields='" + includeFields + "', filter='" + filter + "', metafieldNamespaces='" + metafieldNamespaces + "', metafields='" + metafields + "', uri='" + uri + "'}"; } @Override @@ -123,17 +131,17 @@ public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; WebhookSubscriptionInput that = (WebhookSubscriptionInput) o; - return Objects.equals(callbackUrl, that.callbackUrl) && - Objects.equals(format, that.format) && + return Objects.equals(format, that.format) && Objects.equals(includeFields, that.includeFields) && Objects.equals(filter, that.filter) && Objects.equals(metafieldNamespaces, that.metafieldNamespaces) && - Objects.equals(metafields, that.metafields); + Objects.equals(metafields, that.metafields) && + Objects.equals(uri, that.uri); } @Override public int hashCode() { - return Objects.hash(callbackUrl, format, includeFields, filter, metafieldNamespaces, metafields); + return Objects.hash(format, includeFields, filter, metafieldNamespaces, metafields, uri); } public static Builder newBuilder() { @@ -141,18 +149,15 @@ public static Builder newBuilder() { } public static class Builder { - /** - * URL where the webhook subscription should send the POST request when the event occurs. - */ - private String callbackUrl; - /** * The format in which the webhook subscription should send the data. */ private WebhookSubscriptionFormat format; /** - * The list of fields to be included in the webhook subscription. + * The list of fields to be included in the webhook subscription. Only the fields + * specified will be included in the webhook payload. If null, then all fields + * will be included. Learn more about [modifying webhook payloads](https://shopify.dev/docs/apps/build/webhooks/customize/modify_payloads). */ private List includeFields; @@ -173,25 +178,24 @@ public static class Builder { */ private List metafields; + /** + * The URI where the webhook subscription should send events. Supports an HTTPS + * URL, a Google Pub/Sub URI (pubsub://{project-id}:{topic-id}) or an Amazon + * EventBridge event source ARN. + */ + private String uri; + public WebhookSubscriptionInput build() { WebhookSubscriptionInput result = new WebhookSubscriptionInput(); - result.callbackUrl = this.callbackUrl; result.format = this.format; result.includeFields = this.includeFields; result.filter = this.filter; result.metafieldNamespaces = this.metafieldNamespaces; result.metafields = this.metafields; + result.uri = this.uri; return result; } - /** - * URL where the webhook subscription should send the POST request when the event occurs. - */ - public Builder callbackUrl(String callbackUrl) { - this.callbackUrl = callbackUrl; - return this; - } - /** * The format in which the webhook subscription should send the data. */ @@ -201,7 +205,9 @@ public Builder format(WebhookSubscriptionFormat format) { } /** - * The list of fields to be included in the webhook subscription. + * The list of fields to be included in the webhook subscription. Only the fields + * specified will be included in the webhook payload. If null, then all fields + * will be included. Learn more about [modifying webhook payloads](https://shopify.dev/docs/apps/build/webhooks/customize/modify_payloads). */ public Builder includeFields(List includeFields) { this.includeFields = includeFields; @@ -233,5 +239,15 @@ public Builder metafields(List metafields this.metafields = metafields; return this; } + + /** + * The URI where the webhook subscription should send events. Supports an HTTPS + * URL, a Google Pub/Sub URI (pubsub://{project-id}:{topic-id}) or an Amazon + * EventBridge event source ARN. + */ + public Builder uri(String uri) { + this.uri = uri; + return this; + } } } diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/WebhookSubscriptionMetafieldIdentifier.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/WebhookSubscriptionMetafieldIdentifier.java index 1e9bc085..e7fa4872 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/WebhookSubscriptionMetafieldIdentifier.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/WebhookSubscriptionMetafieldIdentifier.java @@ -6,7 +6,37 @@ import java.util.Objects; /** - * Identifies metafields by their namespace, and key. + * Webhook subscriptions let you receive instant notifications when important + * events happen in a merchant's store, so you can automate workflows and keep your + * systems in sync without constantly polling for updates. + * + * For example, a subscription might monitor `orders/create` events and send JSON + * payloads to `https://yourapp.com/webhooks/orders` whenever customers place new + * orders, enabling immediate order processing workflows. + * + * Use the `WebhookSubscription` object to: + * - Monitor active webhook configurations + * - Access subscription details like topics, endpoints, and filtering rules + * - Retrieve creation and update timestamps for audit purposes + * - Review API versions and format settings + * - Examine metafield namespace configurations for extended data access + * + * Each subscription includes comprehensive configuration details such as the + * specific Shopify events being monitored, the destination endpoint (HTTP, + * EventBridge, or Pub/Sub), event filtering criteria, and payload customization + * settings. The subscription tracks its creation and modification history. + * + * Subscriptions can include advanced features like Shopify search syntax for event filtering to control + * which events trigger notifications, specific field inclusion rules to control which fields are included + * in the webhook payload, and metafield namespace access to capture custom store data. The API version + * is inherited from the app that created the webhook subscription. + * + * The endpoint configuration varies by type - HTTP subscriptions include callback + * URLs, EventBridge subscriptions reference AWS ARNs, and Pub/Sub subscriptions + * specify Google Cloud project and topic details. This flexibility allows apps to + * integrate webhooks with their preferred infrastructure and event processing systems. + * + * Learn more about [webhook subscription management](https://shopify.dev/docs/apps/webhooks). */ public class WebhookSubscriptionMetafieldIdentifier { /** diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/WebhookSubscriptionTopic.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/WebhookSubscriptionTopic.java index 9d1098b9..9b79c655 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/WebhookSubscriptionTopic.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/WebhookSubscriptionTopic.java @@ -14,6 +14,8 @@ * names](https://shopify.dev/docs/api/webhooks?reference=graphql). */ public enum WebhookSubscriptionTopic { + TAX_SUMMARIES_CREATE, + APP_UNINSTALLED, APP_SCOPES_UPDATE, @@ -120,6 +122,8 @@ public enum WebhookSubscriptionTopic { ORDERS_UPDATED, + ORDERS_LINK_REQUESTED, + FULFILLMENT_ORDERS_MOVED, FULFILLMENT_ORDERS_HOLD_RELEASED, @@ -246,6 +250,8 @@ public enum WebhookSubscriptionTopic { LOCALES_UPDATE, + LOCALES_DESTROY, + DOMAINS_CREATE, DOMAINS_UPDATE, @@ -286,6 +292,8 @@ public enum WebhookSubscriptionTopic { RETURNS_UPDATE, + RETURNS_PROCESS, + RETURNS_DECLINE, REVERSE_DELIVERIES_ATTACH_DELIVERABLE, @@ -358,6 +366,34 @@ public enum WebhookSubscriptionTopic { CUSTOMERS_MERGE, + INVENTORY_TRANSFERS_ADD_ITEMS, + + INVENTORY_TRANSFERS_UPDATE_ITEM_QUANTITIES, + + INVENTORY_TRANSFERS_REMOVE_ITEMS, + + INVENTORY_TRANSFERS_READY_TO_SHIP, + + INVENTORY_TRANSFERS_CANCEL, + + INVENTORY_TRANSFERS_COMPLETE, + + INVENTORY_SHIPMENTS_DELETE, + + INVENTORY_SHIPMENTS_CREATE, + + INVENTORY_SHIPMENTS_MARK_IN_TRANSIT, + + INVENTORY_SHIPMENTS_UPDATE_TRACKING, + + INVENTORY_SHIPMENTS_ADD_ITEMS, + + INVENTORY_SHIPMENTS_UPDATE_ITEM_QUANTITIES, + + INVENTORY_SHIPMENTS_REMOVE_ITEMS, + + INVENTORY_SHIPMENTS_RECEIVE_ITEMS, + CUSTOMER_ACCOUNT_SETTINGS_UPDATE, CUSTOMER_JOINED_SEGMENT, diff --git a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Weight.java b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Weight.java index 69eb6360..3a6885e6 100644 --- a/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Weight.java +++ b/mvn/java-shopify-graphql-admin/src/main/java/com/shopify/admin/types/Weight.java @@ -7,7 +7,12 @@ import java.util.Objects; /** - * A weight, which includes a numeric value and a unit of measurement. + * A weight measurement with its numeric value and unit. Used throughout the API, + * for example in shipping calculations, delivery conditions, order line items, and + * inventory measurements. + * + * The weight combines a decimal value with a standard unit of measurement to + * ensure consistent weight handling across different regional systems. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-admin/src/main/resources/schema/schema.graphql b/mvn/java-shopify-graphql-admin/src/main/resources/schema/schema.graphql index adcbfa4e..5f09dfd6 100644 --- a/mvn/java-shopify-graphql-admin/src/main/resources/schema/schema.graphql +++ b/mvn/java-shopify-graphql-admin/src/main/resources/schema/schema.graphql @@ -4,6 +4,17 @@ directive @accessRestricted( reason: String = null ) on FIELD_DEFINITION | OBJECT +""" +Enables idempotent mutation execution using a provided key. Only supported on +mutations that explicitly document idempotency support in their description. +Example: `@idempotent(key: "123e4567-e89b-12d3-a456-426614174000")`. Note: The +idempotency key cannot be an empty string or whitespace only. +""" +directive @idempotent( + """The key to identify the idempotent mutation.""" + key: String! +) on FIELD + """ Requires that exactly one field must be supplied and that field must not be `null`. """ @@ -15,7 +26,18 @@ directive @specifiedBy( url: String! ) on SCALAR -"""A checkout that was abandoned by the customer.""" +""" +An incomplete checkout where the customer added items and provided contact +information but didn't complete the purchase. Tracks the customer's cart +contents, pricing details, addresses, and timestamps to enable recovery +campaigns and abandonment analytics. + +The checkout includes a recovery URL that merchants can send to customers to +resume their purchase. [`AbandonedCheckoutLineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AbandonedCheckoutLineItem) +objects preserve the original +[`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) +selections, quantities, and pricing at the time of abandonment. +""" type AbandonedCheckout implements Navigable & Node { """The URL for the buyer to recover their checkout.""" abandonedCheckoutUrl: URL! @@ -240,6 +262,9 @@ type AbandonedCheckoutLineItem implements Node { """Original price for a single unit of this line item, before discounts.""" originalUnitPriceSet: MoneyBag! + """The parent relationship for this line item.""" + parentRelationship: AbandonedCheckoutLineItemParentRelationship + """ Product for this line item. NULL for custom line items and products that were deleted after checkout began. @@ -326,6 +351,12 @@ type AbandonedCheckoutLineItemEdge { node: AbandonedCheckoutLineItem! } +"""The line relationship between two line items in an abandoned checkout.""" +type AbandonedCheckoutLineItemParentRelationship { + """The parent line item of the current line item.""" + parent: AbandonedCheckoutLineItem! +} + """The set of valid sort keys for the AbandonedCheckout query.""" enum AbandonedCheckoutSortKeys { """Sort by the `checkout_id` value.""" @@ -350,7 +381,19 @@ enum AbandonedCheckoutSortKeys { TOTAL_PRICE } -"""A browse, cart, or checkout that was abandoned by a customer.""" +""" +Tracks a [customer](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer)'s +incomplete shopping journey, whether they abandoned while browsing +[products](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product), +adding items to cart, or during checkout. Provides data about the customer's +behavior and products they interacted with. + +The abandonment includes fields that indicate whether the customer has completed +any [orders](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) or [draft +orders](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrder) +after the abandonment occurred. It also tracks when emails were sent and how +long since the customer's last activity across different abandonment types. +""" type Abandonment implements Node { """The abandonment payload for the abandoned checkout.""" abandonedCheckoutPayload: AbandonedCheckout @@ -594,8 +637,17 @@ enum AbandonmentUpdateActivitiesDeliveryStatusesUserErrorCode { } """ -The permission required to access a Shopify Admin API or Storefront API resource -for a shop. Merchants grant access scopes that are requested by applications. +A permission that controls access to [GraphQL Admin API](https://shopify.dev/docs/api/usage/access-scopes#authenticated-access-scopes) or [Storefront API](https://shopify.dev/docs/api/usage/access-scopes#unauthenticated-access-scopes) +types. Each scope defines what data an +[`App`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App) can read +or write, following the format `{action}_{resource}` where action is typically +"read" or "write". + +Apps declare required and optional access scopes in their configuration. During +installation, merchants review and grant these permissions, determining what +shop data the app can access. The granted scopes remain active until the +merchant uninstalls the app or revokes them. Apps can programmatically revoke +their own dynamically granted optional scopes using [`appRevokeAccessScopes`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/appRevokeAccessScopes). """ type AccessScope { """ @@ -661,7 +713,18 @@ type AddAllProductsOperation implements Node & ResourceOperation { status: ResourceOperationStatus! } -"""The additional fees that have been applied to the order.""" +""" +Additional fees applied to an +[`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) +beyond the standard product and shipping costs. Additional fees typically +include duties, import fees, or other special handling charges that need +separate tracking from regular +[`LineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItem) objects. + +Each fee includes its name, price in both shop and presentment currencies, and +any applicable taxes broken down by +[`TaxLine`](https://shopify.dev/docs/api/admin-graphql/latest/objects/TaxLine). +""" type AdditionalFee implements Node { """A globally-unique ID.""" id: ID! @@ -748,7 +811,18 @@ enum AdjustmentsSortKeys { TIME } -"""Targets all items the cart for a specified discount.""" +""" +Represents a discount configuration that applies to all items in a customer's +cart without restriction. This object enables store-wide promotions that affect +every product equally. + +For example, a "Sitewide 10% Off Everything" sale would target all items, +ensuring that every product in the customer's cart receives the promotional +discount regardless of category or collection. + +This universal targeting approach simplifies promotional campaigns and provides +customers with clear, straightforward savings across the entire product catalog. +""" type AllDiscountItems { """ Whether all items are eligible for the discount. This value always returns `true`. @@ -794,7 +868,16 @@ type ApiVersion { supported: Boolean! } -"""A Shopify application.""" +""" +A Shopify application that extends store functionality. Apps integrate with +Shopify through APIs to add features, automate workflows, or connect external services. + +Provides metadata about the app including its developer information and listing +details in the Shopify App Store. Use the [`installation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App#field-App.fields.installation) +field to determine if the app is currently installed on the shop and access +installation-specific details like granted [`AccessScope`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AccessScope) objects. Check [`failedRequirements`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App#field-App.fields.failedRequirements) +before installation to identify any prerequisites that must be met. +""" type App implements Node { """A unique application API identifier.""" apiKey: String! @@ -846,7 +929,9 @@ type App implements Node { """A globally-unique ID.""" id: ID! - """Webpage where you can install the app.""" + """ + Webpage where you can install the app, if app requires explicit user permission. + """ installUrl: URL """ @@ -993,7 +1078,26 @@ type AppConnection { } """ -App credits can be applied by the merchant towards future app purchases, subscriptions, or usage records in Shopify. +Represents monetary credits that merchants can apply toward future app +purchases, subscriptions, or usage-based billing within their Shopify store. App +credits provide a flexible way to offer refunds, promotional credits, or +compensation without processing external payments. + +For example, if a merchant experiences service downtime, an app might issue +credits equivalent to the affected billing period. These credits can apply to +future charges, reducing the merchant's next invoice or extending their +subscription period. + +Use the `AppCredit` object to: +- Issue refunds for service interruptions or billing disputes +- Provide promotional credits for new merchant onboarding +- Compensate merchants for app-related issues or downtime +- Create loyalty rewards or referral bonuses within your billing system +- Track credit balances and application history for accounting purposes + +For comprehensive billing strategies and credit management patterns, see the +[subscription billing +guide](https://shopify.dev/docs/apps/launch/billing/subscription-billing). """ type AppCredit implements Node { """The amount that can be used towards future app purchases in Shopify.""" @@ -1208,7 +1312,17 @@ type AppFeedback { state: ResourceFeedbackState! } -"""Represents an installed application on a shop.""" +""" +An app installed on a shop. Each installation tracks the permissions granted to +the app through [`AccessScope`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AccessScope) +objects, along with billing subscriptions and [`Metafield`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Metafield) objects. + +The installation provides metafields that only the owning +[`App`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App) can +access. These metafields store app-specific configuration that merchants and +other apps can't modify. The installation also provides URLs for launching and +uninstalling the app, along with any active [`AppSubscription`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AppSubscription) objects or [`AppPurchaseOneTime`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AppPurchaseOneTime) purchases. +""" type AppInstallation implements HasMetafields & Node { """ The access scopes granted to the application by a merchant during installation. @@ -1256,7 +1370,7 @@ type AppInstallation implements HasMetafields & Node { app: App! """Channel associated with the installed application.""" - channel: Channel @deprecated(reason: "Use `publication` instead.") + channel: Channel @deprecated(reason: "Use the root-level `channels` query instead.") """Credits that can be used towards future app purchases.""" credits( @@ -1317,7 +1431,7 @@ type AppInstallation implements HasMetafields & Node { """ metafields( """ - The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. + The metafield namespace to filter by. If omitted, all metafields are returned. """ namespace: String @@ -1383,7 +1497,7 @@ type AppInstallation implements HasMetafields & Node { ): AppPurchaseOneTimeConnection! """The publication associated with the installed application.""" - publication: Publication + publication: Publication @deprecated(reason: "Use the root-level `publications` query instead.") """ The records that track the externally-captured revenue for the app. The records are used for revenue attribution purposes. @@ -1528,7 +1642,15 @@ input AppPlanInput { appRecurringPricingDetails: AppRecurringPricingInput } -"""The app plan that the merchant is subscribed to.""" +""" +Contains the pricing details for the app plan that a merchant has subscribed to within their current billing arrangement. + +This simplified object focuses on the essential pricing information merchants +need to understand their current subscription costs and billing structure. + +Details about subscription management and pricing strategies are available in +the [app billing documentation](https://shopify.dev/docs/apps/launch/billing). +""" type AppPlanV2 { """The plan billed to a shop on a recurring basis.""" pricingDetails: AppPricingDetails! @@ -1591,7 +1713,37 @@ interface AppPurchase { test: Boolean! } -"""Services and features purchased once by a store.""" +""" +Represents a one-time purchase of app services or features by a merchant, +tracking the transaction details and status throughout the billing lifecycle. +This object captures essential information about non-recurring charges, +including price and merchant acceptance status. + +One-time purchases are particularly valuable for apps offering premium features, +professional services, or digital products that don't require ongoing +subscriptions. For instance, a photography app might sell premium filters as +one-time purchases, while a marketing app could charge for individual campaign +setups or advanced analytics reports. + +Use the `AppPurchaseOneTime` object to: +- Track the status of individual feature purchases and service charges +- Track payment status for premium content or digital products +- Access purchase details to enable or disable features based on payment status + +The purchase status indicates whether the charge is pending merchant approval, +has been accepted and processed, or was declined. This status tracking is +crucial for apps that need to conditionally enable features based on successful +payment completion. + +Purchase records include creation timestamps, pricing details, and test flags to +distinguish between production charges and development testing. The test flag +ensures that development and staging environments don't generate actual charges +while maintaining realistic billing flow testing. + +For detailed implementation patterns and billing best practices, see the +[one-time-charges +page](https://shopify.dev/docs/apps/launch/billing/one-time-charges). +""" type AppPurchaseOneTime implements AppPurchase & Node { """The date and time when the app purchase occurred.""" createdAt: DateTime! @@ -1685,7 +1837,7 @@ enum AppPurchaseStatus { activated by the app. App purchases created through the GraphQL Admin API are activated upon approval. """ - ACCEPTED @deprecated(reason: "As of API version 2021-01, when a merchant accepts an app purchase, the status immediately changes from `pending` to `active`.") + ACCEPTED @deprecated(reason: "When a merchant accepts an app purchase, the status immediately changes from `pending` to `active`.") """ The app purchase was approved by the merchant and has been activated by the @@ -1745,7 +1897,38 @@ input AppRecurringPricingInput { discount: AppSubscriptionDiscountInput } -"""Represents app revenue that was captured externally by the partner.""" +""" +Tracks revenue that was captured outside of Shopify's billing system but needs +to be attributed to the app for comprehensive revenue reporting and partner +analytics. This object enables accurate revenue tracking when apps process +payments through external systems while maintaining visibility into total app performance. + +External revenue attribution is essential for apps that offer multiple payment +channels or process certain transactions outside Shopify's billing +infrastructure. For example, an enterprise app might process large custom +contracts through external payment processors, or a marketplace app could handle +direct merchant-to-merchant transactions that still generate app commissions. + +Use the `AppRevenueAttributionRecord` object to: +- Report revenue from external payment processors and billing systems +- Track commission-based earnings from marketplace or referral activities +- Maintain comprehensive revenue analytics across multiple payment channels +- Ensure accurate partner revenue sharing and commission calculations +- Generate complete financial reports that include all app-generated revenue streams +- Support compliance requirements for external revenue documentation + +Each attribution record includes the captured amount, external transaction +timestamp, and idempotency keys to prevent duplicate reporting. The record type +field categorizes different revenue streams, enabling detailed analytics and +reporting segmentation. + +Revenue attribution records are particularly important for apps participating in +Shopify's partner program, as they ensure accurate revenue sharing calculations +and comprehensive performance metrics. The captured timestamp reflects when the +external payment was processed, not when the attribution record was created in Shopify. + +For detailed revenue attribution values, see the [AppRevenueAttributionType enum](https://shopify.dev/docs/api/admin-graphql/latest/enums/AppRevenueAttributionType). +""" type AppRevenueAttributionRecord implements Node { """The financial amount captured in this attribution.""" amount: MoneyV2! @@ -1882,7 +2065,21 @@ type AppRevokeAccessScopesPayload { } """ -Provides users access to services and/or features for a duration of time. +A recurring billing agreement that associates an +[`App`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App) with a +merchant's shop. Each subscription contains one or more [`AppSubscriptionLineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AppSubscriptionLineItem) +objects that define the pricing structure. The pricing structure can include +recurring charges, usage-based pricing, or both. + +The subscription tracks billing details including the current period end date, +trial days, and [`AppSubscriptionStatus`](https://shopify.dev/docs/api/admin-graphql/latest/enums/AppSubscriptionStatus). + +Merchants must approve subscriptions through a [confirmation URL](https://shopify.dev/docs/api/admin-graphql/latest/mutations/appSubscriptionCreate#returns-confirmationUrl) +before billing begins. Test subscriptions allow developers to verify billing +flows without actual charges. + +Learn more about [subscription +billing](https://shopify.dev/docs/apps/launch/billing/subscription-billing) and [testing charges](https://shopify.dev/docs/apps/launch/billing/managed-pricing#test-charges). """ type AppSubscription implements Node { """The date and time when the app subscription was created.""" @@ -2040,7 +2237,25 @@ type AppSubscriptionEdge { node: AppSubscription! } -"""The plan attached to an app subscription.""" +""" +Represents a component of an app subscription that contains pricing details for +either recurring fees or usage-based charges. Each subscription has exactly 1 or +2 line items - one for recurring fees and/or one for usage fees. + +If a subscription has both recurring and usage pricing, there will be 2 line +items. If it only has one type of pricing, the subscription will have a single +line item for that pricing model. + +Use the `AppSubscriptionLineItem` object to: +- View the pricing terms a merchant has agreed to +- Distinguish between recurring and usage fee components +- Access detailed billing information for each pricing component + +This read-only object provides visibility into the subscription's pricing structure without allowing modifications. + +Read about subscription pricing models in the [billing architecture +guide](https://shopify.dev/docs/apps/launch/billing/subscription-billing). +""" type AppSubscriptionLineItem { """A globally-unique ID.""" id: ID! @@ -2151,7 +2366,7 @@ enum AppSubscriptionStatus { """ The app subscription has been approved by the merchant and is ready to be activated by the app. """ - ACCEPTED @deprecated(reason: "As of API version 2021-01, when a merchant approves an app subscription, the status immediately transitions from `pending` to `active`.") + ACCEPTED @deprecated(reason: "When a merchant approves an app subscription, the status immediately transitions from `pending` to `active`.") """ The app subscription has been approved by the merchant. Active app @@ -2228,9 +2443,63 @@ enum AppTransactionSortKeys { ID } +"""Represents an error that happens while uninstalling an app.""" +type AppUninstallAppUninstallError implements DisplayableError { + """The error code.""" + code: AppUninstallAppUninstallErrorCode + + """The path to the input field that caused the error.""" + field: [String!] + + """The error message.""" + message: String! +} + +""" +Possible error codes that can be returned by `AppUninstallAppUninstallError`. """ -Defines a usage pricing model for the app subscription. -These charges are variable based on how much the merchant uses the app. +enum AppUninstallAppUninstallErrorCode { + """The app cannot be found.""" + APP_NOT_FOUND + + """The app is not installed.""" + APP_NOT_INSTALLED + + """User does not have sufficient permissions to uninstall this app.""" + USER_PERMISSIONS_INSUFFICIENT + + """An error occurred while uninstalling the app.""" + APP_UNINSTALL_ERROR +} + +"""Return type for `appUninstall` mutation.""" +type AppUninstallPayload { + """The uninstalled app.""" + app: App + + """The list of errors that occurred from executing the mutation.""" + userErrors: [AppUninstallAppUninstallError!]! +} + +""" +Defines usage-based pricing terms for app subscriptions where merchants pay +based on their actual consumption of app features or services. This pricing +model provides flexibility for merchants who want to pay only for what they use +rather than fixed monthly fees. + +For example, an email marketing app might charge variable pricing per email +sent, with a monthly cap of variable pricing, allowing small merchants to pay +minimal amounts while protecting larger merchants from excessive charges. + +Use the `AppUsagePricing` object to: +- View consumption-based billing for variable app usage +- See spending caps that protect merchants from unexpected charges + +The balance and capped amount fields provide apps with data about current usage +costs and remaining budget within the billing period, which apps can present to +merchants to promote transparency in variable pricing. + +For implementation guidance, see the [usage billing documentation](https://shopify.dev/docs/apps/launch/billing/subscription-billing/create-usage-based-subscriptions). """ type AppUsagePricing { """The total usage records for interval.""" @@ -2352,7 +2621,16 @@ For more information, refer to [Amazon Resource Names](https://docs.aws.amazon.c """ scalar ARN -"""An article in the blogging system.""" +""" +An article that contains content, author information, and metadata. Articles belong +to a [`Blog`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Blog) +and can include HTML-formatted body text, summary text, and an associated image. +Merchants publish articles to share content, drive traffic, and engage customers. + +Articles can be organized with tags and published immediately or scheduled for +future publication using the [`publishedAt`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Article#field-Article.fields.publishedAt) +timestamp. The API manages comments on articles when the blog's comment policy enables them. +""" type Article implements HasEvents & HasMetafieldDefinitions & HasMetafields & HasPublishedTranslations & Navigable & Node { """The name of the author of the article.""" author: ArticleAuthor @@ -2415,7 +2693,7 @@ type Article implements HasEvents & HasMetafieldDefinitions & HasMetafields & Ha query: String ): CommentConnection! - """Count of comments.""" + """Count of comments. Limited to a maximum of 10000 by default.""" commentsCount( """ A filter made up of terms, connectives, modifiers, and comparators. @@ -2442,6 +2720,11 @@ type Article implements HasEvents & HasMetafieldDefinitions & HasMetafields & Ha """ query: String + + """ + The upper bound on count value before returning a result. Use `null` to have no limit. + """ + limit: Int = 10000 ): Count """The date and time (ISO 8601 format) when the article was created.""" @@ -2492,8 +2775,9 @@ type Article implements HasEvents & HasMetafieldDefinitions & HasMetafields & Ha | comments | boolean | Whether or not to include [comment-events](https://shopify.dev/api/admin-graphql/latest/objects/CommentEvent) in your search, passing `false` will exclude comment-events, any other value will include comment-events. | | | - `false`
- `true` | - | created_at | time | Filter by the date and time when the event happened. | - | | - `created_at:>2020-10-21`
- `created_at:2025-10-21`
- + `created_at: - `id:>=1234`
- `id:<=1234` | | subject_type | string | The resource type affected by this event. See [EventSubjectType](https://shopify.dev/api/admin-graphql/latest/enums/EventSubjectType) for possible values. | | | - `PRODUCT_VARIANT`
- `PRODUCT`
- `COLLECTION` | @@ -2597,7 +2881,7 @@ type Article implements HasEvents & HasMetafieldDefinitions & HasMetafields & Ha """ query: String - ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use the root `metafieldDefinitions` field instead.") + ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use `Query.metafieldDefinitions` instead.") """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) @@ -2605,7 +2889,7 @@ type Article implements HasEvents & HasMetafieldDefinitions & HasMetafields & Ha """ metafields( """ - The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. + The metafield namespace to filter by. If omitted, all metafields are returned. """ namespace: String @@ -2681,7 +2965,21 @@ type Article implements HasEvents & HasMetafieldDefinitions & HasMetafields & Ha updatedAt: DateTime } -"""Represents an article author in an Article.""" +""" +Represents the author of an article. This object provides the author's full name for attribution purposes. + +The `ArticleAuthor` is a simple object that contains only the author's name +field. When articles are created or updated, the author information is stored +and can be displayed alongside the article content. + +Use the `ArticleAuthor` object to: +- Retrieve the author's name for display in article bylines +- Show author attribution in article listings +- Display who wrote specific content + +Note: This object only contains the author's full name. It does not include +additional author details like bio, email, or social media links. +""" type ArticleAuthor { """The author's full name.""" name: String! @@ -3066,14 +3364,28 @@ enum ArticleUpdateUserErrorCode { """The input value is invalid.""" INVALID + + """ + The value is invalid for the metafield type or for the definition options. + """ + INVALID_VALUE + + """The metafield type is invalid.""" + INVALID_TYPE } """ -Represents a generic custom attribute, such as whether an order is a customer's first. +A custom property. Attributes are used to store additional information about a Shopify resource, such as +products, customers, or orders. Attributes are stored as key-value pairs. + +For example, a list of attributes might include whether a customer is a first-time buyer (`"customer_first_order": "true"`), +whether an order is gift-wrapped (`"gift_wrapped": "true"`), a preferred delivery date +(`"preferred_delivery_date": "2025-10-01"`), the discount applied (`"loyalty_discount_applied": "10%"`), and any +notes provided by the customer (`"customer_notes": "Please leave at the front door"`). """ type Attribute { """ - The key or name of the attribute. For example, `"customersFirstOrder"`. + The key or name of the attribute. For example, `"customer_first_order"`. """ key: String! @@ -3090,6 +3402,17 @@ input AttributeInput { value: String! } +"""The intended audience for the order status page.""" +enum Audience { + """Intended for customer notifications.""" + CUSTOMERVIEW + + """ + Intended for merchant wanting to preview the order status page. Should be used immediately after querying. + """ + MERCHANTVIEW +} + """ The input fields for an author. Either the `name` or `user_id` fields can be supplied, but never both. """ @@ -3220,6 +3543,42 @@ enum BalanceTransactionSortKeys { TRANSACTION_TYPE } +"""Represents a bank account payment instrument.""" +type BankAccount { + """The type of account holder.""" + accountHolderType: BankAccountHolderType! + + """The type of bank account.""" + accountType: BankAccountType! + + """The name of the bank.""" + bankName: String! + + """The billing address associated with the bank account.""" + billingAddress: CustomerPaymentInstrumentBillingAddress + + """The last four digits of the account number.""" + lastDigits: String! +} + +"""The type of bank account holder.""" +enum BankAccountHolderType { + """A company account holder.""" + COMPANY + + """An individual account holder.""" + INDIVIDUAL +} + +"""The type of bank account.""" +enum BankAccountType { + """A checking account.""" + CHECKING + + """A savings account.""" + SAVINGS +} + """ The valid types of actions a user should be able to perform in an financial app. """ @@ -3340,6 +3699,9 @@ type BasicEvent implements Event & Node { """Whether the event was caused by an admin user.""" attributeToUser: Boolean! + """The entity which performed the action that generated the event.""" + author: String + """The date and time when the event was created.""" createdAt: DateTime! @@ -3435,7 +3797,9 @@ enum BillingAttemptUserErrorCode { """Billing cycle must not be skipped.""" BILLING_CYCLE_SKIPPED - """Subscription contract is under review.""" + """ + Subscription contract is under review, origin order is high risk and unfulfilled. + """ CONTRACT_UNDER_REVIEW """Subscription contract cannot be billed once terminated.""" @@ -3443,11 +3807,18 @@ enum BillingAttemptUserErrorCode { """Subscription contract cannot be billed if paused.""" CONTRACT_PAUSED + + """Billing attempt rate limit exceeded - try later.""" + THROTTLED } """ -Shopify stores come with a built-in blogging engine, allowing a shop to have one or more blogs. Blogs are meant -to be used as a type of magazine or newsletter for the shop, with content that changes over time. +A blog for publishing articles in the online store. Stores can have multiple blogs to organize content by topic or purpose. + +Each blog contains articles with their associated comments, tags, and metadata. +The comment policy controls whether readers can post comments and whether +moderation is required. Blogs use customizable URL handles and can apply +alternate templates for specialized layouts. """ type Blog implements HasEvents & HasMetafieldDefinitions & HasMetafields & HasPublishedTranslations & Node { """List of the blog's articles.""" @@ -3476,8 +3847,13 @@ type Blog implements HasEvents & HasMetafieldDefinitions & HasMetafields & HasPu reverse: Boolean = false ): ArticleConnection! - """Count of articles.""" - articlesCount: Count + """Count of articles. Limited to a maximum of 10000 by default.""" + articlesCount( + """ + The upper bound on count value before returning a result. Use `null` to have no limit. + """ + limit: Int = 10000 + ): Count """ Indicates whether readers can post comments to the blog and if comments are moderated or not. @@ -3526,8 +3902,9 @@ type Blog implements HasEvents & HasMetafieldDefinitions & HasMetafields & HasPu | comments | boolean | Whether or not to include [comment-events](https://shopify.dev/api/admin-graphql/latest/objects/CommentEvent) in your search, passing `false` will exclude comment-events, any other value will include comment-events. | | | - `false`
- `true` | - | created_at | time | Filter by the date and time when the event happened. | - | | - `created_at:>2020-10-21`
- `created_at:2025-10-21`
- + `created_at: - `id:>=1234`
- `id:<=1234` | | subject_type | string | The resource type affected by this event. See [EventSubjectType](https://shopify.dev/api/admin-graphql/latest/enums/EventSubjectType) for possible values. | | | - `PRODUCT_VARIANT`
- `PRODUCT`
- `COLLECTION` | @@ -3631,7 +4008,7 @@ type Blog implements HasEvents & HasMetafieldDefinitions & HasMetafields & HasPu """ query: String - ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use the root `metafieldDefinitions` field instead.") + ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use `Query.metafieldDefinitions` instead.") """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) @@ -3639,7 +4016,7 @@ type Blog implements HasEvents & HasMetafieldDefinitions & HasMetafields & HasPu """ metafields( """ - The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. + The metafield namespace to filter by. If omitted, all metafields are returned. """ namespace: String @@ -3829,7 +4206,19 @@ type BlogEdge { } """ -FeedBurner provider details. Any blogs that aren't already integrated with FeedBurner can't use the service. +RSS feed provider details for blog syndication. This object contains the +location and path information for external feed services that were previously +integrated with the blog. + +The `BlogFeed` object maintains the feed URL and path to ensure existing feed subscriptions continue working. + +Use the `BlogFeed` object to: +- Access RSS feed provider configuration +- Retrieve feed location and path information +- Maintain existing feed syndication settings + +> Note: +> This is a legacy feature. New integrations with external feed services are not supported. """ type BlogFeed { """Blog feed provider url.""" @@ -3957,6 +4346,9 @@ enum BulkMutationErrorCode { so you can try performing the same query again. """ INTERNAL_FILE_SERVER_ERROR + + """Bulk operations limit reached. Please try again later.""" + LIMIT_REACHED } """Represents an error that happens during execution of a bulk mutation.""" @@ -3972,13 +4364,25 @@ type BulkMutationUserError implements DisplayableError { } """ -An asynchronous long-running operation to fetch data in bulk or to bulk import data. +An asynchronous operation that exports large datasets or imports data in bulk. +Create bulk operations using [bulkOperationRunQuery](https://shopify.dev/docs/api/admin-graphql/latest/mutations/bulkOperationRunQuery) +to export data or [bulkOperationRunMutation](https://shopify.dev/docs/api/admin-graphql/latest/mutations/bulkOperationRunMutation) +to import data. -Bulk operations are created using the `bulkOperationRunQuery` or `bulkOperationRunMutation` mutation. After -they are created, clients should poll the `status` field for updates. When `COMPLETED`, the `url` field contains -a link to the data in [JSONL](http://jsonlines.org/) format. +After creation, check the [`status`](https://shopify.dev/docs/api/admin-graphql/latest/objects/BulkOperation#field-BulkOperation.fields.status) +field to track progress. When completed, the [`url`](https://shopify.dev/docs/api/admin-graphql/latest/objects/BulkOperation#field-BulkOperation.fields.url) +field contains a link to download results in [JSONL](http://jsonlines.org/) format. The [`objectCount`](https://shopify.dev/docs/api/admin-graphql/latest/objects/BulkOperation#field-BulkOperation.fields.objectCount) +field shows the running total of processed objects, while [`rootObjectCount`](https://shopify.dev/docs/api/admin-graphql/latest/objects/BulkOperation#field-BulkOperation.fields.rootObjectCount) +tracks only root-level objects in nested queries. -Refer to the [bulk operations guide](https://shopify.dev/api/usage/bulk-operations/imports) for more details. +If an operation fails but retrieves partial data, then the [`partialDataUrl`](https://shopify.dev/docs/api/admin-graphql/latest/objects/BulkOperation#field-BulkOperation.fields.partialDataUrl) +field provides access to incomplete results. + +> Note: `url` and `partialDataUrl` values expire after seven days. + +Learn more about +[exporting](https://shopify.dev/docs/api/usage/bulk-operations/queries) and +[importing](https://shopify.dev/docs/api/usage/bulk-operations/imports) data in bulk. """ type BulkOperation implements Node { """When the bulk operation was successfully completed.""" @@ -4042,6 +4446,41 @@ type BulkOperationCancelPayload { userErrors: [UserError!]! } +"""An auto-generated type for paginating through multiple BulkOperations.""" +type BulkOperationConnection { + """ + The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + """ + edges: [BulkOperationEdge!]! + + """ + A list of nodes that are contained in BulkOperationEdge. You can fetch data + about an individual node, or you can follow the edges to fetch data about a + collection of related nodes. At each node, you specify the fields that you + want to retrieve. + """ + nodes: [BulkOperation!]! + + """ + An object that’s used to retrieve [cursor + information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + """ + pageInfo: PageInfo! +} + +""" +An auto-generated type which holds one BulkOperation and a cursor during pagination. +""" +type BulkOperationEdge { + """ + The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + """ + cursor: String! + + """The item at the end of BulkOperationEdge.""" + node: BulkOperation! +} + """Error codes for failed bulk operations.""" enum BulkOperationErrorCode { """ @@ -4082,6 +4521,15 @@ type BulkOperationRunQueryPayload { userErrors: [BulkOperationUserError!]! } +"""The set of valid sort keys for the BulkOperations query.""" +enum BulkOperationsSortKeys { + """Sort by the `completed_at` value.""" + COMPLETED_AT + + """Sort by the `created_at` value.""" + CREATED_AT +} + """The valid values for the status of a bulk operation.""" enum BulkOperationStatus { """The bulk operation has been canceled.""" @@ -4121,7 +4569,11 @@ enum BulkOperationType { MUTATION } -"""Represents an error in the input of a mutation.""" +""" +An error in the input of a mutation. Mutations return `UserError` objects to +indicate validation failures, such as invalid field values or business logic +violations, that prevent the operation from completing. +""" type BulkOperationUserError implements DisplayableError { """The error code.""" code: BulkOperationUserErrorCode @@ -4140,6 +4592,9 @@ enum BulkOperationUserErrorCode { """The input value is invalid.""" INVALID + + """Bulk operations limit reached. Please try again later.""" + LIMIT_REACHED } """Return type for `bulkProductResourceFeedbackCreate` mutation.""" @@ -4282,11 +4737,25 @@ type BusinessCustomerUserError implements DisplayableError { message: String! } -"""Represents a merchant's Business Entity.""" +""" +A legal entity through which a merchant operates. Each business entity contains its own [`BusinessEntityAddress`](https://shopify.dev/docs/api/admin-graphql/latest/objects/BusinessEntityAddress), +company information, and can be associated with its own [`ShopifyPaymentsAccount`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsAccount). +[`Market`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Market) +objects can be assigned to a business entity to determine payment processing and +[`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) attribution. + +Every shop must have one primary business entity. Additional entities enable +international operations by establishing legal presence in multiple countries. + +Learn more about [managing multiple legal entities](https://shopify.dev/docs/apps/build/markets/multiple-entities). +""" type BusinessEntity implements Node { """The address of the merchant's Business Entity.""" address: BusinessEntityAddress! + """Whether the Business Entity is archived from the shop.""" + archived: Boolean! + """ The name of the company associated with the merchant's Business Entity. """ @@ -4301,7 +4770,16 @@ type BusinessEntity implements Node { """Whether it's the merchant's primary Business Entity.""" primary: Boolean! - """Shopify Payments account information, including balances and payouts.""" + """ + Returns the Shopify Payments account information for the shop. Includes + current balances across all currencies, payout schedules, and bank account + configurations. + + The account includes [`ShopifyPaymentsBalanceTransaction`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsBalanceTransaction) + records showing charges, refunds, and adjustments that affect your balance. Also includes [`ShopifyPaymentsDispute`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsDispute) records and [`ShopifyPaymentsPayout`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsPayout) + history between the account and connected [`ShopifyPaymentsBankAccount`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsBankAccount) + configurations. + """ shopifyPaymentsAccount: ShopifyPaymentsAccount } @@ -4366,6 +4844,12 @@ input BuyerExperienceConfigurationInput { deposit: DepositInput } +"""The input fields for a buyer signal.""" +input BuyerSignalInput { + """The country code of the buyer.""" + countryCode: CountryCode! +} + """ A discount that is automatically applied to an order that is being edited. """ @@ -4509,7 +4993,17 @@ type CalculatedDiscountCodeApplication implements CalculatedDiscountApplication value: PricingValue! } -"""The calculated fields for a draft order.""" +""" +Calculated pricing, taxes, and discounts for a [`DraftOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrder). +Includes the complete financial breakdown with line items, discounts, shipping +costs, tax calculations, and totals in both shop and presentment currencies. + +Available [`ShippingRate`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShippingRate) options are included when a valid shipping address and line items are present. + +> Note: +> Returns alerts and warnings when issues occur during calculation, such as +insufficient inventory or incompatible discounts. +""" type CalculatedDraftOrder { """ Whether or not to accept automatic discounts on the draft order during calculation. @@ -4553,7 +5047,7 @@ type CalculatedDraftOrder { """ A subtotal of the line items and corresponding discounts, - excluding include shipping charges, shipping discounts, taxes, or order discounts. + excluding shipping charges, shipping discounts, taxes, or order discounts. """ lineItemsSubtotalPrice: MoneyBag! @@ -4600,7 +5094,7 @@ type CalculatedDraftOrder { """Total discounts.""" totalDiscountsSet: MoneyBag! - """Total price of line items.""" + """Total price of line items, excluding discounts.""" totalLineItemsPriceSet: MoneyBag! """ @@ -4954,7 +5448,21 @@ type CalculatedManualDiscountApplication implements CalculatedDiscountApplicatio value: PricingValue! } -"""An order with edits applied but not saved.""" +""" +An order during an active edit session with all proposed changes applied but not +yet committed. When you begin editing an order with the [`orderEditBegin`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderEditBegin) +mutation, the system creates a [`CalculatedOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CalculatedOrder) +that shows how the +[`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) will +look after your changes. The calculated order tracks the original order state +and all staged modifications (added or removed +[`LineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItem) +objects, quantity adjustments, discount changes, and [`ShippingLine`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShippingLine) +updates). Use the calculated order to preview the financial impact of edits +before committing them with the [`orderEditCommit`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderEditCommit) mutation. + +Learn more about [editing existing orders](https://shopify.dev/docs/apps/build/orders-fulfillment/order-management-apps/edit-orders). +""" type CalculatedOrder implements Node { """ Returns only the new discount applications being added to the order in the current edit. @@ -5162,7 +5670,7 @@ type CalculatedReturn { """A list of calculated return line items.""" returnLineItems: [CalculatedReturnLineItem!]! - """The calulated return shipping fee.""" + """The calculated return shipping fee.""" returnShippingFee: CalculatedReturnShippingFee } @@ -5318,7 +5826,10 @@ input CalculateReturnLineItemInput { quantity: Int! } -"""Card payment details related to a transaction.""" +""" +Credit card payment information captured during a transaction. Includes +cardholder details, card metadata, verification response codes, and the [`DigitalWallet`](https://shopify.dev/docs/api/admin-graphql/latest/enums/DigitalWallet#valid-values) when used. +""" type CardPaymentDetails implements BasePaymentDetails { """ The response code from the address verification system (AVS). The code is always a single letter. @@ -5463,7 +5974,38 @@ enum CarrierServiceUpdateUserErrorCode { } """ -A Cart Transform Function to create [Customized Bundles.](https://shopify.dev/docs/apps/selling-strategies/bundles/add-a-customized-bundle). +A deployed cart transformation function that actively modifies how products +appear and behave in customer carts. Cart transforms enable sophisticated +merchandising strategies by programmatically merging, expanding, or updating +cart line items based on custom business logic. + +Use the `CartTransform` object to: +- Monitor active bundling and cart modification logic +- Track transform function deployment status and configuration +- Manage error handling behavior for cart processing failures +- Coordinate multiple transforms when running complex merchandising strategies +- Analyze transform performance and customer interaction patterns + +Each cart transform links to a specific [Shopify +Function](https://shopify.dev/docs/apps/build/functions) that contains the +actual cart modification logic. The `blockOnFailure` setting determines whether +cart processing should halt when the transform encounters errors, or whether it +should allow customers to proceed with unmodified carts. This flexibility +ensures merchants can balance feature richness with checkout reliability. + +Transform functions operate during cart updates, product additions, and checkout +initiation, providing multiple touchpoints to enhance the shopping experience. +They integrate seamlessly with existing cart APIs while extending functionality +beyond standard product catalog capabilities. + +The function ID connects to your deployed function code, while the configuration +settings control how the transform behaves in different scenarios. Multiple +transforms can work together, processing cart modifications in sequence to +support complex merchandising workflows. + +Learn more about [customized bundles](https://shopify.dev/docs/apps/selling-strategies/bundles/add-a-customized-bundle), +and about the [Cart Transform Function +API](https://shopify.dev/docs/api/functions/latest/cart-transform). """ type CartTransform implements HasMetafields & Node { """Whether a run failure will block cart and checkout operations.""" @@ -5496,7 +6038,7 @@ type CartTransform implements HasMetafields & Node { """ metafields( """ - The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. + The metafield namespace to filter by. If omitted, all metafields are returned. """ namespace: String @@ -5593,6 +6135,12 @@ enum CartTransformCreateUserErrorCode { """Could not create or update metafields.""" INVALID_METAFIELDS + + """Only one of function_id or function_handle can be provided, not both.""" + MULTIPLE_FUNCTION_IDENTIFIERS + + """Either function_id or function_handle must be provided.""" + MISSING_FUNCTION_IDENTIFIER } """Return type for `cartTransformDelete` mutation.""" @@ -5640,7 +6188,16 @@ type CartTransformEdge { node: CartTransform! } -"""Represents the cart transform feature configuration for the shop.""" +""" +Controls which cart transformation operations apps can perform in your store. +This lets you define exactly what types of cart modifications are allowed based +on your checkout setup and business needs. + +The eligible operations determine what cart transform functions can accomplish, +providing a clear boundary for app capabilities within the store's ecosystem. + +Learn more about [cart transform operations](https://shopify.dev/docs/api/functions/latest/cart-transform#multiple-operations). +""" type CartTransformEligibleOperations { """The shop is eligible for expand operations.""" expandOperation: Boolean! @@ -5652,7 +6209,19 @@ type CartTransformEligibleOperations { updateOperation: Boolean! } -"""Represents the cart transform feature configuration for the shop.""" +""" +Provides access to the cart transform feature configuration for the merchant's +store. This wrapper object indicates whether cart transformation capabilities +are enabled and what operations are available. + +For example, when checking if your app can deploy customized bundle features, +you would query this object to confirm cart transforms are supported and review +the eligible operations. + +The feature configuration helps apps determine compatibility before attempting to create transform functions. + +Learn more about [cart transformation](https://shopify.dev/docs/api/admin-graphql/latest/objects/CartTransform). +""" type CartTransformFeature { """The cart transform operations eligible for the shop.""" eligibleOperations: CartTransformEligibleOperations! @@ -5969,6 +6538,10 @@ 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). + +Catalogs can optionally include a publication to control product visibility and +a price list to customize pricing. When a publication isn't associated with a +catalog, product availability is determined by the sales channel. """ interface Catalog { """A globally-unique ID.""" @@ -6045,7 +6618,11 @@ input CatalogCreateInput { """The ID of the price list to associate to the catalog.""" priceListId: ID - """The ID of the publication to associate to the catalog.""" + """ + The ID of the publication to associate to the catalog. Only include this if + you need to control which products are visible in the catalog. When omitted, + product availability is determined by the sales channel. + """ publicationId: ID } @@ -6266,6 +6843,11 @@ enum CatalogUserErrorCode { """The price list is currently being modified. Please try again later.""" PRICE_LIST_LOCKED + """ + The catalog context is currently being modified. Please try again later. + """ + CATALOG_CONTEXT_LOCKED + """Publication not found.""" PUBLICATION_NOT_FOUND @@ -6316,15 +6898,25 @@ enum CatalogUserErrorCode { } """ -A channel represents an app where you sell a group of products and collections. -A channel can be a platform or marketplace such as Facebook or Pinterest, an online store, or POS. +An authenticated link to an external platform that supports syndication and +optionally order ingestion, such as Facebook, Pinterest, an online store, or +Point of Sale (POS). + +Each channel provides access to its underlying +[`App`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App), +published products and collections, and [`Publication`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication) +settings, as well as what features of the platform it supports such as [scheduled publishing](https://shopify.dev/docs/apps/build/sales-channels/scheduled-product-publishing). +Use channels to manage where catalog items appear, track publication status +across platforms, and control +[`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) +visibility for different customer touchpoints. """ type Channel implements Node { """The underlying app used by the channel.""" app: App! """ - The collection publications for the list of collections published to the channel. + The list of collection publications. Each record represents information about the publication of a collection. """ collectionPublicationsV3( """ @@ -6378,7 +6970,7 @@ type Channel implements Node { ): CollectionConnection! """The unique identifier for the channel.""" - handle: String! @deprecated(reason: "Use `id` instead.") + handle: String! """Whether the collection is available to the channel.""" hasCollection( @@ -6427,7 +7019,7 @@ type Channel implements Node { ): ProductPublicationConnection! @deprecated(reason: "Use `productPublicationsV3` instead.") """ - The product publications for the list of products published to the channel. + The list of product publication records for products published to this channel. """ productPublicationsV3( """ @@ -6481,7 +7073,8 @@ type Channel implements Node { ): ProductConnection! """ - The count of products published to the channel. Limited to a maximum of 10000. + Retrieves the total count of [`products`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) + published to a specific sales channel. Limited to a maximum of 10000 by default. """ productsCount( """ @@ -6530,6 +7123,11 @@ type Channel implements Node { | is_price_reduced | boolean | Filter by products that have a reduced price. For more information, refer to the [`CollectionRule`](https://shopify.dev/api/admin-graphql/latest/objects/CollectionRule) object. | | | - `is_price_reduced:true` | + | metafields.{namespace}.{key} | mixed | Filters resources by metafield + value. Format: `metafields.{namespace}.{key}:{value}`. Learn more about + [querying by metafield value](https://shopify.dev/apps/build/custom-data/metafields/query-by-metafield-value). + | | | - `metafields.custom.on_sale:true`
- + `metafields.product.material:"gid://shopify/Metaobject/43458085"` | | out_of_stock_somewhere | boolean | Filter by products that are out of stock in at least one location. | | | - `out_of_stock_somewhere:true` | | price | bigdecimal | Filter by the product variant [`price`](https://shopify.dev/api/admin-graphql/latest/objects/Productvariant#field-price) @@ -6537,38 +7135,65 @@ type Channel implements Node { | product_configuration_owner | string | Filter by the app [`id`](https://shopify.dev/api/admin-graphql/latest/objects/App#field-id) field. | | | - `product_configuration_owner:10001` | - | product_publication_status | string | Filter by the publishable status of - the resource on a channel, such as the online store. The value is a - composite of the [channel `app` - ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) - (`Channel.app.id`) and one of the valid values. | - `approved`
- - `rejected`
- `needs_action`
- `awaiting_review`
- - `published`
- `demoted`
- `scheduled`
- - `provisionally_published` | | - `publishable_status:189769876-approved` | + | product_publication_status | string | Filter by channel approval process + status of the resource on a channel, such as the online store. The value is + a composite of the [channel `app` ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#field-Channel.fields.app) + (`Channel.app.id`) and one of the valid values. For simple visibility checks, use [published_status](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-publishable_status) + instead. | - `* {channel_app_id}-approved`
- `* + {channel_app_id}-rejected`
- `* {channel_app_id}-needs_action`
- + `* {channel_app_id}-awaiting_review`
- `* + {channel_app_id}-published`
- `* {channel_app_id}-demoted`
- `* + {channel_app_id}-scheduled`
- `* + {channel_app_id}-provisionally_published` | | - + `product_publication_status:189769876-approved` | | product_type | string | Filter by a comma-separated list of [product types](https://help.shopify.com/manual/products/details/product-type). | | | - `product_type:snowboard` | | publication_ids | string | Filter by a comma-separated list of publication IDs that are associated with the product. | | | - `publication_ids:184111530305,184111694145` | - | publishable_status | string | Filter by the publishable status of the - resource on a channel, such as the online store. The value is a composite of - either the [channel `app` + | publishable_status | string | **Deprecated:** This parameter is deprecated + as of 2025-12 and will be removed in a future API version. Use [published_status](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-publishable_status) + for visibility checks. Filter by the publishable status of the resource on a + channel. The value is a composite of the [channel `app` ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) - (`Channel.app.id`) or [channel `name`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Channel#field-name) - and one of the valid values. | - `online_store_channel`
- - `published`
- `unpublished`
- `visible`
- `unavailable`
- - `hidden`
- `intended`
- `visible` | | - - `publishable_status:published`
- - `publishable_status:189769876:visible`
- - `publishable_status:pos:hidden` | + (`Channel.app.id`) and one of the valid status values. | - `* + {channel_app_id}-unset`
- `* {channel_app_id}-pending`
- `* + {channel_app_id}-approved`
- `* {channel_app_id}-not_approved` | | - + `publishable_status:580111-unset`
- `publishable_status:580111-pending` | | published_at | time | Filter by the date and time when the product was published to the online store and other sales channels. | | | - `published_at:>2020-10-21T23:39:20Z`
- `published_at: - `published_at:<=2024` | - | published_status | string | Filter by the published status of the resource - on a channel, such as the online store. | - `unset`
- `pending`
- - `approved`
- `not approved` | | - `published_status:approved` | + | published_status | string | Filter resources by their visibility and + publication state on a channel. Online store channel filtering: - + `online_store_channel`: Returns all resources in the online store channel, + regardless of publication status. - `published`/`visible`: Returns resources + that are published to the online store. - `unpublished`: Returns resources + that are not published to the online store. Channel-specific filtering using + a channel ID, channel handle, [channel `app` + ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) + (`Channel.app.id`), or app handle with suffixes: - + `{id_or_handle}-published`: Returns resources published to the specified + channel. - `{id_or_handle}-visible`: Same as `{id_or_handle}-published` + (kept for backwards compatibility). - `{id_or_handle}-intended`: Returns + resources added to the channel but not yet published. - + `{id_or_handle}-hidden`: Returns resources not added to the channel or not + published. Other: - `unavailable`: Returns resources not published to any + channel. | - `online_store_channel`
- `published`
- `visible`
+ - `unpublished`
- `* {channel_id_or_handle}-published`
- `* + {channel_id_or_handle}-visible`
- `* + {channel_id_or_handle}-intended`
- `* + {channel_id_or_handle}-hidden`
- `* + {channel_app_id_or_handle}-published`
- `* + {channel_app_id_or_handle}-visible`
- `* + {channel_app_id_or_handle}-intended`
- `* + {channel_app_id_or_handle}-hidden`
- `unavailable` | | - + `published_status:online_store_channel`
- + `published_status:published`
- `published_status:580111-published`
+ - `published_status:580111-hidden`
- + `published_status:my-channel-handle-published`
- + `published_status:unavailable` | | sku | string | Filter by the product variant [`sku`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-sku) field. [Learn more about SKUs](https://help.shopify.com/manual/products/details/sku). | | | - @@ -6576,8 +7201,8 @@ type Channel implements Node { | status | string | Filter by a comma-separated list of statuses. You can use statuses to manage inventory. Shopify only displays products with an `ACTIVE` status in online stores, sales channels, and apps. | - - `ACTIVE`
- `ARCHIVED`
- `DRAFT` | `ACTIVE` | - - `status:ACTIVE,DRAFT` | + `active`
- `archived`
- `draft` | `active` | - + `status:active,draft` | | tag | string | Filter objects by the `tag` field. | | | - `tag:my_tag` | | tag_not | string | Filter by objects that don’t have the specified tag. | | | - `tag_not:my_tag` | | title | string | Filter by the product [`title`](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-title) @@ -6598,6 +7223,11 @@ type Channel implements Node { """ query: String + + """ + The upper bound on count value before returning a result. Use `null` to have no limit. + """ + limit: Int = 10000 ): Count """Whether the channel supports future publishing.""" @@ -6626,9 +7256,17 @@ type ChannelConnection { } """ -A channel definition represents channels surfaces on the platform. -A channel definition can be a platform or a subsegment of it such as Facebook -Home, Instagram Live, Instagram Shops, or WhatsApp chat. +A specific selling surface within a [sales +channel](https://shopify.dev/docs/apps/build/sales-channels) platform. A channel +definition identifies where products can be sold. Definitions can represent +entire platforms (like Facebook or TikTok) or specific sales channels within +those platforms, such as Instagram Shops, Instagram Shopping, or TikTok Live. + +Each definition includes the parent +[`Channel`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Channel) +name and subchannel name to indicate the selling surface hierarchy. The +marketplace flag identifies whether this surface represents a marketplace +channel such as shops on Facebook, Instagram, or Buy on Google. """ type ChannelDefinition implements Node { """Name of the channel that this sub channel belongs to.""" @@ -6649,7 +7287,7 @@ type ChannelDefinition implements Node { subChannelName: String! """Icon displayed when showing the channel in admin.""" - svgIcon: String + svgIcon: String @deprecated(reason: "Use App.icon instead") } """ @@ -6665,7 +7303,17 @@ type ChannelEdge { node: Channel! } -"""Contains the information for a given sales channel.""" +""" +Identifies the [sales +channel](https://shopify.dev/docs/apps/build/sales-channels) and +[`App`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App) from which +an [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) +originated. Provides attribution details such as the specific platform (Facebook +Marketplace, Instagram Shopping) or marketplace where the order was placed. + +Links to the app that manages the channel and optional [`ChannelDefinition`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ChannelDefinition) +details that specify the exact sub-channel or selling surface. +""" type ChannelInformation implements Node { """The app associated with the channel.""" app: App! @@ -6676,15 +7324,39 @@ type ChannelInformation implements Node { """The unique ID for the channel.""" channelId: ID! + """The publishing destination display name or channel name.""" + displayName: String + """A globally-unique ID.""" id: ID! } """ -The settings of checkout visual customizations. +Creates a unified visual identity for your checkout that keeps customers engaged +and reinforces your brand throughout the purchase process. This comprehensive +branding system lets you control every visual aspect of checkout, from colors +and fonts to layouts and imagery, so your checkout feels like a natural +extension of your store. + +For example, a luxury fashion retailer can configure their checkout with custom +color palettes, premium typography, rounded corners for a softer feel, and +branded imagery that matches their main website aesthetic. -To learn more about updating checkout branding settings, refer to the -[checkoutBrandingUpsert](https://shopify.dev/api/admin-graphql/unstable/mutations/checkoutBrandingUpsert) mutation. +Use the `Branding` object to: +- Configure comprehensive checkout visual identity +- Coordinate color schemes across all checkout elements +- Apply consistent typography and spacing standards +- Manage background imagery and layout customizations +- Control visibility of various checkout components + +The branding configuration includes design system foundations like color roles, +typography scales, and spacing units, plus specific customizations for sections, +dividers, and interactive elements. This allows merchants to create cohesive +checkout experiences that reinforce their brand identity while maintaining +usability standards. + +Different color schemes can be defined for various contexts, ensuring optimal +contrast and accessibility across different checkout states and customer preferences. """ type CheckoutBranding { """ @@ -6781,7 +7453,24 @@ type CheckoutBrandingButton { typography: CheckoutBrandingTypographyStyle } -"""Colors for buttons.""" +""" +Defines the color palette specifically for button elements within checkout +branding, including hover states. These color roles ensure buttons maintain +proper contrast and visual hierarchy throughout the checkout experience. + +For example, a sports brand might configure bright accent colors for primary +action buttons, with darker hover states and contrasting text colors that +maintain accessibility standards. + +Use the `ButtonColorRoles` object to: +- Define button color schemes for different states +- Ensure proper contrast for accessibility compliance +- Coordinate button colors with overall brand palette + +Button color roles include background, border, text, icon, accent (for focused +states), and decorative elements, plus specific hover state colors that provide +clear interactive feedback to customers. +""" type CheckoutBrandingButtonColorRoles { """The color of accented objects (links and focused state).""" accent: String @@ -6855,7 +7544,19 @@ input CheckoutBrandingButtonInput { } """ -The customizations for the breadcrumbs that represent a buyer's journey to the checkout. +Controls the visibility settings for checkout breadcrumb navigation that shows +customers their progress through the purchase journey. This simple customization +allows merchants to show or hide the breadcrumb trail based on their checkout +flow preferences. + +For example, a single-page checkout experience might hide breadcrumbs to create +a more streamlined appearance, while multi-step checkouts can display them to +help customers understand their progress. + +The visibility setting provides merchants flexibility in how they present +checkout navigation to match their specific user experience strategy. + +Learn more about [checkout customization](https://shopify.dev/docs/api/admin-graphql/latest/objects/CheckoutBranding). """ type CheckoutBrandingBuyerJourney { """ @@ -6874,7 +7575,17 @@ input CheckoutBrandingBuyerJourneyInput { visibility: CheckoutBrandingVisibility } -"""The customizations that you can make to cart links at checkout.""" +""" +Controls the visibility of cart links displayed during checkout. These links +allow customers to return to their cart or continue shopping. + +For example, an electronics store might hide cart links during final checkout +steps to reduce distractions, or show them prominently to encourage customers to +add accessories before completing their purchase. + +The `CartLink` object provides visibility settings to control when and how these +navigation elements appear based on the merchant's checkout flow strategy. +""" type CheckoutBrandingCartLink { """Whether the cart link is visible at checkout.""" visibility: CheckoutBrandingVisibility @@ -6904,7 +7615,18 @@ input CheckoutBrandingCartLinkInput { visibility: CheckoutBrandingVisibility } -"""The checkboxes customizations.""" +""" +Defines the visual styling for checkbox elements throughout the checkout +interface, focusing on corner radius customization. This allows merchants to +align checkbox appearance with their overall design aesthetic. + +For example, a modern minimalist brand might prefer sharp, square checkboxes +while a friendly consumer brand could opt for rounded corners to create a +softer, more approachable feel. + +The corner radius setting ensures checkboxes integrate seamlessly with the +overall checkout design language and brand identity. +""" type CheckoutBrandingCheckbox { """The corner radius used for checkboxes.""" cornerRadius: CheckoutBrandingCornerRadius @@ -6916,13 +7638,28 @@ input CheckoutBrandingCheckboxInput { cornerRadius: CheckoutBrandingCornerRadius } -"""The choice list customizations.""" +""" +Controls spacing customization for the grouped variant of choice list components in checkout forms. + +The `ChoiceList` object contains settings specifically for the 'group' variant +styling through the [`ChoiceListGroup`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CheckoutBrandingChoiceListGroup) +field, which determines the spacing between choice options. +""" type CheckoutBrandingChoiceList { """The settings that apply to the 'group' variant of ChoiceList.""" group: CheckoutBrandingChoiceListGroup } -"""The settings that apply to the 'group' variant of ChoiceList.""" +""" +Controls the spacing between options in the 'group' variant of [`ChoiceList`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CheckoutBrandingChoiceList) components. + +This setting adjusts the vertical spacing between choice options to improve +readability and visual organization. The spacing value helps create clear +separation between options, making it easier for customers to scan and select +from available choices. + +Learn more about [checkout customization](https://shopify.dev/docs/api/admin-graphql/latest/objects/CheckoutBranding). +""" type CheckoutBrandingChoiceListGroup { """The spacing between UI elements in the list.""" spacing: CheckoutBrandingSpacingKeyword @@ -6943,7 +7680,21 @@ input CheckoutBrandingChoiceListInput { } """ -A set of colors for customizing the overall look and feel of the checkout. +Defines the global color roles for checkout branding. These semantic colors +maintain consistency across all checkout elements and provide the foundation for +the checkout's visual design system. + +Use global colors to: +- Set brand colors for primary actions and buttons +- Define accent colors for links and interactive elements +- Configure semantic colors for success, warning, and error states +- Apply decorative colors for visual highlights + +For example, a merchant might set their brand blue for primary buttons, green +for success messages, amber for warnings, and red for critical errors, creating +a consistent color language throughout checkout. + +Learn more about [checkout customization](https://shopify.dev/docs/api/admin-graphql/latest/objects/CheckoutBranding). """ type CheckoutBrandingColorGlobal { """A color used for interaction, like links and focus states.""" @@ -8816,17 +9567,48 @@ enum CodeDiscountSortKeys { } """ -Represents a group of products that can be displayed in online stores and other -sales channels in categories, which makes it easy for customers to find them. -For example, an athletics store might create different collections for running -attire, shoes, and accessories. +The `Collection` object represents a group of [products](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) +that merchants can organize to make their stores easier to browse and help customers find related products. +Collections serve as the primary way to categorize and display products across +[online stores](https://shopify.dev/docs/apps/build/online-store), +[sales channels](https://shopify.dev/docs/apps/build/sales-channels), and marketing campaigns. -Collections can be defined by conditions, such as whether they match certain -product tags. These are called smart or automated collections. +There are two types of collections: -Collections can also be created for a custom group of products. These are called custom or manual collections. +- **[Custom (manual) collections](https://help.shopify.com/manual/products/collections/manual-shopify-collection)**: +You specify the products to include in a collection. +- **[Smart (automated) collections](https://help.shopify.com/manual/products/collections/automated-collections)**: +You define rules, and products matching those rules are automatically included +in the collection. + +The `Collection` object provides information to: + +- Organize products by category, season, or promotion. +- Automate product grouping using rules (for example, by tag, type, or price). +- Configure product sorting and display order (for example, alphabetical, best-selling, price, or manual). +- Manage collection visibility and publication across sales channels. +- Add rich descriptions, images, and metadata to enhance discovery. + +> Note: +> Collections are unpublished by default. To make them available to customers, +use the [`publishablePublish`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/publishablePublish) +mutation after creation. + +Collections can be displayed in a store with Shopify's theme system through [Liquid templates](https://shopify.dev/docs/storefronts/themes/architecture/templates/collection) +and can be customized with [template suffixes](https://shopify.dev/docs/storefronts/themes/architecture/templates/alternate-templates) +for unique layouts. They also support advanced features like translated content, resource feedback, +and contextual publication for location-based catalogs. + +Learn about [using metafields with smart collections](https://shopify.dev/docs/apps/build/custom-data/metafields/use-metafield-capabilities). """ type Collection implements HasEvents & HasMetafieldDefinitions & HasMetafields & HasPublishedTranslations & Node & Publishable { + """ + Collection duplicate operations involving this collection, either as a source + (copying products from this collection to another) or a target (copying + products to this collection from another). + """ + activeOperations: CollectionOperations! + """ The number of [publications](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication) @@ -8890,8 +9672,9 @@ type Collection implements HasEvents & HasMetafieldDefinitions & HasMetafields & | comments | boolean | Whether or not to include [comment-events](https://shopify.dev/api/admin-graphql/latest/objects/CommentEvent) in your search, passing `false` will exclude comment-events, any other value will include comment-events. | | | - `false`
- `true` | - | created_at | time | Filter by the date and time when the event happened. | - | | - `created_at:>2020-10-21`
- `created_at:2025-10-21`
- + `created_at: - `id:>=1234`
- `id:<=1234` | | subject_type | string | The resource type affected by this event. See [EventSubjectType](https://shopify.dev/api/admin-graphql/latest/enums/EventSubjectType) for possible values. | | | - `PRODUCT_VARIANT`
- `PRODUCT`
- `COLLECTION` | @@ -9014,7 +9797,7 @@ type Collection implements HasEvents & HasMetafieldDefinitions & HasMetafields & """ query: String - ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use the root `metafieldDefinitions` field instead.") + ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use `Query.metafieldDefinitions` instead.") """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) @@ -9022,7 +9805,7 @@ type Collection implements HasEvents & HasMetafieldDefinitions & HasMetafields & """ metafields( """ - The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. + The metafield namespace to filter by. If omitted, all metafields are returned. """ namespace: String @@ -9153,7 +9936,7 @@ type Collection implements HasEvents & HasMetafieldDefinitions & HasMetafields & [publication](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication). For example, the resource might be published to the app's online store channel. """ - publishedOnCurrentPublication: Boolean! + publishedOnCurrentPublication: Boolean! @deprecated(reason: "Use `publishedOnPublication` instead.") """ Whether the resource is published to a specified @@ -9458,6 +10241,90 @@ type CollectionDeletePayload { userErrors: [UserError!]! } +"""The input fields for duplicating a collection.""" +input CollectionDuplicateInput { + """The ID of the collection to be duplicated.""" + collectionId: ID! + + """The new title of the collection.""" + newTitle: String! + + """ + Whether to duplicate the collection's publications (channel availability). + When `true` (default), the duplicated collection will be published to the same + channels as the original. When `false`, the duplicated collection will be + unpublished on all channels. + """ + copyPublications: Boolean = true +} + +""" +Represents an in-progress collection duplication operation. Collection +duplication is a synchronous operation for simple collections, and an +asynchronous operation for collections containing too many products to process synchronously. +""" +type CollectionDuplicateOperation { + """ + Whether the collection is the source that products are being duplicated from, + or the target collection that products are being duplicated onto. + """ + collectionRole: CollectionDuplicateOperationRole! + + """The background job performing the duplication.""" + job: Job! +} + +"""The role a collection plays in a duplication operation.""" +enum CollectionDuplicateOperationRole { + """Products are being duplicated from this collection.""" + SOURCE + + """Products are being duplicated onto this collection.""" + TARGET +} + +"""Return type for `collectionDuplicate` mutation.""" +type CollectionDuplicatePayload { + """ + The newly created duplicate collection. Will contain all data if duplication completed synchronously. + If async processing is required, the collection will be created but products will be added in the background + and can be tracked via the job field or the collection's active_operations field. + """ + collection: Collection + + """ + The background job copying manually included products onto the target + collection. Only returned if async processing is required, otherwise products + will be copied synchronously when the collection is created. + """ + job: Job + + """The list of errors that occurred from executing the mutation.""" + userErrors: [CollectionDuplicateUserError!]! +} + +"""Errors related to collection duplication.""" +type CollectionDuplicateUserError implements DisplayableError { + """The error code.""" + code: CollectionDuplicateUserErrorCode + + """The path to the input field that caused the error.""" + field: [String!] + + """The error message.""" + message: String! +} + +""" +Possible error codes that can be returned by `CollectionDuplicateUserError`. +""" +enum CollectionDuplicateUserErrorCode { + """ + The collection was not found. Please check the collection ID and try again. + """ + COLLECTION_NOT_FOUND +} + """ An auto-generated type which holds one Collection and a cursor during pagination. """ @@ -9533,7 +10400,43 @@ input CollectionInput { redirectNewHandle: Boolean = false } -"""Represents the publications where a collection is published.""" +"""Represents operations involving a collection.""" +type CollectionOperations { + """Collection duplicate operations.""" + duplicate: [CollectionDuplicateOperation!]! +} + +""" +Represents the publication status and settings for a collection across different +sales channels. This tracks where collections are published, when they were +published, and any channel-specific configuration. + +For example, a "Holiday Gifts" collection might be published to the online store +and Facebook Shop but not to the POS channel, with different publication dates +for each channel based on marketing strategy. + +Use `CollectionPublication` to: +- Track collection visibility across multiple sales channels +- Manage channel-specific collection settings and availability +- Monitor publication history and timing for collections +- Control where collections appear in customer-facing channels +- Implement channel-specific collection management workflows + +Each publication record includes the channel information, publication status, +and timing details. This enables merchants to control collection visibility +strategically across their sales channels. + +Collections can have different publication settings per channel, allowing for +targeted marketing and inventory management. For instance, wholesale collections +might only be published to B2B channels while retail collections appear in +consumer-facing channels. + +The publication system integrates with Shopify's broader channel management, +ensuring collections appear consistently across the merchant's sales ecosystem +while respecting channel-specific rules and permissions. + +Learn more about [sales channel management](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication). +""" type CollectionPublication { """The channel where the collection will be published.""" channel: Channel! @deprecated(reason: "Use `publication` instead.") @@ -9637,7 +10540,40 @@ type CollectionReorderProductsPayload { job: Job """The list of errors that occurred from executing the mutation.""" - userErrors: [UserError!]! + userErrors: [CollectionReorderProductsUserError!]! +} + +"""Errors related to order customer removal.""" +type CollectionReorderProductsUserError implements DisplayableError { + """The error code.""" + code: CollectionReorderProductsUserErrorCode + + """The path to the input field that caused the error.""" + field: [String!] + + """The error message.""" + message: String! +} + +""" +Possible error codes that can be returned by `CollectionReorderProductsUserError`. +""" +enum CollectionReorderProductsUserErrorCode { + """Products are currently being reordered. Please try again later.""" + TOO_MANY_ATTEMPTS_TO_REORDER_PRODUCTS + + """ + The collection was not found. Please check the collection ID and try again. + """ + COLLECTION_NOT_FOUND + + """ + The collection is not manually sorted. Can't reorder products unless collection is manually sorted. + """ + MANUALLY_SORTED_COLLECTION + + """The move is invalid.""" + INVALID_MOVE } """Represents at rule that's used to assign products to a collection.""" @@ -9670,22 +10606,22 @@ Specifies the attribute of a product being used to populate the smart collection """ enum CollectionRuleColumn { """ - The [`tag`](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-product-producttype) attribute. + The [`tag`](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-Product.fields.tags) attribute. """ TAG """ - The [`title`](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-product-title) attribute. + The [`title`](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-Product.fields.title) attribute. """ TITLE """ - The [`type`](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-product-producttype) attribute. + The [`type`](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-Product.fields.productType) attribute. """ TYPE """ - The [`product_taxonomy_node_id`](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-product-productcategory) attribute. + The [`product_taxonomy_node_id`](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-Product.fields.productCategory) attribute. """ PRODUCT_TAXONOMY_NODE_ID @@ -9705,12 +10641,12 @@ enum CollectionRuleColumn { PRODUCT_CATEGORY_ID_WITH_DESCENDANTS """ - The [`vendor`](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-product-vendor) attribute. + The [`vendor`](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-Product.fields.vendor) attribute. """ VENDOR """ - The [`variant_price`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-productvariant-price) attribute. + The [`variant_price`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-ProductVariant.fields.price) attribute. """ VARIANT_PRICE @@ -9722,22 +10658,22 @@ enum CollectionRuleColumn { IS_PRICE_REDUCED """ - The [`variant_compare_at_price`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-productvariant-compareatprice) attribute. + The [`variant_compare_at_price`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-ProductVariant.fields.compareAtPrice) attribute. """ VARIANT_COMPARE_AT_PRICE """ - The [`variant_weight`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-productvariant-weight) attribute. + The [`variant_weight`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-ProductVariant.fields.inventoryItem.measurement.weight) attribute. """ VARIANT_WEIGHT """ - The [`variant_inventory`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-productvariant-inventoryquantity) attribute. + The [`variant_inventory`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-ProductVariant.fields.inventoryQuantity) attribute. """ VARIANT_INVENTORY """ - The [`variant_title`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-productvariant-title) attribute. + The [`variant_title`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-ProductVariant.fields.title) attribute. """ VARIANT_TITLE @@ -9756,8 +10692,24 @@ enum CollectionRuleColumn { union CollectionRuleConditionObject = CollectionRuleCategoryCondition | CollectionRuleMetafieldCondition | CollectionRuleProductCategoryCondition | CollectionRuleTextCondition """ -This object defines all columns and allowed relations that can be used in rules -for smart collections to automatically include the matching products. +Defines the available columns and relationships that can be used when creating +rules for smart collections. This provides the schema for building automated +collection logic based on product attributes. + +For example, merchants can create rules like "product type equals 'Shirts'" or +"vendor contains 'Nike'" using the conditions defined in this object to +automatically populate collections. + +Use `CollectionRuleConditions` to: +- Discovering valid field options for smart collection rule interfaces +- Understanding which conditions are available for automated collections +- Exploring available product attributes for collection automation +- Learning about proper field relationships for rule implementation + +The conditions define which product fields can be used in smart collection rules +and what types of comparisons are allowed for each field. + +Learn more about [smart collections](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection). """ type CollectionRuleConditions { """Allowed relations of the rule.""" @@ -9967,6 +10919,93 @@ For example, "#6A8D48". """ scalar Color +"""The data type of a column.""" +enum ColumnDataType { + """Represents an unspecified data type.""" + UNSPECIFIED + + """Represents a monetary value.""" + MONEY + + """Represents a percentage value.""" + PERCENT + + """Represents an integer value.""" + INTEGER + + """Represents a floating point value.""" + FLOAT + + """Represents a decimal value.""" + DECIMAL + + """Represents a string value.""" + STRING + + """Represents a boolean value.""" + BOOLEAN + + """Represents a timestamp value in seconds.""" + TIMESTAMP + + """Represents a minute-level timestamp value.""" + MINUTE_TIMESTAMP + + """Represents a hour-level timestamp value.""" + HOUR_TIMESTAMP + + """Represents a day-level timestamp value.""" + DAY_TIMESTAMP + + """Represents a week-level timestamp value.""" + WEEK_TIMESTAMP + + """Represents a month-level timestamp value.""" + MONTH_TIMESTAMP + + """Represents a quarter-level timestamp value.""" + QUARTER_TIMESTAMP + + """Represents a year-level timestamp value.""" + YEAR_TIMESTAMP + + """Represents a day of week value.""" + DAY_OF_WEEK + + """Represents an hour of day value.""" + HOUR_OF_DAY + + """Represents an identity value.""" + IDENTITY + + """Represents a month of year value.""" + MONTH_OF_YEAR + + """Represents a week of year value.""" + WEEK_OF_YEAR + + """Represents a second-level timestamp value.""" + SECOND_TIMESTAMP + + """Represents an array of values.""" + ARRAY + + """Represents a duration in milliseconds.""" + MILLISECOND_DURATION + + """Represents a duration in seconds.""" + SECOND_DURATION + + """Represents a duration in minutes.""" + MINUTE_DURATION + + """Represents a duration in hours.""" + HOUR_DURATION + + """Represents a duration in days.""" + DAY_DURATION +} + """A combined listing of products.""" type CombinedListing { """A list of child products in the combined listing.""" @@ -10147,6 +11186,11 @@ enum CombinedListingUpdateUserErrorCode { """Unable to update options with no option values.""" OPTION_VALUES_CANNOT_BE_EMPTY + """ + The options_and_values field must contain all option values used in the combined listing. + """ + OPTION_VALUES_MUST_BE_COMPLETE + """Parent product cannot be a combined listing child.""" PARENT_PRODUCT_CANNOT_BE_COMBINED_LISTING_CHILD @@ -10155,6 +11199,11 @@ enum CombinedListingUpdateUserErrorCode { """ PARENT_PRODUCT_MUST_BE_A_COMBINED_LISTING + """ + The combined listing parent product must have a product category to use linked metafield options. + """ + PARENT_PRODUCT_MUST_HAVE_CATEGORY + """Parent product not found.""" PARENT_PRODUCT_NOT_FOUND @@ -10240,8 +11289,9 @@ type Comment implements HasEvents & Node { | comments | boolean | Whether or not to include [comment-events](https://shopify.dev/api/admin-graphql/latest/objects/CommentEvent) in your search, passing `false` will exclude comment-events, any other value will include comment-events. | | | - `false`
- `true` | - | created_at | time | Filter by the date and time when the event happened. | - | | - `created_at:>2020-10-21`
- `created_at:2025-10-21`
- + `created_at: - `id:>=1234`
- `id:<=1234` | | subject_type | string | The resource type affected by this event. See [EventSubjectType](https://shopify.dev/api/admin-graphql/latest/enums/EventSubjectType) for possible values. | | | - `PRODUCT_VARIANT`
- `PRODUCT`
- `COLLECTION` | @@ -10303,7 +11353,20 @@ enum CommentApproveUserErrorCode { NOT_FOUND } -"""The author of a comment.""" +""" +The author of a comment on a blog article, containing the commenter's name and +email address. This information helps merchants moderate comments and +potentially engage with their community. + +For example, when reviewing pending comments, merchants can see the commenter's +name and email to help with moderation decisions or to enable follow-up +communication if needed. + +Use the `CommentAuthor` object to: +- Display comment attribution +- Support comment moderation workflows +- Enable merchant-to-reader communication +""" type CommentAuthor { """The author's email.""" email: String! @@ -10374,8 +11437,17 @@ type CommentEdge { } """ -Comment events are generated by staff members of a shop. -They are created when a staff member adds a comment to the timeline of an order, draft order, customer, or transfer. +A comment that staff members add to the timeline of +[`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order), [`DraftOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrder), [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer), [`InventoryTransfer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryTransfer), +[`Company`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Company), [`CompanyLocation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CompanyLocation), or [`PriceRule`](https://shopify.dev/docs/api/admin-graphql/latest/objects/PriceRule) +objects. Staff use comments to document internal notes, communicate with team +members, and track important information about these types. + +The comment includes information like the [`StaffMember`](https://shopify.dev/docs/api/admin-graphql/latest/objects/StaffMember) +who authored it, when it was created, and whether it's editable or deletable. +Comments can have file attachments and reference related objects like +[`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) or [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) +objects through embeds. """ type CommentEvent implements Event & Node { """The action that occured.""" @@ -10459,7 +11531,7 @@ type CommentEventAttachment { } """The main embed of a comment event.""" -union CommentEventEmbed = Customer | DraftOrder | Order | Product | ProductVariant +union CommentEventEmbed = Customer | DraftOrder | InventoryTransfer | Order | Product | ProductVariant """The subject line of a comment event.""" interface CommentEventSubject { @@ -10579,7 +11651,11 @@ type CompaniesDeletePayload { } """ -Represents information about a company which is also a customer of the shop. +A business entity that purchases from the shop as part of B2B commerce. +Companies organize multiple locations and contacts who can place orders on +behalf of the organization. [`CompanyLocation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CompanyLocation) +objects can have custom pricing through [`Catalog`](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/Catalog) and [`PriceList`](https://shopify.dev/docs/api/admin-graphql/latest/objects/PriceList) +configurations. """ type Company implements CommentEventSubject & HasEvents & HasMetafieldDefinitions & HasMetafields & Navigable & Node { """The number of contacts that belong to the company.""" @@ -10777,8 +11853,9 @@ type Company implements CommentEventSubject & HasEvents & HasMetafieldDefinition | comments | boolean | Whether or not to include [comment-events](https://shopify.dev/api/admin-graphql/latest/objects/CommentEvent) in your search, passing `false` will exclude comment-events, any other value will include comment-events. | | | - `false`
- `true` | - | created_at | time | Filter by the date and time when the event happened. | - | | - `created_at:>2020-10-21`
- `created_at:2025-10-21`
- + `created_at: - `id:>=1234`
- `id:<=1234` | | subject_type | string | The resource type affected by this event. See [EventSubjectType](https://shopify.dev/api/admin-graphql/latest/enums/EventSubjectType) for possible values. | | | - `PRODUCT_VARIANT`
- `PRODUCT`
- `COLLECTION` | @@ -10842,6 +11919,11 @@ type Company implements CommentEventSubject & HasEvents & HasMetafieldDefinition | external_id | string | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | ids | string | + | metafields.{namespace}.{key} | mixed | Filters resources by metafield + value. Format: `metafields.{namespace}.{key}:{value}`. Learn more about + [querying by metafield value](https://shopify.dev/apps/build/custom-data/metafields/query-by-metafield-value). + | | | - `metafields.custom.on_sale:true`
- + `metafields.product.material:"gid://shopify/Metaobject/43458085"` | | name | string | | updated_at | time | You can apply one or more filters to a query. Learn more about [Shopify API @@ -10935,7 +12017,7 @@ type Company implements CommentEventSubject & HasEvents & HasMetafieldDefinition """ query: String - ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use the root `metafieldDefinitions` field instead.") + ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use `Query.metafieldDefinitions` instead.") """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) @@ -10943,7 +12025,7 @@ type Company implements CommentEventSubject & HasEvents & HasMetafieldDefinition """ metafields( """ - The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. + The metafield namespace to filter by. If omitted, all metafields are returned. """ namespace: String @@ -11215,8 +12297,15 @@ type CompanyConnection { } """ -A person that acts on behalf of company associated to [a -customer](https://shopify.dev/api/admin-graphql/latest/objects/customer). +A person who acts on behalf of a +[`Company`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Company) +to make B2B purchases. Company contacts are associated with +[`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer) +accounts and can place orders on behalf of their company. + +Each contact can be assigned to one or more [`CompanyLocation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CompanyLocation) +objects with specific roles that determine their permissions and access to +catalogs, pricing, and payment terms configured for those locations. """ type CompanyContact implements Node { """The company to which the contact belongs.""" @@ -11801,12 +12890,21 @@ input CompanyInput { } """ -A location or branch of a [company that's a -customer](https://shopify.dev/api/admin-graphql/latest/objects/company) of the -shop. Configuration of B2B relationship, for example prices lists and checkout -settings, may be done for a location. +A location or branch of a +[`Company`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Company) +that's a customer of the shop. Company locations enable B2B customers to manage +multiple branches with distinct billing and shipping addresses, tax settings, +and checkout configurations. + +Each location can have its own [`Catalog`](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/Catalog) +objects that determine which products are published and their pricing. The [`BuyerExperienceConfiguration`](https://shopify.dev/docs/api/admin-graphql/latest/objects/BuyerExperienceConfiguration) +determines checkout behavior including [`PaymentTerms`](https://shopify.dev/docs/api/admin-graphql/latest/objects/PaymentTerms), +and whether orders require merchant review. B2B customers select which location +they're purchasing for, which determines the applicable catalogs, pricing, [`TaxExemption`](https://shopify.dev/docs/api/admin-graphql/latest/enums/TaxExemption) +values, and checkout settings for their +[`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) objects. """ -type CompanyLocation implements CommentEventSubject & HasEvents & HasMetafieldDefinitions & HasMetafields & Navigable & Node { +type CompanyLocation implements CommentEventSubject & HasEvents & HasMetafieldDefinitions & HasMetafields & HasStoreCreditAccounts & Navigable & Node { """The address used as billing address for the location.""" billingAddress: CompanyAddress @@ -11840,9 +12938,14 @@ type CompanyLocation implements CommentEventSubject & HasEvents & HasMetafieldDe ): CatalogConnection! """ - The number of catalogs associated with the company location. Limited to a maximum of 10000. + The number of catalogs associated with the company location. Limited to a maximum of 10000 by default. """ - catalogsCount: Count + catalogsCount( + """ + The upper bound on count value before returning a result. Use `null` to have no limit. + """ + limit: Int = 10000 + ): Count """The company that the company location belongs to.""" company: Company! @@ -11955,8 +13058,9 @@ type CompanyLocation implements CommentEventSubject & HasEvents & HasMetafieldDe | comments | boolean | Whether or not to include [comment-events](https://shopify.dev/api/admin-graphql/latest/objects/CommentEvent) in your search, passing `false` will exclude comment-events, any other value will include comment-events. | | | - `false`
- `true` | - | created_at | time | Filter by the date and time when the event happened. | - | | - `created_at:>2020-10-21`
- `created_at:2025-10-21`
- + `created_at: - `id:>=1234`
- `id:<=1234` | | subject_type | string | The resource type affected by this event. See [EventSubjectType](https://shopify.dev/api/admin-graphql/latest/enums/EventSubjectType) for possible values. | | | - `PRODUCT_VARIANT`
- `PRODUCT`
- `COLLECTION` | @@ -12069,7 +13173,7 @@ type CompanyLocation implements CommentEventSubject & HasEvents & HasMetafieldDe """ query: String - ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use the root `metafieldDefinitions` field instead.") + ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use `Query.metafieldDefinitions` instead.") """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) @@ -12077,7 +13181,7 @@ type CompanyLocation implements CommentEventSubject & HasEvents & HasMetafieldDe """ metafields( """ - The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. + The metafield namespace to filter by. If omitted, all metafields are returned. """ namespace: String @@ -12254,6 +13358,44 @@ type CompanyLocation implements CommentEventSubject & HasEvents & HasMetafieldDe query: String ): CompanyLocationStaffMemberAssignmentConnection! + """ + Returns a list of store credit accounts that belong to the owner resource. + A store credit account owner can hold multiple accounts each with a different currency. + """ + storeCreditAccounts( + """ + The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + first: Int + + """ + The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + after: String + + """ + The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + last: Int + + """ + The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + before: String + + """ + A filter made up of terms, connectives, modifiers, and comparators. + | name | type | description | acceptable_values | default_value | example_use | + | ---- | ---- | ---- | ---- | ---- | ---- | + | currency_code | string | + | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | + You can apply one or more filters to a query. Learn more about [Shopify API + search syntax](https://shopify.dev/api/usage/search-syntax). + + """ + query: String + ): StoreCreditAccountConnection! + """The list of tax exemptions applied to the location.""" taxExemptions: [TaxExemption!]! @deprecated(reason: "Use `taxSettings` instead.") @@ -12313,6 +13455,10 @@ type CompanyLocationAssignTaxExemptionsPayload { """ A list of products with publishing and pricing information associated with company locations. + +Company location catalogs can include an optional publication to control product +visibility and a price list to customize pricing. When a publication isn't +associated with the catalog, product availability is determined by the sales channel. """ type CompanyLocationCatalog implements Catalog & Node { """The company locations associated with the catalog.""" @@ -12354,6 +13500,11 @@ type CompanyLocationCatalog implements Catalog & Node { | external_id | string | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | ids | string | + | metafields.{namespace}.{key} | mixed | Filters resources by metafield + value. Format: `metafields.{namespace}.{key}:{value}`. Learn more about + [querying by metafield value](https://shopify.dev/apps/build/custom-data/metafields/query-by-metafield-value). + | | | - `metafields.custom.on_sale:true`
- + `metafields.product.material:"gid://shopify/Metaobject/43458085"` | | name | string | | updated_at | time | You can apply one or more filters to a query. Learn more about [Shopify API @@ -12777,6 +13928,41 @@ type CompanyUpdatePayload { userErrors: [BusinessCustomerUserError!]! } +""" +An option on the bundle parent product that is consolidated from multiple different components. +""" +type ComponentizedProductsBundleConsolidatedOption { + """The name of the consolidated option.""" + name: String! + + """The selections of the consolidated option.""" + selections: [ComponentizedProductsBundleConsolidatedOptionSelection!]! +} + +"""An option selection for a bundle consolidated option.""" +type ComponentizedProductsBundleConsolidatedOptionSelection { + """ + The component values that are included in the consolidated option selection. + """ + components: [ComponentizedProductsBundleConsolidatedOptionSelectionComponent!]! + + """The value of the consolidated option on the bundle parent.""" + value: String! +} + +"""A component that's included in a bundle consolidated option selection.""" +type ComponentizedProductsBundleConsolidatedOptionSelectionComponent { + """ + The ID of the component's option that's included in this consolidated option selection. + """ + optionId: ID! + + """ + The value of the component's option value that's included in this consolidated option selection. + """ + value: String! +} + """ A consent policy describes the level of consent that the merchant requires from the user before actually collecting and processing the data. @@ -12916,7 +14102,9 @@ type CookieBanner implements HasPublishedTranslations { ): [Translation!]! } -"""Details for count of elements.""" +""" +A numeric count with precision information indicating whether the count is exact or an estimate. +""" type Count { """The count of elements.""" count: Int! @@ -13748,9 +14936,10 @@ input CountryHarmonizedSystemCodeInput { harmonizedSystemCode: String! """ - The ISO 3166-1 alpha-2 country code for the country that issued the specified harmonized system code. + The ISO 3166-1 alpha-2 country code for the country that issued the specified + harmonized system code. Represents global harmonized system code when set to null. """ - countryCode: CountryCode! + countryCode: CountryCode } """The input fields required to create a media object.""" @@ -13786,9 +14975,9 @@ enum CropRegion { } """ -The three-letter currency codes that represent the world currencies used in -stores. These include standard ISO 4217 codes, legacy codes, -and non-standard codes. +The currency codes that represent the world currencies throughout the Admin API. Currency codes include +[standard ISO 4217 codes](https://en.wikipedia.org/wiki/ISO_4217), legacy codes, non-standard codes, +digital currency codes. """ enum CurrencyCode { """United States Dollars (USD).""" @@ -14256,11 +15445,14 @@ enum CurrencyCode { """Zambian Kwacha (ZMW).""" ZMW + """United States Dollars Coin (USDC).""" + USDC + """Belarusian Ruble (BYR).""" - BYR @deprecated(reason: "`BYR` is deprecated. Use `BYN` available from version `2021-01` onwards instead.") + BYR @deprecated(reason: "Use `BYN` instead.") """Sao Tome And Principe Dobra (STD).""" - STD @deprecated(reason: "`STD` is deprecated. Use `STN` available from version `2022-07` onwards instead.") + STD @deprecated(reason: "Use `STN` instead.") """Sao Tome And Principe Dobra (STN).""" STN @@ -14269,12 +15461,33 @@ enum CurrencyCode { VED """Venezuelan Bolivares (VEF).""" - VEF @deprecated(reason: "`VEF` is deprecated. Use `VES` available from version `2020-10` onwards instead.") + VEF @deprecated(reason: "Use `VES` instead.") """Unrecognized currency.""" XXX } +""" +Represents a currency exchange adjustment applied to an order transaction. +""" +type CurrencyExchangeAdjustment implements Node { + """The adjustment amount in both shop and presentment currencies.""" + adjustment: MoneyV2! + + """ + The final amount in both shop and presentment currencies after the adjustment. + """ + finalAmountSet: MoneyV2! + + """A globally-unique ID.""" + id: ID! + + """ + The original amount in both shop and presentment currencies before the adjustment. + """ + originalAmountSet: MoneyV2! +} + """ Currency formats configured for the merchant. These formats are available to use within Liquid. """ @@ -14306,6 +15519,12 @@ type CurrencySetting { """ enabled: Boolean! + """ + The manual rate, if enabled, that applies to this currency when converting + from shop currency. This rate is specific to the associated market's currency setting. + """ + manualRate: Decimal + """ The date and time when the active exchange rate for the currency was last modified. It can be the automatic rate's creation date, or the manual rate's @@ -14352,20 +15571,27 @@ type CurrencySettingEdge { } """ -Represents information about a customer of the shop, such as the customer's contact details, their order -history, and whether they've agreed to receive marketing material by email. +Information about a customer of the shop, such as the customer's contact +details, purchase history, and marketing preferences. -**Caution:** Only use this data if it's required for your app's functionality. -Shopify will restrict [access to -scopes](https://shopify.dev/api/usage/access-scopes) for apps that don't have a -legitimate use for the associated data. +Tracks the customer's total spending through the [`amountSpent`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer#field-amountSpent) +field and provides access to associated data such as payment methods and +subscription contracts. + +> Caution: +> Only use this data if it's required for your app's functionality. Shopify will +restrict [access to scopes](https://shopify.dev/api/usage/access-scopes) for +apps that don't have a legitimate use for the associated data. """ type Customer implements CommentEventSubject & HasEvents & HasMetafieldDefinitions & HasMetafields & HasStoreCreditAccounts & LegacyInteroperability & Node { - """A list of addresses associated with the customer.""" + """ + A list of addresses associated with the customer. Limited to 250 addresses. + Use `addressesV2` for paginated access to all addresses. + """ addresses( """Truncate the array result to this size.""" first: Int - ): [MailingAddress!]! + ): [MailingAddress!]! @deprecated(reason: "Limited to 250 addresses. Use `addressesV2` for paginated access to all addresses.") """The addresses associated with the customer.""" addressesV2( @@ -14479,8 +15705,9 @@ type Customer implements CommentEventSubject & HasEvents & HasMetafieldDefinitio | comments | boolean | Whether or not to include [comment-events](https://shopify.dev/api/admin-graphql/latest/objects/CommentEvent) in your search, passing `false` will exclude comment-events, any other value will include comment-events. | | | - `false`
- `true` | - | created_at | time | Filter by the date and time when the event happened. | - | | - `created_at:>2020-10-21`
- `created_at:2025-10-21`
- + `created_at: - `id:>=1234`
- `id:<=1234` | | subject_type | string | The resource type affected by this event. See [EventSubjectType](https://shopify.dev/api/admin-graphql/latest/enums/EventSubjectType) for possible values. | | | - `PRODUCT_VARIANT`
- `PRODUCT`
- `COLLECTION` | @@ -14497,7 +15724,7 @@ type Customer implements CommentEventSubject & HasEvents & HasMetafieldDefinitio """ Whether the merchant has added timeline comments about the customer on the customer's page. """ - hasTimelineComment: Boolean! @deprecated(reason: "To query for comments on the timeline, use the events connection and a `query` argument containing `verb:comment`, or look for a `CommentEvent` in the `__typename` of events.") + hasTimelineComment: Boolean! @deprecated(reason: "To query for comments on the timeline, use the `events` connection and a 'query' argument containing `verb:comment`, or look for a 'CommentEvent' in the `__typename` of `events`.") """A globally-unique ID.""" id: ID! @@ -14608,7 +15835,7 @@ type Customer implements CommentEventSubject & HasEvents & HasMetafieldDefinitio """ query: String - ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use the root `metafieldDefinitions` field instead.") + ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use `Query.metafieldDefinitions` instead.") """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) @@ -14616,7 +15843,7 @@ type Customer implements CommentEventSubject & HasEvents & HasMetafieldDefinitio """ metafields( """ - The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. + The metafield namespace to filter by. If omitted, all metafields are returned. """ namespace: String @@ -14701,10 +15928,10 @@ type Customer implements CommentEventSubject & HasEvents & HasMetafieldDefinitio abandoned cart conversions or troubleshoot checkout issues. The token references the cart that's associated with an order. | | | - `cart_token:abc123` | - | channel | string | Filter by the channel information [`handle`](https://shopify.dev/api/admin-graphql/latest/objects/ChannelInformation#field-channeldefinition) + | channel | string | Filter by the channel information [`handle`](https://shopify.dev/api/admin-graphql/latest/objects/ChannelInformation#field-ChannelInformation.fields.channelDefinition.handle) (`ChannelInformation.channelDefinition.handle`) field. | | | - `channel:web`
- `channel:web,pos` | - | channel_id | id | Filter by the channel [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Channel#field-id) + | channel_id | id | Filter by the channel [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Channel#field-Channel.fields.id) field. | | | - `channel_id:123` | | chargeback_status | string | Filter by the order's chargeback status. A chargeback occurs when a customer questions the legitimacy of a charge with @@ -14726,18 +15953,23 @@ type Customer implements CommentEventSubject & HasEvents & HasMetafieldDefinitio card that was used to pay for the order. This filter matches only the last four digits of the card for heightened security. | | | - `credit_card_last4:1234` | - | customer_id | id | Filter orders by the customer [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Customer#field-id) + | current_total_price | float | Filter by the current total price of the + order in the shop currency, including any returns/refunds/removals. This + filter supports both exact values and ranges. | | | - + `current_total_price:10`
- `current_total_price:>=5.00 + current_total_price:<=20.99` | + | customer_id | id | Filter orders by the customer [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Customer#field-Customer.fields.id) field. | | | - `customer_id:123` | - | delivery_method | string | Filter by the delivery [`methodType`](https://shopify.dev/api/admin-graphql/2024-07/objects/DeliveryMethod#field-methodtype) + | delivery_method | string | Filter by the delivery [`methodType`](https://shopify.dev/api/admin-graphql/2024-07/objects/DeliveryMethod#field-DeliveryMethod.fields.methodType) field. | - `shipping`
- `pick-up`
- `retail`
- `local`
- `pickup-point`
- `none` | | - `delivery_method:shipping` | | discount_code | string | Filter by the case-insensitive discount code that - was applied to the order at checkout. Maximum characters: 255. | | | - - `discount_code:ABC123` | + was applied to the order at checkout. Limited to the first discount code + used on an order. Maximum characters: 255. | | | - `discount_code:ABC123` | | email | string | Filter by the email address that's associated with the order to provide customer support or analyze purchasing patterns. | | | - `email:example@shopify.com` | - | financial_status | string | Filter by the order [`displayFinancialStatus`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-displayfinancialstatus) + | financial_status | string | Filter by the order [`displayFinancialStatus`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-Order.fields.displayFinancialStatus) field. | - `paid`
- `pending`
- `authorized`
- `partially_paid`
- `partially_refunded`
- `refunded`
- `voided`
- `expired` | | - `financial_status:authorized` | @@ -14746,23 +15978,28 @@ type Customer implements CommentEventSubject & HasEvents & HasMetafieldDefinitio disputes. | - `fully_protected`
- `partially_protected`
- `not_protected`
- `pending`
- `not_eligible`
- `not_available` | | - `fraud_protection_level:fully_protected` | - | fulfillment_location_id | id | Filter by the fulfillment location [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Fulfillment#field-location) + | fulfillment_location_id | id | Filter by the fulfillment location [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Fulfillment#field-Fulfillment.fields.location.id) (`Fulfillment.location.id`) field. | | | - `fulfillment_location_id:123` | - | fulfillment_status | string | Filter by the [`displayFulfillmentStatus`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-displayfulfillmentstatus) + | fulfillment_status | string | Filter by the [`displayFulfillmentStatus`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-Order.fields.displayFulfillmentStatus) field to prioritize shipments or monitor order processing. | - `unshipped`
- `shipped`
- `fulfilled`
- `partial`
- `scheduled`
- `on_hold`
- `unfulfilled`
- `request_declined` | | - `fulfillment_status:fulfilled` | - | gateway | string | Filter by the [`paymentGatewayNames`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-paymentgatewaynames) + | gateway | string | Filter by the [`paymentGatewayNames`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-Order.fields.paymentGatewayNames) field. Use this filter to find orders that were processed through specific payment providers like Shopify Payments, PayPal, or other custom payment gateways. | | | - `gateway:shopify_payments` | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | - | location_id | id | Filter by the location [`id`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location#field-id) + | location_id | id | Filter by the location [`id`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location#field-Location.fields.id) that's associated with the order to view and manage orders for specific locations. For POS orders, locations must be defined in the Shopify admin under **Settings** > **Locations**. If no ID is provided, then the primary location of the shop is returned. | | | - `location_id:123` | + | metafields.{namespace}.{key} | mixed | Filters resources by metafield + value. Format: `metafields.{namespace}.{key}:{value}`. Learn more about + [querying by metafield value](https://shopify.dev/apps/build/custom-data/metafields/query-by-metafield-value). + | | | - `metafields.custom.on_sale:true`
- + `metafields.product.material:"gid://shopify/Metaobject/43458085"` | | name | string | Filter by the order [`name`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-name) field. | | | - `name:1001-A` | | payment_id | string | Filter by the payment ID that's associated with the @@ -14771,26 +16008,26 @@ type Customer implements CommentEventSubject & HasEvents & HasMetafieldDefinitio | payment_provider_id | id | Filter by the ID of the payment provider that's associated with the order to manage payment methods or troubleshoot transactions. | | | - `payment_provider_id:123` | - | po_number | string | Filter by the order [`poNumber`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-ponumber) + | po_number | string | Filter by the order [`poNumber`](https://shopify.dev/api/admin-graphql/latest/objects/order#field-Order.fields.poNumber) field. | | | - `po_number:P01001` | - | processed_at | time | Filter by the order [`processedAt`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-processedat) + | processed_at | time | Filter by the order [`processedAt`](https://shopify.dev/api/admin-graphql/latest/objects/order#field-Order.fields.processedAt) field. | | | - `processed_at:2021-01-01T00:00:00Z` | | reference_location_id | id | Filter by the ID of a location that's associated with the order, such as locations from fulfillments, refunds, or the shop's primary location. | | | - `reference_location_id:123` | - | return_status | string | Filter by the return status to monitor returns - processing and track which orders have active returns. | - - `return_requested`
- `in_progress`
- `inspection_complete`
- - `returned`
- `return_failed`
- `no_return` | | - + | return_status | string | Filter by the order's [`returnStatus`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-Order.fields.returnStatus) + to monitor returns processing and track which orders have active returns. | + - `return_requested`
- `in_progress`
- `inspection_complete`
+ - `returned`
- `return_failed`
- `no_return` | | - `return_status:in_progress` | - | risk_level | string | Filter by the order risk assessment [`riskLevel`](https://shopify.dev/api/admin-graphql/latest/objects/OrderRiskAssessment#field-risklevel) + | risk_level | string | Filter by the order risk assessment [`riskLevel`](https://shopify.dev/api/admin-graphql/latest/objects/OrderRiskAssessment#field-OrderRiskAssessment.fields.riskLevel) field. | - `high`
- `medium`
- `low`
- `none`
- `pending` | | - `risk_level:high` | | sales_channel | string | Filter by the [sales channel](https://shopify.dev/docs/apps/build/sales-channels) where the order was made to analyze performance or manage fulfillment processes. | | | - `sales_channel: some_sales_channel` | - | sku | string | Filter by the product variant [`sku`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-sku) + | sku | string | Filter by the product variant [`sku`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-ProductVariant.fields.sku) field. [Learn more about SKUs](https://help.shopify.com/manual/products/details/sku). | | | - `sku:ABC123` | | source_identifier | string | Filter by the ID of the order placed on the @@ -14812,9 +16049,14 @@ type Customer implements CommentEventSubject & HasEvents & HasMetafieldDefinitio `subtotal_line_items_quantity:5..20` | | tag | string | Filter objects by the `tag` field. | | | - `tag:my_tag` | | tag_not | string | Filter by objects that don’t have the specified tag. | | | - `tag_not:my_tag` | - | test | boolean | Filter by test orders. Test orders are made using the [Shopify Bogus - Gateway](https://help.shopify.com/manual/checkout-settings/test-orders) or a - payment provider with test mode enabled. | | | - `test:true` | + | test | boolean | Filter by test orders. Test orders are made using the [Shopify Bogus Gateway](https://help.shopify.com/manual/checkout-settings/test-orders/payments-test-mode#bogus-gateway) + or a payment provider with test mode enabled. | | | - `test:true` | + | total_weight | string | Filter by the order weight. This filter supports + both exact values and ranges, and is to be used to filter orders by the + total weight of all items (excluding packaging). It takes a unit of + measurement as a suffix. It accepts the following units: g, kg, lb, oz. | | + | - `total_weight:10.5kg`
- `total_weight:>=5g total_weight:<=20g`
+ - `total_weight:.5 lb` | | updated_at | time | Filter by the date and time when the order was last updated in Shopify's system. | | | - `updated_at:2020-10-21T23:39:20Z`
- `updated_at: - `updated_at:<=2024` | @@ -15090,7 +16332,12 @@ type CustomerAccountPageEdge { node: CustomerAccountPage! } -"""Information about the shop's customer accounts.""" +""" +Information about the shop's customer account-related settings. Includes the +[customer account version](https://shopify.dev/docs/api/admin-graphql/latest/objects/CustomerAccountsV2#field-CustomerAccountsV2.fields.customerAccountsVersion) +which indicates whether the merchant is using new customer accounts or legacy +customer accounts, along with other account configuration such as login requirements. +""" type CustomerAccountsV2 { """ Indicates which version of customer accounts the merchant is using in online store and checkout. @@ -15166,6 +16413,9 @@ enum CustomerCancelDataErasureErrorCode { """Customer's data is not scheduled for erasure.""" NOT_BEING_ERASED + + """Only the original requester can cancel this data erasure.""" + UNAUTHORIZED_CANCELLATION } """Return type for `customerCancelDataErasure` mutation.""" @@ -15341,7 +16591,15 @@ type CustomerEdge { node: Customer! } -"""Represents an email address.""" +""" +A customer's email address with marketing consent. This includes the email +address, marketing subscription status, and opt-in level according to [M3AAWG best practices guidelines](https://www.m3aawg.org/news/updated-m3aawg-best-practices-for-senders-urge-opt-in-only-mailings-address-sender-transparency). + +It also provides the timestamp of when customers last updated marketing consent +and URLs for unsubscribing from marketing emails or opting in or out of email +open tracking. The [`sourceLocation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CustomerEmailAddress#field-CustomerEmailAddress.fields.sourceLocation) +field indicates where the customer consented to receive marketing material. +""" type CustomerEmailAddress { """The customer's default email address.""" emailAddress: String! @@ -15436,8 +16694,8 @@ input CustomerEmailMarketingConsentInput { marketingOptInLevel: CustomerMarketingOptInLevel """ - The current marketing state associated with the customer's email. - If the customer doesn't have an email, then this field is `null`. + The marketing state to set. Accepted values: SUBSCRIBED, UNSUBSCRIBED, and + PENDING. NOT_SUBSCRIBED, REDACTED, and INVALID are rejected if sent as input. """ marketingState: CustomerEmailMarketingState! @@ -15538,7 +16796,11 @@ enum CustomerEmailMarketingConsentUpdateUserErrorCode { """The possible email marketing states for a customer.""" enum CustomerEmailMarketingState { - """The customer isn't subscribed to email marketing.""" + """ + Default state for customers who have never subscribed to email marketing. + This value cannot be set via the mutation; use UNSUBSCRIBED instead to indicate + a customer has opted out. + """ NOT_SUBSCRIBED """The customer is in the process of subscribing to email marketing.""" @@ -15557,7 +16819,7 @@ enum CustomerEmailMarketingState { """ REDACTED - """The customer’s email address marketing state is invalid.""" + """This value is internally-set and read-only.""" INVALID } @@ -15591,9 +16853,6 @@ input CustomerIdentifierInput { The input fields and values to use when creating or updating a customer. """ input CustomerInput { - """The addresses for a customer.""" - addresses: [MailingAddressInput!] - """The unique email address of the customer.""" email: String @@ -15648,9 +16907,20 @@ input CustomerInput { """The list of tax exemptions to apply to the customer.""" taxExemptions: [TaxExemption!] + + """A unique identifier for the customer that's used with Multipass login.""" + multipassIdentifier: String } -"""Represents a customer's visiting activities on a shop's online store.""" +""" +Tracks a customer's path to purchase through their online store visits. The +journey captures key moments like shop sessions that led to the order, helping +merchants understand customer behavior and marketing attribution within a 30-day +window. Includes the first and last sessions before an +[`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order), the +time between initial visit and conversion, and the customer's order position in +their purchase history. +""" type CustomerJourney { """The position of the current order within the customer's order history.""" customerOrderIndex: Int! @@ -15672,7 +16942,17 @@ type CustomerJourney { moments: [CustomerMoment!]! } -"""Represents a customer's visiting activities on a shop's online store.""" +""" +A [`CustomerJourney`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CustomerJourney) through the online store leading up to an +[`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order). +Tracks session data, attribution sources, and the timeline from first visit to +purchase conversion. + +The summary includes the customer's position in their order history, days +between first visit and order creation, and details about their first and last +sessions. Use the [`moments`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CustomerJourneySummary#field-moments) +connection to access the complete timeline of customer interactions before the purchase. +""" type CustomerJourneySummary { """ The position of the current order within the customer's order history. Test orders aren't included. @@ -15821,6 +17101,9 @@ enum CustomerMergeErrorFieldType { """The customer has gift cards.""" GIFT_CARDS + """The override fields are invalid.""" + OVERRIDE_FIELDS + """The customer has store credit.""" STORE_CREDIT @@ -16218,7 +17501,7 @@ type CustomerMomentEdge { } """All possible instruments for CustomerPaymentMethods.""" -union CustomerPaymentInstrument = CustomerCreditCard | CustomerPaypalBillingAgreement | CustomerShopPayAgreement +union CustomerPaymentInstrument = BankAccount | CustomerCreditCard | CustomerPaypalBillingAgreement | CustomerShopPayAgreement """The billing address of a payment instrument.""" type CustomerPaymentInstrumentBillingAddress { @@ -16255,7 +17538,11 @@ type CustomerPaymentInstrumentBillingAddress { zip: String } -"""A customer's payment method.""" +""" +A customer's saved payment method. Stores the payment instrument details and billing information for recurring charges. + +The payment method supports types included in the [`CustomerPaymentInstrument`](https://shopify.dev/docs/api/admin-graphql/latest/unions/CustomerPaymentInstrument) union. +""" type CustomerPaymentMethod implements Node { """The customer to whom the payment method belongs.""" customer: Customer @@ -16266,14 +17553,40 @@ type CustomerPaymentMethod implements Node { """The instrument for this payment method.""" instrument: CustomerPaymentInstrument - """The time that the payment method was revoked.""" - revokedAt: DateTime - - """The revocation reason for this payment method.""" - revokedReason: CustomerPaymentMethodRevocationReason - - """List Subscription Contracts.""" - subscriptionContracts( + """The mandates associated with the payment method.""" + mandates( + """ + The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + first: Int + + """ + The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + after: String + + """ + The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + last: Int + + """ + The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + before: String + + """Reverse the order of the underlying list.""" + reverse: Boolean = false + ): PaymentMandateResourceConnection! + + """The time that the payment method was revoked.""" + revokedAt: DateTime + + """The revocation reason for this payment method.""" + revokedReason: CustomerPaymentMethodRevocationReason + + """List Subscription Contracts.""" + subscriptionContracts( """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ @@ -16539,7 +17852,11 @@ input CustomerPaymentMethodRemoteInput { braintreePaymentMethod: RemoteBraintreePaymentMethodInput } -"""Represents an error in the input of a mutation.""" +""" +An error in the input of a mutation. Mutations return `UserError` objects to +indicate validation failures, such as invalid field values or business logic +violations, that prevent the operation from completing. +""" type CustomerPaymentMethodRemoteUserError implements DisplayableError { """The error code.""" code: CustomerPaymentMethodRemoteUserErrorCode @@ -16668,7 +17985,11 @@ type CustomerPaymentMethodSendUpdateEmailPayload { userErrors: [UserError!]! } -"""Represents an error in the input of a mutation.""" +""" +An error in the input of a mutation. Mutations return `UserError` objects to +indicate validation failures, such as invalid field values or business logic +violations, that prevent the operation from completing. +""" type CustomerPaymentMethodUserError implements DisplayableError { """The error code.""" code: CustomerPaymentMethodUserErrorCode @@ -16957,7 +18278,7 @@ type CustomerSegmentMember implements HasMetafields { """ metafields( """ - The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. + The metafield namespace to filter by. If omitted, all metafields are returned. """ namespace: String @@ -17484,8 +18805,15 @@ type CustomerUpdatePayload { } """ -Represents a customer's session visiting a shop's online store, including -information about the marketing activity attributed to starting the session. +A customer's session on the online store. Tracks how the +[`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer) +arrived at the store, including the landing page, referral source, and any +associated marketing campaigns. + +The visit captures attribution data such as [`UTMParameters`](https://shopify.dev/docs/api/admin-graphql/latest/objects/UTMParameters), +referral codes, and the [`MarketingEvent`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MarketingEvent) +that drove the session. This information helps merchants understand which +marketing efforts successfully bring customers to their store. """ type CustomerVisit implements CustomerMoment & Node { """A globally-unique ID.""" @@ -17998,7 +19326,16 @@ requests from Shopify. "variant_id": 258644705304 }], "currency": "USD", - "locale": "en" + "locale": "en", + "order_totals": { + "subtotal_price": "1999", + "total_price": "2199", + "discount_amount": "150" + }, + "customer": { + "id": 207119551, + "tags": ["VIP", "wholesale"] + } } } ``` @@ -18030,7 +19367,15 @@ requests from Shopify. "total_price": "3587", "currency": "USD", "min_delivery_date": "2013-04-12 14:48:45 -0400", - "max_delivery_date": "2013-04-12 14:48:45 -0400" + "max_delivery_date": "2013-04-12 14:48:45 -0400", + "metafields": [ + { + "key": "tracking_url", + "value": "abc123", + "namespace": "carrier_service_metadata", + "type": "single_line_text_field" + } + ] } ] } @@ -18066,9 +19411,9 @@ at checkout. For example: `Expedited Mail`. | `description` | Yes | A description of the rate, which customers see at checkout. For example: `Includes tracking and insurance`. | -| `service_code` | Yes | A unique code associated with the rate. -For example: `expedited_mail`. - | +| `service_code` | Yes | A unique code associated with the rate +that must be consistent across requests. For example: `expedited_mail`. + | | `currency` | Yes | The currency of the shipping rate. | @@ -18084,6 +19429,9 @@ displayed rate. | `max_delivery_date` | No | The latest delivery date for the displayed rate to still be valid. | +| `metafields` | No | An array of metafield objects to attach +custom metadata to the shipping rate. + | ### Special conditions @@ -18095,6 +19443,10 @@ A good choice is the regular 404 Not Found code. original callback URL. Attempting to redirect to a different domain will trigger backup rates. * There is no retry mechanism. The response must be successful on the first try, within the time budget listed below. Timeouts or errors will trigger backup rates. +* The `service_code` must be stable and consistent across requests for the same +shipping option. It should not contain dynamic values like session IDs, +timestamps, or request-specific identifiers. Use metafields for passing dynamic +or session-specific data. ## Response Timeouts @@ -18170,7 +19522,16 @@ type DeliveryCarrierService implements Node { supportsServiceDiscovery: Boolean! } -"""A carrier service and the associated list of shop locations.""" +""" +Links a [`DeliveryCarrierService`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DeliveryCarrierService) with the associated shop +[locations](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location) +where it can calculate shipping rates. Each pairing indicates the locations that +can use a specific carrier service for real-time rate calculations during checkout. + +The carrier service provides the shipping rate calculation logic, while the +locations represent physical or virtual fulfillment points that can ship orders +using that service. +""" type DeliveryCarrierServiceAndLocations { """The carrier service.""" carrierService: DeliveryCarrierService! @@ -18474,7 +19835,7 @@ type DeliveryCustomization implements HasMetafieldDefinitions & HasMetafields & """ query: String - ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use the root `metafieldDefinitions` field instead.") + ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use `Query.metafieldDefinitions` instead.") """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) @@ -18482,7 +19843,7 @@ type DeliveryCustomization implements HasMetafieldDefinitions & HasMetafields & """ metafields( """ - The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. + The metafield namespace to filter by. If omitted, all metafields are returned. """ namespace: String @@ -18645,12 +20006,20 @@ enum DeliveryCustomizationErrorCode { """Could not create or update metafields.""" INVALID_METAFIELDS + + """Either function_id or function_handle must be provided.""" + MISSING_FUNCTION_IDENTIFIER + + """Only one of function_id or function_handle can be provided, not both.""" + MULTIPLE_FUNCTION_IDENTIFIERS } """The input fields to create and update a delivery customization.""" input DeliveryCustomizationInput { - """The ID of the function providing the delivery customization.""" - functionId: String + """ + Function handle scoped to your current app ID. Only finds functions within your app. + """ + functionHandle: String """The title of the delivery customization.""" title: String @@ -18961,7 +20330,16 @@ enum DeliveryLocationLocalPickupSettingsErrorCode { GENERIC_ERROR } -"""The delivery method used by a fulfillment order.""" +""" +Information about the delivery method selected for a [`FulfillmentOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder). +Includes the method type, expected delivery timeframe, and any additional +information needed for delivery. + +The delivery method stores details from checkout such as the carrier, branded +promises like Shop Promise, and the delivery option name shown to the buyer. +Additional information like delivery instructions or contact phone numbers helps fulfill +the [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) correctly. +""" type DeliveryMethod implements Node { """The Additional information to consider when performing the delivery.""" additionalInformation: DeliveryMethodAdditionalInformation @@ -19095,7 +20473,7 @@ type DeliveryMethodDefinitionEdge { """The input fields for a method definition.""" input DeliveryMethodDefinitionInput { """ - A globally-unique ID of the method definition. Use only when updating a method definiton. + A globally-unique ID of the method definition. Use only when updating a method definition. """ id: ID @@ -19246,9 +20624,18 @@ type DeliveryProductVariantsCount { } """ -A shipping profile. In Shopify, a shipping profile is a set of shipping rates -scoped to a set of products or variants that can be shipped from selected -locations to zones. Learn more about [building with delivery profiles](https://shopify.dev/apps/build/purchase-options/deferred/delivery-and-deferment/build-delivery-profiles). +A shipping profile that defines shipping rates for specific +[`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) objects and [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) +objects. Delivery profiles determine which products can ship from which +[`Location`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location) +objects to which zones, and at what rates. + +Profiles can associate with [`SellingPlanGroup`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SellingPlanGroup) +objects to provide custom shipping rules for subscriptions, such as free +shipping or restricted delivery zones. The default profile applies to all +products that aren't assigned to other profiles. + +Learn more about [building delivery profiles](https://shopify.dev/apps/build/purchase-options/deferred/delivery-and-deferment/build-delivery-profiles). """ type DeliveryProfile implements Node { """The number of active shipping rates for the profile.""" @@ -19263,7 +20650,7 @@ type DeliveryProfile implements Node { """ Whether this shop has enabled legacy compatibility mode for delivery profiles. """ - legacyMode: Boolean! + legacyMode: Boolean! @deprecated(reason: "Legacy mode profiles are no longer supported. This will be removed in 2026-04.") """The number of locations without rates defined.""" locationsWithoutRatesCount: Int! @@ -19371,6 +20758,9 @@ type DeliveryProfile implements Node { reverse: Boolean = false ): LocationConnection! + """The version of the delivery profile.""" + version: Int! + """The number of countries with active rates to deliver to.""" zoneCountryCount: Int! } @@ -19847,18 +21237,20 @@ union DeliveryRateProvider = DeliveryParticipant | DeliveryRateDefinition """ The `DeliverySetting` object enables you to manage shop-wide shipping settings. -You can enable legacy compatibility mode for the multi-location delivery profiles feature -if the legacy mode isn't blocked. """ type DeliverySetting { """ Whether the shop is blocked from converting to full multi-location delivery - profiles mode. If the shop is blocked, then the blocking reasons are also returned. + profiles mode. If the shop is blocked, then the blocking reasons are also + returned. Note: this field is effectively deprecated and will be removed in a + future version of the API. """ legacyModeBlocked: DeliveryLegacyModeBlocked! """ - Enables legacy compatability mode for the multi-location delivery profiles feature. + Enables legacy compatability mode for the multi-location delivery profiles + feature. Note: this field is effectively deprecated and will be removed in a + future version of the API. """ legacyModeProfiles: Boolean! } @@ -19866,7 +21258,9 @@ type DeliverySetting { """The input fields for shop-level delivery settings.""" input DeliverySettingInput { """ - Whether legacy compatability mode is enabled for the multi-location delivery profiles feature. + Whether legacy compatability mode is enabled for the multi-location delivery + profiles feature. Note: this field is effectively deprecated and will be + removed in a future version of the API. """ legacyModeProfiles: Boolean } @@ -19938,7 +21332,9 @@ union DepositConfiguration = DepositPercentage """The input fields configuring the deposit for a B2B buyer.""" input DepositInput { - """The percentage of the order total that should be paid as a deposit.""" + """ + The percentage of the order total that should be paid as a deposit. Must be between 1 and 99, inclusive. + """ percentage: Float! } @@ -19963,13 +21359,30 @@ enum DigitalWallet { """Shopify Pay.""" SHOPIFY_PAY + + """Facebook Pay.""" + FACEBOOK_PAY + + """Amazon Pay.""" + AMAZON_PAY } -"""A discount.""" +""" +A discount offers promotional value and can be applied by entering a code or +automatically when conditions are met. Discounts can provide fixed amounts, +percentage reductions, free shipping, or Buy X Get Y (BXGY) benefits on specific +products or the entire order. For more complex scenarios, developers can use +Function-backed discounts to create custom discount configurations. +""" union Discount = DiscountAutomaticApp | DiscountAutomaticBasic | DiscountAutomaticBxgy | DiscountAutomaticFreeShipping | DiscountCodeApp | DiscountCodeBasic | DiscountCodeBxgy | DiscountCodeFreeShipping """ -An amount that's allocated to a line based on an associated discount application. +The actual amount discounted on a line item or shipping line. While [`DiscountApplication`](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/DiscountApplication) +captures the discount's intentions and rules, The `DiscountAllocation` object +shows the final calculated discount amount applied to each line. + +The allocation includes the discounted amount in both shop and presentment +currencies, with a reference to the originating discount application. """ type DiscountAllocation { """ @@ -20176,11 +21589,13 @@ enum DiscountApplicationTargetType { } """ -The type of discount associated to the automatic discount. For example, the -automatic discount might offer a basic discount using a fixed percentage, or a -fixed amount, on specific products from the order. The automatic discount may -also be a BXGY discount, which offers customer discounts on select products if -they add a specific product to their order. +The types of automatic discounts applied in the cart and at checkout when an order meets specific criteria. + +Includes [`DiscountAutomaticApp`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountAutomaticApp) for custom logic using the [Discount Function +API](https://shopify.dev/docs/api/functions/latest/discount), [`DiscountAutomaticBasic`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountAutomaticBasic) +for percentage or fixed amount reductions, [`DiscountAutomaticBxgy`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountAutomaticBxgy) +for Buy X Get Y promotions, and [`DiscountAutomaticFreeShipping`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountAutomaticFreeShipping) +for delivery incentives. """ union DiscountAutomatic = DiscountAutomaticApp | DiscountAutomaticBasic | DiscountAutomaticBxgy | DiscountAutomaticFreeShipping @@ -20208,6 +21623,9 @@ Learn more about creating > The [`DiscountCodeApp`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCodeApp) object has similar functionality to the `DiscountAutomaticApp` object, with the exception that `DiscountCodeApp` stores information about discount codes that are managed by an app using Shopify Functions. +> +> API versions prior to `2025-10` only return automatic discounts with `context` +set to `all`, discounts with other values are filtered out. """ type DiscountAutomaticApp { """ @@ -20252,6 +21670,9 @@ type DiscountAutomaticApp { """ combinesWith: DiscountCombinesWith! + """The context defining which buyers can use the discount.""" + context: DiscountContext! + """The date and time when the discount was created.""" createdAt: DateTime! @@ -20357,12 +21778,16 @@ input DiscountAutomaticAppInput { endsAt: DateTime """ - The - [function ID](https://shopify.dev/docs/apps/build/functions/input-output/metafields-for-input-queries) - associated with the app extension providing the - [discount type](https://help.shopify.com/manual/discounts/discount-types). + The context defining which buyers can use the discount. + You can target specific customer IDs, customer segments, or make the discount available to all buyers. + Discounts automatically apply on Point of Sale (POS) for Pro locations. For + app discounts using Admin UI Extensions, merchants can control POS eligibility + when the context is set to ALL. """ - functionId: String + context: DiscountContextInput + + """The handle of the function providing the discount.""" + functionHandle: String """ Additional metafields to associate to the discount. @@ -20420,6 +21845,9 @@ including limitations and considerations. > The [`DiscountCodeBasic`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCodeBasic) object has similar functionality to the `DiscountAutomaticBasic` object, but customers need to enter a code to receive a discount. +> +> API versions prior to `2025-10` only return automatic discounts with `context` +set to `all`, discounts with other values are filtered out. """ type DiscountAutomaticBasic { """ @@ -20441,6 +21869,9 @@ type DiscountAutomaticBasic { """ combinesWith: DiscountCombinesWith! + """The context defining which buyers can use the discount.""" + context: DiscountContext! + """The date and time when the discount was created.""" createdAt: DateTime! @@ -20527,6 +21958,11 @@ type DiscountAutomaticBasicCreatePayload { The input fields for creating or updating an [amount off discount](https://help.shopify.com/manual/discounts/discount-types/percentage-fixed-amount) that's automatically applied on a cart and at checkout. + +During creation the required fields are: + - `customerGets` + - `startsAt` + - `title` """ input DiscountAutomaticBasicInput { """ @@ -20553,6 +21989,13 @@ input DiscountAutomaticBasicInput { """ endsAt: DateTime + """ + The context defining which buyers can use the discount. + You can target specific customer IDs, customer segments, or make the discount available to all buyers. + Discounts automatically apply on Point of Sale (POS) for Pro locations when the context is not set to ALL. + """ + context: DiscountContextInput + """ The minimum subtotal or quantity of items that are required for the discount to be applied. """ @@ -20606,6 +22049,9 @@ including limitations and considerations. > The [`DiscountCodeBxgy`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCodeBxgy) object has similar functionality to the `DiscountAutomaticBxgy` object, but customers need to enter a code to receive a discount. +> +> API versions prior to `2025-10` only return automatic discounts with `context` +set to `all`, discounts with other values are filtered out. """ type DiscountAutomaticBxgy implements HasEvents & Node { """ @@ -20627,6 +22073,9 @@ type DiscountAutomaticBxgy implements HasEvents & Node { """ combinesWith: DiscountCombinesWith! + """The context defining which buyers can use the discount.""" + context: DiscountContext! + """The date and time when the discount was created.""" createdAt: DateTime! @@ -20694,8 +22143,9 @@ type DiscountAutomaticBxgy implements HasEvents & Node { | comments | boolean | Whether or not to include [comment-events](https://shopify.dev/api/admin-graphql/latest/objects/CommentEvent) in your search, passing `false` will exclude comment-events, any other value will include comment-events. | | | - `false`
- `true` | - | created_at | time | Filter by the date and time when the event happened. | - | | - `created_at:>2020-10-21`
- `created_at:2025-10-21`
- + `created_at: - `id:>=1234`
- `id:<=1234` | | subject_type | string | The resource type affected by this event. See [EventSubjectType](https://shopify.dev/api/admin-graphql/latest/enums/EventSubjectType) for possible values. | | | - `PRODUCT_VARIANT`
- `PRODUCT`
- `COLLECTION` | @@ -20757,6 +22207,12 @@ type DiscountAutomaticBxgyCreatePayload { The input fields for creating or updating a [buy X get Y discount (BXGY)](https://help.shopify.com/manual/discounts/discount-types/buy-x-get-y) that's automatically applied on a cart and at checkout. + +When creating, required fields are: + - `customerBuys` + - `customerGets` + - `startsAt` + - `title` """ input DiscountAutomaticBxgyInput { """ @@ -20783,6 +22239,13 @@ input DiscountAutomaticBxgyInput { """ endsAt: DateTime + """ + The context defining which buyers can use the discount. + You can target specific customer IDs, customer segments, or make the discount available to all buyers. + Discounts automatically apply on Point of Sale (POS) for Pro locations when the context is not set to ALL. + """ + context: DiscountContextInput + """ The maximum number of times that the discount can be applied to an order. """ @@ -20881,6 +22344,9 @@ including limitations and considerations. > The [`DiscountCodeFreeShipping`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCodeFreeShipping) object has similar functionality to the `DiscountAutomaticFreeShipping` object, but customers need to enter a code to receive a discount. +> +> API versions prior to `2025-10` only return automatic discounts with `context` +set to `all`, discounts with other values are filtered out. """ type DiscountAutomaticFreeShipping { """ @@ -20918,6 +22384,9 @@ type DiscountAutomaticFreeShipping { """ combinesWith: DiscountCombinesWith! + """The context defining which buyers can use the discount.""" + context: DiscountContext! + """The date and time when the discount was created.""" createdAt: DateTime! @@ -21020,6 +22489,10 @@ type DiscountAutomaticFreeShippingCreatePayload { The input fields for creating or updating a [free shipping discount](https://help.shopify.com/manual/discounts/discount-types/free-shipping) that's automatically applied on a cart and at checkout. + +When creating, required fields are: +- `startsAt` +- `title` """ input DiscountAutomaticFreeShippingInput { """ @@ -21038,6 +22511,13 @@ input DiscountAutomaticFreeShippingInput { """ endsAt: DateTime + """ + The context defining which buyers can use the discount. + You can target specific customer IDs, customer segments, or make the discount available to all buyers. + Discounts automatically apply on Point of Sale (POS) for Pro locations when the context is not set to ALL. + """ + context: DiscountContextInput + """ The [discount classes](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) @@ -21057,7 +22537,7 @@ input DiscountAutomaticFreeShippingInput { maximumShippingPrice: Decimal """Whether the discount applies on regular one-time-purchase items.""" - appliesOnOneTimePurchase: Boolean = true + appliesOnOneTimePurchase: Boolean """ Whether the discount applies on subscription items. @@ -21065,7 +22545,7 @@ input DiscountAutomaticFreeShippingInput { enable customers to purchase products on a recurring basis. """ - appliesOnSubscription: Boolean = false + appliesOnSubscription: Boolean """ The number of billing cycles for which the discount can be applied, @@ -21142,8 +22622,9 @@ type DiscountAutomaticNode implements HasEvents & HasMetafieldDefinitions & HasM | comments | boolean | Whether or not to include [comment-events](https://shopify.dev/api/admin-graphql/latest/objects/CommentEvent) in your search, passing `false` will exclude comment-events, any other value will include comment-events. | | | - `false`
- `true` | - | created_at | time | Filter by the date and time when the event happened. | - | | - `created_at:>2020-10-21`
- `created_at:2025-10-21`
- + `created_at: - `id:>=1234`
- `id:<=1234` | | subject_type | string | The resource type affected by this event. See [EventSubjectType](https://shopify.dev/api/admin-graphql/latest/enums/EventSubjectType) for possible values. | | | - `PRODUCT_VARIANT`
- `PRODUCT`
- `COLLECTION` | @@ -21235,7 +22716,7 @@ type DiscountAutomaticNode implements HasEvents & HasMetafieldDefinitions & HasM """ query: String - ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use the root `metafieldDefinitions` field instead.") + ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use `Query.metafieldDefinitions` instead.") """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) @@ -21243,7 +22724,7 @@ type DiscountAutomaticNode implements HasEvents & HasMetafieldDefinitions & HasM """ metafields( """ - The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. + The metafield namespace to filter by. If omitted, all metafields are returned. """ namespace: String @@ -21314,6 +22795,26 @@ type DiscountAutomaticNodeEdge { node: DiscountAutomaticNode! } +"""All buyers are eligible for the discount.""" +enum DiscountBuyerSelection { + """All buyers are eligible for the discount.""" + ALL +} + +""" +Indicates that a discount applies to all buyers without restrictions, enabling +universal promotions that reach every customer. This selection removes +buyer-specific limitations from discount eligibility. + +For example, a flash sale or grand opening promotion would target all buyers to maximize participation and store visibility. + +Learn more about [discount targeting](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountApplication). +""" +type DiscountBuyerSelectionAll { + """All buyers are eligible for the discount.""" + all: DiscountBuyerSelection! +} + """ The [discount class](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) that's used to control how discounts can be combined. @@ -21472,11 +22973,14 @@ type DiscountCodeApp { """ combinesWith: DiscountCombinesWith! + """The context defining which buyers can use the discount.""" + context: DiscountContext! + """The date and time when the discount was created.""" createdAt: DateTime! """The customers that can use the discount.""" - customerSelection: DiscountCustomerSelection! + customerSelection: DiscountCustomerSelection! @deprecated(reason: "Use `context` instead.") """ The @@ -21547,8 +23051,8 @@ type DiscountCodeApp { updatedAt: DateTime! """ - The maximum number of times that a customer can use the discount. - For discounts with unlimited usage, specify `null`. + The maximum number of times the discount can be redeemed. + For unlimited usage, specify `null`. """ usageLimit: Int } @@ -21567,7 +23071,6 @@ The input fields for creating or updating a code discount, where the discount type is provided by an app extension that uses [Shopify Functions](https://shopify.dev/docs/apps/build/functions). - Use these input fields when you need advanced or custom discount capabilities that aren't supported by [Shopify's native discount types](https://help.shopify.com/manual/discounts/discount-types). @@ -21606,20 +23109,20 @@ input DiscountCodeAppInput { """The code that customers use to apply the discount.""" code: String - """The customers that can use the discount.""" - customerSelection: DiscountCustomerSelectionInput - """ - The maximum number of times that a customer can use the discount. - For discounts with unlimited usage, specify `null`. + The maximum number of times the discount can be redeemed. + For unlimited usage, specify `null`. """ usageLimit: Int """ - The [function ID](https://shopify.dev/docs/apps/build/functions/input-output/metafields-for-input-queries) associated with the app extension that's providing the [discount - type](https://help.shopify.com/manual/discounts/discount-types). + The context defining which buyers can use the discount. + You can target specific customer IDs, customer segments, or make the discount available to all buyers. """ - functionId: String + context: DiscountContextInput + + """The handle of the function providing the discount.""" + functionHandle: String """Whether the discount applies to subscriptions items.""" appliesOnSubscription: Boolean = false @@ -21784,6 +23287,9 @@ type DiscountCodeBasic { """ combinesWith: DiscountCombinesWith! + """The context defining which buyers can use the discount.""" + context: DiscountContext! + """The date and time when the discount was created.""" createdAt: DateTime! @@ -21793,7 +23299,7 @@ type DiscountCodeBasic { customerGets: DiscountCustomerGets! """The customers that can use the discount.""" - customerSelection: DiscountCustomerSelection! + customerSelection: DiscountCustomerSelection! @deprecated(reason: "Use `context` instead.") """ The [discount class](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) @@ -21870,8 +23376,8 @@ type DiscountCodeBasic { updatedAt: DateTime! """ - The maximum number of times that a customer can use the discount. - For discounts with unlimited usage, specify `null`. + The maximum number of times the discount can be redeemed. + For unlimited usage, specify `null`. """ usageLimit: Int } @@ -21889,6 +23395,13 @@ type DiscountCodeBasicCreatePayload { The input fields for creating or updating an [amount off discount](https://help.shopify.com/manual/discounts/discount-types/percentage-fixed-amount) that's applied on a cart and at checkout when a customer enters a code. Amount off discounts can be a percentage off or a fixed amount off. + +When creating, required fields are: + - `code` + - `context` (or deprecated `customerSelection`) + - `customerGets` + - `startsAt` + - `title` """ input DiscountCodeBasicInput { """ @@ -21921,15 +23434,18 @@ input DiscountCodeBasicInput { """The code that customers use to apply the discount.""" code: String - """The customers that can use the discount.""" - customerSelection: DiscountCustomerSelectionInput - """ - The maximum number of times that a customer can use the discount. - For discounts with unlimited usage, specify `null`. + The maximum number of times the discount can be redeemed. + For unlimited usage, specify `null`. """ usageLimit: Int + """ + The context defining which buyers can use the discount. + You can target specific customer IDs, customer segments, or make the discount available to all buyers. + """ + context: DiscountContextInput + """ The minimum subtotal or quantity of items that are required for the discount to be applied. """ @@ -22083,6 +23599,9 @@ type DiscountCodeBxgy { """ combinesWith: DiscountCombinesWith! + """The context defining which buyers can use the discount.""" + context: DiscountContext! + """The date and time when the discount was created.""" createdAt: DateTime! @@ -22097,7 +23616,7 @@ type DiscountCodeBxgy { customerGets: DiscountCustomerGets! """The customers that can use the discount.""" - customerSelection: DiscountCustomerSelection! + customerSelection: DiscountCustomerSelection! @deprecated(reason: "Use `context` instead.") """ The [discount class](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) @@ -22154,8 +23673,8 @@ type DiscountCodeBxgy { updatedAt: DateTime! """ - The maximum number of times that a customer can use the discount. - For discounts with unlimited usage, specify `null`. + The maximum number of times the discount can be redeemed. + For unlimited usage, specify `null`. """ usageLimit: Int @@ -22178,6 +23697,14 @@ type DiscountCodeBxgyCreatePayload { The input fields for creating or updating a [buy X get Y discount (BXGY)](https://help.shopify.com/manual/discounts/discount-types/buy-x-get-y) that's applied on a cart and at checkout when a customer enters a code. + +When creating, required fields are: + - `code` + - `context` (or deprecated `customerSelection`) + - `customerBuys` + - `customerGets` + - `startsAt` + - `title` """ input DiscountCodeBxgyInput { """ @@ -22210,15 +23737,18 @@ input DiscountCodeBxgyInput { """The code that customers use to apply the discount.""" code: String - """The customers that can use the discount.""" - customerSelection: DiscountCustomerSelectionInput - """ - The maximum number of times that a customer can use the discount. - For discounts with unlimited usage, specify `null`. + The maximum number of times the discount can be redeemed. + For unlimited usage, specify `null`. """ usageLimit: Int + """ + The context defining which buyers can use the discount. + You can target specific customer IDs, customer segments, or make the discount available to all buyers. + """ + context: DiscountContextInput + """ The items eligible for the discount and the required quantity of each to receive the discount. """ @@ -22376,11 +23906,14 @@ type DiscountCodeFreeShipping { """ combinesWith: DiscountCombinesWith! + """The context defining which buyers can use the discount.""" + context: DiscountContext! + """The date and time when the discount was created.""" createdAt: DateTime! """The customers that can use the discount.""" - customerSelection: DiscountCustomerSelection! + customerSelection: DiscountCustomerSelection! @deprecated(reason: "Use `context` instead.") """ The countries that qualify for the discount. @@ -22471,8 +24004,8 @@ type DiscountCodeFreeShipping { updatedAt: DateTime! """ - The maximum number of times that a customer can use the discount. - For discounts with unlimited usage, specify `null`. + The maximum number of times the discount can be redeemed. + For unlimited usage, specify `null`. """ usageLimit: Int } @@ -22489,6 +24022,12 @@ type DiscountCodeFreeShippingCreatePayload { """ The input fields for creating or updating a [free shipping discount](https://help.shopify.com/manual/discounts/discount-types/free-shipping) that's applied on a cart and at checkout when a customer enters a code. + +When creating, required fields are: + - `code` + - `context` (or deprecated `customerSelection`) + - `startsAt` + - `title` """ input DiscountCodeFreeShippingInput { """ @@ -22520,15 +24059,18 @@ input DiscountCodeFreeShippingInput { """The code that customers use to apply the discount.""" code: String - """The customers that can use the discount.""" - customerSelection: DiscountCustomerSelectionInput - """ - The maximum number of times that a customer can use the discount. - For discounts with unlimited usage, specify `null`. + The maximum number of times the discount can be redeemed. + For unlimited usage, specify `null`. """ usageLimit: Int + """ + The context defining which buyers can use the discount. + You can target specific customer IDs, customer segments, or make the discount available to all buyers. + """ + context: DiscountContextInput + """ The minimum subtotal or quantity of items that are required for the discount to be applied. """ @@ -22634,8 +24176,9 @@ type DiscountCodeNode implements HasEvents & HasMetafieldDefinitions & HasMetafi | comments | boolean | Whether or not to include [comment-events](https://shopify.dev/api/admin-graphql/latest/objects/CommentEvent) in your search, passing `false` will exclude comment-events, any other value will include comment-events. | | | - `false`
- `true` | - | created_at | time | Filter by the date and time when the event happened. | - | | - `created_at:>2020-10-21`
- `created_at:2025-10-21`
- + `created_at: - `id:>=1234`
- `id:<=1234` | | subject_type | string | The resource type affected by this event. See [EventSubjectType](https://shopify.dev/api/admin-graphql/latest/enums/EventSubjectType) for possible values. | | | - `PRODUCT_VARIANT`
- `PRODUCT`
- `COLLECTION` | @@ -22727,7 +24270,7 @@ type DiscountCodeNode implements HasEvents & HasMetafieldDefinitions & HasMetafi """ query: String - ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use the root `metafieldDefinitions` field instead.") + ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use `Query.metafieldDefinitions` instead.") """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) @@ -22735,7 +24278,7 @@ type DiscountCodeNode implements HasEvents & HasMetafieldDefinitions & HasMetafi """ metafields( """ - The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. + The metafield namespace to filter by. If omitted, all metafields are returned. """ namespace: String @@ -22932,7 +24475,35 @@ input DiscountCombinesWithInput { shippingDiscounts: Boolean = false } -"""The shipping destinations where the discount can be applied.""" +"""The type used to define which buyers can use the discount.""" +union DiscountContext = DiscountBuyerSelectionAll | DiscountCustomerSegments | DiscountCustomers + +"""The input fields for the buyers who can use this discount.""" +input DiscountContextInput { + """All buyers are eligible for this discount.""" + all: DiscountBuyerSelection + + """The list of customer IDs to add or remove from the list of customers.""" + customers: DiscountCustomersInput + + """ + The list of customer segment IDs to add or remove from the list of customer segments. + """ + customerSegments: DiscountCustomerSegmentsInput +} + +""" +Defines the geographic scope where a shipping discount can be applied based on +customer shipping destinations. This configuration determines which countries +are eligible for the promotional offer. + +For example, a "Free Shipping to EU" promotion would specify European Union +countries, while a domestic-only sale might target just the store's home country. + +The object includes both specific country selections and an option to include +all remaining countries not explicitly listed, providing flexible geographic +targeting for international merchants. +""" type DiscountCountries { """The codes for the countries where the discount can be applied.""" countries: [CountryCode!]! @@ -22964,7 +24535,17 @@ input DiscountCountriesInput { } """ -The `DiscountCountryAll` object lets you target all countries as shipping destination for discount eligibility. +Indicates that a shipping discount applies to all countries without restriction, +enabling merchants to create truly global promotions. This object represents +universal geographic eligibility for shipping discount offers. + +For example, an online store launching a "Worldwide Free Shipping" campaign +would use this configuration to ensure customers from any country can benefit +from the promotion. + +This setting simplifies international discount management by eliminating the +need to manually select individual countries or regions, making it ideal for +digital products or stores with comprehensive global shipping capabilities. """ type DiscountCountryAll { """ @@ -22974,7 +24555,15 @@ type DiscountCountryAll { } """ -The `DiscountCustomerAll` object lets you target all customers for discount eligibility. +Creates the broadest possible discount reach by targeting all customers, +regardless of their purchase history or segment membership. This gives merchants +maximum flexibility to run store-wide promotions without worrying about customer +eligibility restrictions. + +For example, a flash sale or grand opening promotion would target all customers +to maximize participation and store visibility. + +Learn more about [customer targeting](https://help.shopify.com/manual/discounts/). """ type DiscountCustomerAll { """ @@ -23109,20 +24698,58 @@ input DiscountCustomerGetsValueInput { """ The percentage value of the discount. Value must be between 0.00 - 1.00. + + Note: BXGY doesn't support percentage. """ percentage: Float - """The value of the discount.""" + """ + The value of the discount. + + Note: BXGY doesn't support discountAmount. + """ discountAmount: DiscountAmountInput } -"""A list of individual customers eligible for the discount.""" +""" +Defines customer targeting for discounts through specific individual customers. +This object allows merchants to create exclusive discounts that are only +available to explicitly selected customers. + +For example, a VIP customer appreciation discount might target specific +high-value customers by individually selecting them, or a beta program discount +could be offered to selected early adopters. + +Use `DiscountCustomers` to: +- Target specific individual customers for exclusive promotions +- Create personalized discount experiences for selected customers +- Offer special discounts to VIP or loyal customers +- Provide exclusive access to promotions for specific individuals + +This targeting method requires you to add each customer who should be eligible +for the discount. For broader targeting based on customer attributes or segments, use [`DiscountCustomerSegments`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCustomerSegments) instead. + +Learn more about creating customer-specific discounts using [`discountCodeBasicCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/discountCodeBasicCreate) and [`discountCodeBasicUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/discountCodeBasicUpdate). +""" type DiscountCustomers { """The list of individual customers eligible for the discount.""" customers: [Customer!]! } -"""A list of customer segments who are eligible for the discount.""" +""" +Represents customer segments that are eligible to receive a specific discount, +allowing merchants to target promotions to defined groups of customers. This +enables personalized marketing campaigns based on customer behavior and +characteristics. + +For example, a "VIP Customer 15% Off" promotion might target a segment of +high-value repeat customers, while a "New Customer Welcome" discount could focus +on first-time buyers. + +Segment-based discounts help merchants create more relevant promotional +experiences and improve conversion rates by showing the right offers to the +right customers at the right time. +""" type DiscountCustomerSegments { """The list of customer segments who are eligible for the discount.""" segments: [Segment!]! @@ -23302,6 +24929,12 @@ enum DiscountErrorCode { Recurring cycle limit must be 1 when discount does not apply to subscription items. """ MULTIPLE_RECURRING_CYCLE_LIMIT_FOR_NON_SUBSCRIPTION_ITEMS + + """Either function ID or function handle must be provided.""" + MISSING_FUNCTION_IDENTIFIER + + """Only one of function ID or function handle is allowed.""" + MULTIPLE_FUNCTION_IDENTIFIERS } """ @@ -23330,11 +24963,21 @@ input DiscountItemsInput { """The collections that are attached to a discount.""" collections: DiscountCollectionsInput - """Whether all items should be selected.""" + """ + Whether all items should be selected for the discount. Not supported for Buy X get Y discounts. + """ all: Boolean } -"""The minimum quantity of items required for the discount to apply.""" +""" +Specifies the minimum item quantity required for discount eligibility, helping +merchants create volume-based promotions that encourage larger purchases. This +threshold applies to qualifying items in the customer's cart. + +For example, a "Buy 3, Get 10% Off" promotion would set the minimum quantity to 3 items. + +Learn more about [discount requirements](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountApplication). +""" type DiscountMinimumQuantity { """ The minimum quantity of items that's required for the discount to be applied. @@ -23446,8 +25089,9 @@ type DiscountNode implements HasEvents & HasMetafieldDefinitions & HasMetafields | comments | boolean | Whether or not to include [comment-events](https://shopify.dev/api/admin-graphql/latest/objects/CommentEvent) in your search, passing `false` will exclude comment-events, any other value will include comment-events. | | | - `false`
- `true` | - | created_at | time | Filter by the date and time when the event happened. | - | | - `created_at:>2020-10-21`
- `created_at:2025-10-21`
- + `created_at: - `id:>=1234`
- `id:<=1234` | | subject_type | string | The resource type affected by this event. See [EventSubjectType](https://shopify.dev/api/admin-graphql/latest/enums/EventSubjectType) for possible values. | | | - `PRODUCT_VARIANT`
- `PRODUCT`
- `COLLECTION` | @@ -23539,7 +25183,7 @@ type DiscountNode implements HasEvents & HasMetafieldDefinitions & HasMetafields """ query: String - ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use the root `metafieldDefinitions` field instead.") + ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use `Query.metafieldDefinitions` instead.") """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) @@ -23547,7 +25191,7 @@ type DiscountNode implements HasEvents & HasMetafieldDefinitions & HasMetafields """ metafields( """ - The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. + The metafield namespace to filter by. If omitted, all metafields are returned. """ namespace: String @@ -23617,7 +25261,17 @@ type DiscountNodeEdge { } """ -The quantity of items discounted, the discount value, and how the discount will be applied. +Defines quantity-based discount rules that specify how many items are eligible +for a discount effect. This object enables bulk purchase incentives and tiered +pricing strategies. + +For example, a "Buy 4 candles, get 2 candles 50% off (mix and match)" promotion +would specify a quantity threshold of 2 items that will receive a percentage +discount effect, encouraging customers to purchase more items to unlock savings. + +The configuration combines quantity requirements with discount effects, allowing +merchants to create sophisticated pricing rules that reward larger purchases and +increase average order values. """ type DiscountOnQuantity { """The discount's effect on qualifying items.""" @@ -23643,7 +25297,14 @@ input DiscountOnQuantityInput { } """ -A discount effect that gives customers a percentage off of specified items on their order. +Creates percentage-based discounts that reduce item prices by a specified +percentage amount. This gives merchants a flexible way to offer proportional +savings that automatically scale with order value. + +For example, a "20% off all winter clothing" promotion would use this object to +apply consistent percentage savings across different price points. + +Learn more about [discount types](https://help.shopify.com/manual/discounts/). """ type DiscountPercentage { """The percentage value of the discount.""" @@ -23753,9 +25414,16 @@ type DiscountPurchaseAmount { } """ -A quantity of items in the context of a discount. This object can be used to -define the minimum quantity of items required to apply a discount. -Alternatively, it can be used to define the quantity of items that can be discounted. +Defines a quantity threshold for discount eligibility or application. This +simple object specifies the number of items required to trigger or calculate +discount benefits. + +For example, a "Buy 3, Get 1 Free" promotion would use DiscountQuantity to +define the minimum purchase quantity of 3 items, or a bulk discount might +specify quantity tiers like 10+ items for wholesale pricing. + +The quantity value determines how discounts interact with cart contents, whether +setting minimum purchase requirements or defining quantity-based discount calculations. """ type DiscountQuantity { """The quantity of items.""" @@ -24163,6 +25831,24 @@ enum DisputeType { INQUIRY } +"""A distance, which includes a numeric value and a unit of measurement.""" +type Distance { + """The unit of measurement for `value`.""" + unit: DistanceUnit! + + """The distance value using the unit system specified with `unit`.""" + value: Float! +} + +"""Units of measurement for distance.""" +enum DistanceUnit { + """Metric system unit of distance.""" + KILOMETERS + + """Imperial system unit of distance.""" + MILES +} + """ A unique string that represents the address of a Shopify store on the Internet. """ @@ -24213,7 +25899,6 @@ When a merchant accepts payment for a draft order, an order is created. - Re-create orders manually from active sales channels. - Sell products at discount or wholesale rates. - Take pre-orders. -- Save an order as a draft and resume working on it later. For draft orders in multiple currencies `presentment_money` is the source of truth for what a customer is going to be charged and `shop_money` is an estimate @@ -24327,8 +26012,9 @@ type DraftOrder implements CommentEventSubject & HasEvents & HasLocalizationExte | comments | boolean | Whether or not to include [comment-events](https://shopify.dev/api/admin-graphql/latest/objects/CommentEvent) in your search, passing `false` will exclude comment-events, any other value will include comment-events. | | | - `false`
- `true` | - | created_at | time | Filter by the date and time when the event happened. | - | | - `created_at:>2020-10-21`
- `created_at:2025-10-21`
- + `created_at: - `id:>=1234`
- `id:<=1234` | | subject_type | string | The resource type affected by this event. See [EventSubjectType](https://shopify.dev/api/admin-graphql/latest/enums/EventSubjectType) for possible values. | | | - `PRODUCT_VARIANT`
- `PRODUCT`
- `COLLECTION` | @@ -24387,7 +26073,7 @@ type DraftOrder implements CommentEventSubject & HasEvents & HasLocalizationExte """ A subtotal of the line items and corresponding discounts, - excluding include shipping charges, shipping discounts, taxes, or order discounts. + excluding shipping charges, shipping discounts, taxes, or order discounts. """ lineItemsSubtotalPrice: MoneyBag! @@ -24482,7 +26168,7 @@ type DraftOrder implements CommentEventSubject & HasEvents & HasLocalizationExte """ metafields( """ - The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. + The metafield namespace to filter by. If omitted, all metafields are returned. """ namespace: String @@ -24595,7 +26281,7 @@ type DraftOrder implements CommentEventSubject & HasEvents & HasLocalizationExte """Total discounts.""" totalDiscountsSet: MoneyBag! - """Total price of line items.""" + """Total price of line items, excluding discounts.""" totalLineItemsPriceSet: MoneyBag! """ @@ -24713,6 +26399,70 @@ enum DraftOrderAppliedDiscountType { PERCENTAGE } +"""The available delivery options for a draft order.""" +type DraftOrderAvailableDeliveryOptions { + """ + The available local delivery rates for the draft order. Requires a customer + with a valid shipping address and at least one line item. + """ + availableLocalDeliveryRates: [DraftOrderShippingRate!]! + + """ + The available local pickup options for the draft order. Requires at least one line item. + """ + availableLocalPickupOptions: [PickupInStoreLocation!]! + + """ + The available shipping rates for the draft order. Requires a customer with a + valid shipping address and at least one line item. + """ + availableShippingRates: [DraftOrderShippingRate!]! + + """Returns information about pagination of local pickup options.""" + pageInfo: PageInfo! +} + +""" +The input fields used to determine available delivery options for a draft order. +""" +input DraftOrderAvailableDeliveryOptionsInput { + """ + The discount that will be applied to the draft order. + A draft order line item can have one discount. A draft order can also have one order-level discount. + """ + appliedDiscount: DraftOrderAppliedDiscountInput + + """ + Discount codes that will be attempted to be applied to the draft order. If the + draft isn't eligible for any given discount code it will be skipped during calculation. + """ + discountCodes: [String!] + + """ + Whether or not to accept automatic discounts on the draft order during calculation. + If false, only discount codes and custom draft order discounts (see `appliedDiscount`) will be applied. + If true, eligible automatic discounts will be applied in addition to discount codes and custom draft order discounts. + """ + acceptAutomaticDiscounts: Boolean + + """ + Product variant line item or custom line item associated to the draft order. + Each draft order must include at least one line item. + """ + lineItems: [DraftOrderLineItemInput!] + + """The mailing address to where the order will be shipped.""" + shippingAddress: MailingAddressInput + + """ + The selected country code that determines the pricing of the draft order. + """ + marketRegionCountryCode: CountryCode + + """The purchasing entity for the draft order.""" + purchasingEntity: PurchasingEntityInput +} + """Return type for `draftOrderBulkAddTags` mutation.""" type DraftOrderBulkAddTagsPayload { """The asynchronous job for adding tags to the draft orders.""" @@ -24801,12 +26551,6 @@ type DraftOrderCreateFromOrderPayload { userErrors: [UserError!]! } -"""Return type for `draftOrderCreateMerchantCheckout` mutation.""" -type DraftOrderCreateMerchantCheckoutPayload { - """The list of errors that occurred from executing the mutation.""" - userErrors: [UserError!]! -} - """Return type for `draftOrderCreate` mutation.""" type DraftOrderCreatePayload { """The created draft order.""" @@ -24911,6 +26655,7 @@ input DraftOrderInput { """ The list of product variant or custom line item. Each draft order must include at least one line item. + Accepts a maximum of 499 line items. NOTE: Draft orders don't currently support subscriptions. """ @@ -25020,7 +26765,14 @@ type DraftOrderInvoiceSendPayload { userErrors: [UserError!]! } -"""The line item for a draft order.""" +""" +A line item in a draft order. Line items are either [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) +objects or custom items created manually with specific pricing and attributes. + +Each line item includes [quantity](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrderLineItem#field-DraftOrderLineItem.fields.quantity), [pricing](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrderLineItem#field-DraftOrderLineItem.fields.originalUnitPrice), [discounts](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrderLineItem#field-DraftOrderLineItem.fields.discountedTotal), [tax information](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrderLineItem#field-DraftOrderLineItem.fields.taxLines), and [custom attributes](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrderLineItem#field-DraftOrderLineItem.fields.customAttributes). +For [bundle products](https://shopify.dev/docs/apps/build/products/bundles), the +line item includes components that define the individual products within the bundle. +""" type DraftOrderLineItem implements Node { """The custom applied discount.""" appliedDiscount: DraftOrderAppliedDiscount @@ -25299,6 +27051,20 @@ input DraftOrderLineItemInput { priceOverride: MoneyInput } +""" +A warning indicating that the market region country code is not supported with Markets. +""" +type DraftOrderMarketRegionCountryCodeNotSupportedWarning implements DraftOrderWarning { + """The error code.""" + errorCode: String! + + """The input field that the warning applies to.""" + field: String! + + """The warning message.""" + message: String! +} + """The platform discounts applied to the draft order.""" type DraftOrderPlatformDiscount { """Price reduction allocations across the draft order's lines.""" @@ -25316,6 +27082,9 @@ type DraftOrderPlatformDiscount { """The discount class.""" discountClass: DiscountClass! @deprecated(reason: "Use `discountClasses` instead.") + """The discount classes.""" + discountClasses: [DiscountClass!]! + """The discount node for the platform discount.""" discountNode: DiscountNode @@ -25366,6 +27135,26 @@ type DraftOrderPlatformDiscountAllocation { """The element of the draft being discounted.""" union DraftOrderPlatformDiscountAllocationTarget = CalculatedDraftOrderLineItem | DraftOrderLineItem | ShippingLine +""" +A shipping rate is an additional cost added to the cost of the products that were ordered. +""" +type DraftOrderShippingRate { + """The code of the shipping rate.""" + code: String! + + """Unique identifier for this shipping rate.""" + handle: String! + + """The cost associated with the shipping rate.""" + price: MoneyV2! + + """The source of the shipping rate.""" + source: String! + + """The name of the shipping rate.""" + title: String! +} + """The set of valid sort keys for the DraftOrder query.""" enum DraftOrderSortKeys { """Sort by the `customer_name` value.""" @@ -25668,13 +27457,14 @@ type EventBridgeWebhookSubscriptionCreatePayload { """The input fields for an EventBridge webhook subscription.""" input EventBridgeWebhookSubscriptionInput { - """The ARN of the EventBridge partner event source.""" - arn: ARN - """The format in which the webhook subscription should send the data.""" format: WebhookSubscriptionFormat - """The list of fields to be included in the webhook subscription.""" + """ + The list of fields to be included in the webhook subscription. Only the fields + specified will be included in the webhook payload. If null, then all fields + will be included. Learn more about [modifying webhook payloads](https://shopify.dev/docs/apps/build/webhooks/customize/modify_payloads). + """ includeFields: [String!] """ @@ -25693,6 +27483,9 @@ input EventBridgeWebhookSubscriptionInput { A list of identifiers specifying metafields to include in the webhook payload. """ metafields: [HasMetafieldsMetafieldIdentifierInput!] + + """The ARN of the EventBridge partner event source.""" + arn: ARN } """Return type for `eventBridgeWebhookSubscriptionUpdate` mutation.""" @@ -25761,6 +27554,9 @@ enum EventSubjectType { """A DraftOrder resource generated the event.""" DRAFT_ORDER + """A InventoryTransfer resource generated the event.""" + INVENTORY_TRANSFER + """A Collection resource generated the event.""" COLLECTION @@ -25812,8 +27608,30 @@ type ExchangeLineItem implements Node { """A globally-unique ID.""" id: ID! - """The order line item for the exchange.""" - lineItem: LineItem + """ + The order line item for the exchange. If the exchange line has been processed + multiple times, this will be the first associated line item and won't reflect + all processed values. + """ + lineItem: LineItem @deprecated(reason: "Use `lineItems` instead.") + + """The order line items for the exchange.""" + lineItems: [LineItem!] + + """The quantity of the exchange item that can be processed.""" + processableQuantity: Int! + + """The quantity of the exchange item that have been processed.""" + processedQuantity: Int! + + """The number of units ordered, including refunded and removed units.""" + quantity: Int! + + """The quantity of the exchange item that haven't been processed.""" + unprocessedQuantity: Int! + + """The ID of the variant at time of return creation.""" + variantId: ID } """ @@ -25895,6 +27713,15 @@ input ExchangeLineItemInput { appliedDiscount: ExchangeLineItemAppliedDiscountInput } +"""The input fields for removing an exchange line item from a return.""" +input ExchangeLineItemRemoveFromReturnInput { + """The ID of the exchange line item to remove.""" + exchangeLineItemId: ID! + + """The quantity of the associated exchange line item to be removed.""" + quantity: Int! +} + """ An exchange where existing items on an order are returned and new items are added to the order. """ @@ -26183,8 +28010,10 @@ type FeeSale implements Sale { """The type of order action that the sale represents.""" actionType: SaleActionType! - """The fee associated with the sale.""" - fee: Fee! + """ + The fee associated with the sale. It can be null if the fee was deleted. + """ + fee: Fee """The unique ID for the sale.""" id: ID! @@ -26292,8 +28121,8 @@ enum FileContentType { """The input fields that are required to create a file object.""" input FileCreateInput { """ - When provided, the file will be created with the given filename, - otherwise the filename in the originalSource will be used. + The name of the file. If provided, then the file is created with the specified filename. + If not provided, then the filename from the `originalSource` is used. """ filename: String @@ -26302,7 +28131,9 @@ input FileCreateInput { """ contentType: FileContentType - """The alternative text description of the file.""" + """ + The alt text description of the file for screen readers and accessibility. + """ alt: String """How to handle if filename is already in use.""" @@ -26573,6 +28404,9 @@ enum FilesErrorCode { """The file is not in the READY state.""" NON_READY_STATE + """File cannot be updated in a failed state.""" + INVALID_FAILED_MEDIA_STATE + """Exceeded the limit of non-image media per shop.""" NON_IMAGE_MEDIA_PER_SHOP_LIMIT_EXCEEDED @@ -26603,13 +28437,16 @@ enum FilesErrorCode { """Cannot add more than 10000 references to a file.""" TOO_MANY_FILE_REFERENCE + + """Invalid duplicate resolution mode provided.""" + INVALID_DUPLICATE_RESOLUTION_MODE } """The input fields required to create or update a file object.""" input FileSetInput { """ - When provided, the file will be created with the given filename, - otherwise the filename in the originalSource will be used. + The name of the file. If provided, then the file is created with the specified filename. + If not provided, then the filename from the `originalSource` is used. """ filename: String @@ -26618,7 +28455,9 @@ input FileSetInput { """ contentType: FileContentType - """The alternative text description of the file.""" + """ + The alt text description of the file for screen readers and accessibility. + """ alt: String """How to handle if filename is already in use.""" @@ -26692,7 +28531,9 @@ input FileUpdateInput { """The ID of the file to be updated.""" id: ID! - """The alternative text description of the file.""" + """ + The alt text description of the file for screen readers and accessibility. + """ alt: String """ @@ -26861,11 +28702,17 @@ Example value: `"Your current domain is example.myshopify.com." scalar FormattedString """ -Represents a fulfillment. -In Shopify, a fulfillment represents a shipment of one or more items in an order. -When an order has been completely fulfilled, it means that all the items that are included -in the order have been sent to the customer. -There can be more than one fulfillment for an order. +A shipment of one or more items from an +[`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order). Tracks which +[`LineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItem) +objects ship, their quantities, and the shipment's tracking information. + +Includes tracking details such as the carrier, tracking numbers, and URLs. The +fulfillment connects to both the original order and any associated [`FulfillmentOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder) objects. [`FulfillmentEvent`](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentEvent) +objects record milestones throughout the shipment lifecycle, from creation +through delivery. + +Multiple fulfillments can exist for a single order when items either ship separately or from different locations. """ type Fulfillment implements LegacyInteroperability & Node { """The date and time when the fulfillment was created.""" @@ -27081,7 +28928,7 @@ type FulfillmentConstraintRule implements HasMetafields & Node { """ metafields( """ - The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. + The metafield namespace to filter by. If omitted, all metafields are returned. """ namespace: String @@ -27168,6 +29015,12 @@ enum FulfillmentConstraintRuleCreateUserErrorCode { """ FUNCTION_PENDING_DELETION + """Only one of function_id or function_handle can be provided, not both.""" + MULTIPLE_FUNCTION_IDENTIFIERS + + """Either function_id or function_handle must be provided.""" + MISSING_FUNCTION_IDENTIFIER + """Maximum number of fulfillment constraint rules reached. Limit is 10.""" MAXIMUM_FULFILLMENT_CONSTRAINT_RULES_REACHED } @@ -27283,6 +29136,9 @@ enum FulfillmentDisplayStatus { """Displayed as **Fulfilled**.""" FULFILLED + """Displayed as **Picked up by carrier**.""" + CARRIER_PICKED_UP + """Displayed as **In transit**.""" IN_TRANSIT @@ -27328,7 +29184,14 @@ type FulfillmentEdge { } """ -The fulfillment event that describes the fulfilllment status at a particular time. +A tracking event that records the status and location of a fulfillment at a +specific point in time. Each event captures details such as the [status](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentEvent#field-FulfillmentEvent.fields.status) +(for example, in transit, out for delivery, delivered) and any [messages](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentEvent#field-FulfillmentEvent.fields.message) +associated with the event. + +Fulfillment events provide a chronological history of a package's journey from +shipment to delivery. They include timestamps, geographic coordinates, and +estimated delivery dates to track fulfillment progress. """ type FulfillmentEvent implements Node { """The street address where this fulfillment event occurred.""" @@ -27500,6 +29363,9 @@ enum FulfillmentEventStatus { """The fulfillment request failed.""" FAILURE + + """The fulfillment has been picked up by the carrier.""" + CARRIER_PICKED_UP } """A fulfillment hold currently applied on a fulfillment order.""" @@ -27590,7 +29456,15 @@ input FulfillmentInput { originAddress: FulfillmentOriginAddressInput } -"""Represents a line item from an order that's included in a fulfillment.""" +""" +A line item from an +[`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) +that's included in a [`Fulfillment`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Fulfillment). +Links the fulfillment to specific items from the original order, tracking how +many units were fulfilled. + +> Note: The discounted total excludes order-level discounts, showing only line-item specific discount amounts. +""" type FulfillmentLineItem implements Node { """The total price after discounts are applied.""" discountedTotal: Money! @deprecated(reason: "Use `discountedTotalSet` instead.") @@ -28483,7 +30357,14 @@ type FulfillmentOrderInternationalDuties { } """ -Associates an order line item with quantities requiring fulfillment from the respective fulfillment order. +Associates an order line item with the quantities that require fulfillment as +part of a fulfillment order. Each Fulfillment Order Line Item object tracks the +total quantity to fulfill and the remaining quantity yet to be fulfilled, along +with details about the line item being fulfilled and pricing information. + +The line item provides additional fulfillment data including whether the item +requires shipping. Financial summaries show pricing details with discounts +applied, while warning messages alert merchants to any issues that might affect fulfillment. """ type FulfillmentOrderLineItem implements Node { """The financial summary for the Fulfillment Order's Line Items.""" @@ -28618,6 +30499,7 @@ input FulfillmentOrderLineItemsInput { """ The fulfillment order line items to be fulfilled. If left blank, all line items of the fulfillment order will be fulfilled. + Accepts a maximum of 512 line items. """ fulfillmentOrderLineItems: [FulfillmentOrderLineItemInput!] } @@ -29235,6 +31117,63 @@ enum FulfillmentOrderSplitUserErrorCode { NO_LINE_ITEMS_PROVIDED_TO_SPLIT } +"""Return type for `fulfillmentOrdersReroute` mutation.""" +type FulfillmentOrdersReroutePayload { + """The fulfillment orders which contains the moved line items.""" + movedFulfillmentOrders: [FulfillmentOrder!] + + """The list of errors that occurred from executing the mutation.""" + userErrors: [FulfillmentOrdersRerouteUserError!]! +} + +""" +An error that occurs during the execution of `FulfillmentOrdersReroute`. +""" +type FulfillmentOrdersRerouteUserError implements DisplayableError { + """The error code.""" + code: FulfillmentOrdersRerouteUserErrorCode + + """The path to the input field that caused the error.""" + field: [String!] + + """The error message.""" + message: String! +} + +""" +Possible error codes that can be returned by `FulfillmentOrdersRerouteUserError`. +""" +enum FulfillmentOrdersRerouteUserErrorCode { + """No fulfillment order IDs were provided.""" + NO_FULFILLMENT_ORDER_IDS + + """Fulfillment order could not be found.""" + FULFILLMENT_ORDER_NOT_FOUND + + """Fulfillment orders are not from the same order.""" + FULFILLMENT_ORDERS_NOT_FROM_THE_SAME_ORDER + + """ + All fulfillment orders must have status and request status compatible with reroutable states. + """ + FULFILLMENT_ORDERS_STATE_NOT_SUPPORTED + + """Cannot reassign location for fulfillment orders.""" + CANNOT_REASSIGN_LOCATION_FOR_FULFILLMENT_ORDERS + + """The delivery method type is not supported.""" + DELIVERY_METHOD_TYPE_NOT_SUPPORTED + + """This feature is only supported for multi-location shops.""" + SINGLE_LOCATION_SHOP_NOT_SUPPORTED + + """Fulfillment orders must belong to the same location.""" + FULFILLMENT_ORDERS_MUST_BELONG_TO_SAME_LOCATION + + """Cannot move a fulfillment order that has progress reported.""" + CANNOT_MOVE_FULFILLMENT_ORDER_WITH_REPORTED_PROGRESS +} + """Return type for `fulfillmentOrdersSetFulfillmentDeadline` mutation.""" type FulfillmentOrdersSetFulfillmentDeadlinePayload { """Whether the fulfillment deadline was successfully set.""" @@ -29505,7 +31444,7 @@ type FulfillmentService { """ Whether the fulfillment service can stock inventory alongside other locations. """ - permitsSkuSharing: Boolean! + permitsSkuSharing: Boolean! @deprecated(reason: "Fulfillment services are all migrating to permit SKU sharing.\nSetting permits SKU sharing to false [is no longer supported](https://shopify.dev/changelog/setting-permitsskusharing-argument-to-false-when-creating-a-fulfillment-service-returns-an-error).\nAs of API version `2026-04` this field will be removed.\n") """ Whether the fulfillment service requires products to be physically shipped. @@ -29676,7 +31615,8 @@ type FulfillmentTrackingInfo { * Israel Post * Japan Post (EN) * Japan Post (JA) - * La Poste + * La Poste Colissimo + * La Poste Burkina Faso * Lasership * Latvia Post * Lietuvos Paštas @@ -30015,7 +31955,18 @@ type GenericFile implements File & Node { url: URL } -"""Represents an issued gift card.""" +""" +A gift card that customers use as a payment method. Stores the initial value, current balance, and expiration date. + +You can issue gift cards to a specific +[`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer) +or send them to a [`GiftCardRecipient`](https://shopify.dev/docs/api/admin-graphql/latest/objects/GiftCardRecipient) +with a personalized message. The card tracks its transaction history through [`GiftCardCreditTransaction`](https://shopify.dev/docs/api/admin-graphql/latest/objects/GiftCardCreditTransaction) and [`GiftCardDebitTransaction`](https://shopify.dev/docs/api/admin-graphql/latest/objects/GiftCardDebitTransaction) +records. You can create and deactivate gift cards using the [`GiftCardCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/giftCardCreate) and [`GiftCardDeactivate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/giftCardDeactivate) +mutations, respectively. + +> Note: After a gift card is deactivated, it can't be used for further purchases or re-enabled. +""" type GiftCard implements Node { """The gift card's remaining balance.""" balance: MoneyV2! @@ -30232,7 +32183,7 @@ type GiftCardCreditTransaction implements GiftCardTransaction & HasMetafields & """ metafields( """ - The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. + The metafield namespace to filter by. If omitted, all metafields are returned. """ namespace: String @@ -30356,7 +32307,7 @@ type GiftCardDebitTransaction implements GiftCardTransaction & HasMetafields & N """ metafields( """ - The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. + The metafield namespace to filter by. If omitted, all metafields are returned. """ namespace: String @@ -30652,7 +32603,7 @@ interface GiftCardTransaction { """ metafields( """ - The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. + The metafield namespace to filter by. If omitted, all metafields are returned. """ namespace: String @@ -30871,8 +32822,9 @@ interface HasEvents { | comments | boolean | Whether or not to include [comment-events](https://shopify.dev/api/admin-graphql/latest/objects/CommentEvent) in your search, passing `false` will exclude comment-events, any other value will include comment-events. | | | - `false`
- `true` | - | created_at | time | Filter by the date and time when the event happened. | - | | - `created_at:>2020-10-21`
- `created_at:2025-10-21`
- + `created_at: - `id:>=1234`
- `id:<=1234` | | subject_type | string | The resource type affected by this event. See [EventSubjectType](https://shopify.dev/api/admin-graphql/latest/enums/EventSubjectType) for possible values. | | | - `PRODUCT_VARIANT`
- `PRODUCT`
- `COLLECTION` | @@ -31021,7 +32973,7 @@ interface HasMetafieldDefinitions { """ query: String - ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use the root `metafieldDefinitions` field instead.") + ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use `Query.metafieldDefinitions` instead.") } """ @@ -31049,7 +33001,7 @@ interface HasMetafields { """ metafields( """ - The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. + The metafield namespace to filter by. If omitted, all metafields are returned. """ namespace: String @@ -31164,7 +33116,7 @@ Example value: `"

Grey cotton knit sweater.

"` scalar HTML """Represents an image resource.""" -type Image implements HasMetafields { +type Image implements HasMetafields & HasPublishedTranslations { """A word or phrase to share the nature or contents of an image.""" altText: String @@ -31197,7 +33149,7 @@ type Image implements HasMetafields { """ metafields( """ - The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. + The metafield namespace to filter by. If omitted, all metafields are returned. """ namespace: String @@ -31240,6 +33192,13 @@ type Image implements HasMetafields { """The location of the image as a URL.""" src: URL! @deprecated(reason: "Use `url` instead.") + """ + The ThumbHash of the image. + + Useful to display placeholder images while the original image is loading. + """ + thumbhash: String + """ The location of the transformed image as a URL. @@ -31267,6 +33226,17 @@ type Image implements HasMetafields { preferredContentType: ImageContentType ): URL! @deprecated(reason: "Use `url(transform:)` instead") + """The published translations associated with the resource.""" + translations( + """Filters translations locale.""" + locale: String! + + """ + Filters translations by market ID. Use this argument to retrieve content specific to a market. + """ + marketId: ID + ): [Translation!]! + """ The location of the image as a URL. @@ -31440,7 +33410,18 @@ type InventoryActivatePayload { userErrors: [UserError!]! } -"""Represents a group of adjustments made as part of the same operation.""" +""" +Records a batch of inventory changes made together in a single operation. Tracks +which [`App`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App) or [`StaffMember`](https://shopify.dev/docs/api/admin-graphql/latest/objects/StaffMember) +initiated the changes, when they occurred, and why they were made. + +Provides an audit trail through its reason and reference document URI. The +reference document URI links to the source that triggered the adjustment, such as +an [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order), [`InventoryTransfer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryTransfer), +or external system event. Use the [`changes`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryAdjustmentGroup#field-InventoryAdjustmentGroup.fields.changes) +field to retrieve the specific quantity adjustments for each inventory state at affected +[locations](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location). +""" type InventoryAdjustmentGroup implements Node { """The app that triggered the inventory event, if one exists.""" app: App @@ -31483,6 +33464,25 @@ type InventoryAdjustmentGroup implements Node { staffMember: StaffMember } +""" +The input fields required to adjust the available quantity of a product variant at a location. +""" +input InventoryAdjustmentInput { + """ + The ID of the location where the available quantity should be adjusted. + """ + locationId: ID! + + """ + The adjustment of the available quantity at the location. If the value is + `null`, then the product variant is no longer stocked at the location. + """ + adjustment: Int + + """The quantity to compare against before applying the delta.""" + changeFromQuantity: Int +} + """The input fields required to adjust inventory quantities.""" input InventoryAdjustQuantitiesInput { """ @@ -31498,10 +33498,25 @@ input InventoryAdjustQuantitiesInput { name: String! """ - A freeform URI that represents why the inventory change happened. This can be the entity adjusting inventory - quantities or the Shopify resource that's associated with the inventory adjustment. For example, a unit in a - draft order might have been previously reserved, and a merchant later creates an order from the draft order. - In this case, the `referenceDocumentUri` for the inventory adjustment is a URI referencing the order ID. + A URI that represents why the inventory change happened, identifying the + source system and document that caused this adjustment. Enables complete audit + trails and brand visibility in Shopify admin inventory history. + + Preferred format - Global ID (GID): gid://[your-app-name]/[entity-type]/[id] + + Examples: + - gid://warehouse-app/PurchaseOrder/PO-2024-001 (stock received) + - gid://3pl-system/CycleCount/CC-2024-0125 (cycle count adjustment) + - gid://pos-app/Transaction/TXN-98765 (in-store sale) + - gid://erp-connector/SyncJob/SYNC-2024-11-21-001 (ERP sync) + - gid://shopify/Order/1234567890 (Shopify order reference) + + Benefits: Your app name appears directly in merchant inventory history, + reducing support tickets and providing clear audit trails for compliance. + + Alternative formats (also supported): https://myapp.com/documents/12345, custom-scheme://identifier + + Requirements: Valid URI with scheme and content. For GID format, all components (app, entity, id) must be present. """ referenceDocumentUri: String @@ -31571,6 +33586,14 @@ enum InventoryAdjustQuantitiesUserErrorCode { """The specified reference document is invalid.""" INVALID_REFERENCE_DOCUMENT + """The service is temporarily unavailable. Try again later.""" + SERVICE_UNAVAILABLE + + """ + The changeFromQuantity argument no longer matches the persisted quantity. + """ + CHANGE_FROM_QUANTITY_STALE + """The quantities couldn't be adjusted. Try again.""" ADJUST_QUANTITIES_FAILED @@ -31586,6 +33609,14 @@ enum InventoryAdjustQuantitiesUserErrorCode { The specified inventory item is not allowed to be adjusted via API. Example: if the inventory item is a parent bundle. """ NON_MUTABLE_INVENTORY_ITEM + + """This request is currently in progress, please try again.""" + IDEMPOTENCY_CONCURRENT_REQUEST + + """ + The same idempotency key cannot be used with different operation parameters. + """ + IDEMPOTENCY_KEY_PARAMETER_MISMATCH } """ @@ -31690,7 +33721,17 @@ enum InventoryBulkToggleActivationUserErrorCode { } """ -Represents a change in an inventory quantity of an inventory item at a location. +A change in an inventory quantity of an inventory item at a location. Each +change tracks how inventory moves between different states like available, +committed, reserved, or damaged. + +The change captures the [amount changed](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryChange#field-InventoryChange.fields.delta), the resulting [quantity](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryChange#field-InventoryChange.fields.quantityAfterChange), +and links to the associated [`InventoryItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryItem) and [`Location`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location). + +The [`name`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryChange#field-InventoryChange.fields.name) field indicates which inventory state changed, such as `available`, `reserved`, +or `damaged`. The [`ledgerDocumentUri`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryChange#field-InventoryChange.fields.ledgerDocumentUri) +field provides an audit trail by referencing the source document or system that +triggered the change. """ type InventoryChange { """The amount by which the inventory quantity was changed.""" @@ -31724,6 +33765,12 @@ input InventoryChangeInput { """The amount by which the inventory quantity will be changed.""" delta: Int! + """ + The quantity to compare against before applying the delta. For more + information, refer to the [Compare and Swap documentation](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states#compare-and-swap). + """ + changeFromQuantity: Int + """Specifies the inventory item to which the change will be applied.""" inventoryItemId: ID! @@ -31731,10 +33778,20 @@ input InventoryChangeInput { locationId: ID! """ - A freeform URI that represents what changed the inventory quantities. A Shopify global ID isn't an accepted - value. For example, specifying "gid://shopify/Order/123" would return an error. This field is required for all - quantity names except `available`. The field `ledgerDocumentUri` isn't supported for use with an `available` - quantity name. + A non-Shopify URI that identifies what specific inventory transaction or + ledger entry was changed. Represents the exact inventory movement being + referenced, distinct from the business reason for the change. + + Preferred format - Global ID (GID): gid://[your-app-name]/[transaction-type]/[id] + + Examples: + - gid://warehouse-app/InventoryTransaction/TXN-2024-001 (specific transaction) + - gid://3pl-system/StockMovement/SM-2024-0125 (stock movement record) + - gid://pos-app/InventoryUpdate/UPD-98765 (POS inventory update) + - gid://erp-connector/LedgerEntry/LE-2024-11-21-001 (ledger entry) + + Requirements: Valid non-Shopify URI with scheme and content. Required for all + quantity names except `available`. Cannot use gid://shopify/* format. """ ledgerDocumentUri: String } @@ -31746,9 +33803,12 @@ type InventoryDeactivatePayload { } """ -Represents the goods available to be shipped to a customer. -It holds essential information about the goods, including SKU and whether it is tracked. -Learn [more about the relationships between inventory objects](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states#inventory-object-relationships). +A [product variant's](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) inventory information across all locations. The inventory item connects the +product variant to its [inventory levels](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryLevel) +at different locations, tracking stock keeping unit (SKU), whether quantities +are tracked, shipping requirements, and customs information for the product. + +Learn more about [inventory object relationships](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states#inventory-object-relationships). """ type InventoryItem implements LegacyInteroperability & Node { """The ISO 3166-1 alpha-2 country code of where the item originated from.""" @@ -31885,7 +33945,30 @@ type InventoryItem implements LegacyInteroperability & Node { updatedAt: DateTime! """The variant that owns this inventory item.""" - variant: ProductVariant! + variant: ProductVariant! @deprecated(reason: "Use `variants` instead.") + + """A paginated list of the variants that reference this inventory item.""" + variants( + """ + The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + first: Int + + """ + The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + after: String + + """ + The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + last: Int + + """ + The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + before: String + ): ProductVariantConnection } """An auto-generated type for paginating through multiple InventoryItems.""" @@ -31936,7 +34019,11 @@ input InventoryItemInput { """Whether the inventory item is tracked.""" tracked: Boolean - """The ISO 3166-1 alpha-2 country code of where the item originated from.""" + """ + The country where the item was manufactured or produced, specified using the + standard two-letter [ISO 3166-1 + alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code. + """ countryCodeOfOrigin: CountryCode """ @@ -31948,16 +34035,28 @@ input InventoryItemInput { countryHarmonizedSystemCodes: [CountryHarmonizedSystemCodeInput!] """ - The ISO 3166-2 alpha-2 province code of where the item originated from. + The province where the item was manufactured or produced, specified using the + standard two-letter [ISO 3166-2 + alpha-2](https://en.wikipedia.org/wiki/ISO_3166-2) province code. """ provinceCodeOfOrigin: String """The measurements of an inventory item.""" measurement: InventoryItemMeasurementInput + + """ + Whether the inventory item needs to be physically shipped to the customer. + Items that require shipping are physical products, while digital goods and + services typically don't require shipping and can be fulfilled electronically. + """ requiresShipping: Boolean } -"""Represents the packaged dimension for an inventory item.""" +""" +Weight information for an [`InventoryItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryItem) +when packaged. Provides the weight specification used for inventory management +and shipping calculations. Learn more about [managing inventory](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps). +""" type InventoryItemMeasurement implements Node { """A globally-unique ID.""" id: ID! @@ -31970,6 +34069,9 @@ type InventoryItemMeasurement implements Node { input InventoryItemMeasurementInput { """The weight of the inventory item.""" weight: WeightInput + + """Shipping package associated with inventory item.""" + shippingPackageId: ID } """Return type for `inventoryItemUpdate` mutation.""" @@ -31982,8 +34084,10 @@ type InventoryItemUpdatePayload { } """ -The quantities of an inventory item that are related to a specific location. -Learn [more about the relationships between inventory objects](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states#inventory-object-relationships). +The quantities of an inventory item at a specific location. Each inventory level connects one [`InventoryItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryItem) to one [`Location`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location), +tracking multiple quantity states like available, on-hand, incoming, and committed. + +The [`quantities`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryLevel#field-InventoryLevel.fields.quantities) field provides access to different inventory states. Learn [more about inventory states and relationships](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states#inventory-object-relationships). """ type InventoryLevel implements Node { """ @@ -32008,7 +34112,10 @@ type InventoryLevel implements Node { """The location associated with the inventory level.""" location: Location! - """Quantities for the requested names.""" + """ + The quantity of an inventory item at a specific location, for a quantity + [name](https://shopify.dev/docs/apps/fulfillment/inventory-management-apps#inventory-states). + """ quantities( """ The @@ -32061,7 +34168,7 @@ type InventoryLevel implements Node { """ query: String - ): InventoryScheduledChangeConnection! + ): InventoryScheduledChangeConnection! @deprecated(reason: "Scheduled changes will be phased out in a future version.") """The date and time when the inventory level was updated.""" updatedAt: DateTime! @@ -32122,10 +34229,25 @@ input InventoryMoveQuantitiesInput { reason: String! """ - A freeform URI that represents why the inventory change happened. This can be the entity adjusting inventory - quantities or the Shopify resource that's associated with the inventory adjustment. For example, a unit in a - draft order might have been previously reserved, and a merchant later creates an order from the draft order. - In this case, the `referenceDocumentUri` for the inventory adjustment is a URI referencing the order ID. + A URI that represents why the inventory change happened, identifying the + source system and document that caused this adjustment. Enables complete audit + trails and brand visibility in Shopify admin inventory history. + + Preferred format - Global ID (GID): gid://[your-app-name]/[entity-type]/[id] + + Examples: + - gid://warehouse-app/PurchaseOrder/PO-2024-001 (stock received) + - gid://3pl-system/CycleCount/CC-2024-0125 (cycle count adjustment) + - gid://pos-app/Transaction/TXN-98765 (in-store sale) + - gid://erp-connector/SyncJob/SYNC-2024-11-21-001 (ERP sync) + - gid://shopify/Order/1234567890 (Shopify order reference) + + Benefits: Your app name appears directly in merchant inventory history, + reducing support tickets and providing clear audit trails for compliance. + + Alternative formats (also supported): https://myapp.com/documents/12345, custom-scheme://identifier + + Requirements: Valid URI with scheme and content. For GID format, all components (app, entity, id) must be present. """ referenceDocumentUri: String! @@ -32195,6 +34317,14 @@ enum InventoryMoveQuantitiesUserErrorCode { """The specified reference document is invalid.""" INVALID_REFERENCE_DOCUMENT + """The service is temporarily unavailable. Try again later.""" + SERVICE_UNAVAILABLE + + """ + The changeFromQuantity argument no longer matches the persisted quantity. + """ + CHANGE_FROM_QUANTITY_STALE + """The quantities couldn't be moved. Try again.""" MOVE_QUANTITIES_FAILED @@ -32216,6 +34346,14 @@ enum InventoryMoveQuantitiesUserErrorCode { The specified inventory item is not allowed to be adjusted via API. Example: if the inventory item is a parent bundle. """ NON_MUTABLE_INVENTORY_ITEM + + """This request is currently in progress, please try again.""" + IDEMPOTENCY_CONCURRENT_REQUEST + + """ + The same idempotency key cannot be used with different operation parameters. + """ + IDEMPOTENCY_KEY_PARAMETER_MISMATCH } """ @@ -32252,12 +34390,28 @@ input InventoryMoveQuantityTerminalInput { name: String! """ - A freeform URI that represents what changed the inventory quantities. A Shopify global ID isn't an accepted - value. For example, specifying "gid://shopify/Order/123" would return an error. This field is required for a move of - all quantity names except `available`. The field `ledgerDocumentUri` isn't supported for use with an - `available` quantity name. + A non-Shopify URI that identifies what specific inventory transaction or + ledger entry was changed. Represents the exact inventory movement being + referenced, distinct from the business reason for the change. + + Preferred format - Global ID (GID): gid://[your-app-name]/[transaction-type]/[id] + + Examples: + - gid://warehouse-app/InventoryTransaction/TXN-2024-001 (specific transaction) + - gid://3pl-system/StockMovement/SM-2024-0125 (stock movement record) + - gid://pos-app/InventoryUpdate/UPD-98765 (POS inventory update) + - gid://erp-connector/LedgerEntry/LE-2024-11-21-001 (ledger entry) + + Requirements: Valid non-Shopify URI with scheme and content. Required for all + quantity names except `available`. Cannot use gid://shopify/* format. """ ledgerDocumentUri: String + + """ + The quantity to compare against before applying the move. For more + information, refer to the [Compare and Swap documentation](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states#compare-and-swap). + """ + changeFromQuantity: Int } """General inventory properties for the shop.""" @@ -32267,22 +34421,37 @@ type InventoryProperties { } """ -Represents a quantity of an inventory item at a specific location, for a specific name. +The `InventoryQuantity` object lets you manage and track inventory quantities for specific [states](https://shopify.dev/docs/apps/fulfillment/inventory-management-apps#inventory-states). +Inventory quantities represent different states of items such as available for +purchase, committed to orders, reserved for drafts, incoming from suppliers, or +set aside for quality control or safety stock. + +You can use [inventory levels](https://shopify.dev/docs/api/admin-graphql/latest/objects/inventorylevel) +to manage where inventory items are stocked. You can also [make inventory adjustments](https://shopify.dev/docs/api/admin-graphql/latest/mutations/inventoryAdjustQuantities) +to apply changes to inventory quantities. + +Inventory quantities can be managed by a merchant or by [fulfillment services](https://shopify.dev/docs/api/admin-graphql/latest/objects/fulfillmentservice) +that handle inventory tracking. +Learn more about working with [Shopify's inventory management +system](https://shopify.dev/docs/apps/fulfillment/inventory-management-apps). """ type InventoryQuantity implements Node { """A globally-unique ID.""" id: ID! """ - The [name](https://shopify.dev/docs/apps/fulfillment/inventory-management-apps#inventory-states) + The inventory state [name](https://shopify.dev/docs/apps/fulfillment/inventory-management-apps#inventory-states) that identifies the inventory quantity. """ name: String! - """The quantity for the quantity name.""" + """ + The quantity of an inventory item at a specific location, for a quantity + [name](https://shopify.dev/docs/apps/fulfillment/inventory-management-apps#inventory-states). + """ quantity: Int! - """When the quantity was last updated.""" + """When the inventory quantity was last updated.""" updatedAt: DateTime } @@ -32299,8 +34468,15 @@ input InventoryQuantityInput { """The quantity to which the inventory quantity will be set.""" quantity: Int! - """The current quantity to be compared against the persisted quantity.""" - compareQuantity: Int + """ + The current quantity to be compared against the persisted quantity. + Explicitly passing in `null` to this field opts out of the quantity comparison check. + Explicitly passing in any value (be it `null` or an integer) to `changeFromQuantity` will cause the values + passed into the `compareQuantity` and `InventorySetQuantitiesInput.ignoreCompareQuantity` fields to be + ignored in favour of the `changeFromQuantity` value. For more information, + refer to the [Compare and Swap documentation](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states#compare-and-swap). + """ + changeFromQuantity: Int } """Details about an individual quantity name.""" @@ -32429,7 +34605,21 @@ input InventoryScheduledChangeItemInput { """The ID of the location.""" locationId: ID! - """A freeform URI that represents what changed the inventory quantities.""" + """ + A non-Shopify URI that identifies what specific inventory transaction or + ledger entry was changed. Represents the exact inventory movement being + referenced, distinct from the business reason for the change. + + Preferred format - Global ID (GID): gid://[your-app-name]/[transaction-type]/[id] + + Examples: + - gid://warehouse-app/InventoryTransaction/TXN-2024-001 (specific transaction) + - gid://3pl-system/StockMovement/SM-2024-0125 (stock movement record) + - gid://pos-app/InventoryUpdate/UPD-98765 (POS inventory update) + - gid://erp-connector/LedgerEntry/LE-2024-11-21-001 (ledger entry) + + Requirements: Valid non-Shopify URI with scheme and content. Cannot use gid://shopify/* format. + """ ledgerDocumentUri: URL! """An array of all the scheduled changes for the item.""" @@ -32445,10 +34635,25 @@ input InventorySetOnHandQuantitiesInput { reason: String! """ - A freeform URI that represents why the inventory change happened. This can be the entity adjusting inventory - quantities or the Shopify resource that's associated with the inventory adjustment. For example, a unit in a - draft order might have been previously reserved, and a merchant later creates an order from the draft order. - In this case, the `referenceDocumentUri` for the inventory adjustment is a URI referencing the order ID. + A URI that represents why the inventory change happened, identifying the + source system and document that caused this adjustment. Enables complete audit + trails and brand visibility in Shopify admin inventory history. + + Preferred format - Global ID (GID): gid://[your-app-name]/[entity-type]/[id] + + Examples: + - gid://warehouse-app/PurchaseOrder/PO-2024-001 (stock received) + - gid://3pl-system/CycleCount/CC-2024-0125 (cycle count adjustment) + - gid://pos-app/Transaction/TXN-98765 (in-store sale) + - gid://erp-connector/SyncJob/SYNC-2024-11-21-001 (ERP sync) + - gid://shopify/Order/1234567890 (Shopify order reference) + + Benefits: Your app name appears directly in merchant inventory history, + reducing support tickets and providing clear audit trails for compliance. + + Alternative formats (also supported): https://myapp.com/documents/12345, custom-scheme://identifier + + Requirements: Valid URI with scheme and content. For GID format, all components (app, entity, id) must be present. """ referenceDocumentUri: String @@ -32498,6 +34703,11 @@ enum InventorySetOnHandQuantitiesUserErrorCode { """The specified reference document is invalid.""" INVALID_REFERENCE_DOCUMENT + """ + The changeFromQuantity argument no longer matches the persisted quantity. + """ + CHANGE_FROM_QUANTITY_STALE + """The on-hand quantities couldn't be set. Try again.""" SET_ON_HAND_QUANTITIES_FAILED @@ -32511,6 +34721,20 @@ enum InventorySetOnHandQuantitiesUserErrorCode { """The total quantity can't be higher than 1,000,000,000.""" INVALID_QUANTITY_TOO_HIGH + + """The compareQuantity value does not match persisted value.""" + COMPARE_QUANTITY_STALE + + """The service is temporarily unavailable. Try again later.""" + SERVICE_UNAVAILABLE + + """This request is currently in progress, please try again.""" + IDEMPOTENCY_CONCURRENT_REQUEST + + """ + The same idempotency key cannot be used with different operation parameters. + """ + IDEMPOTENCY_KEY_PARAMETER_MISMATCH } """The input fields required to set inventory quantities.""" @@ -32527,18 +34751,30 @@ input InventorySetQuantitiesInput { name: String! """ - A freeform URI that represents why the inventory change happened. This can be the entity adjusting inventory - quantities or the Shopify resource that's associated with the inventory adjustment. For example, a unit in a - draft order might have been previously reserved, and a merchant later creates an order from the draft order. - In this case, the `referenceDocumentUri` for the inventory adjustment is a URI referencing the order ID. + A URI that represents why the inventory change happened, identifying the + source system and document that caused this adjustment. Enables complete audit + trails and brand visibility in Shopify admin inventory history. + + Preferred format - Global ID (GID): gid://[your-app-name]/[entity-type]/[id] + + Examples: + - gid://warehouse-app/PurchaseOrder/PO-2024-001 (stock received) + - gid://3pl-system/CycleCount/CC-2024-0125 (cycle count adjustment) + - gid://pos-app/Transaction/TXN-98765 (in-store sale) + - gid://erp-connector/SyncJob/SYNC-2024-11-21-001 (ERP sync) + - gid://shopify/Order/1234567890 (Shopify order reference) + + Benefits: Your app name appears directly in merchant inventory history, + reducing support tickets and providing clear audit trails for compliance. + + Alternative formats (also supported): https://myapp.com/documents/12345, custom-scheme://identifier + + Requirements: Valid URI with scheme and content. For GID format, all components (app, entity, id) must be present. """ referenceDocumentUri: String """The values to which each quantities will be set.""" quantities: [InventoryQuantityInput!]! - - """Skip the compare quantity check in the quantities field.""" - ignoreCompareQuantity: Boolean = false } """Return type for `inventorySetQuantities` mutation.""" @@ -32598,6 +34834,9 @@ enum InventorySetQuantitiesUserErrorCode { """The compareQuantity value does not match persisted value.""" COMPARE_QUANTITY_STALE + """The changeFromQuantity value does not match persisted value.""" + CHANGE_FROM_QUANTITY_STALE + """The quantity name must be either 'available' or 'on_hand'.""" INVALID_NAME @@ -32608,6 +34847,14 @@ enum InventorySetQuantitiesUserErrorCode { The specified inventory item is not allowed to be adjusted via API. Example: if the inventory item is a parent bundle. """ NON_MUTABLE_INVENTORY_ITEM + + """This request is currently in progress, please try again.""" + IDEMPOTENCY_CONCURRENT_REQUEST + + """ + The same idempotency key cannot be used with different operation parameters. + """ + IDEMPOTENCY_KEY_PARAMETER_MISMATCH } """ @@ -32622,6 +34869,12 @@ input InventorySetQuantityInput { """The quantity to which the inventory quantity will be set.""" quantity: Int! + + """ + The current quantity to be compared against the persisted quantity. For more + information, refer to the [Compare and Swap documentation](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states#compare-and-swap). + """ + changeFromQuantity: Int } """The input fields for setting up scheduled changes of inventory items.""" @@ -32635,10 +34888,25 @@ input InventorySetScheduledChangesInput { items: [InventoryScheduledChangeItemInput!]! """ - A freeform URI that represents why the inventory change happened. This can be the entity adjusting inventory - quantities or the Shopify resource that's associated with the inventory adjustment. For example, a unit in a - draft order might have been previously reserved, and a merchant later creates an order from the draft order. - In this case, the `referenceDocumentUri` for the inventory adjustment is a URI referencing the order ID. + A URI that represents why the inventory change happened, identifying the + source system and document that caused this adjustment. Enables complete audit + trails and brand visibility in Shopify admin inventory history. + + Preferred format - Global ID (GID): gid://[your-app-name]/[entity-type]/[id] + + Examples: + - gid://warehouse-app/PurchaseOrder/PO-2024-001 (stock received) + - gid://3pl-system/CycleCount/CC-2024-0125 (cycle count adjustment) + - gid://pos-app/Transaction/TXN-98765 (in-store sale) + - gid://erp-connector/SyncJob/SYNC-2024-11-21-001 (ERP sync) + - gid://shopify/Order/1234567890 (Shopify order reference) + + Benefits: Your app name appears directly in merchant inventory history, + reducing support tickets and providing clear audit trails for compliance. + + Alternative formats (also supported): https://myapp.com/documents/12345, custom-scheme://identifier + + Requirements: Valid URI with scheme and content. For GID format, all components (app, entity, id) must be present. """ referenceDocumentUri: URL! } @@ -32712,214 +34980,2122 @@ enum InventorySetScheduledChangesUserErrorCode { """The ledger document URI is invalid.""" LEDGER_DOCUMENT_INVALID -} - -""" -A job corresponds to some long running task that the client should poll for status. -""" -type Job { - """This indicates if the job is still queued or has been run.""" - done: Boolean! - """ - A globally-unique ID that's returned when running an asynchronous mutation. - """ - id: ID! + """This request is currently in progress, please try again.""" + IDEMPOTENCY_CONCURRENT_REQUEST """ - This field will only resolve once the job is done. Can be used to ask for object(s) that have been changed by the job. + The same idempotency key cannot be used with different operation parameters. """ - query: Query + IDEMPOTENCY_KEY_PARAMETER_MISMATCH } -""" -A job corresponds to some long running task that the client should poll for status. -""" -interface JobResult { - """This indicates if the job is still queued or has been run.""" - done: Boolean! +"""Represents an inventory shipment.""" +type InventoryShipment implements Node { + """The date the shipment was created in UTC.""" + dateCreated: DateTime - """ - A globally-unique ID that's returned when running an asynchronous mutation. - """ + """The date the shipment was initially received in UTC.""" + dateReceived: DateTime + + """The date the shipment was shipped in UTC.""" + dateShipped: DateTime + + """A globally-unique ID.""" id: ID! -} -""" -A [JSON](https://www.json.org/json-en.html) object. + """The total quantity of all items in the shipment.""" + lineItemTotalQuantity: Int! -Example value: -`{ - "product": { - "id": "gid://shopify/Product/1346443542550", - "title": "White T-shirt", - "options": [{ - "name": "Size", - "values": ["M", "L"] - }] - } -}` + """The line items included in this shipment.""" + lineItems( + """ + The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + first: Int -""" -scalar JSON + """ + The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + after: String -"""Language codes supported by Shopify.""" -enum LanguageCode { - """Afrikaans.""" - AF + """ + The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + last: Int - """Akan.""" - AK + """ + The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + before: String - """Amharic.""" - AM + """Reverse the order of the underlying list.""" + reverse: Boolean = false - """Arabic.""" - AR + """ + Sort the underlying list using a key. If your query is slow or returns an + error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). + """ + sortKey: ShipmentLineItemSortKeys = ID - """Assamese.""" - AS + """ + A filter made up of terms, connectives, modifiers, and comparators. + | name | type | description | acceptable_values | default_value | example_use | + | ---- | ---- | ---- | ---- | ---- | ---- | + | default | string | Filter by a case-insensitive search of multiple fields + in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | + | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | + You can apply one or more filters to a query. Learn more about [Shopify API + search syntax](https://shopify.dev/api/usage/search-syntax). + + """ + query: String + ): InventoryShipmentLineItemConnection - """Azerbaijani.""" - AZ + """ + The number of line items associated with the inventory shipment. Limited to a maximum of 10000 by default. + """ + lineItemsCount( + """ + A filter made up of terms, connectives, modifiers, and comparators. + | name | type | description | acceptable_values | default_value | example_use | + | ---- | ---- | ---- | ---- | ---- | ---- | + | default | string | Filter by a case-insensitive search of multiple fields + in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | + | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | + You can apply one or more filters to a query. Learn more about [Shopify API + search syntax](https://shopify.dev/api/usage/search-syntax). + + """ + query: String - """Belarusian.""" - BE + """ + The upper bound on count value before returning a result. Use `null` to have no limit. + """ + limit: Int = 10000 + ): Count - """Bulgarian.""" - BG + """The name of the inventory shipment.""" + name: String! - """Bambara.""" - BM + """The current status of the shipment.""" + status: InventoryShipmentStatus! - """Bangla.""" - BN + """ + The total quantity of items accepted across all line items in this shipment. + """ + totalAcceptedQuantity: Int! - """Tibetan.""" - BO + """ + The total quantity of items received (both accepted and rejected) across all line items in this shipment. + """ + totalReceivedQuantity: Int! - """Breton.""" - BR + """ + The total quantity of items rejected across all line items in this shipment. + """ + totalRejectedQuantity: Int! - """Bosnian.""" - BS + """The tracking information for the shipment.""" + tracking: InventoryShipmentTracking +} - """Catalan.""" - CA +"""Return type for `inventoryShipmentAddItems` mutation.""" +type InventoryShipmentAddItemsPayload { + """The list of added line items.""" + addedItems: [InventoryShipmentLineItem!] - """Chechen.""" - CE + """The inventory shipment with the added items.""" + inventoryShipment: InventoryShipment - """Central Kurdish.""" - CKB + """The list of errors that occurred from executing the mutation.""" + userErrors: [InventoryShipmentAddItemsUserError!]! +} - """Czech.""" - CS +""" +An error that occurs during the execution of `InventoryShipmentAddItems`. +""" +type InventoryShipmentAddItemsUserError implements DisplayableError { + """The error code.""" + code: InventoryShipmentAddItemsUserErrorCode - """Welsh.""" - CY + """The path to the input field that caused the error.""" + field: [String!] - """Danish.""" - DA + """The error message.""" + message: String! +} - """German.""" - DE +""" +Possible error codes that can be returned by `InventoryShipmentAddItemsUserError`. +""" +enum InventoryShipmentAddItemsUserErrorCode { + """The location selected can't be found.""" + LOCATION_NOT_FOUND - """Dzongkha.""" - DZ + """Current shipment status does not support this operation.""" + INVALID_SHIPMENT_STATUS - """Ewe.""" - EE + """A single item can't be listed twice.""" + DUPLICATE_ITEM - """Greek.""" - EL + """The quantity is invalid.""" + INVALID_QUANTITY - """English.""" - EN + """The item was not found.""" + ITEM_NOT_FOUND - """Esperanto.""" - EO + """The item is not stocked at the intended location.""" + INVENTORY_STATE_NOT_ACTIVE - """Spanish.""" - ES + """The item does not track inventory.""" + UNTRACKED_ITEM - """Estonian.""" - ET + """The shipment was not found.""" + SHIPMENT_NOT_FOUND - """Basque.""" - EU + """The location selected is not active.""" + LOCATION_NOT_ACTIVE - """Persian.""" - FA + """Failed to activate inventory at location.""" + ACTIVATION_FAILED - """Fulah.""" - FF + """This request is currently in progress, please try again.""" + IDEMPOTENCY_CONCURRENT_REQUEST - """Finnish.""" - FI + """ + The same idempotency key cannot be used with different operation parameters. + """ + IDEMPOTENCY_KEY_PARAMETER_MISMATCH +} - """Filipino.""" - FIL +""" +An auto-generated type for paginating through multiple InventoryShipments. +""" +type InventoryShipmentConnection { + """ + The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + """ + edges: [InventoryShipmentEdge!]! - """Faroese.""" - FO + """ + A list of nodes that are contained in InventoryShipmentEdge. You can fetch + data about an individual node, or you can follow the edges to fetch data about + a collection of related nodes. At each node, you specify the fields that you + want to retrieve. + """ + nodes: [InventoryShipment!]! - """French.""" - FR + """ + An object that’s used to retrieve [cursor + information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + """ + pageInfo: PageInfo! +} - """Western Frisian.""" - FY +"""The input fields to add a shipment.""" +input InventoryShipmentCreateInput { + """ + The ID of the inventory movement (transfer or purchase order) this shipment belongs to. + """ + movementId: ID! - """Irish.""" - GA + """The tracking information for the shipment.""" + trackingInput: InventoryShipmentTrackingInput - """Scottish Gaelic.""" - GD + """The list of line items for the inventory shipment.""" + lineItems: [InventoryShipmentLineItemInput!]! - """Galician.""" - GL + """The date the shipment was created.""" + dateCreated: DateTime +} - """Gujarati.""" - GU +"""Return type for `inventoryShipmentCreateInTransit` mutation.""" +type InventoryShipmentCreateInTransitPayload { + """The created inventory shipment.""" + inventoryShipment: InventoryShipment - """Manx.""" - GV + """The list of errors that occurred from executing the mutation.""" + userErrors: [InventoryShipmentCreateInTransitUserError!]! +} - """Hausa.""" - HA +""" +An error that occurs during the execution of `InventoryShipmentCreateInTransit`. +""" +type InventoryShipmentCreateInTransitUserError implements DisplayableError { + """The error code.""" + code: InventoryShipmentCreateInTransitUserErrorCode - """Hebrew.""" - HE + """The path to the input field that caused the error.""" + field: [String!] - """Hindi.""" - HI + """The error message.""" + message: String! +} - """Croatian.""" - HR +""" +Possible error codes that can be returned by `InventoryShipmentCreateInTransitUserError`. +""" +enum InventoryShipmentCreateInTransitUserErrorCode { + """A single item can't be listed twice.""" + DUPLICATE_ITEM - """Hungarian.""" - HU + """The quantity is invalid.""" + INVALID_QUANTITY - """Armenian.""" - HY + """The item was not found.""" + ITEM_NOT_FOUND - """Interlingua.""" - IA + """Current transfer status does not support this operation.""" + INVALID_TRANSFER_STATUS - """Indonesian.""" - ID + """The item does not track inventory.""" + UNTRACKED_ITEM - """Igbo.""" - IG + """The shipment input cannot be empty.""" + EMPTY_SHIPMENT_INPUT - """Sichuan Yi.""" - II + """The list of line items is empty.""" + ITEMS_EMPTY - """Icelandic.""" - IS + """The transfer was not found.""" + TRANSFER_NOT_FOUND - """Italian.""" - IT + """The URL is invalid.""" + INVALID_URL + + """The shipment input is invalid.""" + INVALID_SHIPMENT_INPUT + + """One or more items are not valid.""" + INVALID_ITEM + + """The item is not stocked at the intended location.""" + INVENTORY_STATE_NOT_ACTIVE + + """The location selected is not active.""" + LOCATION_NOT_ACTIVE + + """The shipment was not found.""" + SHIPMENT_NOT_FOUND + + """This request is currently in progress, please try again.""" + IDEMPOTENCY_CONCURRENT_REQUEST + + """ + The same idempotency key cannot be used with different operation parameters. + """ + IDEMPOTENCY_KEY_PARAMETER_MISMATCH +} + +"""Return type for `inventoryShipmentCreate` mutation.""" +type InventoryShipmentCreatePayload { + """The created inventory shipment.""" + inventoryShipment: InventoryShipment + + """The list of errors that occurred from executing the mutation.""" + userErrors: [InventoryShipmentCreateUserError!]! +} + +""" +An error that occurs during the execution of `InventoryShipmentCreate`. +""" +type InventoryShipmentCreateUserError implements DisplayableError { + """The error code.""" + code: InventoryShipmentCreateUserErrorCode + + """The path to the input field that caused the error.""" + field: [String!] + + """The error message.""" + message: String! +} + +""" +Possible error codes that can be returned by `InventoryShipmentCreateUserError`. +""" +enum InventoryShipmentCreateUserErrorCode { + """This barcode is already assigned to another shipment.""" + BARCODE_DUPLICATE + + """Barcode must be 255 characters or less.""" + BARCODE_TOO_LONG + + """The shipment input cannot be empty.""" + EMPTY_SHIPMENT_INPUT + + """The item was not found.""" + ITEM_NOT_FOUND + + """The transfer was not found.""" + TRANSFER_NOT_FOUND + + """Current transfer status does not support this operation.""" + INVALID_TRANSFER_STATUS + + """Bundled items cannot be used for this operation.""" + BUNDLED_ITEM + + """The quantity is invalid.""" + INVALID_QUANTITY + + """The item does not track inventory.""" + UNTRACKED_ITEM + + """A single item can't be listed twice.""" + DUPLICATE_ITEM + + """The shipment input is invalid.""" + INVALID_SHIPMENT_INPUT + + """One or more items are not valid.""" + INVALID_ITEM + + """The URL is invalid.""" + INVALID_URL + + """The location selected is not active.""" + LOCATION_NOT_ACTIVE + + """This request is currently in progress, please try again.""" + IDEMPOTENCY_CONCURRENT_REQUEST + + """ + The same idempotency key cannot be used with different operation parameters. + """ + IDEMPOTENCY_KEY_PARAMETER_MISMATCH + + """ + The idempotency record was found but the associated scheduled changes no longer exist. + """ + IDEMPOTENCY_RECORD_NOT_FOUND +} + +"""Return type for `inventoryShipmentDelete` mutation.""" +type InventoryShipmentDeletePayload { + """The ID of the inventory shipment that was deleted.""" + id: ID + + """The list of errors that occurred from executing the mutation.""" + userErrors: [InventoryShipmentDeleteUserError!]! +} + +""" +An error that occurs during the execution of `InventoryShipmentDelete`. +""" +type InventoryShipmentDeleteUserError implements DisplayableError { + """The error code.""" + code: InventoryShipmentDeleteUserErrorCode + + """The path to the input field that caused the error.""" + field: [String!] + + """The error message.""" + message: String! +} + +""" +Possible error codes that can be returned by `InventoryShipmentDeleteUserError`. +""" +enum InventoryShipmentDeleteUserErrorCode { + """The shipment was not found.""" + SHIPMENT_NOT_FOUND + + """Current shipment status does not support this operation.""" + INVALID_SHIPMENT_STATUS +} + +""" +An auto-generated type which holds one InventoryShipment and a cursor during pagination. +""" +type InventoryShipmentEdge { + """ + The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + """ + cursor: String! + + """The item at the end of InventoryShipmentEdge.""" + node: InventoryShipment! +} + +"""Represents a single line item within an inventory shipment.""" +type InventoryShipmentLineItem implements Node { + """The quantity of items that were accepted in this shipment line item.""" + acceptedQuantity: Int! + + """A globally-unique ID.""" + id: ID! + + """The inventory item associated with this line item.""" + inventoryItem: InventoryItem + + """The quantity of items in this shipment line item.""" + quantity: Int! + + """The quantity of items that were rejected in this shipment line item.""" + rejectedQuantity: Int! + + """ + The total quantity of units that haven't been received (neither accepted or rejected) in this shipment line item. + """ + unreceivedQuantity: Int! +} + +""" +An auto-generated type for paginating through multiple InventoryShipmentLineItems. +""" +type InventoryShipmentLineItemConnection { + """ + The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + """ + edges: [InventoryShipmentLineItemEdge!]! + + """ + A list of nodes that are contained in InventoryShipmentLineItemEdge. You can + fetch data about an individual node, or you can follow the edges to fetch data + about a collection of related nodes. At each node, you specify the fields that + you want to retrieve. + """ + nodes: [InventoryShipmentLineItem!]! + + """ + An object that’s used to retrieve [cursor + information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + """ + pageInfo: PageInfo! +} + +""" +An auto-generated type which holds one InventoryShipmentLineItem and a cursor during pagination. +""" +type InventoryShipmentLineItemEdge { + """ + The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + """ + cursor: String! + + """The item at the end of InventoryShipmentLineItemEdge.""" + node: InventoryShipmentLineItem! +} + +"""The input fields for a line item on an inventory shipment.""" +input InventoryShipmentLineItemInput { + """The inventory item ID for the shipment line item.""" + inventoryItemId: ID! + + """The quantity for the shipment line item.""" + quantity: Int! +} + +"""Return type for `inventoryShipmentMarkInTransit` mutation.""" +type InventoryShipmentMarkInTransitPayload { + """The marked in transit inventory shipment.""" + inventoryShipment: InventoryShipment + + """The list of errors that occurred from executing the mutation.""" + userErrors: [InventoryShipmentMarkInTransitUserError!]! +} + +""" +An error that occurs during the execution of `InventoryShipmentMarkInTransit`. +""" +type InventoryShipmentMarkInTransitUserError implements DisplayableError { + """The error code.""" + code: InventoryShipmentMarkInTransitUserErrorCode + + """The path to the input field that caused the error.""" + field: [String!] + + """The error message.""" + message: String! +} + +""" +Possible error codes that can be returned by `InventoryShipmentMarkInTransitUserError`. +""" +enum InventoryShipmentMarkInTransitUserErrorCode { + """The shipment was not found.""" + SHIPMENT_NOT_FOUND + + """Current shipment status does not support this operation.""" + INVALID_SHIPMENT_STATUS + + """The item was not found.""" + ITEM_NOT_FOUND + + """The item is not stocked at the intended location.""" + INVENTORY_STATE_NOT_ACTIVE + + """The item does not track inventory.""" + UNTRACKED_ITEM + + """The quantity is invalid.""" + INVALID_QUANTITY + + """The list of line items is empty.""" + ITEMS_EMPTY + + """The location selected is not active.""" + LOCATION_NOT_ACTIVE + + """Failed to activate inventory at location.""" + ACTIVATION_FAILED +} + +"""The input fields to receive an item on an inventory shipment.""" +input InventoryShipmentReceiveItemInput { + """The shipment line item ID to be received.""" + shipmentLineItemId: ID! + + """The quantity for the item to be received.""" + quantity: Int! + + """The reason for received item.""" + reason: InventoryShipmentReceiveLineItemReason! +} + +"""The reason for receiving a line item on an inventory shipment.""" +enum InventoryShipmentReceiveLineItemReason { + """The line item was accepted.""" + ACCEPTED + + """The line item was rejected.""" + REJECTED +} + +"""Return type for `inventoryShipmentReceive` mutation.""" +type InventoryShipmentReceivePayload { + """The inventory shipment with received items.""" + inventoryShipment: InventoryShipment + + """The list of errors that occurred from executing the mutation.""" + userErrors: [InventoryShipmentReceiveUserError!]! +} + +""" +An error that occurs during the execution of `InventoryShipmentReceive`. +""" +type InventoryShipmentReceiveUserError implements DisplayableError { + """The error code.""" + code: InventoryShipmentReceiveUserErrorCode + + """The path to the input field that caused the error.""" + field: [String!] + + """The error message.""" + message: String! +} + +""" +Possible error codes that can be returned by `InventoryShipmentReceiveUserError`. +""" +enum InventoryShipmentReceiveUserErrorCode { + """The location selected can't be found.""" + LOCATION_NOT_FOUND + + """This request is currently in progress, please try again.""" + IDEMPOTENCY_CONCURRENT_REQUEST + + """ + The same idempotency key cannot be used with different operation parameters. + """ + IDEMPOTENCY_KEY_PARAMETER_MISMATCH + + """Unexpected internal error happened.""" + INTERNAL_ERROR + + """Current shipment status does not support this operation.""" + INVALID_SHIPMENT_STATUS + + """The item is not stocked at the intended location.""" + INVENTORY_STATE_NOT_ACTIVE + + """The shipment was not found.""" + SHIPMENT_NOT_FOUND + + """The quantity is invalid.""" + INVALID_QUANTITY + + """The item was not found.""" + ITEM_NOT_FOUND + + """The location selected is not active.""" + LOCATION_NOT_ACTIVE +} + +"""Return type for `inventoryShipmentRemoveItems` mutation.""" +type InventoryShipmentRemoveItemsPayload { + """The inventory shipment with items removed.""" + inventoryShipment: InventoryShipment + + """The list of errors that occurred from executing the mutation.""" + userErrors: [InventoryShipmentRemoveItemsUserError!]! +} + +""" +An error that occurs during the execution of `InventoryShipmentRemoveItems`. +""" +type InventoryShipmentRemoveItemsUserError implements DisplayableError { + """The error code.""" + code: InventoryShipmentRemoveItemsUserErrorCode + + """The path to the input field that caused the error.""" + field: [String!] + + """The error message.""" + message: String! +} + +""" +Possible error codes that can be returned by `InventoryShipmentRemoveItemsUserError`. +""" +enum InventoryShipmentRemoveItemsUserErrorCode { + """The location selected can't be found.""" + LOCATION_NOT_FOUND + + """Unexpected internal error happened.""" + INTERNAL_ERROR + + """The shipment was not found.""" + SHIPMENT_NOT_FOUND + + """The item was not found.""" + ITEM_NOT_FOUND + + """Current shipment status does not support this operation.""" + INVALID_SHIPMENT_STATUS + + """The location selected is not active.""" + LOCATION_NOT_ACTIVE +} + +"""Return type for `inventoryShipmentSetTracking` mutation.""" +type InventoryShipmentSetTrackingPayload { + """The inventory shipment with the edited tracking info.""" + inventoryShipment: InventoryShipment + + """The list of errors that occurred from executing the mutation.""" + userErrors: [InventoryShipmentSetTrackingUserError!]! +} + +""" +An error that occurs during the execution of `InventoryShipmentSetTracking`. +""" +type InventoryShipmentSetTrackingUserError implements DisplayableError { + """The error code.""" + code: InventoryShipmentSetTrackingUserErrorCode + + """The path to the input field that caused the error.""" + field: [String!] + + """The error message.""" + message: String! +} + +""" +Possible error codes that can be returned by `InventoryShipmentSetTrackingUserError`. +""" +enum InventoryShipmentSetTrackingUserErrorCode { + """The shipment was not found.""" + SHIPMENT_NOT_FOUND + + """The URL is invalid.""" + INVALID_URL +} + +"""The status of an inventory shipment.""" +enum InventoryShipmentStatus { + """The inventory shipment has been created but not yet shipped.""" + DRAFT + + """The inventory shipment is currently in transit.""" + IN_TRANSIT + + """The inventory shipment has been partially received at the destination.""" + PARTIALLY_RECEIVED + + """ + The inventory shipment has been completely received at the destination. + """ + RECEIVED + + """Status not included in the current enumeration set.""" + OTHER +} + +"""Represents the tracking information for an inventory shipment.""" +type InventoryShipmentTracking { + """The estimated date and time that the shipment will arrive.""" + arrivesAt: DateTime + + """The name of the shipping carrier company.""" + company: String + + """The tracking number used by the carrier to identify the shipment.""" + trackingNumber: String + + """ + The URL to track the shipment. + + Given a tracking number and a shipping carrier company name from + [the list](https://shopify.dev/api/admin-graphql/latest/objects/FulfillmentTrackingInfo#field-company), + Shopify will return a generated tracking URL if no tracking URL was set manually. + """ + trackingUrl: URL +} + +"""The input fields for an inventory shipment's tracking information.""" +input InventoryShipmentTrackingInput { + """The tracking number for the shipment.""" + trackingNumber: String + + """ + The name of the shipping carrier company. + + Given a shipping carrier company name from + [the list](https://shopify.dev/api/admin-graphql/latest/objects/FulfillmentTrackingInfo#field-company), + Shopify can build a tracking URL for a provided tracking number. + """ + company: String + + """ + The URL to track the shipment. + + Use this field to specify a custom tracking URL. If no custom tracking URL is set, Shopify will automatically provide + this field on query for a tracking number and a supported shipping carrier company from + [the list](https://shopify.dev/api/admin-graphql/latest/objects/FulfillmentTrackingInfo#field-company). + """ + trackingUrl: URL + + """The estimated date and time that the shipment will arrive.""" + arrivesAt: DateTime +} + +"""The input fields for a line item on an inventory shipment.""" +input InventoryShipmentUpdateItemQuantitiesInput { + """The ID for the inventory shipment line item.""" + shipmentLineItemId: ID! + + """The quantity for the shipment line item.""" + quantity: Int! +} + +"""Return type for `inventoryShipmentUpdateItemQuantities` mutation.""" +type InventoryShipmentUpdateItemQuantitiesPayload { + """The inventory shipment with updated item quantities.""" + shipment: InventoryShipment + + """The updated item quantities.""" + updatedLineItems: [InventoryShipmentLineItem!] + + """The list of errors that occurred from executing the mutation.""" + userErrors: [InventoryShipmentUpdateItemQuantitiesUserError!]! +} + +""" +An error that occurs during the execution of `InventoryShipmentUpdateItemQuantities`. +""" +type InventoryShipmentUpdateItemQuantitiesUserError implements DisplayableError { + """The error code.""" + code: InventoryShipmentUpdateItemQuantitiesUserErrorCode + + """The path to the input field that caused the error.""" + field: [String!] + + """The error message.""" + message: String! +} + +""" +Possible error codes that can be returned by `InventoryShipmentUpdateItemQuantitiesUserError`. +""" +enum InventoryShipmentUpdateItemQuantitiesUserErrorCode { + """The location selected can't be found.""" + LOCATION_NOT_FOUND + + """The shipment was not found.""" + SHIPMENT_NOT_FOUND + + """The item was not found.""" + ITEM_NOT_FOUND + + """The quantity is invalid.""" + INVALID_QUANTITY + + """Current shipment status does not support this operation.""" + INVALID_SHIPMENT_STATUS + + """The location selected is not active.""" + LOCATION_NOT_ACTIVE +} + +""" +Tracks the movement of [`InventoryItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryItem) +objects between +[`Location`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location) +objects. A transfer includes origin and destination information, [`InventoryTransferLineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryTransferLineItem) +objects with quantities, and shipment details. + +Transfers progress through multiple [`statuses`](https://shopify.dev/docs/api/admin-graphql/latest/enums/InventoryTransferStatus). +The transfer maintains [`LocationSnapshot`](https://shopify.dev/docs/api/admin-graphql/latest/objects/LocationSnapshot) +objects of location details to preserve historical data even if locations change +or are deleted later. +""" +type InventoryTransfer implements CommentEventSubject & HasEvents & HasMetafieldDefinitions & HasMetafields & Node { + """The date and time the inventory transfer was created in UTC format.""" + dateCreated: DateTime + + """ + Snapshot of the destination location (name, address, when snapped) with an + optional link to the live Location object. If the original location is + deleted, the snapshot data will still be available but the location link will be nil. + """ + destination: LocationSnapshot + + """The list of events associated with the inventory transfer.""" + events( + """ + The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + first: Int + + """ + The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + after: String + + """ + The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + last: Int + + """ + The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + before: String + + """Reverse the order of the underlying list.""" + reverse: Boolean = false + + """ + Sort the underlying list using a key. If your query is slow or returns an + error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). + """ + sortKey: EventSortKeys = ID + + """ + A filter made up of terms, connectives, modifiers, and comparators. + | name | type | description | acceptable_values | default_value | example_use | + | ---- | ---- | ---- | ---- | ---- | ---- | + | action | string | The action that occured. | | | - `action:create` | + | comments | boolean | Whether or not to include [comment-events](https://shopify.dev/api/admin-graphql/latest/objects/CommentEvent) + in your search, passing `false` will exclude comment-events, any other value + will include comment-events. | | | - `false`
- `true` | + | created_at | time | Filter by the date and time when the event occurred. + Event data is retained for 1 year. | | | - `created_at:>2025-10-21`
- + `created_at: - `id:>=1234`
- `id:<=1234` | + | subject_type | string | The resource type affected by this event. See [EventSubjectType](https://shopify.dev/api/admin-graphql/latest/enums/EventSubjectType) + for possible values. | | | - `PRODUCT_VARIANT`
- `PRODUCT`
- `COLLECTION` | + You can apply one or more filters to a query. Learn more about [Shopify API + search syntax](https://shopify.dev/api/usage/search-syntax). + + """ + query: String + ): EventConnection! + + """ + Whether the merchant has added timeline comments to the inventory transfer. + """ + hasTimelineComment: Boolean! + + """A globally-unique ID.""" + id: ID! + + """The line items associated with the inventory transfer.""" + lineItems( + """ + The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + first: Int + + """ + The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + after: String + + """ + The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + last: Int + + """ + The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + before: String + + """Reverse the order of the underlying list.""" + reverse: Boolean = false + + """ + A filter made up of terms, connectives, modifiers, and comparators. + | name | type | description | acceptable_values | default_value | example_use | + | ---- | ---- | ---- | ---- | ---- | ---- | + | default | string | Filter by a case-insensitive search of multiple fields + in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | + | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | + You can apply one or more filters to a query. Learn more about [Shopify API + search syntax](https://shopify.dev/api/usage/search-syntax). + + """ + query: String + ): InventoryTransferLineItemConnection! + + """ + The number of line items associated with the inventory transfer. Limited to a maximum of 10000 by default. + """ + lineItemsCount( + """ + A filter made up of terms, connectives, modifiers, and comparators. + | name | type | description | acceptable_values | default_value | example_use | + | ---- | ---- | ---- | ---- | ---- | ---- | + | default | string | Filter by a case-insensitive search of multiple fields + in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | + | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | + You can apply one or more filters to a query. Learn more about [Shopify API + search syntax](https://shopify.dev/api/usage/search-syntax). + + """ + query: String + + """ + The upper bound on count value before returning a result. Use `null` to have no limit. + """ + limit: Int = 10000 + ): Count + + """ + A [custom field](https://shopify.dev/docs/apps/build/custom-data), + including its `namespace` and `key`, that's associated with a Shopify resource + for the purposes of adding and storing additional information. + """ + metafield( + """ + The container the metafield belongs to. If omitted, the app-reserved namespace will be used. + """ + namespace: String + + """The key for the metafield.""" + key: String! + ): Metafield + + """List of metafield definitions.""" + metafieldDefinitions( + """Filter metafield definitions by namespace.""" + namespace: String + + """Filter by the definition's pinned status.""" + pinnedStatus: MetafieldDefinitionPinnedStatus = ANY + + """ + The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + first: Int + + """ + The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + after: String + + """ + The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + last: Int + + """ + The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + before: String + + """Reverse the order of the underlying list.""" + reverse: Boolean = false + + """ + Sort the underlying list using a key. If your query is slow or returns an + error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). + """ + sortKey: MetafieldDefinitionSortKeys = ID + + """ + A filter made up of terms, connectives, modifiers, and comparators. + | name | type | description | acceptable_values | default_value | example_use | + | ---- | ---- | ---- | ---- | ---- | ---- | + | default | string | Filter by a case-insensitive search of multiple fields + in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | + | created_at | time | Filter by the date and time when the metafield + definition was created. | | | - `created_at:>2020-10-21T23:39:20Z`
- + `created_at: - `created_at:<=2024` | + | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | + | key | string | Filter by the metafield definition [`key`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-key) + field. | | | - `key:some-key` | + | namespace | string | Filter by the metafield definition [`namespace`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-namespace) + field. | | | - `namespace:some-namespace` | + | owner_type | string | Filter by the metafield definition [`ownerType`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-ownertype) + field. | | | - `owner_type:PRODUCT` | + | type | string | Filter by the metafield definition [`type`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-type) + field. | | | - `type:single_line_text_field` | + | updated_at | time | Filter by the date and time when the metafield + definition was last updated. | | | - `updated_at:>2020-10-21T23:39:20Z`
+ - `updated_at: - `updated_at:<=2024` | + You can apply one or more filters to a query. Learn more about [Shopify API + search syntax](https://shopify.dev/api/usage/search-syntax). + + """ + query: String + ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use `Query.metafieldDefinitions` instead.") + + """ + A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) + that a merchant associates with a Shopify resource. + """ + metafields( + """ + The metafield namespace to filter by. If omitted, all metafields are returned. + """ + namespace: String + + """ + List of keys of metafields in the format `namespace.key`, will be returned in the same format. + """ + keys: [String!] + + """ + The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + first: Int + + """ + The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + after: String + + """ + The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + last: Int + + """ + The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + before: String + + """Reverse the order of the underlying list.""" + reverse: Boolean = false + ): MetafieldConnection! + + """The name of the inventory transfer.""" + name: String! + + """Additional note attached to the inventory transfer.""" + note: String + + """ + Snapshot of the origin location (name, address, when snapped) with an optional + link to the live Location object. If the original location is deleted, the + snapshot data will still be available but the location link will be nil. + """ + origin: LocationSnapshot + + """The total quantity of items received in the transfer.""" + receivedQuantity: Int! + + """The reference name of the inventory transfer.""" + referenceName: String + + """The shipments associated with the inventory transfer.""" + shipments( + """ + The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + first: Int + + """ + The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + after: String + + """ + The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + last: Int + + """ + The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + before: String + + """Reverse the order of the underlying list.""" + reverse: Boolean = false + ): InventoryShipmentConnection! + + """The current status of the transfer.""" + status: InventoryTransferStatus! + + """A list of tags that have been added to the inventory transfer.""" + tags: [String!]! + + """The total quantity of items being transferred.""" + totalQuantity: Int! +} + +"""Return type for `inventoryTransferCancel` mutation.""" +type InventoryTransferCancelPayload { + """The cancelled inventory transfer.""" + inventoryTransfer: InventoryTransfer + + """The list of errors that occurred from executing the mutation.""" + userErrors: [InventoryTransferCancelUserError!]! +} + +""" +An error that occurs during the execution of `InventoryTransferCancel`. +""" +type InventoryTransferCancelUserError implements DisplayableError { + """The error code.""" + code: InventoryTransferCancelUserErrorCode + + """The path to the input field that caused the error.""" + field: [String!] + + """The error message.""" + message: String! +} + +""" +Possible error codes that can be returned by `InventoryTransferCancelUserError`. +""" +enum InventoryTransferCancelUserErrorCode { + """The transfer was not found.""" + TRANSFER_NOT_FOUND + + """Current transfer status does not support this operation.""" + INVALID_TRANSFER_STATUS + + """Shipment already exists for the transfer.""" + SHIPMENT_EXISTS +} + +""" +An auto-generated type for paginating through multiple InventoryTransfers. +""" +type InventoryTransferConnection { + """ + The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + """ + edges: [InventoryTransferEdge!]! + + """ + A list of nodes that are contained in InventoryTransferEdge. You can fetch + data about an individual node, or you can follow the edges to fetch data about + a collection of related nodes. At each node, you specify the fields that you + want to retrieve. + """ + nodes: [InventoryTransfer!]! + + """ + An object that’s used to retrieve [cursor + information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + """ + pageInfo: PageInfo! +} + +"""The input fields to create an inventory transfer.""" +input InventoryTransferCreateAsReadyToShipInput { + """The origin location for the inventory transfer.""" + originLocationId: ID + + """The destination location for the inventory transfer.""" + destinationLocationId: ID + + """The list of line items for the inventory transfer.""" + lineItems: [InventoryTransferLineItemInput!]! = [] + + """ + The date and time the inventory transfer was created. If left blank, defaults to the current date and time in UTC format. + """ + dateCreated: DateTime + + """A note to add to the Inventory Transfer.""" + note: String + + """The tags to add to the inventory transfer.""" + tags: [String!] + + """The reference name to add to the inventory transfer.""" + referenceName: String +} + +"""Return type for `inventoryTransferCreateAsReadyToShip` mutation.""" +type InventoryTransferCreateAsReadyToShipPayload { + """The created inventory transfer.""" + inventoryTransfer: InventoryTransfer + + """The list of errors that occurred from executing the mutation.""" + userErrors: [InventoryTransferCreateAsReadyToShipUserError!]! +} + +""" +An error that occurs during the execution of `InventoryTransferCreateAsReadyToShip`. +""" +type InventoryTransferCreateAsReadyToShipUserError implements DisplayableError { + """The error code.""" + code: InventoryTransferCreateAsReadyToShipUserErrorCode + + """The path to the input field that caused the error.""" + field: [String!] + + """The error message.""" + message: String! +} + +""" +Possible error codes that can be returned by `InventoryTransferCreateAsReadyToShipUserError`. +""" +enum InventoryTransferCreateAsReadyToShipUserErrorCode { + """The transfer was not found.""" + TRANSFER_NOT_FOUND + + """The list of line items is empty.""" + ITEMS_EMPTY + + """Current transfer status does not support this operation.""" + INVALID_TRANSFER_STATUS + + """The location selected is not active.""" + LOCATION_NOT_ACTIVE + + """The location selected can't be found.""" + LOCATION_NOT_FOUND + + """The origin location cannot be the same as the destination location.""" + TRANSFER_ORIGIN_CANNOT_BE_THE_SAME_AS_DESTINATION + + """The tag exceeds the maximum length.""" + TAG_EXCEEDS_MAX_LENGTH + + """A location is required for this operation.""" + LOCATION_REQUIRED + + """This request is currently in progress, please try again.""" + IDEMPOTENCY_CONCURRENT_REQUEST + + """ + The same idempotency key cannot be used with different operation parameters. + """ + IDEMPOTENCY_KEY_PARAMETER_MISMATCH + + """Bundled items cannot be used for this operation.""" + BUNDLED_ITEM + + """The item does not track inventory.""" + UNTRACKED_ITEM + + """The item was not found.""" + ITEM_NOT_FOUND + + """The quantity is invalid.""" + INVALID_QUANTITY + + """A single item can't be listed twice.""" + DUPLICATE_ITEM + + """The item is not stocked at the intended location.""" + INVENTORY_STATE_NOT_ACTIVE +} + +"""The input fields to create an inventory transfer.""" +input InventoryTransferCreateInput { + """The origin location for the inventory transfer.""" + originLocationId: ID + + """The destination location for the inventory transfer.""" + destinationLocationId: ID + + """The list of line items for the inventory transfer.""" + lineItems: [InventoryTransferLineItemInput!]! = [] + + """ + The date and time the inventory transfer was created. If left blank, defaults to the current date and time in UTC format. + """ + dateCreated: DateTime + + """A note to add to the Inventory Transfer.""" + note: String + + """The tags to add to the inventory transfer.""" + tags: [String!] + + """The reference name to add to the inventory transfer.""" + referenceName: String +} + +"""Return type for `inventoryTransferCreate` mutation.""" +type InventoryTransferCreatePayload { + """The created inventory transfer.""" + inventoryTransfer: InventoryTransfer + + """The list of errors that occurred from executing the mutation.""" + userErrors: [InventoryTransferCreateUserError!]! +} + +""" +An error that occurs during the execution of `InventoryTransferCreate`. +""" +type InventoryTransferCreateUserError implements DisplayableError { + """The error code.""" + code: InventoryTransferCreateUserErrorCode + + """The path to the input field that caused the error.""" + field: [String!] + + """The error message.""" + message: String! +} + +""" +Possible error codes that can be returned by `InventoryTransferCreateUserError`. +""" +enum InventoryTransferCreateUserErrorCode { + """The transfer was not found.""" + TRANSFER_NOT_FOUND + + """The location selected can't be found.""" + LOCATION_NOT_FOUND + + """The location selected is not active.""" + LOCATION_NOT_ACTIVE + + """The origin location cannot be the same as the destination location.""" + TRANSFER_ORIGIN_CANNOT_BE_THE_SAME_AS_DESTINATION + + """The tag exceeds the maximum length.""" + TAG_EXCEEDS_MAX_LENGTH + + """This request is currently in progress, please try again.""" + IDEMPOTENCY_CONCURRENT_REQUEST + + """ + The same idempotency key cannot be used with different operation parameters. + """ + IDEMPOTENCY_KEY_PARAMETER_MISMATCH + + """Bundled items cannot be used for this operation.""" + BUNDLED_ITEM + + """The item does not track inventory.""" + UNTRACKED_ITEM + + """The item was not found.""" + ITEM_NOT_FOUND + + """The quantity is invalid.""" + INVALID_QUANTITY + + """A single item can't be listed twice.""" + DUPLICATE_ITEM + + """The item is not stocked at the intended location.""" + INVENTORY_STATE_NOT_ACTIVE +} + +"""Return type for `inventoryTransferDelete` mutation.""" +type InventoryTransferDeletePayload { + """The ID of the deleted inventory transfer.""" + deletedId: ID + + """The list of errors that occurred from executing the mutation.""" + userErrors: [InventoryTransferDeleteUserError!]! +} + +""" +An error that occurs during the execution of `InventoryTransferDelete`. +""" +type InventoryTransferDeleteUserError implements DisplayableError { + """The error code.""" + code: InventoryTransferDeleteUserErrorCode + + """The path to the input field that caused the error.""" + field: [String!] + + """The error message.""" + message: String! +} + +""" +Possible error codes that can be returned by `InventoryTransferDeleteUserError`. +""" +enum InventoryTransferDeleteUserErrorCode { + """The transfer was not found.""" + TRANSFER_NOT_FOUND + + """Current transfer status does not support this operation.""" + INVALID_TRANSFER_STATUS +} + +"""Return type for `inventoryTransferDuplicate` mutation.""" +type InventoryTransferDuplicatePayload { + """The duplicated inventory transfer.""" + inventoryTransfer: InventoryTransfer + + """The list of errors that occurred from executing the mutation.""" + userErrors: [InventoryTransferDuplicateUserError!]! +} + +""" +An error that occurs during the execution of `InventoryTransferDuplicate`. +""" +type InventoryTransferDuplicateUserError implements DisplayableError { + """The error code.""" + code: InventoryTransferDuplicateUserErrorCode + + """The path to the input field that caused the error.""" + field: [String!] + + """The error message.""" + message: String! +} + +""" +Possible error codes that can be returned by `InventoryTransferDuplicateUserError`. +""" +enum InventoryTransferDuplicateUserErrorCode { + """The transfer was not found.""" + TRANSFER_NOT_FOUND + + """This request is currently in progress, please try again.""" + IDEMPOTENCY_CONCURRENT_REQUEST + + """ + The same idempotency key cannot be used with different operation parameters. + """ + IDEMPOTENCY_KEY_PARAMETER_MISMATCH +} + +""" +An auto-generated type which holds one InventoryTransfer and a cursor during pagination. +""" +type InventoryTransferEdge { + """ + The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + """ + cursor: String! + + """The item at the end of InventoryTransferEdge.""" + node: InventoryTransfer! +} + +"""The input fields to edit an inventory transfer.""" +input InventoryTransferEditInput { + """ + The origin location for the inventory transfer. The origin location can only be changed + for draft transfers. + """ + originId: ID + + """ + The destination location for the inventory transfer. The destination location can only be + changed for draft transfers. + """ + destinationId: ID + + """The date the inventory transfer was created.""" + dateCreated: Date + + """A note to add to the Inventory Transfer.""" + note: String + + """The tags to add to the inventory transfer.""" + tags: [String!] + + """The reference name to add to the inventory transfer.""" + referenceName: String +} + +"""Return type for `inventoryTransferEdit` mutation.""" +type InventoryTransferEditPayload { + """The edited inventory transfer.""" + inventoryTransfer: InventoryTransfer + + """The list of errors that occurred from executing the mutation.""" + userErrors: [InventoryTransferEditUserError!]! +} + +"""An error that occurs during the execution of `InventoryTransferEdit`.""" +type InventoryTransferEditUserError implements DisplayableError { + """The error code.""" + code: InventoryTransferEditUserErrorCode + + """The path to the input field that caused the error.""" + field: [String!] + + """The error message.""" + message: String! +} + +""" +Possible error codes that can be returned by `InventoryTransferEditUserError`. +""" +enum InventoryTransferEditUserErrorCode { + """Unexpected internal error happened.""" + INTERNAL_ERROR + + """The transfer was not found.""" + TRANSFER_NOT_FOUND + + """ + The location of a transfer cannot be updated. Only Draft Transfers can mutate their locations. + """ + TRANSFER_LOCATION_IMMUTABLE + + """The origin location cannot be the same as the destination location.""" + TRANSFER_ORIGIN_CANNOT_BE_THE_SAME_AS_DESTINATION + + """The location selected is not active.""" + LOCATION_NOT_ACTIVE + + """The location selected can't be found.""" + LOCATION_NOT_FOUND + + """The item is not stocked at the intended location.""" + INVENTORY_STATE_NOT_ACTIVE + + """The tag exceeds the maximum length.""" + TAG_EXCEEDS_MAX_LENGTH +} + +"""Represents a line item belonging to an inventory transfer.""" +type InventoryTransferLineItem implements Node { + """A globally-unique ID.""" + id: ID! + + """The inventory item associated with this line item.""" + inventoryItem: InventoryItem + + """ + The quantity of the item that has been picked for a draft shipment but not yet shipped. + """ + pickedForShipmentQuantity: Int! + + """ + The quantity of the item that can be actioned upon, such as editing the item + quantity on the transfer or adding to a shipment. + """ + processableQuantity: Int! + + """The quantity of the item that can be shipped.""" + shippableQuantity: Int! + + """The quantity of the item that has been shipped.""" + shippedQuantity: Int! + + """The title of the product associated with this line item.""" + title: String + + """The total quantity of items being transferred.""" + totalQuantity: Int! +} + +""" +An auto-generated type for paginating through multiple InventoryTransferLineItems. +""" +type InventoryTransferLineItemConnection { + """ + The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + """ + edges: [InventoryTransferLineItemEdge!]! + + """ + A list of nodes that are contained in InventoryTransferLineItemEdge. You can + fetch data about an individual node, or you can follow the edges to fetch data + about a collection of related nodes. At each node, you specify the fields that + you want to retrieve. + """ + nodes: [InventoryTransferLineItem!]! + + """ + An object that’s used to retrieve [cursor + information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + """ + pageInfo: PageInfo! +} + +""" +An auto-generated type which holds one InventoryTransferLineItem and a cursor during pagination. +""" +type InventoryTransferLineItemEdge { + """ + The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + """ + cursor: String! + + """The item at the end of InventoryTransferLineItemEdge.""" + node: InventoryTransferLineItem! +} + +"""The input fields for a line item on an inventory transfer.""" +input InventoryTransferLineItemInput { + """The inventory item ID for the transfer line item.""" + inventoryItemId: ID! + + """The quantity for the transfer line item.""" + quantity: Int! +} + +"""Represents an update to a single transfer line item.""" +type InventoryTransferLineItemUpdate { + """The delta quantity for the transfer line item.""" + deltaQuantity: Int + + """The inventory item ID for the transfer line item.""" + inventoryItemId: ID + + """The new quantity for the transfer line item.""" + newQuantity: Int +} + +"""Return type for `inventoryTransferMarkAsReadyToShip` mutation.""" +type InventoryTransferMarkAsReadyToShipPayload { + """The ready to ship inventory transfer.""" + inventoryTransfer: InventoryTransfer + + """The list of errors that occurred from executing the mutation.""" + userErrors: [InventoryTransferMarkAsReadyToShipUserError!]! +} + +""" +An error that occurs during the execution of `InventoryTransferMarkAsReadyToShip`. +""" +type InventoryTransferMarkAsReadyToShipUserError implements DisplayableError { + """The error code.""" + code: InventoryTransferMarkAsReadyToShipUserErrorCode + + """The path to the input field that caused the error.""" + field: [String!] + + """The error message.""" + message: String! +} + +""" +Possible error codes that can be returned by `InventoryTransferMarkAsReadyToShipUserError`. +""" +enum InventoryTransferMarkAsReadyToShipUserErrorCode { + """The transfer was not found.""" + TRANSFER_NOT_FOUND + + """The list of line items is empty.""" + ITEMS_EMPTY + + """Current transfer status does not support this operation.""" + INVALID_TRANSFER_STATUS + + """A location is required for this operation.""" + LOCATION_REQUIRED + + """One or more items are not valid.""" + INVALID_ITEM + + """The location selected is not active.""" + LOCATION_NOT_ACTIVE + + """The location selected can't be found.""" + LOCATION_NOT_FOUND +} + +"""The input fields to remove inventory items from a transfer.""" +input InventoryTransferRemoveItemsInput { + """The ID of the inventory transfer where the items will be removed.""" + id: ID! + + """The IDs of the transfer line items to be removed from the transfer.""" + transferLineItemIds: [ID!] +} + +"""Return type for `inventoryTransferRemoveItems` mutation.""" +type InventoryTransferRemoveItemsPayload { + """The transfer with line items removed.""" + inventoryTransfer: InventoryTransfer + + """The line items that have had their shippable quantity removed.""" + removedQuantities: [InventoryTransferLineItemUpdate!] + + """The list of errors that occurred from executing the mutation.""" + userErrors: [InventoryTransferRemoveItemsUserError!]! +} + +""" +An error that occurs during the execution of `InventoryTransferRemoveItems`. +""" +type InventoryTransferRemoveItemsUserError implements DisplayableError { + """The error code.""" + code: InventoryTransferRemoveItemsUserErrorCode + + """The path to the input field that caused the error.""" + field: [String!] + + """The error message.""" + message: String! +} + +""" +Possible error codes that can be returned by `InventoryTransferRemoveItemsUserError`. +""" +enum InventoryTransferRemoveItemsUserErrorCode { + """The transfer was not found.""" + TRANSFER_NOT_FOUND + + """A ready to ship transfer must have at least one item.""" + CANT_REMOVE_ALL_ITEMS_FROM_READY_TO_SHIP_TRANSFER + + """The item was not found.""" + ITEM_NOT_FOUND + + """ + The item cannot have its shippable quantity removed if all of its quantity is fully allocated in one or more shipments. + """ + ALL_QUANTITY_SHIPPED + + """ + The item cannot be removed because it exists in a draft shipment with zero quantity. + """ + ITEM_PRESENT_ON_DRAFT_SHIPMENT_WITH_ZERO_QUANTITY + + """Current transfer status does not support this operation.""" + INVALID_TRANSFER_STATUS + + """The location selected can't be found.""" + LOCATION_NOT_FOUND +} + +"""The input fields to the InventoryTransferSetItems mutation.""" +input InventoryTransferSetItemsInput { + """The ID of the inventory transfer where the items will be set.""" + id: ID! + + """The line items to be set on the Transfer.""" + lineItems: [InventoryTransferLineItemInput!]! +} + +"""Return type for `inventoryTransferSetItems` mutation.""" +type InventoryTransferSetItemsPayload { + """The Transfer with its line items updated.""" + inventoryTransfer: InventoryTransfer + + """The updated line items.""" + updatedLineItems: [InventoryTransferLineItemUpdate!] + + """The list of errors that occurred from executing the mutation.""" + userErrors: [InventoryTransferSetItemsUserError!]! +} + +""" +An error that occurs during the execution of `InventoryTransferSetItems`. +""" +type InventoryTransferSetItemsUserError implements DisplayableError { + """The error code.""" + code: InventoryTransferSetItemsUserErrorCode + + """The path to the input field that caused the error.""" + field: [String!] + + """The error message.""" + message: String! +} + +""" +Possible error codes that can be returned by `InventoryTransferSetItemsUserError`. +""" +enum InventoryTransferSetItemsUserErrorCode { + """The transfer was not found.""" + TRANSFER_NOT_FOUND + + """Current transfer status does not support this operation.""" + INVALID_TRANSFER_STATUS + + """The location selected can't be found.""" + LOCATION_NOT_FOUND + + """The location selected is not active.""" + LOCATION_NOT_ACTIVE + + """This request is currently in progress, please try again.""" + IDEMPOTENCY_CONCURRENT_REQUEST + + """ + The same idempotency key cannot be used with different operation parameters. + """ + IDEMPOTENCY_KEY_PARAMETER_MISMATCH + + """Bundled items cannot be used for this operation.""" + BUNDLED_ITEM + + """The item does not track inventory.""" + UNTRACKED_ITEM + + """The item was not found.""" + ITEM_NOT_FOUND + + """The quantity is invalid.""" + INVALID_QUANTITY + + """A single item can't be listed twice.""" + DUPLICATE_ITEM + + """The item is not stocked at the intended location.""" + INVENTORY_STATE_NOT_ACTIVE +} + +"""The status of a transfer.""" +enum InventoryTransferStatus { + """The inventory transfer has been created but not yet finalized.""" + DRAFT + + """The inventory transfer has been created, but not yet shipped.""" + READY_TO_SHIP + + """ + The inventory transfer is in progress, with a shipment currently underway or received. + """ + IN_PROGRESS + + """ + The inventory transfer has been completely received at the destination. + """ + TRANSFERRED + + """The inventory transfer has been canceled.""" + CANCELED + + """Status not included in the current enumeration set.""" + OTHER +} + +""" +The financial transfer details for a return outcome that results in an invoice. +""" +type InvoiceReturnOutcome { + """ + The total monetary value to be invoiced in shop and presentment currencies. + """ + amount: MoneyBag! +} + +""" +A job corresponds to some long running task that the client should poll for status. +""" +type Job { + """This indicates if the job is still queued or has been run.""" + done: Boolean! + + """ + A globally-unique ID that's returned when running an asynchronous mutation. + """ + id: ID! + + """ + This field will only resolve once the job is done. Can be used to ask for object(s) that have been changed by the job. + """ + query: Query +} + +""" +A job corresponds to some long running task that the client should poll for status. +""" +interface JobResult { + """This indicates if the job is still queued or has been run.""" + done: Boolean! + + """ + A globally-unique ID that's returned when running an asynchronous mutation. + """ + id: ID! +} + +""" +A [JSON](https://www.json.org/json-en.html) object. + +Example value: +`{ + "product": { + "id": "gid://shopify/Product/1346443542550", + "title": "White T-shirt", + "options": [{ + "name": "Size", + "values": ["M", "L"] + }] + } +}` + +""" +scalar JSON + +"""Language codes supported by Shopify.""" +enum LanguageCode { + """Afrikaans.""" + AF + + """Akan.""" + AK + + """Amharic.""" + AM + + """Arabic.""" + AR + + """Assamese.""" + AS + + """Azerbaijani.""" + AZ + + """Belarusian.""" + BE + + """Bulgarian.""" + BG + + """Bambara.""" + BM + + """Bangla.""" + BN + + """Tibetan.""" + BO + + """Breton.""" + BR + + """Bosnian.""" + BS + + """Catalan.""" + CA + + """Chechen.""" + CE + + """Central Kurdish.""" + CKB + + """Czech.""" + CS + + """Welsh.""" + CY + + """Danish.""" + DA + + """German.""" + DE + + """Dzongkha.""" + DZ + + """Ewe.""" + EE + + """Greek.""" + EL + + """English.""" + EN + + """Esperanto.""" + EO + + """Spanish.""" + ES + + """Estonian.""" + ET + + """Basque.""" + EU + + """Persian.""" + FA + + """Fulah.""" + FF + + """Finnish.""" + FI + + """Filipino.""" + FIL + + """Faroese.""" + FO + + """French.""" + FR + + """Western Frisian.""" + FY + + """Irish.""" + GA + + """Scottish Gaelic.""" + GD + + """Galician.""" + GL + + """Gujarati.""" + GU + + """Manx.""" + GV + + """Hausa.""" + HA + + """Hebrew.""" + HE + + """Hindi.""" + HI + + """Croatian.""" + HR + + """Hungarian.""" + HU + + """Armenian.""" + HY + + """Interlingua.""" + IA + + """Indonesian.""" + ID + + """Igbo.""" + IG + + """Sichuan Yi.""" + II + + """Icelandic.""" + IS + + """Italian.""" + IT """Japanese.""" JA @@ -33238,7 +37414,26 @@ type LimitedPendingOrderCount { } """ -Represents individual products and quantities purchased in the associated order. +The `LineItem` object represents a single product or service that a customer purchased in an +[order](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order). +Each line item is associated with a +[product variant](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) +and can have multiple [discount allocations](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountAllocation). +Line items contain details about what was purchased, including the product variant, quantity, pricing, +and fulfillment status. + +Use the `LineItem` object to manage the following processes: + +- [Track the quantity of items](https://shopify.dev/docs/apps/build/orders-fulfillment/order-management-apps/build-fulfillment-solutions) +ordered, fulfilled, and unfulfilled. +- [Calculate prices](https://shopify.dev/docs/apps/build/orders-fulfillment/order-management-apps/edit-orders), including discounts and taxes. +- Manage fulfillment through [fulfillment services](https://shopify.dev/docs/apps/build/orders-fulfillment/fulfillment-service-apps). +- Manage [returns](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/build-return-management) and [exchanges](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/manage-exchanges). +- Handle [subscriptions](https://shopify.dev/docs/apps/build/purchase-options/subscriptions) and recurring orders. + +Line items can also include custom attributes and properties, allowing merchants to add specific details +about each item in an order. Learn more about +[managing orders and fulfillment](https://shopify.dev/docs/apps/build/orders-fulfillment). """ type LineItem implements Node { """Whether the line item can be restocked.""" @@ -33322,7 +37517,7 @@ type LineItem implements Node { If none of the above conditions are met, then the fulfillment service has the `manual` handle. """ - fulfillmentService: FulfillmentService @deprecated(reason: "\nThe [relationship between a product variant and a fulfillment service was changed in the `2022-07` API version](/changelog/fulfillment-service-sku-sharing). A [ProductVariant](/api/admin-graphql/latest/objects/ProductVariant) can be stocked by multiple fulfillment services. As a result, we recommend that you use the [inventoryItem field](/api/admin-graphql/latest/objects/ProductVariant#field-productvariant-inventoryitem) if you need to determine where a product variant is stocked.\n\nIf you need to determine whether a product is a gift card, then you should continue to use this field until an alternative is available.\n\nAltering the locations which stock a product variant won't change the value of this field for existing orders.\n\nLearn about [managing inventory quantities and states](/apps/fulfillment/inventory-management-apps/quantities-states).\n") + fulfillmentService: FulfillmentService @deprecated(reason: "\nThe [relationship between a product variant and a fulfillment service was changed](/changelog/fulfillment-service-sku-sharing). A [ProductVariant](/api/admin-graphql/latest/objects/ProductVariant) can be stocked by multiple fulfillment services. As a result, we recommend that you use the [inventoryItem field](/api/admin-graphql/latest/objects/ProductVariant#field-productvariant-inventoryitem) if you need to determine where a product variant is stocked.\n\nIf you need to determine whether a product is a gift card, then you should continue to use this field until an alternative is available.\n\nAltering the locations which stock a product variant won't change the value of this field for existing orders.\n\nLearn about [managing inventory quantities and states](/apps/fulfillment/inventory-management-apps/quantities-states).\n") """ The line item's fulfillment status. Returns 'fulfilled' if fulfillableQuantity >= quantity, @@ -33386,7 +37581,9 @@ type LineItem implements Node { """The number of units ordered, including refunded and removed units.""" quantity: Int! - """The number of units ordered, excluding refunded units.""" + """ + The number of units ordered, excluding refunded units and removed units. + """ refundableQuantity: Int! """Whether physical shipping is required for the variant.""" @@ -33404,6 +37601,36 @@ type LineItem implements Node { """Staff attributed to the line item.""" staffMember: StaffMember + """ + Return reasons suggested based on the line item's product category in + Shopify's product taxonomy. Use [`returnReasonDefinitions`](https://shopify.dev/docs/api/admin-graphql/latest/queries/returnReasonDefinitions) + to access the full library of available reasons. + """ + suggestedReturnReasonDefinitions( + """ + The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + first: Int + + """ + The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + after: String + + """ + The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + last: Int + + """ + The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + before: String + + """Reverse the order of the underlying list.""" + reverse: Boolean = false + ): ReturnReasonDefinitionConnection + """ The taxes charged for the line item, including taxes charged for refunded and removed quantities. """ @@ -33501,7 +37728,18 @@ type LineItemEdge { node: LineItem! } -"""A line item group (bundle) to which a line item belongs to.""" +""" +The information for [line +items](https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItem) that +are part of a bundle. When a bundle is purchased, each component line item references its [`LineItemGroup`](https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItemGroup) through the [`lineItemGroup`](https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItem#field-lineItemGroup) +field to maintain the relationship with the bundle. + +The parent bundle's product, variant, and custom attributes enable apps to group +and display bundle components in order management systems, transactional emails, +and other contexts where understanding the bundle structure is needed. + +Learn more about [product bundles](https://shopify.dev/docs/apps/build/product-merchandising/bundles). +""" type LineItemGroup implements Node { """ A list of attributes that represent custom features or special requests. @@ -33511,6 +37749,9 @@ type LineItemGroup implements Node { """A globally-unique ID.""" id: ID! + """ID of the product of the line item group.""" + productId: ID + """Quantity of the line item group on the order.""" quantity: Int! @@ -33625,6 +37866,12 @@ enum LocalizableContentType { """A JSON.""" JSON + """A link.""" + LINK + + """A list of links.""" + LIST_LINK + """A list of multi-line texts.""" LIST_MULTI_LINE_TEXT_FIELD @@ -33649,12 +37896,6 @@ enum LocalizableContentType { """A URL.""" URL - """A link.""" - LINK - - """A list of links.""" - LIST_LINK - """A file reference.""" FILE_REFERENCE @@ -34073,9 +38314,16 @@ type LocalPaymentMethodsPaymentDetails implements BasePaymentDetails { } """ -Represents the location where the physical good resides. You can stock inventory at active locations. Active -locations that have `fulfills_online_orders: true` and are configured with a shipping rate, pickup enabled or -local delivery will be able to sell from their storefront. +A physical location where merchants store and fulfill inventory. Locations +include retail stores, warehouses, popups, dropshippers, or other places where +inventory is managed or stocked. + +Active locations can fulfill online orders when configured with shipping rates, +local pickup, or local delivery options. Locations track inventory quantities for +[products](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) and +process [order](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) +fulfillment. Third-party apps using [`FulfillmentService`](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentService) +can create and manage their own locations. """ type Location implements HasMetafieldDefinitions & HasMetafields & LegacyInteroperability & Node { """ @@ -34277,7 +38525,7 @@ type Location implements HasMetafieldDefinitions & HasMetafields & LegacyInterop """ query: String - ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use the root `metafieldDefinitions` field instead.") + ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use `Query.metafieldDefinitions` instead.") """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) @@ -34285,7 +38533,7 @@ type Location implements HasMetafieldDefinitions & HasMetafields & LegacyInterop """ metafields( """ - The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. + The metafield namespace to filter by. If omitted, all metafields are returned. """ namespace: String @@ -34322,7 +38570,7 @@ type Location implements HasMetafieldDefinitions & HasMetafields & LegacyInterop name: String! """ - Whether this location is used for calculating shipping rates. In multi-origin shipping mode, this flag is ignored. + Legacy field indicating this location was designated for shipping. All locations with valid addresses can now ship. """ shipsInventory: Boolean! @@ -34377,6 +38625,14 @@ enum LocationActivateUserErrorCode { """There is already an active location with this name.""" HAS_NON_UNIQUE_NAME + + """This request is currently in progress, please try again.""" + IDEMPOTENCY_CONCURRENT_REQUEST + + """ + The same idempotency key cannot be used with different operation parameters. + """ + IDEMPOTENCY_KEY_PARAMETER_MISMATCH } """ @@ -34613,6 +38869,9 @@ enum LocationDeactivateUserErrorCode { """Destination location is not found or inactive.""" DESTINATION_LOCATION_NOT_FOUND_OR_INACTIVE + """Destination location is not Shopify managed.""" + DESTINATION_LOCATION_NOT_SHOPIFY_MANAGED + """ Location could not be deactivated without specifying where to relocate inventory at the location. """ @@ -34621,6 +38880,12 @@ enum LocationDeactivateUserErrorCode { """Location could not be deactivated because it has pending orders.""" HAS_FULFILLMENT_ORDERS_ERROR + """ + Location could not be deactivated because it has incoming inventory quantities from third party + applications. + """ + HAS_INCOMING_FROM_EXTERNAL_DOCUMENT_SOURCES + """ Location could not be deactivated because it has open Shopify Fulfillment Network transfers. """ @@ -34640,6 +38905,14 @@ enum LocationDeactivateUserErrorCode { """At least one location must fulfill online orders.""" CANNOT_DISABLE_ONLINE_ORDER_FULFILLMENT + + """This request is currently in progress, please try again.""" + IDEMPOTENCY_CONCURRENT_REQUEST + + """ + The same idempotency key cannot be used with different operation parameters. + """ + IDEMPOTENCY_KEY_PARAMETER_MISMATCH } """Return type for `locationDelete` mutation.""" @@ -34895,6 +39168,32 @@ type LocationsCondition { ): LocationConnection! } +""" +A snapshot of location details including name and address captured at a specific +point in time. Refer to the parent model to know the lifecycle. +""" +type LocationSnapshot { + """ + The address details of the location as they were when the snapshot was recorded. + """ + address: LocationAddress! + + """ + A reference to the live Location object, if it still exists and is accessible. + This provides current details of the location, which may differ from the + snapshotted name and address. + """ + location: Location + + """The name of the location as it was when the snapshot was recorded.""" + name: String! + + """ + The date and time when these snapshot details (name and address) were recorded. + """ + snapshottedAt: DateTime! +} + """The set of valid sort keys for the Location query.""" enum LocationSortKeys { """Sort by the `id` value.""" @@ -34943,9 +39242,15 @@ type LocationSuggestedAddress { } """ -Represents a customer mailing address. +A physical mailing address. For example, a [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer)'s +default address and an +[`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order)'s +billing address are both mailing addresses. Stores standard address components, +customer name information, and company details. -For example, a customer's default address and an order's billing address are both mailling addresses. +The address includes geographic coordinates ([`latitude`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MailingAddress#field-MailingAddress.fields.latitude) and [`longitude`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MailingAddress#field-MailingAddress.fields.longitude)). +You can format addresses for display using the [`formatted`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MailingAddress#field-MailingAddress.fields.formatted) +field with options to include or exclude name and company information. """ type MailingAddress implements Node { """ @@ -35144,6 +39449,26 @@ enum MailingAddressValidationResult { WARNING } +"""The type of resource a payment mandate can be used for.""" +enum MandateResourceType { + """ + A credential stored on file for merchant and customer initiated transactions. + """ + CREDENTIAL_ON_FILE + + """A credential stored on file for checkout.""" + CHECKOUT + + """A credential stored on file for a Draft Order.""" + DRAFT_ORDER + + """A credential stored on file for an Order.""" + ORDER + + """A credential stored for subscription billing attempts.""" + SUBSCRIPTIONS +} + """ Manual discount applications capture the intentions of a discount that was manually created for an order. @@ -35321,7 +39646,7 @@ type Market implements HasMetafieldDefinitions & HasMetafields & Node { """ query: String - ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use the root `metafieldDefinitions` field instead.") + ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use `Query.metafieldDefinitions` instead.") """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) @@ -35329,7 +39654,7 @@ type Market implements HasMetafieldDefinitions & HasMetafields & Node { """ metafields( """ - The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. + The metafield namespace to filter by. If omitted, all metafields are returned. """ namespace: String @@ -35458,7 +39783,20 @@ type Market implements HasMetafieldDefinitions & HasMetafields & Node { } """ -A list of products with publishing and pricing information associated with markets. +A catalog for managing product availability and pricing for specific +[`Market`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Market) +contexts. Each catalog links to one or more markets. The catalog can optionally include a [`Publication`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication) +to control which +[`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) +objects customers see, and a [`PriceList`](https://shopify.dev/docs/api/admin-graphql/latest/objects/PriceList) +for market-specific pricing adjustments. When a publication isn't associated +with the catalog, product availability is determined by the sales channel. + +Use catalogs to create distinct shopping experiences for different geographic regions or customer segments. + +Learn more about [building a +catalog](https://shopify.dev/docs/apps/build/markets/build-catalog) and +[managing markets](https://shopify.dev/docs/apps/build/markets). """ type MarketCatalog implements Catalog & Node { """A globally-unique ID.""" @@ -35521,6 +39859,11 @@ type MarketCatalog implements Catalog & Node { """ query: String + + """ + The upper bound on count value before returning a result. Use `null` to have no limit. + """ + limit: Int ): Count """Most recent catalog operations.""" @@ -35762,6 +40105,9 @@ type MarketCurrencySettings { in the market's base currency. """ localCurrencies: Boolean! + + """Whether or not rounding is enabled on multi-currency prices.""" + roundingEnabled: Boolean! } """The input fields used to update the currency settings of a market.""" @@ -36131,50 +40477,25 @@ type MarketingActivityCreateExternalPayload { userErrors: [MarketingActivityUserError!]! } -"""The input fields required to create a marketing activity.""" +""" +The input fields required to create a marketing activity. Marketing activity app +extensions are deprecated and will be removed in the near future. +""" input MarketingActivityCreateInput { - """The title of the marketing activity.""" - marketingActivityTitle: String - - """The form data in JSON serialized as a string.""" - formData: String - """The ID of the marketing activity extension.""" marketingActivityExtensionId: ID! - """Encoded context containing marketing campaign id.""" - context: String - - """ - Specifies the - [Urchin Traffic Module (UTM) parameters](https://en.wikipedia.org/wiki/UTM_parameters) - that are associated with a related marketing campaign. UTMInput is required for all Marketing - tactics except Storefront App. - """ - utm: UTMInput - - """ - Value for a query parameter that gets inserted into storefront URLs for - matching storefront traffic to this activity. This feature is currently - available on a limited basis to some partners only. UTMs should continue to be - used for most partners. Both the URL parameter value and UTM parameters can be set. - """ - urlParameterValue: String - """The current state of the marketing activity.""" status: MarketingActivityStatus! - - """The budget for this marketing activity.""" - budget: MarketingActivityBudgetInput } """Return type for `marketingActivityCreate` mutation.""" type MarketingActivityCreatePayload { """The created marketing activity.""" - marketingActivity: MarketingActivity + marketingActivity: MarketingActivity @deprecated(reason: "Marketing activity app extensions are deprecated and will be removed in the near future.") """The path to return back to shopify admin from embedded editor.""" - redirectPath: String + redirectPath: String @deprecated(reason: "Marketing activity app extensions are deprecated and will be removed in the near future.") """The list of errors that occurred from executing the mutation.""" userErrors: [UserError!]! @@ -36410,69 +40731,13 @@ type MarketingActivityUpdateExternalPayload { userErrors: [MarketingActivityUserError!]! } -"""The input fields required to update a marketing activity.""" +""" +The input fields required to update a marketing activity. Marketing activity app +extensions are deprecated and will be removed in the near future. +""" input MarketingActivityUpdateInput { """The ID of the marketing activity.""" id: ID! - - """ - The ID of the recommendation that the marketing activity was created from, if one exists. - """ - marketingRecommendationId: ID - - """The title of the marketing activity.""" - title: String - - """The budget for the marketing activity.""" - budget: MarketingActivityBudgetInput - - """ - The current state of the marketing activity. Learn more about - [marketing activities statuses](/api/marketing-activities/statuses). - """ - status: MarketingActivityStatus - - """ - The target state that the marketing activity is transitioning to. Learn more - about [marketing activities statuses](/api/marketing-activities/statuses). - """ - targetStatus: MarketingActivityStatus - - """ - The form data of the marketing activity. This is only used if the marketing activity is - integrated with the external editor. - """ - formData: String - - """ - Specifies the - [Urchin Traffic Module (UTM) parameters](https://en.wikipedia.org/wiki/UTM_parameters) - that are associated with a related marketing campaign. UTMInput is required for all Marketing - tactics except Storefront App. The utm field can only be set once and never modified. - """ - utm: UTMInput - - """ - Value for a query parameter that gets inserted into storefront URLs for - matching storefront traffic to this activity. This feature is currently - available on a limited basis to some partners only. UTMs should continue to be - used for most partners. Both the URL parameter value and UTM parameters can be set. - """ - urlParameterValue: String - - """ - A list of the item IDs that were marketed in this marketing activity. Valid types for these items are: - * `Product` - * `Shop` - """ - marketedResources: [ID!] - - """ - The error messages that were generated when the app was trying to complete the activity. - Learn more about the - [JSON format expected for error messages](/api/marketing-activities/statuses#failed-status). - """ - errors: JSON } """Return type for `marketingActivityUpdate` mutation.""" @@ -36770,6 +41035,14 @@ type MarketingEngagement { """ adSpend: MoneyV2 + """ + The number of all conversions from the marketing content. This field supports + ad platforms that track conversions beyond traditional sales metrics. All + conversions include both primary and secondary conversion goals as defined by + the ad platform, such as purchases, add-to-carts, page views, and sign-ups. + """ + allConversions: Decimal + """ The unique string identifier of the channel to which the engagement metrics are being provided. This should be set when and only when providing @@ -36847,6 +41120,14 @@ type MarketingEngagement { """The number of orders generated from the marketing content.""" orders: Decimal + """ + The number of primary conversions from the marketing content. This field + supports ad platforms that track conversions beyond traditional sales metrics. + Primary conversions represent the main conversion goal defined by the ad + platform, such as purchases, sign-ups, or add-to-carts. + """ + primaryConversions: Decimal + """ The number of returning customers that have placed an order. Doesn't include adjustments such as edits, exchanges, or returns. @@ -37046,6 +41327,22 @@ input MarketingEngagementInput { adjustments such as edits, exchanges, or returns. """ returningCustomers: Decimal + + """ + The number of primary conversions from the marketing content. This field + supports ad platforms that track conversions beyond traditional sales metrics. + Primary conversions represent the main conversion goal defined by the ad + platform, such as purchases, sign-ups, or add-to-carts. + """ + primaryConversions: Decimal + + """ + The number of all conversions from the marketing content. This field supports + ad platforms that track conversions beyond traditional sales metrics. All + conversions include both primary and secondary conversion goals as defined by + the ad platform, such as purchases, add-to-carts, page views, and sign-ups. + """ + allConversions: Decimal } """Return type for `marketingEngagementsDelete` mutation.""" @@ -37503,6 +41800,71 @@ type MarketsRegionsEntitlement { enabled: Boolean! } +""" +The resolved values based on the markets configuration for a buyer signal. +Resolved values include the resolved catalogs, web presences, currency, and +price inclusivity. +""" +type MarketsResolvedValues { + """The resolved catalogs.""" + catalogs( + """ + The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + first: Int + + """ + The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + after: String + + """ + The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + last: Int + + """ + The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + before: String + + """Reverse the order of the underlying list.""" + reverse: Boolean = false + ): MarketCatalogConnection! + + """The resolved currency code.""" + currencyCode: CurrencyCode! + + """The resolved price inclusivity attributes.""" + priceInclusivity: ResolvedPriceInclusivity! + + """The resolved web presences ordered by priority.""" + webPresences( + """ + The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + first: Int + + """ + The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + after: String + + """ + The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + last: Int + + """ + The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + before: String + + """Reverse the order of the underlying list.""" + reverse: Boolean = false + ): MarketWebPresenceConnection! +} + """The entitlements for retail markets.""" type MarketsRetailEntitlement { """The entitlements for retail market catalogs.""" @@ -37529,6 +41891,9 @@ enum MarketsSortKeys { """Sort by the `name` value.""" NAME + """Sort by the `status` value.""" + STATUS + """Sort by the `updated_at` value.""" UPDATED_AT } @@ -37671,17 +42036,20 @@ enum MarketUserErrorCode { """The market region wasn't found.""" REGION_NOT_FOUND + """The province doesn't exist.""" + PROVINCE_DOES_NOT_EXIST + """The market web presence wasn't found.""" WEB_PRESENCE_NOT_FOUND """Can't add regions to the primary market.""" - CANNOT_ADD_REGIONS_TO_PRIMARY_MARKET + CANNOT_ADD_REGIONS_TO_PRIMARY_MARKET @deprecated(reason: "This will no longer be used after legacy markets are removed in April 2026") """Can't delete the only region in a market.""" CANNOT_DELETE_ONLY_REGION """Exactly one input option is required.""" - REQUIRES_EXACTLY_ONE_OPTION + REQUIRES_EXACTLY_ONE_OPTION @deprecated(reason: "No longer used") """Can't delete the primary market.""" CANNOT_DELETE_PRIMARY_MARKET @@ -37693,7 +42061,10 @@ enum MarketUserErrorCode { DOMAIN_NOT_FOUND """The subfolder suffix must contain only letters.""" - SUBFOLDER_SUFFIX_MUST_CONTAIN_ONLY_LETTERS + SUBFOLDER_SUFFIX_MUST_CONTAIN_ONLY_LETTERS @deprecated(reason: "No longer used") + + """The subfolder suffix must be at least 2 letters.""" + SUBFOLDER_SUFFIX_MUST_BE_AT_LEAST_2_LETTERS """The subfolder suffix is invalid, please provide a different value.""" SUBFOLDER_SUFFIX_CANNOT_BE_SCRIPT_CODE @@ -37702,10 +42073,10 @@ enum MarketUserErrorCode { NO_LANGUAGES """Can't enable or disable local currencies on a single country market.""" - NO_LOCAL_CURRENCIES_ON_SINGLE_COUNTRY_MARKET + NO_LOCAL_CURRENCIES_ON_SINGLE_COUNTRY_MARKET @deprecated(reason: "This will no longer be used after legacy markets are removed in April 2026") """Rounding is not supported if unified markets are not enabled.""" - NO_ROUNDING_ON_LEGACY_MARKET + NO_ROUNDING_ON_LEGACY_MARKET @deprecated(reason: "This will no longer be used after legacy markets are removed in April 2026") """Duplicates found in languages.""" DUPLICATE_LANGUAGES @@ -37723,11 +42094,20 @@ enum MarketUserErrorCode { CANNOT_HAVE_SUBFOLDER_AND_DOMAIN """Can't add the web presence to the primary market.""" - CANNOT_ADD_WEB_PRESENCE_TO_PRIMARY_MARKET + CANNOT_ADD_WEB_PRESENCE_TO_PRIMARY_MARKET @deprecated(reason: "No longer used") """Can't add another web presence to the market.""" MARKET_REACHED_WEB_PRESENCE_LIMIT + """Market and condition types are not compatible with each other.""" + MARKET_NOT_COMPATIBLE_WITH_CONDITION_TYPES @deprecated(reason: "This will no longer be used after legacy markets are removed in April 2026") + + """The country code is missing.""" + MISSING_COUNTRY_CODE + + """The province code is missing.""" + MISSING_PROVINCE_CODE + """Can't have multiple subfolder web presences per market.""" CANNOT_HAVE_MULTIPLE_SUBFOLDERS_PER_MARKET @@ -37738,13 +42118,13 @@ enum MarketUserErrorCode { REQUIRES_DOMAIN_OR_SUBFOLDER """The primary market must use the primary domain.""" - PRIMARY_MARKET_MUST_USE_PRIMARY_DOMAIN + PRIMARY_MARKET_MUST_USE_PRIMARY_DOMAIN @deprecated(reason: "This will no longer be used after legacy markets are removed in April 2026") """Can't delete the primary market's web presence.""" - CANNOT_DELETE_PRIMARY_MARKET_WEB_PRESENCE + CANNOT_DELETE_PRIMARY_MARKET_WEB_PRESENCE @deprecated(reason: "No longer used") """Can't have more than 50 markets.""" - SHOP_REACHED_MARKETS_LIMIT + SHOP_REACHED_MARKETS_LIMIT @deprecated(reason: "No longer used") """Can't disable the primary market.""" CANNOT_DISABLE_PRIMARY_MARKET @@ -37770,6 +42150,9 @@ enum MarketUserErrorCode { """Invalid combination of status and enabled.""" INVALID_STATUS_AND_ENABLED_COMBINATION + """The province format is invalid.""" + INVALID_PROVINCE_FORMAT + """One or more condition IDs were not found.""" CONDITIONS_NOT_FOUND @@ -37828,11 +42211,14 @@ enum MarketUserErrorCode { CONTAINS_REGIONS_THAT_CANNOT_BE_MANAGED """Unified markets are not enabled.""" - UNIFIED_MARKETS_NOT_ENABLED + UNIFIED_MARKETS_NOT_ENABLED @deprecated(reason: "This will no longer be used after legacy markets are removed in April 2026") """Can't add web presence to the another market.""" WEB_PRESENCE_REACHED_MARKETS_LIMIT + """A web presence cannot be added to a market with type retail location.""" + WEB_PRESENCE_RETAIL_LOCATION @deprecated(reason: "No longer used") + """ Catalog condition types must be the same for all conditions on a catalog. """ @@ -37841,6 +42227,9 @@ enum MarketUserErrorCode { """A direct connection catalog can't be attached to a market.""" MARKET_CANT_HAVE_DIRECT_CONNECTION_CATALOG + """Your shop is not entitled to activate markets of this type.""" + NOT_ENTITLED_TO_ACTIVATE_MARKET + """B2B markets must be merchant managed.""" B2B_MARKET_MUST_BE_MERCHANT_MANAGED @@ -37869,6 +42258,9 @@ enum MarketUserErrorCode { """Managing this catalog is not supported by your plan.""" UNPERMITTED_ENTITLEMENTS_MARKET_CATALOGS + + """Can't add selected responders to a province driven market.""" + INVALID_RESPONDER_FOR_PROVINCE_DRIVEN_MARKET @deprecated(reason: "No longer used") } """ @@ -38317,8 +42709,33 @@ enum MediaHost { VIMEO } -"""An image hosted on Shopify.""" -type MediaImage implements File & HasMetafields & Media & Node { +""" +The `MediaImage` object represents an image hosted on Shopify's +[content delivery network (CDN)](https://shopify.dev/docs/storefronts/themes/best-practices/performance/platform#shopify-cdn). +Shopify CDN is a content system that serves as the primary way to store, +manage, and deliver visual content for products, variants, and other resources across the Shopify platform. + +The `MediaImage` object provides information to: + +- Store and display product and variant images across online stores, admin interfaces, and mobile apps. +- Retrieve visual branding elements, including logos, banners, favicons, and background images in checkout flows. +- Retrieve signed URLs for secure, time-limited access to original image files. + +Each `MediaImage` object provides both the processed image data (with automatic optimization and CDN delivery) +and access to the original source file. The image processing is handled asynchronously, so images +might not be immediately available after upload. The +[`status`](https://shopify.dev/docs/api/admin-graphql/latest/objects/mediaimage#field-MediaImage.fields.status) +field indicates when processing is complete and the image is ready for use. + +The `MediaImage` object implements the [`Media`](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/Media) +interface alongside other media types, like videos and 3D models. + +Learn about +managing media for [products](https://shopify.dev/docs/apps/build/online-store/product-media), +[product variants](https://shopify.dev/docs/apps/build/online-store/product-variant-media), and +[asynchronous media management](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/product-model-components#asynchronous-media-management). +""" +type MediaImage implements File & HasMetafields & HasPublishedTranslations & Media & Node { """A word or phrase to share the nature or contents of a media.""" alt: String @@ -38369,7 +42786,7 @@ type MediaImage implements File & HasMetafields & Media & Node { """ metafields( """ - The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. + The metafield namespace to filter by. If omitted, all metafields are returned. """ namespace: String @@ -38414,6 +42831,17 @@ type MediaImage implements File & HasMetafields & Media & Node { """Current status of the media.""" status: MediaStatus! + """The published translations associated with the resource.""" + translations( + """Filters translations locale.""" + locale: String! + + """ + Filters translations by market ID. Use this argument to retrieve content specific to a market. + """ + marketId: ID + ): [Translation!]! + """ The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) when the file was last updated. """ @@ -38589,7 +43017,31 @@ enum MediaWarningCode { MODEL_PREVIEW_IMAGE_FAIL } -"""A menu for display on the storefront.""" +""" +Navigation menus that organize links into logical structures to guide customers +through a store. Menus serve as the backbone of store navigation, making it easy +for customers to find products, pages, and other content through organized +hierarchical links. + +For example, a merchant might create a main navigation menu with top-level +categories like "Products," "About Us," and "Contact," where each category can +contain nested menu items linking to specific collections, pages, or external resources. + +Use the `Menu` object to: +- Build and customize store navigation structures +- Organize hierarchical menu systems with nested items +- Work with default menus that can't be deleted +- Access menu items for building navigation + +Menus can be designated as default navigation elements (like main menu or +footer), which can't be deleted and have restricted handle updates. The handle +provides a unique identifier that themes can reference, while the items +collection enables nested navigation structures. + +Each menu contains menu items that can link to various resource types. This +flexibility lets merchants create navigation experiences that guide customers +through their store. +""" type Menu implements HasPublishedTranslations & Node { """The menu's handle.""" handle: String! @@ -38717,7 +43169,25 @@ type MenuEdge { node: Menu! } -"""A menu item for display on the storefront.""" +""" +Individual navigation links that make up store menus, giving customers clickable +paths to explore the store. Menu items are the building blocks that connect +shoppers to products, collections, pages, or external resources. + +For example, within a "Products" menu, individual menu items might link to +specific collections like "Summer Collection" or "Best Sellers," each with its +own title, URL, and resource connection. + +Use the `MenuItem` object to: +- Define individual navigation links and their destinations +- Create nested menu hierarchies through item relationships +- Use tags for collection filtering +- Connect menu links to specific store resources + +Menu items support various link types, enabling connections to internal store +content or external websites. The nested items capability allows for dropdown or +multi-level navigation structures that help organize complex store catalogs. +""" type MenuItem { """A globally-unique ID of the navigation menu item.""" id: ID! @@ -38922,7 +43392,7 @@ type MerchantApprovalSignals { Metafields enable you to attach additional information to a Shopify resource, such as a [Product](https://shopify.dev/api/admin-graphql/latest/objects/product) or a [Collection](https://shopify.dev/api/admin-graphql/latest/objects/collection). -For more information about where you can attach metafields refer to [HasMetafields](https://shopify.dev/api/admin/graphql/reference/common-objects/HasMetafields). +For more information about where you can attach metafields refer to [HasMetafields](https://shopify.dev/api/admin-graphql/latest/interfaces/HasMetafields). Some examples of the data that metafields enable you to store are specifications, size charts, downloadable documents, release dates, images, or part numbers. Metafields are identified by an owner resource, namespace, and key. and store a @@ -38995,7 +43465,7 @@ type Metafield implements HasCompareDigest & LegacyInteroperability & Node { ): MetafieldReferenceConnection """ - The type of data that is stored in the metafield. + The type of data that's stored in the metafield. Refer to the list of [supported types](https://shopify.dev/apps/metafields/types). """ type: String! @@ -39017,29 +43487,10 @@ type MetafieldAccess { """The access permitted on the Customer Account API.""" customerAccount: MetafieldCustomerAccountAccess! - """ - The explicit grants for this metafield definition, superseding the default admin access - for the specified grantees. - """ - grants: [MetafieldAccessGrant!]! @deprecated(reason: "Explicit grants are [deprecated](https://shopify.dev/changelog/deprecating-explicit-access-grants-for-app-owned-metafields).\n") - """The access permitted on the Storefront API.""" storefront: MetafieldStorefrontAccess } -""" -An explicit access grant for the metafields under this definition. - -Explicit grants are [deprecated](https://shopify.dev/changelog/deprecating-explicit-access-grants-for-app-owned-metafields). -""" -type MetafieldAccessGrant { - """The level of access the grantee has.""" - access: MetafieldGrantAccessLevel! - - """The grantee being granted access.""" - grantee: String! -} - """ The input fields that set access permissions for the definition's metafields. """ @@ -39250,8 +43701,13 @@ enum MetafieldCustomerAccountAccessInput { } """ -Metafield definitions enable you to define additional validation constraints for metafields, and enable the -merchant to edit metafield values in context. +Defines the structure, validation rules, and permissions for [`Metafield`](https://shopify.dev/docs/api/admin-graphql/current/objects/Metafield) +objects attached to a specific owner type. Each definition establishes a schema +that metafields must follow, including the data type and validation constraints. + +The definition controls access permissions across different APIs, determines +whether the metafield can be used for filtering or as a collection condition, +and can be constrained to specific resource subtypes. """ type MetafieldDefinition implements Node { """The access settings associated with the metafield definition.""" @@ -39605,6 +44061,9 @@ enum MetafieldDefinitionCreateUserErrorCode { """The definition limit per owner type has exceeded.""" RESOURCE_TYPE_LIMIT_EXCEEDED + """The definition limit per owner type for the app has exceeded.""" + RESOURCE_TYPE_LIMIT_EXCEEDED_BY_APP + """The maximum limit of definitions per owner type has exceeded.""" LIMIT_EXCEEDED @@ -39643,12 +44102,14 @@ enum MetafieldDefinitionCreateUserErrorCode { """ OWNER_TYPE_LIMIT_EXCEEDED_FOR_AUTOMATED_COLLECTIONS + """ + You have reached the maximum allowed definitions to be used as admin filters. + """ + OWNER_TYPE_LIMIT_EXCEEDED_FOR_USE_AS_ADMIN_FILTERS + """The metafield definition constraints are invalid.""" INVALID_CONSTRAINTS - """The maximum limit of grants per definition type has been exceeded.""" - GRANT_LIMIT_EXCEEDED - """The input combination is invalid.""" INVALID_INPUT_COMBINATION @@ -39723,6 +44184,9 @@ enum MetafieldDefinitionDeleteUserErrorCode { """ APP_CONFIG_MANAGED + """Definition is required by an installed app and cannot be deleted.""" + STANDARD_METAFIELD_DEFINITION_DEPENDENT_ON_APP + """Owner type can't be used in this mutation.""" DISALLOWED_OWNER_TYPE } @@ -40090,6 +44554,9 @@ enum MetafieldDefinitionUpdateUserErrorCode { """The input value is blank.""" BLANK + """The input value is invalid.""" + INVALID + """The metafield definition wasn't found.""" NOT_FOUND @@ -40127,6 +44594,11 @@ enum MetafieldDefinitionUpdateUserErrorCode { """ OWNER_TYPE_LIMIT_EXCEEDED_FOR_AUTOMATED_COLLECTIONS + """ + You have reached the maximum allowed definitions to be used as admin filters. + """ + OWNER_TYPE_LIMIT_EXCEEDED_FOR_USE_AS_ADMIN_FILTERS + """ You cannot change the metaobject definition pointed to by a metaobject reference metafield definition. """ @@ -40135,9 +44607,6 @@ enum MetafieldDefinitionUpdateUserErrorCode { """Owner type can't be used in this mutation.""" DISALLOWED_OWNER_TYPE - """The maximum limit of grants per definition type has been exceeded.""" - GRANT_LIMIT_EXCEEDED - """The input combination is invalid.""" INVALID_INPUT_COMBINATION @@ -40187,7 +44656,7 @@ For example, for a metafield definition of `single_line_text_field` type, you can set a validation with the name `min` and a value of `10`. This validation will ensure that the value of the metafield is at least 10 characters. -Refer to the [list of supported validations](https://shopify.dev/api/admin/graphql/reference/common-objects/metafieldDefinitionTypes#examples-Fetch_all_metafield_definition_types). +Refer to the [list of supported validations](https://shopify.dev/apps/build/custom-data/metafields/list-of-validation-options). """ input MetafieldDefinitionValidationInput { """The name for the metafield definition validation.""" @@ -40224,15 +44693,6 @@ type MetafieldEdge { node: Metafield! } -"""Possible access levels for explicit metafield access grants.""" -enum MetafieldGrantAccessLevel { - """Read metafield access.""" - READ - - """Read and write metafield access.""" - READ_WRITE -} - """Identifies a metafield by its owner resource, namespace, and key.""" type MetafieldIdentifier { """The key of the metafield.""" @@ -40264,7 +44724,7 @@ An alternative way to create or update a metafield is by using the """ input MetafieldInput { """ - The unique ID of the metafield. Using `owner_id`, `namespace`, and `key` is preferred for creating and updating. + The unique ID of the metafield. Using `namespace` and `key` is preferred for creating and updating. """ id: ID @@ -40382,7 +44842,7 @@ enum MetafieldOwnerType { } """The resource referenced by the metafield value.""" -union MetafieldReference = Collection | Company | Customer | GenericFile | MediaImage | Metaobject | Model3d | Order | Page | Product | ProductVariant | TaxonomyValue | Video +union MetafieldReference = Article | Collection | Company | Customer | GenericFile | MediaImage | Metaobject | Model3d | Order | Page | Product | ProductVariant | TaxonomyValue | Video """ An auto-generated type for paginating through multiple MetafieldReferences. @@ -40611,6 +45071,9 @@ enum MetafieldsSetUserErrorCode { """ LESS_THAN_OR_EQUAL_TO + """The input value is invalid.""" + INVALID + """An internal error occurred.""" INTERNAL_ERROR } @@ -40663,11 +45126,25 @@ enum MetafieldValueType { BOOLEAN } -"""Provides an object instance represented by a MetaobjectDefinition.""" +""" +An instance of custom structured data defined by a [`MetaobjectDefinition`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetaobjectDefinition). [Metaobjects](https://shopify.dev/docs/apps/build/custom-data#what-are-metaobjects) +store reusable data that extends beyond Shopify's standard resources, such as +product highlights, size charts, or custom content sections. + +Each metaobject includes fields that match the field types and validation rules +specified in its definition, which also determines the metaobject's +capabilities, such as storefront visibility, publishing and translation support. [`Metafields`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Metafield) +can reference metaobjects to connect custom data with +[`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) objects, [`Collection`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection) +objects, and other Shopify resources. +""" type Metaobject implements Node { """Metaobject capabilities for this Metaobject.""" capabilities: MetaobjectCapabilityData! + """When the object was created.""" + createdAt: DateTime! + """The app used to create the object.""" createdBy: App! @@ -40748,6 +45225,9 @@ type MetaobjectAccess { """The access permitted on the Admin API.""" admin: MetaobjectAdminAccess! + """The access permitted on the Customer Account API.""" + customerAccount: MetaobjectCustomerAccountAccess! + """The access permitted on the Storefront API.""" storefront: MetaobjectStorefrontAccess! } @@ -40761,6 +45241,9 @@ input MetaobjectAccessInput { """The access permitted on the Storefront API.""" storefront: MetaobjectStorefrontAccess + + """The access permitted on the Customer Account API.""" + customerAccount: MetaobjectCustomerAccountAccess } """ @@ -41091,8 +45574,25 @@ type MetaobjectCreatePayload { userErrors: [MetaobjectUserError!]! } +"""Metaobject access permissions for the Customer Account API.""" +enum MetaobjectCustomerAccountAccess { + """No access.""" + NONE + + """Read-only access.""" + READ +} + """ -Provides the definition of a generic object structure composed of metafields. +Defines the structure and configuration for a custom data type in Shopify. Each +definition specifies the fields, validation rules, and capabilities that apply to all [`Metaobject`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Metaobject) +entries created from it. + +The definition includes field definitions that determine what data to store, +access controls for [the Shopify admin](https://shopify.dev/docs/apps/build/custom-data/permissions#admin-permissions) and [Storefront](https://shopify.dev/docs/apps/build/custom-data/permissions#storefront-permissions) +APIs, and capabilities such as publishability and translatability. You can track +which [`App`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App) or [`StaffMember`](https://shopify.dev/docs/api/admin-graphql/latest/objects/StaffMember) +created the definition and optionally base it on a [`StandardMetaobjectDefinitionTemplate`](https://shopify.dev/docs/api/admin-graphql/latest/objects/StandardMetaobjectDefinitionTemplate). """ type MetaobjectDefinition implements Node { """Access configuration for the metaobject definition.""" @@ -41369,11 +45869,31 @@ type MetaobjectField { value: String } +"""Information about the admin filterable capability.""" +type MetaobjectFieldCapabilityAdminFilterable { + """Indicates if the definition is eligible to have the capability.""" + eligible: Boolean! + + """Indicates if the capability is enabled.""" + enabled: Boolean! +} + +""" +The input fields for enabling and disabling the admin filterable capability. +""" +input MetaobjectFieldCapabilityAdminFilterableInput { + """Indicates whether the capability should be enabled or disabled.""" + enabled: Boolean! +} + """ Defines a field for a MetaobjectDefinition with properties such as the field's data type and validations. """ type MetaobjectFieldDefinition { + """Capabilities available for this metaobject field definition.""" + capabilities: MetaobjectFieldDefinitionCapabilities! + """The administrative description.""" description: String @@ -41398,6 +45918,22 @@ type MetaobjectFieldDefinition { validations: [MetafieldDefinitionValidation!]! } +"""Capabilities available for a metaobject field definition.""" +type MetaobjectFieldDefinitionCapabilities { + """ + Indicate whether a metaobject field definition is configured for filtering. + """ + adminFilterable: MetaobjectFieldCapabilityAdminFilterable! +} + +""" +The input fields for creating capabilities on a metaobject field definition. +""" +input MetaobjectFieldDefinitionCapabilityCreateInput { + """The input for configuring the admin filterable capability.""" + adminFilterable: MetaobjectFieldCapabilityAdminFilterableInput +} + """The input fields for creating a metaobject field definition.""" input MetaobjectFieldDefinitionCreateInput { """ @@ -41421,6 +45957,9 @@ input MetaobjectFieldDefinitionCreateInput { """Custom validations that apply to values assigned to the field.""" validations: [MetafieldDefinitionValidationInput!] + + """Capabilities configuration for this field.""" + capabilities: MetaobjectFieldDefinitionCapabilityCreateInput } """The input fields for deleting a metaobject field definition.""" @@ -41459,6 +45998,9 @@ input MetaobjectFieldDefinitionUpdateInput { """Custom validations that apply to values assigned to the field.""" validations: [MetafieldDefinitionValidationInput!] + + """Capabilities configuration for this field.""" + capabilities: MetaobjectFieldDefinitionCapabilityCreateInput } """The input fields for a metaobject field value.""" @@ -41663,6 +46205,9 @@ enum MetaobjectUserErrorCode { """ APP_CONFIG_MANAGED + """Definition is required by an installed app and cannot be deleted.""" + STANDARD_METAOBJECT_DEFINITION_DEPENDENT_ON_APP + """The capability you are using is not enabled.""" CAPABILITY_NOT_ENABLED @@ -41861,7 +46406,11 @@ type MobilePlatformApplicationUpdatePayload { userErrors: [MobilePlatformApplicationUserError!]! } -"""Represents an error in the input of a mutation.""" +""" +An error in the input of a mutation. Mutations return `UserError` objects to +indicate validation failures, such as invalid field values or business logic +violations, that prevent the operation from completing. +""" type MobilePlatformApplicationUserError implements DisplayableError { """The error code.""" code: MobilePlatformApplicationUserErrorCode @@ -41974,9 +46523,11 @@ A monetary value string without a currency symbol or code. Example value: `"100. scalar Money """ -A collection of monetary values in their respective currencies. Typically used -in the context of multi-currency pricing and transactions, -when an amount in the shop's currency is converted to the customer's currency of choice (the presentment currency). +A collection of monetary values in their respective currencies. Used throughout +the API for multi-currency pricing and transactions, when an amount in the +shop's currency is converted to the customer's currency of choice. The +`presentmentMoney` field contains the amount in the customer's selected +currency. The `shopMoney` field contains the equivalent in the shop's base currency. """ type MoneyBag { """Amount in presentment currency.""" @@ -42011,23 +46562,47 @@ input MoneyInput { currencyCode: CurrencyCode! } -"""A monetary value with currency.""" +""" +A precise monetary value and its associated currency. Combines a decimal amount +with a three-letter currency code to express prices, costs, and other financial +values throughout the API. For example, 12.99 USD. +""" type MoneyV2 { - """Decimal money amount.""" + """ + A monetary value in decimal format, allowing for precise representation of cents or fractional + currency. For example, 12.99. + """ amount: Decimal! - """Currency of the money.""" + """ + The three-letter currency code that represents a world currency used in a store. Currency codes + include standard [standard ISO 4217 codes](https://en.wikipedia.org/wiki/ISO_4217), legacy codes, + and non-standard codes. For example, USD. + """ currencyCode: CurrencyCode! } """ -The input fields for a single move of an object to a specific position in a set, using a zero-based index. +The input for moving a single object to a specific position in a set. + +Provide this input only for objects whose position actually changed; do not send inputs for the entire set. + +- id: The ID (GID) of the object to move. +- newPosition: The zero-based index of the object's position within the set at the time this move is applied. + +Moves are applied sequentially, so `newPosition` for each move is evaluated after all prior moves in the same list. +If `newPosition` is greater than or equal to the number of objects, the object is moved to the end of the set. +Values do not have to be unique. Objects not included in the move list keep +their relative order, aside from any displacement caused by the moves. """ input MoveInput { """The ID of the object to be moved.""" id: ID! - """The new position of the object in the set.""" + """ + Zero-based index of the object's position at the time this move is applied. If + the value is >= the number of objects, the object is placed at the end. + """ newPosition: UnsignedInt64! } @@ -42069,9 +46644,24 @@ type Mutation { ): AbandonmentUpdateActivitiesDeliveryStatusesPayload """ - Charges a shop for features or services one time. - This type of charge is recommended for apps that aren't billed on a recurring basis. - Test and demo shops aren't charged. + Creates a one-time charge for app features or services that don't require + recurring billing. This mutation is ideal for apps that sell individual + features, premium content, or services on a per-use basis rather than + subscription models. + + For example, a design app might charge merchants once for premium templates, + or a marketing app could bill for individual campaign setups without ongoing monthly fees. + + Use the `AppPurchaseOneTimeCreate` mutation to: + - Charge for premium features or content purchases + - Bill for professional services or setup fees + - Generate revenue from one-time digital product sales + + The mutation returns a confirmation URL that merchants must visit to approve + the charge. Test and development stores are not charged, allowing safe testing + of billing flows. + + Explore one-time billing options on the [app purchases page](https://shopify.dev/docs/apps/launch/billing/support-one-time-purchases). """ appPurchaseOneTimeCreate( """The name of the one-time purchase from the app.""" @@ -42089,13 +46679,52 @@ type Mutation { test: Boolean = false ): AppPurchaseOneTimeCreatePayload - """Revokes access scopes previously granted for an app installation.""" + """ + Revokes previously granted access scopes from an app installation, allowing + merchants to reduce an app's permissions without completely uninstalling it. + This provides granular control over what data and functionality apps can access. + + For example, if a merchant no longer wants an app to access customer + information but still wants to use its inventory features, they can revoke the + customer-related scopes while keeping inventory permissions active. + + Use the `appRevokeAccessScopes` mutation to: + - Remove specific permissions from installed apps + - Maintain app functionality while minimizing data exposure + + The mutation returns details about which scopes were successfully revoked and + any errors that prevented certain permissions from being removed. + + Learn more about [managing app permissions](https://shopify.dev/docs/apps/build/authentication-authorization/app-installation/manage-access-scopes#revoke-granted-scopes-dynamically). + """ appRevokeAccessScopes( """The list of scope handles to revoke.""" scopes: [String!]! ): AppRevokeAccessScopesPayload - """Cancels an app subscription on a store.""" + """ + Cancels an active app subscription, stopping future billing cycles. The + cancellation behavior depends on the `replacementBehavior` setting - it can + either disable auto-renewal (allowing the subscription to continue until the + end of the current billing period) or immediately cancel with prorated refunds. + + When a merchant decides to discontinue using subscription features, this + mutation provides a clean cancellation workflow that respects billing periods + and merchant expectations. + + Use the `AppSubscriptionCancel` mutation to: + - Process merchant-initiated subscription cancellations + - Terminate subscriptions due to policy violations or account issues + - Handle subscription cancellations during app uninstallation workflows + + The cancellation timing and merchant access depends on the + `replacementBehavior` setting and the app's specific implementation of + subscription management. + + For subscription lifecycle management and cancellation best practices, consult + the [subscription management + guide](https://shopify.dev/docs/apps/launch/billing/subscription-billing). + """ appSubscriptionCancel( """The ID of the app subscription to be cancelled.""" id: ID! @@ -42111,7 +46740,18 @@ type Mutation { ): AppSubscriptionCancelPayload """ - Allows an app to charge a store for features or services on a recurring basis. + Creates a recurring or usage-based [`AppSubscription`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AppSubscription) + that charges merchants for app features and services. The subscription + includes one or more [`AppSubscriptionLineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AppSubscriptionLineItem) + objects that define the pricing structure, billing intervals, and optional [`AppSubscriptionDiscount`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AppSubscriptionDiscount) values. + + Returns a [confirmation URL](https://shopify.dev/docs/api/admin-graphql/latest/mutations/appSubscriptionCreate#returns-confirmationUrl) + where the merchant approves or declines the charges. After approval, the + subscription becomes active and billing begins after any trial period expires. + You can specify [`AppSubscriptionReplacementBehavior`](https://shopify.dev/docs/api/admin-graphql/latest/enums/AppSubscriptionReplacementBehavior) + to control how this subscription interacts with existing active subscriptions. + + Learn more about [creating app subscriptions](https://shopify.dev/docs/apps/launch/billing/subscription-billing/create-time-based-subscriptions). """ appSubscriptionCreate( """A descriptive name for the app subscription.""" @@ -42142,7 +46782,16 @@ type Mutation { ): AppSubscriptionCreatePayload """ - Updates the capped amount on the usage pricing plan of an app subscription line item. + Updates the capped amount on usage-based billing for an [`AppSubscriptionLineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AppSubscriptionLineItem). + Enables you to modify the maximum charge limit that prevents merchants from + exceeding a specified threshold during their billing period. + + The mutation returns a [confirmation URL](https://shopify.dev/docs/api/admin-graphql/latest/mutations/appSubscriptionCreate#returns-confirmationUrl) + where the merchant must approve the new pricing limit before it takes effect. + Use this when adjusting usage limits based on merchant needs or changing + pricing models. + + Learn more about [updating the maximum charge for a subscription](https://shopify.dev/docs/apps/launch/billing/subscription-billing/update-max-charge). """ appSubscriptionLineItemUpdate( """The ID of the app subscription line item to be updated.""" @@ -42154,7 +46803,16 @@ type Mutation { cappedAmount: MoneyInput! ): AppSubscriptionLineItemUpdatePayload - """Extends the trial of an app subscription.""" + """ + Extends the trial period for an existing app subscription. Trial extensions + give merchants additional time to use the app before committing to paid billing. + + Requires the subscription ID and the number of days to extend (between one and + 1000). The extension modifies the existing trial end date, allowing continued + access to subscription features without immediate billing. Returns the updated [`AppSubscription`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AppSubscription). + + Learn more about [offering free trials](https://shopify.dev/docs/apps/launch/billing/offer-free-trials). + """ appSubscriptionTrialExtend( """The ID of the app subscription to extend the trial for.""" id: ID! @@ -42166,12 +46824,36 @@ type Mutation { ): AppSubscriptionTrialExtendPayload """ - Enables an app to charge a store for features or services on a per-use basis. - The usage charge value is counted towards the `cappedAmount` limit that was - specified in the `appUsagePricingDetails` field when the app subscription was created. - If you create an app usage charge that causes the total usage charges in a - billing interval to exceed the capped amount, then a `Total price exceeds - balance remaining` error is returned. + Uninstalls an [`App`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App) from + a shop. Apps use this mutation to uninstall themselves programmatically, removing their [`AppInstallation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AppInstallation) + from the merchant's store. + + When an app uninstalls, Shopify automatically performs cleanup tasks, such as deleting [`WebhookSubscription`](https://shopify.dev/docs/api/admin-graphql/latest/objects/WebhookSubscription) + objects and [admin + links](https://shopify.dev/docs/apps/build/admin/admin-links) associated with the app. + + Learn more about [app lifecycle management](https://shopify.dev/docs/apps/build/authentication-authorization/app-installation/uninstall-app-api-request). + + > Caution: + > This action is irreversible. You can't restore an uninstalled app's + configuration or data. Before you uninstall an app, make sure that you no + longer need to make API calls for the store in which the app has been installed. + """ + appUninstall: AppUninstallPayload + + """ + Creates a usage charge for an app subscription with usage-based pricing. The + charge counts toward the capped amount limit set when creating the subscription. + + Usage records track consumption of app features or services on a per-use + basis. You provide the charge amount, a description of what you consumed, and + the subscription line item ID. The optional [`idempotencyKey`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AppUsageRecord#field-idempotencyKey) + parameter prevents duplicate charges if you send the same request multiple times. + + If the new charge would cause total usage charges in the current billing + interval to exceed the capped amount, then the mutation returns an error. + + Learn more about [creating usage-based subscriptions](https://shopify.dev/docs/apps/launch/billing/subscription-billing/create-usage-based-subscriptions). """ appUsageRecordCreate( """ @@ -42192,7 +46874,16 @@ type Mutation { idempotencyKey: String ): AppUsageRecordCreatePayload - """Creates an article.""" + """ + Creates an [`Article`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Article). Articles are content pieces that include a title, body text, and author information. + + You can publish the article immediately or schedule it with a specific publish + date. You can customize the article's URL handle, apply custom templates for + rendering, and add optional fields like [tags](https://shopify.dev/docs/api/admin-graphql/latest/mutations/articleCreate#arguments-article.fields.tags), an [image](https://shopify.dev/docs/api/admin-graphql/latest/mutations/articleCreate#arguments-article.fields.image), and [`Metafield`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Metafield) objects. + + The mutation validates article content and ensures proper blog association. + Error handling provides specific feedback for content requirements. + """ articleCreate( """The properties of the new article.""" article: ArticleCreateInput! @@ -42201,13 +46892,32 @@ type Mutation { blog: ArticleBlogInput ): ArticleCreatePayload - """Deletes an article.""" + """ + Permanently deletes a blog article from a shop's blog. This mutation removes the article and all associated metadata. + + For example, when outdated product information or seasonal content needs + removal, merchants can use this mutation to clean up their blog. + + Use the `articleDelete` mutation to: + - Remove outdated or incorrect blog content + - Clean up seasonal or time-sensitive articles + - Maintain blog organization + + The deletion is permanent and returns the deleted article's ID for confirmation. + """ articleDelete( """The ID of the article to be deleted.""" id: ID! ): ArticleDeletePayload - """Updates an article.""" + """ + Updates an existing [`Article`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Article). + You can modify the article's content, metadata, publication status, and + associated properties like author information and tags. + + If you update the [`handle`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/articleUpdate#arguments-article.fields.handle), + then you can optionally create a redirect from the old URL to the new one by setting [`redirectNewHandle`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/articleUpdate#arguments-article.fields.redirectNewHandle) to `true`. + """ articleUpdate( """The ID of the article to be updated.""" id: ID! @@ -42229,19 +46939,58 @@ type Mutation { region: BackupRegionUpdateInput ): BackupRegionUpdatePayload - """Creates a blog.""" + """ + Creates a new blog within a shop, establishing a container for organizing articles. + + For example, a fitness equipment retailer launching a wellness blog would use + this mutation to create the blog, enabling them to publish workout guides and + nutrition tips. + + Use the `blogCreate` mutation to: + - Launch new content marketing initiatives + - Create separate blogs for different content themes + - Establish spaces for article organization + + The mutation validates blog settings and establishes the structure for article publishing. + """ blogCreate( """The properties of the new blog.""" blog: BlogCreateInput! ): BlogCreatePayload - """Deletes a blog.""" + """ + Permanently deletes a blog from a shop. This mutation removes the blog container and its organizational structure. + + For example, when consolidating multiple seasonal blogs into a single + year-round content strategy, merchants can use this mutation to remove unused blogs. + + Use the `blogDelete` mutation to: + - Remove unused or outdated blogs + - Consolidate content organization + - Clean up blog structure + + The deletion is permanent and returns the deleted blog's ID for confirmation. + """ blogDelete( """The ID of the blog to be deleted.""" id: ID! ): BlogDeletePayload - """Updates a blog.""" + """ + Updates an existing blog's configuration and settings. This mutation allows + merchants to modify blog properties to keep their content strategy current. + + For example, a merchant might update their blog's title from "Company News" to + "Sustainability Stories" when shifting their content focus, or modify the + handle to improve URL structure. + + Use the `blogUpdate` mutation to: + - Change blog titles for rebranding + - Modify blog handles for better URLs + - Adjust comment settings and moderation preferences + + The mutation returns the updated blog with any validation errors. + """ blogUpdate( """The ID of the blog to be updated.""" id: ID! @@ -42261,10 +47010,17 @@ type Mutation { ): BulkOperationCancelPayload """ - Creates and runs a bulk operation mutation. + Creates and runs a [bulk operation](https://shopify.dev/docs/api/admin-graphql/latest/objects/BulkOperation) + to import data asynchronously. This mutation executes a specified GraphQL + mutation multiple times using input data from a [JSONL](http://jsonlines.org/) + file that you've uploaded to Shopify. - To learn how to bulk import large volumes of data asynchronously, refer to the - [bulk import data guide](https://shopify.dev/api/usage/bulk-operations/imports). + The operation processes each line in your JSONL file as a separate mutation + execution. The operation delivers results in a JSONL file when it completes. + You can run one bulk mutation operation at a time per shop, though a [`bulkOperationRunQuery`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/bulkoperationrunquery) + operation can run simultaneously. + + Learn more about [bulk importing data](https://shopify.dev/docs/api/usage/bulk-operations/imports). """ bulkOperationRunMutation( """The mutation to be executed in bulk.""" @@ -42278,13 +47034,29 @@ type Mutation { ): BulkOperationRunMutationPayload """ - Creates and runs a bulk operation query. + Creates and runs a [bulk operation](https://shopify.dev/docs/api/admin-graphql/latest/objects/BulkOperation) + to fetch data asynchronously. The operation processes your GraphQL query in + the background and returns results in a [JSONL](http://jsonlines.org/) file when complete. + + Apps can run one bulk query operation and one bulk mutation operation at a + time per shop. The query must include at least one connection field and + supports up to five connections with a maximum nesting depth of two levels. + + > Note: Results remain available for seven days after completion. - See the [bulk operations guide](https://shopify.dev/api/usage/bulk-operations/queries) for more details. + For more information, see the [bulk operations guide](https://shopify.dev/docs/api/usage/bulk-operations/queries). """ bulkOperationRunQuery( """The query to be executed in bulk.""" query: String! + + """ + Enables grouping objects directly under their corresponding parent objects + in the JSONL output. Enabling grouping slows down bulk operations and + increases the likelihood of timeouts. Only enable grouping if you depend on + the grouped format. + """ + groupObjects: Boolean! = false ): BulkOperationRunQueryPayload """Creates product feedback for multiple products.""" @@ -42293,7 +47065,16 @@ type Mutation { feedbackInput: [ProductResourceFeedbackInput!]! ): BulkProductResourceFeedbackCreatePayload - """Creates a new carrier service.""" + """ + Creates a carrier service that provides real-time shipping rates to Shopify. + Carrier services provide real-time shipping rates from external providers like + FedEx, UPS, or custom shipping solutions. The carrier service connects to your + external shipping rate calculation system through a callback URL. + + When customers reach checkout, Shopify sends order details to your callback + URL and displays the returned shipping rates. The service must be active to + provide rates during checkout. + """ carrierServiceCreate( """The input fields used to create a carrier service.""" input: DeliveryCarrierServiceCreateInput! @@ -42313,10 +47094,41 @@ type Mutation { input: DeliveryCarrierServiceUpdateInput! ): CarrierServiceUpdatePayload - """Create a CartTransform function to the Shop.""" + """ + Creates a cart transform function that lets merchants customize how products + are bundled and presented during checkout. This gives merchants powerful + control over their merchandising strategy by allowing apps to modify cart line + items programmatically, supporting advanced approaches like dynamic bundles or + personalized product recommendations. + + For example, a bundle app might create a cart transform that automatically + groups related products (like a camera, lens, and case) into a single bundle + line item when customers add them to their cart, complete with bundle pricing + and unified presentation. + + Use `CartTransformCreate` to: + - Deploy custom bundling logic to merchant stores + - Enable dynamic product grouping during checkout + - Implement personalized product recommendations + - Create conditional offers based on cart contents + - Support complex pricing strategies for product combinations + + The mutation processes synchronously and returns the created cart transform + along with any validation errors. Once created, the cart transform function + becomes active for the shop and will process cart modifications according to + your defined logic. Cart transforms integrate with [Shopify + Functions](https://shopify.dev/docs/api/functions) to provide powerful + customization capabilities while maintaining checkout performance. + + Cart Transform functions can be configured to block checkout on failure or + allow graceful degradation, giving you control over how errors are handled in + the customer experience. + + Learn more about [customized bundles](https://shopify.dev/docs/apps/selling-strategies/bundles/add-a-customized-bundle). + """ cartTransformCreate( - """The identifier of the Function providing the cart transform.""" - functionId: String! + """The handle of the Function providing the cart transform.""" + functionHandle: String """Whether a run failure should block cart and checkout operations.""" blockOnFailure: Boolean = false @@ -42325,13 +47137,51 @@ type Mutation { metafields: [MetafieldInput!] = [] ): CartTransformCreatePayload - """Destroy a cart transform function from the Shop.""" + """ + Removes an existing cart transform function from the merchant's store, + disabling any customized bundle or cart modification logic it provided. This + mutation persistently deletes the transform configuration and stops all + associated cart processing. + + For example, when discontinuing a bundle app or removing specific + merchandising features, you would delete the corresponding cart transform to + ensure customers no longer see the bundled products or modified cart behavior. + + Use `CartTransformDelete` to: + - Deactivate customized bundle logic when removing app features + - Clean up unused transform functions + - Disable cart modifications during app uninstallation + - Remove outdated merchandising strategies + - Restore default cart behavior for merchants + + The deletion processes immediately and returns the ID of the removed cart + transform for confirmation. Once deleted, the transform function stops + processing new cart operations, though existing cart sessions may retain their + current state until refresh. This ensures a clean transition without + disrupting active customer sessions. + + Consider the timing of deletions carefully, as removing transforms during peak + shopping periods could affect customer experience if they have active carts + with transformed items. + + Learn more about [managing cart transforms](https://shopify.dev/docs/apps/selling-strategies/bundles). + """ cartTransformDelete( """A globally-unique identifier for the cart transform.""" id: ID! ): CartTransformDeletePayload - """Updates the context of a catalog.""" + """ + Modifies which contexts, like + [markets](https://shopify.dev/docs/api/admin-graphql/latest/objects/Market) or B2B [company locations](https://shopify.dev/docs/api/admin-graphql/latest/objects/CompanyLocation), can access a [`Catalog`](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/Catalog). + You can add or remove contexts to control where the catalog's products and + prices are available. + + Learn more about [managing catalog + contexts](https://shopify.dev/docs/apps/build/markets/new-markets/catalogs) + and [managing B2B + catalogs](https://shopify.dev/docs/apps/build/b2b/manage-catalogs). + """ catalogContextUpdate( """The ID of the catalog for which to update the context.""" catalogId: ID! @@ -42343,7 +47193,38 @@ type Mutation { contextsToRemove: CatalogContextInput ): CatalogContextUpdatePayload - """Creates a new catalog.""" + """ + Creates a [`Catalog`](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/Catalog) that controls product availability and pricing for specific contexts like + [markets](https://shopify.dev/docs/api/admin-graphql/latest/objects/Market) or B2B [company locations](https://shopify.dev/docs/api/admin-graphql/latest/objects/CompanyLocation). + + ### Publications and Price Lists + + - **[`Publication`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication)** objects control which products are visible in a catalog. Publications are + **optional**. When a publication isn't associated with a catalog, product + availability is determined by the sales channel. + - **[`PriceList`](https://shopify.dev/docs/api/admin-graphql/latest/objects/PriceList)** objects define custom pricing for products in a catalog. + + You can optionally associate a publication and price list when creating the + catalog, or add them later using separate mutations. + + ### When to use Publications + + **Create a publication only if you need to:** + - Limit which products are visible in a specific context (e.g., show different + products to different company locations or markets) + - Publish a curated subset of your product catalog + + **Do NOT create a publication if:** + - You want product availability determined by the sales channel + - You only need to customize pricing (use a price list without a publication) + + > **Important:** For company location catalogs that only require custom + pricing, create the catalog with a price list but without a publication. + + Learn more about [managing catalog + contexts](https://shopify.dev/docs/apps/build/markets/new-markets/catalogs) + and [using catalogs for different markets](https://shopify.dev/docs/apps/build/markets/catalogs-different-markets). + """ catalogCreate( """The properties of the new catalog.""" input: CatalogCreateInput! @@ -42360,7 +47241,16 @@ type Mutation { deleteDependentResources: Boolean = false ): CatalogDeletePayload - """Updates an existing catalog.""" + """ + Updates an existing [catalog's](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/Catalog) + configuration. Catalogs control product publishing and pricing for specific contexts like + [markets](https://shopify.dev/docs/api/admin-graphql/latest/objects/Market) or B2B [company locations](https://shopify.dev/docs/api/admin-graphql/latest/objects/CompanyLocation). + + You can modify the catalog's title, status, and associated context. You can + also update the [`PriceList`](https://shopify.dev/docs/api/admin-graphql/latest/objects/PriceList) + that determines pricing adjustments or the [`Publication`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication) + that controls which products customers see. + """ catalogUpdate( """The ID of the catalog to update.""" id: ID! @@ -42370,15 +47260,21 @@ type Mutation { ): CatalogUpdatePayload """ - Updates the checkout branding settings for a - [checkout profile](https://shopify.dev/api/admin-graphql/unstable/queries/checkoutProfile). + Updates the visual branding for a [`CheckoutProfile`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CheckoutProfile), + customizing how checkout displays to customers. Creates new branding settings + if none exist, or modifies existing settings. + + The mutation accepts two levels of customization through the [`CheckoutBrandingInput`](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/CheckoutBrandingInput) input object. [`designSystem`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/checkoutBrandingUpsert#arguments-checkoutBrandingInput.fields.designSystem) + defines foundational brand attributes like colors, typography, and corner + radius that apply consistently throughout checkout. [`customizations`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/checkoutBrandingUpsert#arguments-checkoutBrandingInput.fields.customizations) + defines styles for specific parts of the UI, individual components, or groups + of components like the header, buttons, form fields, and sections. - 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. + Changes to a published checkout profile display immediately in the store's + checkout. You can preview draft profiles in the Shopify admin's checkout + editor before publishing. - To learn more about updating checkout branding settings, refer to the checkout branding - [tutorial](https://shopify.dev/docs/apps/checkout/styling). + Learn more about [checkout styling](https://shopify.dev/docs/apps/checkout/styling). """ checkoutBrandingUpsert( """A globally-unique identifier.""" @@ -42390,7 +47286,31 @@ type Mutation { checkoutBrandingInput: CheckoutBrandingInput ): CheckoutBrandingUpsertPayload - """Adds products to a collection.""" + """ + Adds multiple products to an existing collection in a single operation. This + mutation provides an efficient way to bulk-manage collection membership + without individual product updates. + + For example, when merchants create seasonal collections, they can add dozens + of related products at once rather than updating each product individually. A + clothing store might add all winter jackets to a "Winter Collection" in one operation. + + Use `CollectionAddProducts` to: + - Bulk-add products to collections for efficient catalog management + - Implement collection building tools in admin interfaces + - Organize collection membership during bulk product operations + - Reduce API calls when managing large product sets + + The mutation processes multiple product additions and returns success status + along with any errors encountered during the operation. Products are added to + the collection while preserving existing collection settings. + + This operation only works with manual collections where merchants explicitly + choose which products to include. It will return an error if used with smart + collections that automatically include products based on conditions. + + Learn more about [collection management](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection). + """ collectionAddProducts( """ The ID of the collection that's being updated. This can't be a smart collection. @@ -42406,9 +47326,18 @@ type Mutation { ): CollectionAddProductsPayload """ - Asynchronously adds a set of products to a given collection. It can take a - long time to run. Instead of returning a collection, it returns a job which - should be polled. + Adds products to a [`Collection`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection) + asynchronously and returns a + [`Job`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Job) to + track the operation's progress. This mutation handles large product sets + efficiently by processing them in the background. + + You can poll the returned job using the + [`job`](https://shopify.dev/docs/api/admin-graphql/latest/queries/job) query + to monitor completion status. + + > Note: + > This mutation adds products in the order specified in the [`productIds`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/collectionAddProducts#arguments-productIds) argument. """ collectionAddProductsV2( """The ID of the collection that's being updated.""" @@ -42422,18 +47351,79 @@ type Mutation { productIds: [ID!]! ): CollectionAddProductsV2Payload - """Creates a collection.""" + """ + Creates a [collection](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection) + to group [products](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) together + in the [online store](https://shopify.dev/docs/apps/build/online-store) and + other [sales channels](https://shopify.dev/docs/apps/build/sales-channels). + For example, an athletics store might create different collections for running attire, shoes, and accessories. + + There are two types of collections: + + - **[Custom (manual) collections](https://help.shopify.com/manual/products/collections/manual-shopify-collection)**: + You specify the products to include in a collection. + - **[Smart (automated) collections](https://help.shopify.com/manual/products/collections/automated-collections)**: + You define rules, and products matching those rules are automatically + included in the collection. + + Use the `collectionCreate` mutation when you need to: + + - Create a new collection for a product launch or campaign + - Organize products by category, season, or promotion + - Automate product grouping using rules (for example, by tag, type, or price) + + > Note: + > The created collection is unpublished by default. To make it available to customers, + use the [`publishablePublish`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/publishablePublish) + mutation after creation. + + Learn more about [using metafields with smart collections](https://shopify.dev/docs/apps/build/custom-data/metafields/use-metafield-capabilities). + """ collectionCreate( """The properties to use when creating the collection.""" input: CollectionInput! ): CollectionCreatePayload - """Deletes a collection.""" + """ + Deletes a collection and removes it permanently from the store. This operation + cannot be undone and will remove the collection from all sales channels where + it was published. + + For example, when merchants discontinue seasonal promotions or reorganize + their catalog structure, they can delete outdated collections like "Back to + School 2023" to keep their store organized. + + Use `CollectionDelete` to: + - Remove outdated or unused collections from stores + - Clean up collection structures during catalog reorganization + - Implement collection management tools with deletion capabilities + + Products within the deleted collection remain in the store but are no longer grouped under that collection. + + Learn more about [collection management](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection). + """ collectionDelete( """The collection to delete.""" input: CollectionDeleteInput! ): CollectionDeletePayload + """ + Duplicates a [collection](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection). + + An existing collection ID and new title are required. + + ## Publication Duplication + + Publications may be excluded by passing `copyPublications: false` in the input. + + ## Metafields + Metafield values are not duplicated if the unique values capability is enabled. + """ + collectionDuplicate( + """The input for duplicating a collection.""" + input: CollectionDuplicateInput! + ): CollectionDuplicatePayload + """Publishes a collection to a channel.""" collectionPublish( """ @@ -42443,11 +47433,22 @@ type Mutation { ): CollectionPublishPayload @deprecated(reason: "Use `publishablePublish` instead.") """ - Removes a set of products from a given collection. The mutation can take a - long time to run. Instead of returning an updated collection the mutation - returns a job, which should be - [polled](https://shopify.dev/api/admin-graphql/latest/queries/job). For use - with manual collections only. + Removes multiple products from a collection in a single operation. This + mutation can process large product sets (up to 250 products) and may take + significant time to complete for collections with many products. + + For example, when ending a seasonal promotion, merchants can remove all sale + items from a "Summer Clearance" collection at once rather than editing each + product individually. + + Use `CollectionRemoveProducts` to: + - Bulk-remove products from collections efficiently + - Clean up collection membership during catalog updates + - Implement automated collection management workflows + + The operation processes asynchronously to avoid timeouts and performance issues, especially for large product sets. + + Learn more about [collection management](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection). """ collectionRemoveProducts( """ @@ -42463,19 +47464,41 @@ type Mutation { ): CollectionRemoveProductsPayload """ - Asynchronously reorders a set of products within a specified collection. - Instead of returning an updated collection, this mutation returns a job, which - should be [polled](https://shopify.dev/api/admin-graphql/latest/queries/job). The [`Collection.sortOrder`](https://shopify.dev/api/admin-graphql/latest/objects/Collection#field-collection-sortorder) - must be `MANUAL`. Displaced products will have their position altered in a - consistent manner, with no gaps. + Asynchronously reorders products within a specified collection. Instead of + returning an updated collection, this mutation returns a job, which should be + [polled](https://shopify.dev/api/admin-graphql/latest/queries/job). The [`Collection.sortOrder`](https://shopify.dev/api/admin-graphql/latest/objects/Collection#field-collection-sortorder) + must be `MANUAL`. + + How to use this mutation: + - Provide only the products that actually moved in the `moves` list; do not + send the entire product list. For example: to move the product at index 1 to + index N, send a single move for that product with `newPosition: N`. + - Each move is applied sequentially in the order provided. + - `newPosition` is a zero-based index within the collection at the moment the + move is applied (after any prior moves in the list). + - Products not included in `moves` keep their relative order, aside from any displacement caused by the moves. + - If `newPosition` is greater than or equal to the number of products, the product is placed at the end. + + Example: + - Initial order: [A, B, C, D, E] (indices 0..4) + - Moves (applied in order): + - E -> newPosition: 1 + - C -> newPosition: 4 + - Result: [A, E, B, D, C] + + Displaced products will have their position altered in a consistent manner with no gaps. """ collectionReorderProducts( """The ID of the collection on which to reorder products.""" id: ID! """ - A list of moves to perform, which will be evaluated in order. Up to 250 - moves are supported, the `newPosition` does not have to be unique. + A list of moves to perform, evaluated in order. Provide only products whose + positions changed; do not send the full list. + `newPosition` is a zero-based index evaluated at the time each move is applied (after any prior moves). + `newPosition` values do not need to be unique, and if a value is greater + than or equal to the number of products, the product is moved to the end. + Up to 250 moves are supported. """ moves: [MoveInput!]! ): CollectionReorderProductsPayload @@ -42488,7 +47511,41 @@ type Mutation { input: CollectionUnpublishInput! ): CollectionUnpublishPayload @deprecated(reason: "Use `publishableUnpublish` instead.") - """Updates a collection.""" + """ + Updates a [collection](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection), + modifying its properties, products, or publication settings. Collections help organize + [products](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) together + in the [online store](https://shopify.dev/docs/apps/build/online-store) and + other [sales channels](https://shopify.dev/docs/apps/build/sales-channels). + + Use the `collectionUpdate` mutation to programmatically modify collections in scenarios such as: + + - Updating collection details, like title, description, or image + - Modifying SEO metadata for better search visibility + - Changing which products are included (using rule updates for smart collections) + - Publishing or unpublishing collections across different sales channels + - Updating custom data using [metafields](https://shopify.dev/docs/apps/build/custom-data/metafields) + + There are two types of collections with different update capabilities: + + - **[Custom (manual) collections](https://help.shopify.com/manual/products/collections/manual-shopify-collection)**: + You can update collection properties, but rule sets can't be modified since + products are manually selected. + - **[Smart (automated) collections](https://help.shopify.com/manual/products/collections/automated-collections)**: + You can update both collection properties and the rules that automatically + determine which products are included. + When updating [rule sets](https://shopify.dev/docs/api/admin-graphql/latest/objects/CollectionRuleConditions) + for smart collections, the operation might be processed asynchronously. In + these cases, the mutation returns a + [`job`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Job) object + that you can use to track the progress of the update. + + To publish or unpublish collections to specific sales channels, use the dedicated + [`publishablePublish`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/publishablePublish) and + [`publishableUnpublish`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/publishableUnpublish) mutations. + + Learn more about [using metafields with smart collections](https://shopify.dev/docs/apps/build/custom-data/metafields/use-metafield-capabilities). + """ collectionUpdate( """The updated properties for the collection.""" input: CollectionInput! @@ -42545,25 +47602,80 @@ type Mutation { optionsAndValues: [OptionAndValueInput!] ): CombinedListingUpdatePayload - """Approves a comment.""" + """ + Approves a pending comment, making it visible to store visitors on the associated blog article. + + For example, when a customer submits a question about a product in a blog + post, merchants can approve the comment to make it publicly visible. + + Use the `commentApprove` mutation to: + - Publish pending comments after review + - Enable customer discussions on blog articles + - Maintain quality control over comments + + Once approved, the comment becomes visible to all store visitors. + """ commentApprove( """The ID of the comment to be approved.""" id: ID! ): CommentApprovePayload - """Deletes a comment.""" + """ + Permanently removes a comment from a blog article. + + For example, when a comment contains spam links or inappropriate language that + violates store policies, merchants can delete it entirely. + + Use the `commentDelete` mutation to: + - Remove spam or inappropriate comments permanently + - Clean up irrelevant discussions + - Maintain content standards on blog articles + + Deletion is permanent and can't be undone. + """ commentDelete( """The ID of the comment to be deleted.""" id: ID! ): CommentDeletePayload - """Marks a comment as not spam.""" + """ + Reverses a spam classification on a comment, restoring it to normal moderation + status. This mutation allows merchants to change their decision when a comment + has been manually marked as spam. + + For example, when a merchant reviews comments marked as spam and finds a + legitimate customer question, they can use this mutation to restore the + comment's normal status and make it eligible for approval. + + Use the `commentNotSpam` mutation to: + - Unmark comments that were marked as spam + - Restore comments to normal moderation status + - Move comments back to the approval queue + + This action changes the comment's status from spam back to pending, where it + can then be approved or managed according to standard moderation practices. + """ commentNotSpam( """The ID of the comment to be marked as not spam.""" id: ID! ): CommentNotSpamPayload - """Marks a comment as spam.""" + """ + Marks a comment as spam, removing it from public view. This mutation enables + merchants to quickly handle unwanted promotional content, malicious links, or + other spam that appears in blog discussions. + + For example, when a comment contains suspicious links to unrelated products or + services, merchants can mark it as spam to immediately hide it from customers. + + Use the `commentSpam` mutation to: + - Hide promotional or malicious comments from public view + - Protect customers from potentially harmful links + - Maintain professional discussion quality on blog articles + + Spam-marked comments can be reviewed later and potentially restored using the + `commentNotSpam` mutation if they were incorrectly classified. + """ commentSpam( """The ID of the comment to be marked as spam.""" id: ID! @@ -42581,7 +47693,18 @@ type Mutation { addressId: ID! ): CompanyAddressDeletePayload - """Assigns the customer as a company contact.""" + """ + Adds an existing [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer) + as a contact to a [`Company`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Company). + Companies are business entities that make purchases from the merchant's + store. Use this mutation when you have a customer who needs to be associated + with a B2B company to make purchases on behalf of that company. + + The mutation returns the newly created [`CompanyContact`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CompanyContact) + that links the customer to the company. After assignment, the customer becomes + a company contact who can place orders on behalf of the company with access to + any catalogs, pricing, and payment terms configured for the company's locations. + """ companyAssignCustomerAsContact( """The ID of the company to assign the contact to.""" companyId: ID! @@ -42686,7 +47809,17 @@ type Mutation { companyContactIds: [ID!]! ): CompanyContactsDeletePayload - """Creates a company.""" + """ + Creates a [`Company`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Company) + for B2B commerce. This mutation creates the company and can optionally create an initial [`CompanyContact`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CompanyContact) and [`CompanyLocation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CompanyLocation) + in a single operation. Company contacts are people who place orders on behalf + of the company. Company locations are branches or offices with their own + billing and shipping addresses. + + > Note: Creating a company without a `name` [returns an error](https://shopify.dev/docs/api/admin-graphql/latest/mutations/companycreate?example=creating-a-company-without-a-name-returns-an-error). + + Learn more about [creating companies for B2B](https://shopify.dev/docs/apps/build/b2b/start-building#step-1-create-a-company). + """ companyCreate( """The fields to use when creating the company.""" input: CompanyCreateInput! @@ -42739,7 +47872,16 @@ type Mutation { taxExemptions: [TaxExemption!]! ): CompanyLocationAssignTaxExemptionsPayload @deprecated(reason: "Use `companyLocationTaxSettingsUpdate` instead.") - """Creates a company location.""" + """ + Creates a new location for a [`Company`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Company). + Company locations are branches or offices where B2B customers can place orders + with specific pricing, catalogs, and payment terms. + + Creates a company location. Each location can have its own billing and + shipping addresses, tax settings, and [`buyer experience configuration`](https://shopify.dev/docs/api/admin-graphql/latest/objects/BuyerExperienceConfiguration). + You can assign [staff members](https://shopify.dev/docs/api/admin-graphql/latest/objects/StaffMember) and [`CompanyContact`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CompanyContact) + objects to manage the location. + """ companyLocationCreate( """The ID of the company that the company location belongs to.""" companyId: ID! @@ -42817,7 +47959,20 @@ type Mutation { exemptionsToRemove: [TaxExemption!] ): CompanyLocationTaxSettingsUpdatePayload - """Updates a company location.""" + """ + Updates a company location's information and B2B checkout settings. Company + locations are branches or offices where [`CompanyContact`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CompanyContact) + members place orders on behalf of the company. Contacts must be assigned to a + location through `roleAssignments` to place orders. + + The mutation modifies details such as the location's name, contact + information, preferred locale, and internal notes. You can also configure the + B2B checkout experience through [`BuyerExperienceConfiguration`](https://shopify.dev/docs/api/admin-graphql/latest/objects/BuyerExperienceConfiguration) + settings that control whether orders require merchant review, [`PaymentTermsTemplate`](https://shopify.dev/docs/api/admin-graphql/latest/objects/PaymentTermsTemplate) + settings, shipping address editing permissions, and [`DepositConfiguration`](https://shopify.dev/docs/api/admin-graphql/latest/unions/DepositConfiguration) requirements. + + Learn more about [managing company locations](https://shopify.dev/docs/apps/build/b2b/manage-client-company-locations). + """ companyLocationUpdate( """The ID of the company location to update.""" companyLocationId: ID! @@ -42838,7 +47993,19 @@ type Mutation { companyId: ID! ): CompanyRevokeMainContactPayload - """Updates a company.""" + """ + Updates a [`Company`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Company) + with new information. Companies represent business customers that can have + multiple contacts and locations with specific pricing, payment terms, and + checkout settings. + + The mutation accepts the company's ID and an input object containing the + fields to update. You can modify the company name, add or update internal + notes, set an external ID for integration with other systems, or adjust the + customer relationship start date. + + Learn more about [building B2B features](https://shopify.dev/docs/apps/build/b2b/start-building). + """ companyUpdate( """The ID of the company to be updated.""" companyId: ID! @@ -42871,7 +48038,11 @@ type Mutation { taxExemptions: [TaxExemption!]! ): CustomerAddTaxExemptionsPayload - """Create a new customer address.""" + """ + Creates a new [`MailingAddress`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MailingAddress) for a [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer). You can optionally set the address as the customer's default address. + + You can only add addresses to existing customers. Each customer can have multiple addresses. + """ customerAddressCreate( """The ID of the customer.""" customerId: ID! @@ -42892,7 +48063,10 @@ type Mutation { addressId: ID! ): CustomerAddressDeletePayload - """Update a customer's address information.""" + """ + Updates a [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer)'s [`MailingAddress`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MailingAddress). You can modify any field of the address and optionally set it as the + customer's default address. + """ customerAddressUpdate( """The ID of the customer whose address is being updated.""" customerId: ID! @@ -42908,7 +48082,7 @@ type Mutation { ): CustomerAddressUpdatePayload """ - Cancels a pending erasure of a customer's data. + Cancels a pending erasure of a customer's data. Read more [here](https://help.shopify.com/manual/privacy-and-security/privacy/processing-customer-data-requests#cancel-customer-data-erasure). To request an erasure of a customer's data use the [customerRequestDataErasure mutation](https://shopify.dev/api/admin-graphql/unstable/mutations/customerRequestDataErasure). """ @@ -42918,8 +48092,14 @@ type Mutation { ): CustomerCancelDataErasurePayload """ - 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). + Creates a new [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer) in the store. + + Accepts customer details including contact information, marketing consent + preferences, and tax exemptions through the [`CustomerInput`](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/CustomerInput) + input object. You can also associate [`metafields`](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/MetafieldInput) + and tags to organize and extend customer data. + + Apps using protected customer data must meet Shopify's [protected customer data requirements](https://shopify.dev/docs/apps/launch/protected-customer-data#requirements). """ customerCreate( """The input fields to create a customer.""" @@ -42927,15 +48107,26 @@ type Mutation { ): CustomerCreatePayload """ - Delete a 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). + Deletes a [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer) from the store. You can only delete customers who haven't placed any + [orders](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order). + + Apps using protected customer data must meet Shopify's [protected customer data requirements](https://shopify.dev/docs/apps/launch/protected-customer-data#requirements). """ customerDelete( """Specifies the customer to delete.""" input: CustomerDeleteInput! ): CustomerDeletePayload - """Update a customer's email marketing information information.""" + """ + Updates a [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer)'s email marketing consent information. The customer must have an email address + to update their consent. Records the [marketing state](https://shopify.dev/docs/api/admin-graphql/latest/objects/CustomerEmailAddress#field-marketingState) + (such as subscribed, pending, unsubscribed), [opt-in level](https://shopify.dev/docs/api/admin-graphql/latest/objects/CustomerEmailAddress#field-marketingOptInLevel), + and when and where the customer gave or withdrew consent. + + Only three values are accepted as input: SUBSCRIBED, UNSUBSCRIBED, and PENDING. + NOT_SUBSCRIBED, REDACTED, and INVALID cannot be set via this mutation; they are + read-only or internally-set states. + """ customerEmailMarketingConsentUpdate( """ Specifies the input fields to update a customer's email marketing consent information. @@ -42943,7 +48134,17 @@ type Mutation { input: CustomerEmailMarketingConsentUpdateInput! ): CustomerEmailMarketingConsentUpdatePayload - """Generate an account activation URL for a customer.""" + """ + Generates a one-time activation URL for a [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer) + whose legacy customer account isn't yet enabled. Use this after importing + customers or creating accounts that need activation. + + The generated URL expires after 30 days and becomes invalid if you generate a new one. + + > Note: The generated URL only works when legacy customer accounts are enabled + on the shop. It only works for customers with disabled or invited [`account states`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer#field-Customer.fields.state). + Attempting to generate a URL for an already-enabled customer returns an error. + """ customerGenerateAccountActivationUrl( """The ID of the customer that the URL is generated for.""" customerId: ID! @@ -43064,11 +48265,18 @@ type Mutation { ): CustomerPaymentMethodPaypalBillingAgreementUpdatePayload """ - Create a payment method from remote gateway identifiers. NOTE: This operation - processes payment methods asynchronously. The returned payment method will - initially have incomplete details. Developers must poll this payment method - using customerPaymentMethod query until all payment method details are - available, or the payment method is revoked (usually within seconds). + Creates a customer payment method using identifiers from remote payment + gateways like Stripe, Authorize.Net, or Braintree. Imports existing payment + methods from external gateways and associates them with [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer) + objects in Shopify. + + The operation processes payment methods asynchronously. The returned [`CustomerPaymentMethod`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CustomerPaymentMethod) + initially has incomplete details while Shopify validates and processes the + remote gateway information. Use the [`customerPaymentMethod`](https://shopify.dev/docs/api/admin-graphql/latest/queries/customerPaymentMethod) + query to retrieve the payment method status until all details are available or + the payment method is revoked. + + Learn more about [migrating customer payment methods from remote gateways](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/migrate-to-subscriptions-api/migrate-customer-information#step-2-import-payment-methods-for-customers). """ customerPaymentMethodRemoteCreate( """The ID of the customer.""" @@ -43141,7 +48349,17 @@ type Mutation { input: CustomerSegmentMembersQueryInput! ): CustomerSegmentMembersQueryCreatePayload - """Sends the customer an account invite email.""" + """ + Sends an email invitation for a customer to create a legacy customer account. + The invitation lets customers set up their password and activate their account + in the online store. + + You can optionally customize the email content including the subject, sender, + recipients, and message body. If you don't provide email customization, the + store uses its default account invitation template. + + > Note: The invite only works when legacy customer accounts are enabled on the shop. + """ customerSendAccountInviteEmail( """The ID of the customer to whom an account invite email is to be sent.""" customerId: ID! @@ -43184,7 +48402,14 @@ type Mutation { identifier: CustomerSetIdentifiers ): CustomerSetPayload - """Update a customer's SMS marketing consent information.""" + """ + Updates a [customer](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer)'s SMS marketing consent information. The customer must have a phone number on + their account to receive SMS marketing. + + You can set whether the customer subscribes or unsubscribes to SMS marketing + and specify the [opt-in level](https://shopify.dev/docs/api/admin-graphql/latest/mutations/customerSmsMarketingConsentUpdate#arguments-input.fields.smsMarketingConsent.marketingOptInLevel). + Optionally include when the consent was collected and which [location](https://shopify.dev/docs/api/admin-graphql/latest/mutations/customerSmsMarketingConsentUpdate#arguments-input.fields.smsMarketingConsent.sourceLocationId) collected it. + """ customerSmsMarketingConsentUpdate( """ Specifies the input fields to update a customer's SMS marketing consent information. @@ -43193,8 +48418,9 @@ type Mutation { ): CustomerSmsMarketingConsentUpdatePayload """ - Update a customer's attributes. 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). + Updates a [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer)'s attributes including personal information and [`tax exemptions`](https://shopify.dev/docs/api/admin-graphql/latest/enums/TaxExemption). + + Apps using protected customer data must meet Shopify's [protected customer data requirements](https://shopify.dev/docs/apps/launch/protected-customer-data#requirements). """ customerUpdate( """ @@ -43221,10 +48447,14 @@ type Mutation { ): DataSaleOptOutPayload """ - Creates a delegate access token. + Creates a [`DelegateAccessToken`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DelegateAccessToken) with a subset of the parent token's permissions. + + Delegate access tokens enable secure permission delegation to subsystems or + services that need limited access to shop resources. Each token inherits only + the scopes you specify, ensuring subsystems operate with minimal required + permissions rather than full app access. - To learn more about creating delegate access tokens, refer to - [Delegate OAuth access tokens to subsystems](https://shopify.dev/docs/apps/build/authentication-authorization/access-tokens/use-delegate-tokens). + Learn more about [delegating access tokens to subsystems](https://shopify.dev/docs/apps/build/authentication-authorization/access-tokens/use-delegate-tokens). """ delegateAccessTokenCreate( """The input fields for creating a delegate access token.""" @@ -43267,7 +48497,19 @@ type Mutation { deliveryCustomization: DeliveryCustomizationInput! ): DeliveryCustomizationUpdatePayload - """Create a delivery profile.""" + """ + Creates a [`DeliveryProfile`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DeliveryProfile) that defines shipping rates for specific products and locations. + + A delivery profile groups products with their shipping zones and rates. You + can associate profiles with [`SellingPlanGroup`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SellingPlanGroup) + objects to customize shipping for subscriptions and pre-orders. Each profile contains [`DeliveryProfileLocationGroup`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DeliveryProfileLocationGroup) + objects that specify which [`Location`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location) + objects ship to which [`DeliveryZone`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DeliveryZone) + objects with specific [`DeliveryMethodDefinition`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DeliveryMethodDefinition) + objects and rates. + + Learn more about [building delivery profiles](https://shopify.dev/docs/apps/build/purchase-options/deferred/delivery-and-deferment/build-delivery-profiles). + """ deliveryProfileCreate( """Specifies the input fields for a delivery profile.""" profile: DeliveryProfileInput! @@ -43279,16 +48521,27 @@ type Mutation { id: ID! ): DeliveryProfileRemovePayload - """Update a delivery profile.""" + """ + Updates a [`DeliveryProfile`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DeliveryProfile)'s configuration, including its shipping zones, rates, and associated products. + + Modify location groups to control which fulfillment [`Location`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location) + objects serve specific geographic areas. Add or remove shipping zones with + custom countries and provinces. Create or update shipping methods with rate + definitions and delivery conditions. Associate or dissociate [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) objects and [`SellingPlanGroup`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SellingPlanGroup) + objects to determine which products use this profile's shipping rules. + + The mutation supports partial updates through dedicated input fields for + creating, updating, and deleting specific components without affecting the + entire profile structure. + + Learn more about [building delivery profiles](https://shopify.dev/docs/apps/build/purchase-options/deferred/delivery-and-deferment/build-delivery-profiles). + """ deliveryProfileUpdate( """The ID of the delivery profile to update.""" id: ID! """Specifies the input fields for a delivery profile.""" profile: DeliveryProfileInput! - - """Whether this delivery profile should leave legacy mode.""" - leaveLegacyModeProfiles: Boolean ): DeliveryProfileUpdatePayload """ @@ -43344,11 +48597,12 @@ type Mutation { """ Assigns a location as the shipping origin while using legacy compatibility mode for multi-location delivery profiles. + Deprecated as of 2026-04 and will be removed in a future version as single origin shipping mode has been retired. """ deliveryShippingOriginAssign( """The ID of the location to assign as the shipping origin.""" locationId: ID! - ): DeliveryShippingOriginAssignPayload + ): DeliveryShippingOriginAssignPayload @deprecated(reason: "Single origin shipping mode is no longer supported.") """Activates an automatic discount.""" discountAutomaticActivate( @@ -43435,9 +48689,24 @@ type Mutation { ): DiscountAutomaticBasicUpdatePayload """ - Asynchronously delete automatic discounts in bulk if a `search` or `saved_search_id` argument is provided or if a - maximum discount threshold is reached (1,000). Otherwise, deletions will occur inline. - **Warning:** All automatic discounts will be deleted if a blank `search` argument is provided. + Deletes multiple automatic discounts in a single operation, providing + efficient bulk management for stores with extensive discount catalogs. This + mutation processes deletions asynchronously to handle large volumes without + blocking other operations. + + For example, when cleaning up expired seasonal promotions or removing outdated + automatic discounts across product categories, merchants can delete dozens of + discounts simultaneously rather than processing each individually. + + Use `DiscountAutomaticBulkDelete` to: + - Remove multiple automatic discounts efficiently + - Clean up expired or obsolete promotions + - Streamline discount management workflows + - Process large-scale discount removals asynchronously + + The operation returns a job object for tracking deletion progress and any validation errors encountered during processing. + + Learn more about [discount management](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountAutomatic). """ discountAutomaticBulkDelete( """ @@ -43497,8 +48766,24 @@ type Mutation { ): DiscountAutomaticDeactivatePayload """ - Deletes an - [automatic discount](https://help.shopify.com/manual/discounts/discount-types#automatic-discounts). + Deletes an existing automatic discount from the store, permanently removing it + from all future order calculations. This mutation provides a clean way to + remove promotional campaigns that are no longer needed. + + For example, when a seasonal promotion ends or a flash sale concludes, + merchants can use this mutation to ensure the discount no longer applies to + new orders while preserving historical order data. + + Use `DiscountAutomaticDelete` to: + - Remove expired promotional campaigns + - Clean up test discounts during development + - Delete automatic discounts that conflict with new promotions + - Maintain a clean discount configuration + + The mutation returns the ID of the deleted discount for confirmation and any + validation errors if the deletion cannot be completed. Once deleted, the + automatic discount will no longer appear in discount lists or apply to new + customer orders. """ discountAutomaticDelete( """The ID of the automatic discount to delete.""" @@ -43506,14 +48791,24 @@ type Mutation { ): DiscountAutomaticDeletePayload """ - Creates a - [free shipping discount](https://help.shopify.com/manual/discounts/discount-types/free-shipping) - that's automatically applied on a cart and at checkout. + Creates automatic free shipping discounts that apply to qualifying orders + without requiring discount codes. These promotions automatically activate when + customers meet specified criteria, streamlining the checkout experience. - > Note: - > To create code discounts, use the - [`discountCodeFreeShippingCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/discountCodeFreeShippingCreate) - mutation. + For example, a store might create an automatic free shipping discount for + orders over variable pricing to encourage larger purchases, or offer free + shipping to specific customer segments during promotional periods. + + Use `DiscountAutomaticFreeShippingCreate` to: + - Set up code-free shipping promotions + - Create order value-based shipping incentives + - Target specific customer groups with shipping benefits + - Establish location-based shipping discounts + + The mutation validates discount configuration and returns the created + automatic discount node along with any configuration errors that need resolution. + + Learn more about [automatic discounts](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountAutomaticNode). """ discountAutomaticFreeShippingCreate( """The input data used to create the automatic free shipping discount.""" @@ -43521,14 +48816,24 @@ type Mutation { ): DiscountAutomaticFreeShippingCreatePayload """ - Updates an existing - [free shipping discount](https://help.shopify.com/manual/discounts/discount-types/free-shipping) - that's automatically applied on a cart and at checkout. + Updates existing automatic free shipping discounts, allowing merchants to + modify promotion criteria, shipping destinations, and eligibility requirements + without recreating the entire discount structure. - > Note: - > To update code discounts, use the - [`discountCodeFreeShippingUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/discountCodeFreeShippingUpdate) - mutation instead. + For example, extending a holiday free shipping promotion to include additional + countries, adjusting the minimum order value threshold, or expanding customer + eligibility to include new segments. + + Use `DiscountAutomaticFreeShippingUpdate` to: + - Modify shipping discount thresholds and criteria + - Expand or restrict geographic availability + - Update customer targeting and eligibility rules + - Adjust promotion timing and activation periods + + Changes take effect immediately for new orders, while the mutation validates + all modifications and reports any configuration conflicts through user errors. + + Learn more about [managing automatic discounts](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountAutomaticFreeShipping). """ discountAutomaticFreeShippingUpdate( """The ID of the automatic free shipping discount to update.""" @@ -43538,7 +48843,25 @@ type Mutation { freeShippingAutomaticDiscount: DiscountAutomaticFreeShippingInput! ): DiscountAutomaticFreeShippingUpdatePayload - """Activates a code discount.""" + """ + Activates a previously created code discount, making it available for + customers to use during checkout. This mutation transitions inactive discount + codes into an active state where they can be applied to orders. + + For example, after creating a "SUMMER20" discount code but leaving it inactive + during setup, merchants can activate it when ready to launch their summer + promotion campaign. + + Use `DiscountCodeActivate` to: + - Launch scheduled promotional campaigns + - Reactivate previously paused discount codes + - Enable discount codes after configuration changes + - Control the timing of discount availability + + The mutation returns the updated discount code node with its new active status + and handles any validation errors that might prevent activation, such as + conflicting discount rules or invalid date ranges. + """ discountCodeActivate( """The ID of the code discount to activate.""" id: ID! @@ -43740,15 +49063,48 @@ type Mutation { bxgyCodeDiscount: DiscountCodeBxgyInput! ): DiscountCodeBxgyUpdatePayload - """Deactivates a code discount.""" + """ + Temporarily suspends a code discount without permanently removing it from the + store. Deactivation allows merchants to pause promotional campaigns while + preserving the discount configuration for potential future use. + + For example, when a flash sale needs to end immediately or a discount code + requires temporary suspension due to inventory issues, merchants can + deactivate it to stop new redemptions while keeping the discount structure intact. + + Use `DiscountCodeDeactivate` to: + - Pause active promotional campaigns timely + - Temporarily suspend problematic discount codes + - Control discount availability during inventory shortages + - Maintain discount history while stopping usage + + Deactivated discounts remain in the system and can be reactivated later, + unlike deletion which persistently removes the code. Customers attempting to + use deactivated codes will receive appropriate error messages. + """ discountCodeDeactivate( """The ID of the code discount to deactivate.""" id: ID! ): DiscountCodeDeactivatePayload """ - Deletes a - [code discount](https://help.shopify.com/manual/discounts/discount-types#discount-codes). + Removes a code discount from the store, making it permanently unavailable for + customer use. This mutation provides a clean way to eliminate discount codes + that are no longer needed or have been replaced. + + For example, when a seasonal promotion ends or a discount code has been + compromised, merchants can delete it entirely rather than just deactivating + it, ensuring customers cannot attempt to use expired promotional codes. + + Use `DiscountCodeDelete` to: + - persistently remove outdated promotional codes + - Clean up discount code lists after campaigns end + - Eliminate compromised or leaked discount codes + - Maintain organized discount management + + Once deleted, the discount code cannot be recovered and any customer attempts + to use it will fail. This differs from deactivation, which preserves the code + for potential future reactivation. """ discountCodeDelete( """The ID of the code discount to delete.""" @@ -43838,7 +49194,7 @@ type Mutation { discountRedeemCodeBulkAdd( """ The ID of the - [`DiscountCodeNode`](https://help.shopify.com/docs/api/admin-graphql/latest/objects/DiscountCodeNode#field-id) + [`DiscountCodeNode`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCodeNode#field-id) object that the codes will be added to. For example, `gid://shopify/DiscountCodeNode/123`. You can use the [`codeDiscountNodes` query](https://shopify.dev/docs/api/admin-graphql/latest/queries/codeDiscountNodes) @@ -43849,7 +49205,7 @@ type Mutation { """ The list of codes to associate with the [code discount](https://help.shopify.com/manual/discounts/discount-types#discount-codes). - Maximum: 100 codes. + Maximum: 250 codes. """ codes: [DiscountRedeemCodeInput!]! ): DiscountRedeemCodeBulkAddPayload @@ -43915,15 +49271,43 @@ type Mutation { ): DraftOrderBulkRemoveTagsPayload """ - Calculates the properties of a draft order. Useful for determining information - such as total taxes or price without actually creating a draft order. + Calculates the properties of a [`DraftOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrder) + without creating it. Returns pricing information including [`CalculatedDraftOrderLineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CalculatedDraftOrderLineItem) + totals, shipping charges, applicable discounts, and tax calculations based on the provided [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer) and [`MailingAddress`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MailingAddress) information. + + Use this mutation to preview total taxes and prices before creating a draft + order. It's particularly useful when working with B2B [`PurchasingEntity`](https://shopify.dev/docs/api/admin-graphql/latest/unions/PurchasingEntity) + or when you need to determine costs without committing to a draft order. Learn + more about [calculating draft orders for B2B purchasing entities](https://shopify.dev/docs/apps/build/b2b/draft-orders#step-1-calculate-a-draft-order-for-a-purchasing-entity). """ draftOrderCalculate( """The fields for the draft order.""" input: DraftOrderInput! ): DraftOrderCalculatePayload - """Completes a draft order and creates an order.""" + """ + Completes a [draft order](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrder) and + converts it into a [regular order](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order). + The order appears in the merchant's orders list, and the customer can be notified about their order. + + Use the `draftOrderComplete` mutation when a merchant is ready to finalize a draft order and create a real + order in their store. The `draftOrderComplete` mutation also supports sales channel attribution for tracking + order sources using the [`sourceName`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/draftOrderComplete#arguments-sourceName) + argument, [cart validation](https://shopify.dev/docs/apps/build/checkout/cart-checkout-validation) + controls for app integrations, and detailed error reporting for failed completions. + + You can complete a draft order with different [payment scenarios](https://help.shopify.com/manual/fulfillment/managing-orders/payments): + + - Mark the order as paid immediately. + - Set the order as payment pending using [payment terms](https://shopify.dev/docs/api/admin-graphql/latest/objects/PaymentTerms). + - Specify a custom payment amount. + - Select a specific payment gateway. + + > Note: + > When completing a draft order, inventory is [reserved](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps#inventory-states) + for the items in the order. This means the items will no longer be available for other customers to purchase. + Make sure to verify inventory availability before completing the draft order. + """ draftOrderComplete( """The draft order to complete.""" id: ID! @@ -43935,7 +49319,31 @@ type Mutation { sourceName: String ): DraftOrderCompletePayload - """Creates a draft order.""" + """ + Creates a [draft order](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrder) + with attributes such as customer information, line items, shipping and billing addresses, and payment terms. + Draft orders are useful for merchants that need to: + + - Create new orders for sales made by phone, in person, by chat, or elsewhere. + When a merchant accepts payment for a draft order, an order is created. + - Send invoices to customers with a secure checkout link. + - Use custom items to represent additional costs or products not in inventory. + - Re-create orders manually from active sales channels. + - Sell products at discount or wholesale rates. + - Take pre-orders. + + After creating a draft order, you can: + - Send an invoice to the customer using the [`draftOrderInvoiceSend`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/draftOrderInvoiceSend) mutation. + - Complete the draft order using the [`draftOrderComplete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/draftOrderComplete) mutation. + - Update the draft order using the [`draftOrderUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/draftOrderUpdate) mutation. + - Duplicate a draft order using the [`draftOrderDuplicate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/draftOrderDuplicate) mutation. + - Delete the draft order using the [`draftOrderDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/draftOrderDelete) mutation. + + > Note: + > When you create a draft order, you can't [reserve or hold inventory](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps#inventory-states) + for the items in the order by default. + > However, you can reserve inventory using the [`reserveInventoryUntil`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/draftOrderCreate#arguments-input.fields.reserveInventoryUntil) input. + """ draftOrderCreate( """The fields used to create the draft order.""" input: DraftOrderInput! @@ -43947,12 +49355,6 @@ type Mutation { orderId: ID! ): DraftOrderCreateFromOrderPayload - """Creates a merchant checkout for the given draft order.""" - draftOrderCreateMerchantCheckout( - """Specifies the Draft order's id that we create the checkout for.""" - id: ID! - ): DraftOrderCreateMerchantCheckoutPayload @deprecated(reason: "This mutation is no longer supported.") - """Deletes a draft order.""" draftOrderDelete( """Specify the draft order to delete by its ID.""" @@ -43974,7 +49376,11 @@ type Mutation { email: EmailInput ): DraftOrderInvoicePreviewPayload - """Sends an email invoice for a draft order.""" + """ + Sends an invoice email for a [`DraftOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrder). + The invoice includes a secure checkout link for reviewing and paying for the order. Use the [`email`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/draftOrderInvoiceSend#arguments-email) + argument to customize the email, such as the subject and message. + """ draftOrderInvoiceSend( """Specifies the draft order to send the invoice for.""" id: ID! @@ -44013,7 +49419,21 @@ type Mutation { ): EventBridgeServerPixelUpdatePayload """ - Creates a new Amazon EventBridge webhook subscription. + Creates a webhook subscription that notifies your + [`App`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App) when + specific events occur in a shop. Webhooks push event data to your endpoint + immediately when changes happen, eliminating the need for polling. + + This mutation configures webhook delivery to an Amazon EventBridge partner + event source. You can filter events using [Shopify API search + syntax](https://shopify.dev/docs/api/usage/search-syntax) to receive only + relevant webhooks, control which data fields are included in webhook payloads, + and specify metafield namespaces to include. + + > Note: + > The Webhooks API version [configured in your app](https://shopify.dev/docs/apps/build/webhooks/subscribe/use-newer-api-version) + determines the API version for webhook events. You can't specify it per subscription. + Building an app? If you only use app-specific webhooks, you won't need this. App-specific webhook subscriptions specified in your `shopify.app.toml` may be @@ -44027,7 +49447,7 @@ type Mutation { """Specifies the input fields for an EventBridge webhook subscription.""" webhookSubscription: EventBridgeWebhookSubscriptionInput! - ): EventBridgeWebhookSubscriptionCreatePayload + ): EventBridgeWebhookSubscriptionCreatePayload @deprecated(reason: "Use `webhookSubscriptionCreate` instead.") """ Updates an Amazon EventBridge webhook subscription. @@ -44044,7 +49464,7 @@ type Mutation { """Specifies the input fields for an EventBridge webhook subscription.""" webhookSubscription: EventBridgeWebhookSubscriptionInput! - ): EventBridgeWebhookSubscriptionUpdatePayload + ): EventBridgeWebhookSubscriptionUpdatePayload @deprecated(reason: "Use `webhookSubscriptionUpdate` instead.") """ Acknowledges file update failure by resetting FAILED status to READY and clearing any media errors. @@ -44055,30 +49475,124 @@ type Mutation { ): FileAcknowledgeUpdateFailedPayload """ - Creates file assets using an external URL or for files that were previously uploaded using the - [stagedUploadsCreate mutation](https://shopify.dev/api/admin-graphql/latest/mutations/stageduploadscreate). - These files are added to the [Files page](https://shopify.com/admin/settings/files) in Shopify admin. + Creates file assets for a store from external URLs or files that were previously uploaded using the + [`stagedUploadsCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/stageduploadscreate) + mutation. + + Use the `fileCreate` mutation to add various types of media and documents to your store. These files are added to the + [**Files** page](https://shopify.com/admin/settings/files) in the Shopify admin and can be referenced by other + resources in your store. + + The `fileCreate` mutation supports multiple file types: + + - **Images**: Product photos, variant images, and general store imagery + - **Videos**: Shopify-hosted videos for product demonstrations and marketing + - **External videos**: YouTube and Vimeo videos for enhanced product experiences + - **3D models**: Interactive 3D representations of products + - **Generic files**: PDFs, documents, and other file types for store resources + + The mutation handles duplicate filenames using configurable resolution modes that automatically append UUIDs, + replace existing files, or raise errors when conflicts occur. - Files are processed asynchronously. Some data is not available until processing is completed. - Check [fileStatus](https://shopify.dev/api/admin-graphql/latest/interfaces/File#field-file-filestatus) - to know when the files are READY or FAILED. See the - [FileStatus](https://shopify.dev/api/admin-graphql/latest/enums/filestatus) - for the complete set of possible fileStatus values. + > Note: + > Files are processed asynchronously. Check the + > [`fileStatus`](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/File#fields-fileStatus) + > field to monitor processing completion. The maximum number of files that can be created in a single batch is 250. + + After creating files, you can make subsequent updates using the following mutations: + + - [`fileUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fileUpdate): + Update file properties such as alt text or replace file contents while preserving the same URL. + - [`fileDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fileDelete): + Remove files from your store when they are no longer needed. - To get a list of all files, use the [files query](https://shopify.dev/api/admin-graphql/latest/queries/files). + To list all files in your store, use the + [`files`](https://shopify.dev/docs/api/admin-graphql/latest/queries/files) query. + + Learn how to manage + [product media and file assets](https://shopify.dev/docs/apps/build/online-store/product-media) + in your app. """ fileCreate( """List of new files to be created.""" files: [FileCreateInput!]! ): FileCreatePayload - """Deletes existing file assets that were uploaded to Shopify.""" + """ + Deletes file assets that were previously uploaded to your store. + + Use the `fileDelete` mutation to permanently remove media and file assets from your store when they are no longer needed. + This mutation handles the complete removal of files from both your store's file library and any associated references + to products or other resources. + + The `fileDelete` mutation supports removal of multiple file types: + + - **Images**: Product photos, variant images, and general store imagery + - **Videos**: Shopify-hosted videos for product demonstrations and marketing content + - **External Videos**: YouTube and Vimeo videos linked to your products + - **3D models**: Interactive 3D representations of products + - **Generic files**: PDFs, documents, and other file types stored in your + [**Files** page](https://shopify.com/admin/settings/files) + + When you delete files that are referenced by products, the mutation automatically removes those references and + reorders any remaining media to maintain proper positioning. Product file references are database relationships + managed through a media reference system, not just links in product descriptions. The Shopify admin provides a UI + to manage these relationships, and when files are deleted, the system automatically cleans up all references. + Files that are currently being processed by other operations are rejected to prevent conflicts. + + > Caution: + > File deletion is permanent and can't be undone. When you delete a file that's being used in your store, + > it will immediately stop appearing wherever it was displayed. For example, if you delete a product image, + > that product will show a broken image or placeholder on your storefront and in the admin. The same applies + > to any other files linked from themes, blog posts, or pages. Before deleting files, you can use the + > [`files` query](https://shopify.dev/api/admin-graphql/latest/queries/files) to list and review + > your store's file assets. + + Learn how to manage + [product media and file assets](https://shopify.dev/docs/apps/build/online-store/product-media) + in your app. + """ fileDelete( """The IDs of the files to be deleted.""" fileIds: [ID!]! ): FileDeletePayload - """Updates an existing file asset that was uploaded to Shopify.""" + """ + Updates properties, content, and metadata associated with an existing file + asset that has already been uploaded to Shopify. + + Use the `fileUpdate` mutation to modify various aspects of files already stored in your store. + Files can be updated individually or in batches. + + The `fileUpdate` mutation supports updating multiple file properties: + + - **Alt text**: Update accessibility descriptions for images and other media. + - **File content**: Replace image or generic file content while maintaining the same URL. + - **Filename**: Modify file names (extension must match the original). + - **Product references**: Add or remove associations between files and products. Removing file-product associations + deletes the file from the product's media gallery and clears the image from any product variants that were using it. + + The mutation handles different file types with specific capabilities: + + - **Images**: Update preview images, original source, filename, and alt text. + - **Generic files**: Update original source, filename, and alt text. + - **Videos and 3D models**: Update alt text and product references. + + > Note: + > Files must be in `ready` state before they can be updated. The mutation includes file locking to prevent + > conflicts during updates. You can't simultaneously update both `originalSource` and `previewImageSource`. + + After updating files, you can use related mutations for additional file management: + + - [`fileCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fileCreate): + Create new file assets from external URLs or staged uploads. + - [`fileDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fileDelete): + Remove files from your store when they are no longer needed. + + Learn how to manage + [product media and file assets](https://shopify.dev/docs/apps/build/online-store/product-media) + in your app. + """ fileUpdate( """List of files to be updated.""" files: [FileUpdateInput!]! @@ -44106,7 +49620,22 @@ type Mutation { payload: JSON ): FlowTriggerReceivePayload - """Cancels a fulfillment.""" + """ + Cancels an existing [`Fulfillment`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Fulfillment) + and reverses its effects on associated [`FulfillmentOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder) + objects. When you cancel a fulfillment, the system creates new fulfillment + orders for the cancelled items so they can be fulfilled again. + + The cancellation affects fulfillment orders differently based on their + fulfillment status. If a fulfillment order was entirely fulfilled, then it + automatically closes. If a fulfillment order is partially fulfilled, then the + remaining quantities adjust to include the cancelled items. The system creates + new fulfillment orders at the original [`Location`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location) + when items are still stocked there, or at alternative locations based on the + store's fulfillment priority settings. + + Learn more about [canceling fulfillments](https://shopify.dev/docs/apps/build/orders-fulfillment/fulfillment-service-apps/build-for-fulfillment-services#step-7-cancel-a-fulfillment). + """ fulfillmentCancel( """The ID of the fulfillment to be canceled.""" id: ID! @@ -44114,8 +49643,8 @@ type Mutation { """Creates a fulfillment constraint rule and its metafield.""" fulfillmentConstraintRuleCreate( - """The identifier of the function providing the constraint rule.""" - functionId: String! + """The handle of the function providing the constraint rule.""" + functionHandle: String """Associate the function with one or multiple delivery method types.""" deliveryMethodTypes: [DeliveryMethodType!]! @@ -44143,8 +49672,17 @@ type Mutation { ): FulfillmentConstraintRuleUpdatePayload """ - 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. + Creates a fulfillment for one or more [`FulfillmentOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder) + objects. The fulfillment orders are associated with the same + [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) and + are assigned to the same [`Location`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location). + + Use this mutation to mark items as fulfilled when they're ready to ship. You + can specify tracking information, customer notification preferences, and which [`FulfillmentOrderLineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/fulfillmentorderlineitem) + objects to fulfill from each fulfillment order. If you don't specify line + items, then the mutation fulfills all items in the fulfillment order. + + Learn more about [building fulfillment solutions](https://shopify.dev/docs/apps/build/orders-fulfillment/order-management-apps/build-fulfillment-solutions#create-a-fulfillment). """ fulfillmentCreate( """The input fields used to create a fulfillment from fulfillment orders.""" @@ -44166,7 +49704,14 @@ type Mutation { message: String ): FulfillmentCreateV2Payload @deprecated(reason: "Use `fulfillmentCreate` instead.") - """Creates a fulfillment event for a specified fulfillment.""" + """ + Creates a [`FulfillmentEvent`](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentEvent) to track the shipment status and location of items that have shipped. Events + capture status updates like carrier pickup, in transit, out for delivery, or delivered. + + Each event records the timestamp and current status of the [`Fulfillment`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Fulfillment). + You can include optional details such as the location where the event + occurred, estimated arrival time, and messages for tracking purposes. + """ fulfillmentEventCreate( """The input fields used to create a fulfillment event for a fulfillment.""" fulfillmentEvent: FulfillmentEventInput! @@ -44186,7 +49731,12 @@ type Mutation { ): FulfillmentOrderAcceptCancellationRequestPayload """ - Accepts a fulfillment request sent to a fulfillment service for a fulfillment order. + Accepts a fulfillment request that the fulfillment service has received for a [`FulfillmentOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder) + which signals that the fulfillment service will process and fulfill the order. + The fulfillment service can optionally provide a message to the merchant and + an estimated shipped date when accepting the request. + + Learn more about [accepting fulfillment requests](https://shopify.dev/docs/apps/build/orders-fulfillment/fulfillment-service-apps/build-for-fulfillment-services#accept-a-fulfillment-request). """ fulfillmentOrderAcceptFulfillmentRequest( """ @@ -44196,9 +49746,25 @@ type Mutation { """An optional reason for accepting the fulfillment request.""" message: String + + """ + The estimated date and time when the fulfillment order will be shipped. + """ + estimatedShippedAt: DateTime ): FulfillmentOrderAcceptFulfillmentRequestPayload - """Marks a fulfillment order as canceled.""" + """ + Cancels a [`FulfillmentOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder) and creates a replacement fulfillment order to represent the work left to be + done. The original fulfillment order will be marked as closed. + + This mutation works when the fulfillment order has a `SUBMITTED` or + `CANCELLATION_REQUESTED` status. For `SUBMITTED` orders, cancellation happens + immediately because the fulfillment service hasn't accepted the request. + + > Note: Orders that have had cancellation requested but the cancellation has + yet to be accepted by the fulfillment service might still have work completed + despite cancellation. + """ fulfillmentOrderCancel( """The ID of the fulfillment order to mark as canceled.""" id: ID! @@ -44255,10 +49821,15 @@ type Mutation { ): FulfillmentOrderHoldPayload """ - Mark line items associated with a fulfillment order as being ready for pickup by a customer. + Marks [fulfillment order line items](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrderLineItem) + as ready for customer pickup. When executed, this mutation automatically sends + a "Ready For Pickup" notification to the customer. - Sends a Ready For Pickup notification to the customer to let them know that their order is ready - to be picked up. + Use this mutation for local pickup orders after the items have been prepared + and are available for the customer to collect. You can specify one or more [fulfillment order](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder) + objects by providing the fulfillment order IDs in the [`lineItemsByFulfillmentOrder`](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/PreparedFulfillmentOrderLineItemsInput) + field. This allows you to mark fulfillment order line items from different + fulfillment orders as ready for pickup. """ fulfillmentOrderLineItemsPreparedForPickup( """ @@ -44282,7 +49853,10 @@ type Mutation { Moving a fulfillment order will fail in the following circumstances: * The fulfillment order is closed. - * The destination location has never stocked the requested inventory item. + * The fulfillment order has had progress manually reported. To move a + fulfillment order that has had progress manually reported, the fulfillment + order must first be marked as open resolving the ongoing progress state. + * The destination location doesn't stock the requested inventory item. * The API client doesn't have the correct permissions. Line items which have already been fulfilled can't be re-assigned @@ -44326,7 +49900,12 @@ type Mutation { fulfillmentOrderLineItems: [FulfillmentOrderLineItemInput!] ): FulfillmentOrderMovePayload - """Marks a scheduled fulfillment order as open.""" + """ + Marks a scheduled fulfillment order as open. + + From API version 2026-01, this will also mark a fulfillment order as open when + it is assigned to a merchant managed location and has had progress reported. + """ fulfillmentOrderOpen( """The ID of the fulfillment order to mark as open.""" id: ID! @@ -44414,7 +49993,11 @@ type Mutation { ): FulfillmentOrderReschedulePayload """ - Splits a fulfillment order or orders based on line item inputs and quantities. + Splits [`FulfillmentOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder) objects by moving the specified [`LineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItem) + objects and quantities into a new fulfillment order. + + If the original fulfillment order can't be split due to its current state, + then the mutation creates a replacement fulfillment order instead. """ fulfillmentOrderSplit( """ @@ -44437,7 +50020,18 @@ type Mutation { ): FulfillmentOrderSubmitCancellationRequestPayload """ - Sends a fulfillment request to the fulfillment service of a fulfillment order. + Sends a fulfillment request to the fulfillment service assigned to a [`FulfillmentOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder). + The fulfillment service must then accept or reject the request before + processing can begin. + + You can either request fulfillment for all line items or specify individual + items with quantities for partial fulfillment. When requesting partial + fulfillment, Shopify splits the original fulfillment order into two: one with + the submitted items and another with the remaining unsubmitted items. Include + an optional message to communicate special instructions to the fulfillment + service, such as gift wrapping or handling requirements. + + Learn more about [managing fulfillment requests as a fulfillment service](https://shopify.dev/docs/apps/build/orders-fulfillment/fulfillment-service-apps/build-for-fulfillment-services#step-4-act-on-fulfillment-requests). """ fulfillmentOrderSubmitFulfillmentRequest( """The ID of the fulfillment order associated with fulfillment request.""" @@ -44458,6 +50052,28 @@ type Mutation { fulfillmentOrderLineItems: [FulfillmentOrderLineItemInput!] ): FulfillmentOrderSubmitFulfillmentRequestPayload + """ + Route the fulfillment orders to an alternative location, according to the shop's order routing settings. This involves: + * Finding an alternate location that can fulfill the fulfillment orders. + * Assigning the fulfillment orders to the new location. + """ + fulfillmentOrdersReroute( + """The list of IDs of the fulfillment orders.""" + fulfillmentOrderIds: [ID!]! + + """ + The list of IDs of the locations to include for rerouting. By default, all locations are included. + """ + includedLocationIds: [ID!] + + """ + The list of IDs of the locations to exclude for rerouting. Excluded + locations specified here take precedence over included locations provided + through included_location_ids. + """ + excludedLocationIds: [ID!] + ): FulfillmentOrdersReroutePayload + """ Sets the latest date and time by which the fulfillment orders need to be fulfilled. """ @@ -44490,24 +50106,42 @@ type Mutation { name: String! """ - The URL to send requests for the fulfillment service. The following considerations apply: + The URL to send requests for the fulfillment service. + If `callbackUrl` is provided: - Shopify queries the callback_url/fetch_tracking_numbers endpoint to retrieve tracking numbers for orders, if `trackingSupport` is set to `true`. - Shopify queries the callback_url/fetch_stock endpoint to retrieve inventory levels, if `inventoryManagement` is set to `true`. - Shopify uses the callback_url/fulfillment_order_notification endpoint to send [fulfillment and cancellation requests](https://shopify.dev/apps/fulfillment/fulfillment-service-apps/manage-fulfillments#step-2-receive-fulfillment-requests-and-cancellations). + + Otherwise, if no `callbackUrl` is provided you need to submit this information via the api: + - For submitting tracking info and handling fulfillment requests, see our + docs on [building for fulfillment services](https://shopify.dev/apps/build/orders-fulfillment/fulfillment-service-apps/build-for-fulfillment-services). + - For managing inventory quantities, see our docs on [managing inventory quantities and states](https://shopify.dev/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states). """ - callbackUrl: URL! + callbackUrl: URL """ Whether the fulfillment service provides tracking numbers for packages. + + If `callbackUrl` is provided ([optional as of API version "2026-01"](https://shopify.dev/changelog/fulfillment-service-callback-url-is-now-optional)), + Shopify will periodically fetch tracking numbers via the callback endpoint. + + If no `callbackUrl` is provided you need to submit this information via the + api, see our docs on [building for fulfillment services](https://shopify.dev/apps/build/orders-fulfillment/fulfillment-service-apps/build-for-fulfillment-services). """ trackingSupport: Boolean = false """ Whether the fulfillment service manages product inventory and provides updates to Shopify. + + If `callbackUrl` is provided ([optional as of API version "2026-01"](https://shopify.dev/changelog/fulfillment-service-callback-url-is-now-optional)), + Shopify will periodically fetch inventory levels via the callback endpoint. + + If no `callbackUrl` is provided you need to submit this information via the + api, see our docs on [managing inventory quantities and states](https://shopify.dev/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states). """ inventoryManagement: Boolean = false @@ -44539,14 +50173,17 @@ type Mutation { ): FulfillmentServiceDeletePayload """ - Updates a fulfillment service. + Updates the [`FulfillmentService`](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentService) configuration, including its name, callback URL, and operational settings. - If you are using API version `2023-10` or later, - and you need to update the location managed by the fulfillment service - (for example, to change the address of a fulfillment service), - use the - [LocationEdit](https://shopify.dev/api/admin-graphql/latest/mutations/locationEdit) - mutation. + The mutation modifies how the fulfillment service handles inventory tracking, + shipping requirements, and package tracking support. + + > Note: + > To update the physical address or other location details of the fulfillment + service, use the [`locationEdit`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/locationEdit) + mutation instead. + + Learn more about [editing fulfillment service locations](https://shopify.dev/docs/apps/build/orders-fulfillment/fulfillment-service-apps/build-for-fulfillment-services#step-2-edit-locations). """ fulfillmentServiceUpdate( """The id of the fulfillment service.""" @@ -44556,24 +50193,40 @@ type Mutation { name: String """ - The URL to send requests for the fulfillment service. The following considerations apply: + The URL to send requests for the fulfillment service. + If `callbackUrl` is provided: - Shopify queries the callback_url/fetch_tracking_numbers endpoint to retrieve tracking numbers for orders, if `trackingSupport` is set to `true`. - Shopify queries the callback_url/fetch_stock endpoint to retrieve inventory levels, if `inventoryManagement` is set to `true`. - Shopify uses the callback_url/fulfillment_order_notification endpoint to send [fulfillment and cancellation requests](https://shopify.dev/apps/fulfillment/fulfillment-service-apps/manage-fulfillments#step-2-receive-fulfillment-requests-and-cancellations). + + Otherwise, if no `callbackUrl` is provided you need to submit this information via the api: + - For submitting tracking info and handling fulfillment requests, see our + docs on [building for fulfillment services](https://shopify.dev/apps/build/orders-fulfillment/fulfillment-service-apps/build-for-fulfillment-services). + - For managing inventory quantities, see our docs on [managing inventory quantities and states](https://shopify.dev/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states). """ callbackUrl: URL """ Whether the fulfillment service provides tracking numbers for packages. + + If `callbackUrl` is provided, Shopify will periodically fetch tracking numbers via the callback endpoint. + + If no `callbackUrl` is provided you need to submit this information via the + api, see our docs on [building for fulfillment services](https://shopify.dev/apps/build/orders-fulfillment/fulfillment-service-apps/build-for-fulfillment-services). """ trackingSupport: Boolean """ - Whether the fulfillment service tracks product inventory and provides updates to Shopify. + Whether the fulfillment service manages product inventory and provides updates to Shopify. + + If `callbackUrl` is provided, Shopify will periodically fetch inventory levels via the callback endpoint. + + If no `callbackUrl` is provided you need to submit this information via the + api, see our docs on [managing inventory quantities and states](https://shopify.dev/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states). """ inventoryManagement: Boolean @@ -44583,7 +50236,24 @@ type Mutation { requiresShippingMethod: Boolean = true ): FulfillmentServiceUpdatePayload - """Updates tracking information for a fulfillment.""" + """ + Updates tracking information for a fulfillment, including the carrier name, + tracking numbers, and tracking URLs. You can provide either single or multiple + tracking numbers for shipments with multiple packages. + + The mutation accepts a [`FulfillmentTrackingInput`](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/FulfillmentTrackingInput) + that supports both single tracking (using [`number`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentTrackingInfoUpdate#arguments-trackingInfoInput.fields.number) and [`url`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentTrackingInfoUpdate#arguments-trackingInfoInput.fields.url) + fields) and multi-package tracking (using [`numbers`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentTrackingInfoUpdate#arguments-trackingInfoInput.fields.numbers) and [`urls`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentTrackingInfoUpdate#arguments-trackingInfoInput.fields.urls) + fields). When you specify a [supported carrier name](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentTrackingInfo#supported-tracking-companies), + Shopify automatically generates tracking URLs for the provided tracking numbers. + + You can optionally notify customers about tracking updates with the [`notifyCustomer`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fulfillmentTrackingInfoUpdate#arguments-notifyCustomer) + argument. When enabled, customers receive shipping update emails with tracking + details and receive notifications about future updates to the fulfillment. + + Learn more about [enabling tracking support](https://shopify.dev/docs/apps/build/orders-fulfillment/fulfillment-service-apps/build-for-fulfillment-services#step-9-optional-enable-tracking-support) + for fulfillment services. + """ fulfillmentTrackingInfoUpdate( """The ID of the fulfillment.""" fulfillmentId: ID! @@ -44617,7 +50287,16 @@ type Mutation { notifyCustomer: Boolean ): FulfillmentTrackingInfoUpdateV2Payload @deprecated(reason: "Use `fulfillmentTrackingInfoUpdate` instead.") - """Create a gift card.""" + """ + Creates a new [`GiftCard`](https://shopify.dev/docs/api/admin-graphql/latest/objects/GiftCard) with a specified initial value. You can assign the gift card to a [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer) + or create it without assignment for manual distribution. + + You can customize the gift card with an optional code, expiration date, and + internal note. If you don't provide a code, the system generates a random 16 + character alphanumeric code. The mutation also supports scheduling gift card + notifications to recipients, with a personalized message, through the [`recipientAttributes`](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/GiftCardCreateInput#fields-recipientAttributes) + field on the `GiftCardCreateInput` input object. + """ giftCardCreate( """The input fields to create a gift card.""" input: GiftCardCreateInput! @@ -44671,7 +50350,23 @@ type Mutation { input: GiftCardUpdateInput! ): GiftCardUpdatePayload - """Activate an inventory item at a location.""" + """ + Activates an inventory item at a [`Location`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location) by creating an [`InventoryLevel`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryLevel) + that tracks stock quantities. This enables you to manage inventory for a [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) + at the specified location. + + When you activate an inventory item, you can set its initial quantities. The [`available`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/inventoryActivate#arguments-available) + argument sets the quantity that's available for sale. [`onHand`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/inventoryActivate#arguments-onHand) + argument sets the total physical quantity at the location. If you don't + specify quantities, then `available` and `onHand` default to zero. + + > Caution: + > As of version `2026-01`, this mutation supports an optional idempotency key using the `@idempotent` directive. + > As of version `2026-04`, the idempotency key is required and must be provided using the `@idempotent` directive. + > For more information, see the [idempotency documentation](https://shopify.dev/docs/api/usage/idempotent-requests). + + Learn more about [managing inventory quantities and states](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states). + """ inventoryActivate( """The ID of the inventory item to activate.""" inventoryItemId: ID! @@ -44696,17 +50391,37 @@ type Mutation { stockAtLegacyLocation: Boolean = false ): InventoryActivatePayload - """Apply changes to inventory quantities.""" + """ + Adjusts quantities for inventory items by applying incremental changes at + specific locations. Each adjustment modifies the quantity by a delta value + rather than setting an absolute amount. + + The mutation tracks adjustments with a reason code and optional reference URI + for audit trails. Returns an [`InventoryAdjustmentGroup`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryAdjustmentGroup) + that records all changes made in the operation. + + Learn more about [managing inventory quantities and states](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states#adjust-inventory-quantities). + + > Caution: + > As of version `2026-01`, this mutation supports an optional idempotency key using the `@idempotent` directive. + > As of version `2026-04`, the idempotency key is required and must be provided using the `@idempotent` directive. + > For more information, see the [idempotency documentation](https://shopify.dev/docs/api/usage/idempotent-requests). + """ inventoryAdjustQuantities( """The information required to adjust inventory quantities.""" input: InventoryAdjustQuantitiesInput! ): InventoryAdjustQuantitiesPayload """ - Modify the activation status of an inventory item at locations. Activating an - inventory item at a particular location allows that location to stock that - inventory item. Deactivating an inventory item at a location removes the - inventory item's quantities and turns off the inventory item from that location. + Activates or deactivates an inventory item at multiple locations. When you activate an [`InventoryItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryItem) at a [`Location`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location), + that location can stock and track quantities for that item. When you + deactivate an inventory item at a location, the inventory item is no longer + stocked at that location. + + The mutation accepts an inventory item ID and a list of location-specific + activation settings. It returns the updated inventory item and any activated [`InventoryLevel`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryLevel) objects. + + Learn more about [managing inventory quantities and states](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states#inventory-object-relationships). """ inventoryBulkToggleActivation( """ @@ -44728,7 +50443,11 @@ type Mutation { inventoryLevelId: ID! ): InventoryDeactivatePayload - """Updates an inventory item.""" + """ + Updates an [`InventoryItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryItem)'s properties including whether inventory is tracked, cost, SKU, and whether + shipping is required. Inventory items represent the goods available to be + shipped to customers. + """ inventoryItemUpdate( """The ID of the inventory item to update.""" id: ID! @@ -44740,13 +50459,39 @@ type Mutation { input: InventoryItemInput! ): InventoryItemUpdatePayload - """Moves inventory between inventory quantity names at a single location.""" + """ + Moves inventory quantities for a single inventory item between different + states at a single location. Use this mutation to reallocate inventory across + quantity states without moving it between locations. + + Each change specifies the quantity to move, the source state and location, and + the destination state and location. The mutation returns an [`InventoryAdjustmentGroup`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryAdjustmentGroup) + that tracks all changes made in a single operation, providing an audit trail + with the reason and reference document URI. + + > Caution: + > As of version `2026-01`, this mutation supports an optional idempotency key using the `@idempotent` directive. + > As of version `2026-04`, the idempotency key is required and must be provided using the `@idempotent` directive. + > For more information, see the [idempotency documentation](https://shopify.dev/docs/api/usage/idempotent-requests). + """ inventoryMoveQuantities( """The information required to move inventory quantities.""" input: InventoryMoveQuantitiesInput! ): InventoryMoveQuantitiesPayload - """Set inventory on-hand quantities using absolute values.""" + """ + Sets an inventory item's on-hand quantities to specific absolute values at + designated locations. The mutation takes a reason for tracking purposes and a + reference document URI for audit trails. + + Returns an [`InventoryAdjustmentGroup`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryAdjustmentGroup) that tracks all changes made in this operation, including the delta values + calculated from the previous quantities. + + > Caution: + > As of 2026-01, this mutation supports an optional idempotency key using the `@idempotent` directive. + > As of 2026-04, the idempotency key is required and must be provided using the `@idempotent` directive. + > For more information, see the [idempotency documentation](https://shopify.dev/docs/api/usage/idempotent-requests). + """ inventorySetOnHandQuantities( """The information required to set inventory on hand quantities.""" input: InventorySetOnHandQuantitiesInput! @@ -44769,37 +50514,269 @@ type Mutation { > It is recommended to always include the `compareQuantity` value to ensure the accuracy of the inventory quantities and to opt out > of the check using `ignoreCompareQuantity` only when necessary. + + > Caution: + > As of 2026-01, this mutation supports an optional idempotency key using the `@idempotent` directive. + > As of 2026-04, the idempotency key is required and must be provided using the `@idempotent` directive. + > For more information, see the [idempotency documentation](https://shopify.dev/docs/api/usage/idempotent-requests). """ inventorySetQuantities( """The information required to set inventory quantities.""" input: InventorySetQuantitiesInput! ): InventorySetQuantitiesPayload - """Set up scheduled changes of inventory items.""" + """ + Set up scheduled changes of inventory items. + + > Caution: + > As of 2026-01, this mutation supports an optional idempotency key using the `@idempotent` directive. + > As of 2026-04, the idempotency key is required and must be provided using the `@idempotent` directive. + > For more information, see the [idempotency documentation](https://shopify.dev/docs/api/usage/idempotent-requests). + """ inventorySetScheduledChanges( """The input fields for setting up scheduled changes of inventory items.""" input: InventorySetScheduledChangesInput! - ): InventorySetScheduledChangesPayload + ): InventorySetScheduledChangesPayload @deprecated(reason: "Scheduled changes will be phased out in 2026-07.") + + """ + Adds items to an inventory shipment. + + > Caution: + > As of 2026-01, this mutation supports an optional idempotency key using the `@idempotent` directive. + > As of 2026-04, the idempotency key is required and must be provided using the `@idempotent` directive. + > For more information, see the [idempotency documentation](https://shopify.dev/docs/api/usage/idempotent-requests). + """ + inventoryShipmentAddItems( + """The ID of the inventory shipment to modify.""" + id: ID! + + """The list of line items to add to the inventory shipment.""" + lineItems: [InventoryShipmentLineItemInput!]! + ): InventoryShipmentAddItemsPayload + + """ + Adds a draft shipment to an inventory transfer. + + > Caution: + > As of 2026-01, this mutation supports an optional idempotency key using the `@idempotent` directive. + > As of 2026-04, the idempotency key is required and must be provided using the `@idempotent` directive. + > For more information, see the [idempotency documentation](https://shopify.dev/docs/api/usage/idempotent-requests). + """ + inventoryShipmentCreate( + """The input fields for the inventory shipment.""" + input: InventoryShipmentCreateInput! + ): InventoryShipmentCreatePayload + + """ + Adds an in-transit shipment to an inventory transfer. + + > Caution: + > As of 2026-01, this mutation supports an optional idempotency key using the `@idempotent` directive. + > As of 2026-04, the idempotency key is required and must be provided using the `@idempotent` directive. + > For more information, see the [idempotency documentation](https://shopify.dev/docs/api/usage/idempotent-requests). + """ + inventoryShipmentCreateInTransit( + """The input fields for the inventory shipment.""" + input: InventoryShipmentCreateInput! + ): InventoryShipmentCreateInTransitPayload + + """Deletes an inventory shipment. Only draft shipments can be deleted.""" + inventoryShipmentDelete( + """The ID of the inventory shipment to be deleted.""" + id: ID! + ): InventoryShipmentDeletePayload + + """Marks a draft inventory shipment as in transit.""" + inventoryShipmentMarkInTransit( + """The ID of the inventory shipment to mark in transit.""" + id: ID! + + """The date the shipment was shipped.""" + dateShipped: DateTime + ): InventoryShipmentMarkInTransitPayload + + """ + Receive an inventory shipment. + + > Caution: + > As of 2026-01, this mutation supports an optional idempotency key using the `@idempotent` directive. + > As of 2026-04, the idempotency key is required and must be provided using the `@idempotent` directive. + > For more information, see the [idempotency documentation](https://shopify.dev/docs/api/usage/idempotent-requests). + """ + inventoryShipmentReceive( + """The ID of the inventory shipment to receive.""" + id: ID! + + """The list of receive line items for the inventory shipment.""" + lineItems: [InventoryShipmentReceiveItemInput!] + + """The date the inventory shipment was initially received.""" + dateReceived: DateTime + + """The bulk receive action for the inventory shipment.""" + bulkReceiveAction: InventoryShipmentReceiveLineItemReason + ): InventoryShipmentReceivePayload + + """Remove items from an inventory shipment.""" + inventoryShipmentRemoveItems( + """The ID of the inventory shipment to remove items from.""" + id: ID! + + """ + A list of inventory shipment line item ids representing the items to be removed from the shipment. + """ + lineItems: [ID!]! + ): InventoryShipmentRemoveItemsPayload + + """Edits the tracking info on an inventory shipment.""" + inventoryShipmentSetTracking( + """The ID of the inventory shipment whose tracking info is being edited.""" + id: ID! + + """The tracking info to edit on the inventory shipment.""" + tracking: InventoryShipmentTrackingInput! + ): InventoryShipmentSetTrackingPayload + + """Updates items on an inventory shipment.""" + inventoryShipmentUpdateItemQuantities( + """The ID of the inventory shipment to update item quantities.""" + id: ID! + + """The list of line items to be updated to the shipment.""" + items: [InventoryShipmentUpdateItemQuantitiesInput!] = [] + ): InventoryShipmentUpdateItemQuantitiesPayload + + """Cancels an inventory transfer.""" + inventoryTransferCancel( + """The ID of the inventory transfer to cancel.""" + id: ID! + ): InventoryTransferCancelPayload + + """ + Creates a draft inventory transfer to move inventory items between [`Location`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location) + objects in your store. The transfer tracks which items to move, their + quantities, and the origin and destination locations. + + Use [`inventoryTransferMarkAsReadyToShip`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/inventoryTransferMarkAsReadyToShip) to mark the transfer as ready to ship. + + > Caution: + > As of version `2026-01`, this mutation supports an optional idempotency key using the `@idempotent` directive. + > As of version `2026-04`, the idempotency key is required and must be provided using the `@idempotent` directive. + > For more information, see the [idempotency documentation](https://shopify.dev/docs/api/usage/idempotent-requests). + """ + inventoryTransferCreate( + """The input fields for the inventory transfer.""" + input: InventoryTransferCreateInput! + ): InventoryTransferCreatePayload + + """ + Creates an inventory transfer in ready to ship. + + > Caution: + > As of 2026-01, this mutation supports an optional idempotency key using the `@idempotent` directive. + > As of 2026-04, the idempotency key is required and must be provided using the `@idempotent` directive. + > For more information, see the [idempotency documentation](https://shopify.dev/docs/api/usage/idempotent-requests). + """ + inventoryTransferCreateAsReadyToShip( + """The input fields for the inventory transfer.""" + input: InventoryTransferCreateAsReadyToShipInput! + ): InventoryTransferCreateAsReadyToShipPayload + + """Deletes an inventory transfer.""" + inventoryTransferDelete( + """The ID of the inventory transfer to delete.""" + id: ID! + ): InventoryTransferDeletePayload + + """ + This mutation allows duplicating an existing inventory transfer. The duplicated transfer will have the same + line items and quantities as the original transfer, but will be in a draft state with no shipments. + + > Caution: + > As of 2026-01, this mutation supports an optional idempotency key using the `@idempotent` directive. + > As of 2026-04, the idempotency key is required and must be provided using the `@idempotent` directive. + > For more information, see the [idempotency documentation](https://shopify.dev/docs/api/usage/idempotent-requests). + """ + inventoryTransferDuplicate( + """The ID of the inventory transfer to duplicate.""" + id: ID! + ): InventoryTransferDuplicatePayload + + """Edits an inventory transfer.""" + inventoryTransferEdit( + """The ID of the inventory Transfer to be edited.""" + id: ID! + + """The input fields to edit the inventory transfer.""" + input: InventoryTransferEditInput! + ): InventoryTransferEditPayload + + """Sets an inventory transfer to ready to ship.""" + inventoryTransferMarkAsReadyToShip( + """The ID of the inventory transfer to mark as ready to ship.""" + id: ID! + ): InventoryTransferMarkAsReadyToShipPayload + + """ + This mutation allows removing the shippable quantities of line items on a Transfer. + It removes all quantities of the item from the transfer that are not associated with shipments. + """ + inventoryTransferRemoveItems( + """The input fields for the InventoryTransferRemoveItems mutation.""" + input: InventoryTransferRemoveItemsInput! + ): InventoryTransferRemoveItemsPayload + + """ + This mutation allows for the setting of line items on a Transfer. Will replace the items already set, if any. + + > Caution: + > As of 2026-01, this mutation supports an optional idempotency key using the `@idempotent` directive. + > As of 2026-04, the idempotency key is required and must be provided using the `@idempotent` directive. + > For more information, see the [idempotency documentation](https://shopify.dev/docs/api/usage/idempotent-requests). + """ + inventoryTransferSetItems( + """The input fields for the InventoryTransferSetItems mutation.""" + input: InventoryTransferSetItemsInput! + ): InventoryTransferSetItemsPayload """ Activates a location so that you can stock inventory at the location. Refer to the [`isActive`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location#field-isactive) and [`activatable`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location#field-activatable) fields on the `Location` object. + + > Caution: + > As of 2026-01, this mutation supports an optional idempotency key using the `@idempotent` directive. + As of 2026-04, the idempotency key is required and must be provided using the `@idempotent` directive. + For more information, see the [idempotency documentation](https://shopify.dev/docs/api/usage/idempotent-requests). """ locationActivate( """The ID of a location to activate.""" locationId: ID! ): LocationActivatePayload - """Adds a new location.""" + """ + Adds a new [`Location`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location) where you can stock inventory and fulfill orders. Locations represent physical + places like warehouses, retail stores, or fulfillment centers. + + The location requires a name and address with at least a country code. You can + specify whether the location fulfills online orders, which determines if its + inventory is available for online sales. You can also attach custom + [metafields](https://shopify.dev/docs/apps/build/custom-data) to store + additional information about the location. + """ locationAdd( """The properties of the location to add.""" input: LocationAddInput! ): LocationAddPayload """ - Deactivates a location and moves inventory, pending orders, and moving transfers to a destination location. + Deactivates a location and moves inventory, pending orders, and moving transfers " "to a destination location. + + > Caution: + > As of 2026-01, this mutation supports an optional idempotency key using the `@idempotent` directive. + As of 2026-04, the idempotency key is required and must be provided using the `@idempotent` directive. + For more information, see the [idempotency documentation](https://shopify.dev/docs/api/usage/idempotent-requests). """ locationDeactivate( """The ID of a location to deactivate.""" @@ -44819,10 +50796,20 @@ type Mutation { ): LocationDeletePayload """ - Edits an existing location. + Updates the properties of an existing [`Location`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location). + You can modify the location's name, address, whether it fulfills online + orders, and custom + [`metafields`](https://shopify.dev/docs/apps/build/custom-data). + + Apps that created a [`FulfillmentService`](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentService) + can edit the associated location to ensure accurate representation of their + fulfillment network. - [As of the 2023-10 API version](https://shopify.dev/changelog/apps-can-now-change-the-name-and-address-of-their-fulfillment-service-locations), - apps can change the name and address of their fulfillment service locations. + > Note: + > You can't disable the [`fulfillsOnlineOrders`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/locationEdit#arguments-input.fields.fulfillsOnlineOrders) + setting for fulfillment service locations. + + Learn more about [editing locations for fulfillment services](https://shopify.dev/docs/apps/build/orders-fulfillment/fulfillment-service-apps/build-for-fulfillment-services#step-2-edit-locations). """ locationEdit( """The ID of a location to edit.""" @@ -44838,13 +50825,30 @@ type Mutation { locationId: ID! ): LocationLocalPickupDisablePayload - """Enables local pickup for a location.""" + """ + Enables local pickup for a location so customers can collect their orders in + person. Configures the estimated pickup time that customers see at checkout + and optional instructions for finding or accessing the pickup location. + """ locationLocalPickupEnable( """The settings required to enable local pickup for a location.""" localPickupSettings: DeliveryLocationLocalPickupEnableInput! ): LocationLocalPickupEnablePayload - """Creates a new market.""" + """ + Creates a [`Market`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Market) + to deliver customized shopping experiences. Markets define various aspects of + the buyer experience including pricing, product availability, custom content, + inventory and fulfillment priorities, and payment methods. + + Define conditions to match buyers by region, company location, retail + location, or other criteria. Configure [`MarketCurrencySettings`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MarketCurrencySettings) + to control currency behavior. Set [`MarketPriceInclusions`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MarketPriceInclusions) + to determine tax and duty display. Assign [`Catalog`](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/Catalog) objects and [`MarketWebPresence`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MarketWebPresence) + configurations to control product availability and SEO strategy. + + Learn more about [Shopify Markets](https://shopify.dev/docs/apps/build/markets). + """ marketCreate( """The properties of the new market.""" input: MarketCreateInput! @@ -44857,7 +50861,7 @@ type Mutation { """Properties to update for the market currency settings.""" input: MarketCurrencySettingsUpdateInput! - ): MarketCurrencySettingsUpdatePayload + ): MarketCurrencySettingsUpdatePayload @deprecated(reason: "This will be removed in a future version. Use `marketCreate` and `marketUpdate` for creating and updating\nmarket currency settings, respectively.\n") """Deletes a market definition.""" marketDelete( @@ -44953,7 +50957,9 @@ type Mutation { """ marketingActivitiesDeleteAllExternal: MarketingActivitiesDeleteAllExternalPayload - """Create new marketing activity.""" + """ + Create new marketing activity. Marketing activity app extensions are deprecated and will be removed in the near future. + """ marketingActivityCreate( """The Input of marketing activity create.""" input: MarketingActivityCreateInput! @@ -44981,7 +50987,10 @@ type Mutation { remoteId: String ): MarketingActivityDeleteExternalPayload - """Updates a marketing activity with the latest information.""" + """ + Updates a marketing activity with the latest information. Marketing activity + app extensions are deprecated and will be removed in the near future. + """ marketingActivityUpdate( """The Input of the marketing activity.""" input: MarketingActivityUpdateInput! @@ -45075,7 +51084,17 @@ type Mutation { deleteEngagementsForAllChannels: Boolean = false ): MarketingEngagementsDeletePayload - """Creates a menu.""" + """ + Creates a navigation + [`Menu`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Menu) for + the online store. Menus organize links that help customers navigate to [collections](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection), + [products](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product), + [pages](https://shopify.dev/docs/api/admin-graphql/latest/objects/Page), + [blogs](https://shopify.dev/docs/api/admin-graphql/latest/objects/Blog), and custom URLs. + + Each menu requires a unique handle for identification and can contain multiple [`MenuItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MenuItem) + objects with nested sub-items up to three levels deep. + """ menuCreate( """The menu's title.""" title: String! @@ -45093,7 +51112,16 @@ type Mutation { id: ID! ): MenuDeletePayload - """Updates a menu.""" + """ + Updates a [`Menu`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Menu) for + display on the storefront. Modifies the menu's title and navigation structure, + including nested [`MenuItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MenuItem) + objects. You can update the handle for non-default menus. + + The items argument accepts a list of menu items with their nested structure. + Each item can include nested items to create multi-level navigation + hierarchies. Default menus have restricted updates—you can't change their handles. + """ menuUpdate( """ID of the menu to be updated.""" id: ID! @@ -45109,9 +51137,17 @@ type Mutation { ): MenuUpdatePayload """ - Creates a metafield definition. Any metafields existing under the same owner type, namespace, and key will be - checked against this definition and will have their type updated accordingly. For metafields that are not - valid, they will remain unchanged but any attempts to update them must align with this definition. + Creates a [`MetafieldDefinition`](https://shopify.dev/docs/api/admin-graphql/current/objects/MetafieldDefinition) that establishes structure and validation rules for metafields. The definition + specifies the data type, validation constraints, and access permissions for + metafields with a given namespace and key combination. + + When you create a new definition, the system validates any existing + unstructured metafields matching the same owner type, namespace, and key + against it. The system updates each valid metafield's type to match the + definition. Invalid metafields remain unchanged but must conform to the + definition when updated. + + Learn more about [creating metafield definitions](https://shopify.dev/docs/apps/build/custom-data/metafields/definitions). """ metafieldDefinitionCreate( """Specifies the input fields for a metafield definition.""" @@ -45119,8 +51155,14 @@ type Mutation { ): MetafieldDefinitionCreatePayload """ - Delete a metafield definition. - Optionally deletes all associated metafields asynchronously when specified. + Deletes a [`MetafieldDefinition`](https://shopify.dev/docs/api/admin-graphql/current/objects/MetafieldDefinition). You can identify the definition by providing either its owner type, namespace, + and key, or its global ID. + + When you set [`deleteAllAssociatedMetafields`](https://shopify.dev/docs/api/admin-graphql/current/mutations/metafieldDefinitionDelete#arguments-deleteAllAssociatedMetafields) to `true`, the mutation asynchronously deletes all [`Metafield`](https://shopify.dev/docs/api/admin-graphql/current/objects/Metafield) + objects that use this definition. This option must be `true` when deleting + definitions under the `$app` namespace. + + Learn more about [deleting metafield definitions](https://shopify.dev/docs/apps/build/custom-data/metafields/definitions). """ metafieldDefinitionDelete( """ @@ -45165,13 +51207,34 @@ type Mutation { identifier: MetafieldDefinitionIdentifierInput ): MetafieldDefinitionUnpinPayload - """Updates a metafield definition.""" + """ + Updates a [`MetafieldDefinition`](https://shopify.dev/docs/api/admin-graphql/current/objects/MetafieldDefinition)'s configuration and settings. You can modify the definition's name, description, + validation rules, access settings, capabilities, and constraints. + + The mutation updates access settings that control visibility across different + APIs, such as the [GraphQL Admin + API](https://shopify.dev/docs/api/admin-graphql), [Storefront + API](https://shopify.dev/docs/api/storefront), and [Customer Account + API](https://shopify.dev/docs/api/customer). It also enables capabilities like + admin filtering or unique value validation, and modifies constraints that + determine which resource subtypes the definition applies to. + + > Note: The type, namespace, key, and owner type identify the definition and so can't be changed. + + Learn more about [updating metafield definitions](https://shopify.dev/docs/apps/build/custom-data/metafields/definitions). + """ metafieldDefinitionUpdate( """The input fields for the metafield definition update.""" definition: MetafieldDefinitionUpdateInput! ): MetafieldDefinitionUpdatePayload - """Deletes multiple metafields in bulk.""" + """ + Deletes [`Metafield`](https://shopify.dev/docs/api/admin-graphql/current/objects/Metafield) objects in bulk by specifying combinations of owner ID, namespace, and key. + + Returns the identifiers of successfully deleted metafields. If a specified + metafield doesn't exist, then the mutation still succeeds but returns `null` + for that identifier in the response. + """ metafieldsDelete( """ A list of identifiers specifying metafields to delete. At least one identifier must be specified. @@ -45182,7 +51245,7 @@ type Mutation { """ Sets metafield values. Metafield values will be set regardless if they were previously created or not. - Allows a maximum of 25 metafields to be set at a time. + Allows a maximum of 25 metafields to be set at a time, with a maximum total request payload size of 10MB. This operation is atomic, meaning no changes are persisted if an error is encountered. @@ -45212,13 +51275,35 @@ type Mutation { where: MetaobjectBulkDeleteWhereCondition! ): MetaobjectBulkDeletePayload - """Creates a new metaobject.""" + """ + Creates a metaobject entry based on an existing [`MetaobjectDefinition`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetaobjectDefinition). + The type must match a definition that already exists in the shop. + + Specify field values using key-value pairs that correspond to the field + definitions. The mutation generates a unique handle automatically if you don't + provide one. You can also configure capabilities like publishable status to + control the metaobject's visibility across channels. + + Learn more about [managing metaobjects](https://shopify.dev/docs/apps/build/custom-data/metaobjects/manage-metaobjects). + """ metaobjectCreate( """The parameters for the metaobject to create.""" metaobject: MetaobjectCreateInput! ): MetaobjectCreatePayload - """Creates a new metaobject definition.""" + """ + Creates a metaobject definition that establishes the structure for custom data + objects in your store. The definition specifies the fields, data types, and + access permissions that all [`Metaobject`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Metaobject) + entries of this type share. + + Use the `type` field to create a unique namespace for your metaobjects. Prefix + the type with `$app:` to reserve the definition for your app's exclusive use. + The definition can include capabilities like publishable status or translation + eligibility, to extend how metaobjects integrate with Shopify's features. + + Learn more about [managing metaobjects](https://shopify.dev/docs/apps/build/custom-data/metaobjects/manage-metaobjects). + """ metaobjectDefinitionCreate( """The input fields for creating a metaobject definition.""" definition: MetaobjectDefinitionCreateInput! @@ -45234,7 +51319,14 @@ type Mutation { ): MetaobjectDefinitionDeletePayload """ - Updates a metaobject definition with new settings and metafield definitions. + Updates a [`MetaobjectDefinition`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetaobjectDefinition)'s configuration and field structure. You can modify the definition's name, + description, display name key, access controls, and capabilities, as well as + those of all its fields. + + The mutation supports reordering fields when `resetFieldOrder` is `true`, + which arranges submitted fields first followed by alphabetized omitted fields. + + Learn more about [managing metaobjects](https://shopify.dev/docs/apps/build/custom-data/metaobjects/manage-metaobjects). """ metaobjectDefinitionUpdate( """The ID of the metaobject definition to update.""" @@ -45250,7 +51342,15 @@ type Mutation { id: ID! ): MetaobjectDeletePayload - """Updates an existing metaobject.""" + """ + Updates a [`Metaobject`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Metaobject) with new field values, handle, or capabilities. [Metaobjects](https://shopify.dev/docs/apps/build/custom-data#what-are-metaobjects) + are custom data structures that extend Shopify's data model. + + You can modify field values mapped to the metaobject's [`MetaobjectDefinition`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetaobjectDefinition), + update the handle for a unique identifier, and adjust capabilities like + publishing status. When updating the handle, you can optionally create a + redirect from the old handle to maintain existing references. + """ metaobjectUpdate( """The ID of the metaobject to update.""" id: ID! @@ -45260,8 +51360,14 @@ type Mutation { ): MetaobjectUpdatePayload """ - Retrieves a metaobject by handle, then updates it with the provided input values. - If no matching metaobject is found, a new metaobject is created with the provided input values. + Creates or updates a [`Metaobject`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Metaobject) + based on its handle. If a metaobject with the specified handle exists, the + mutation updates it with the provided field values. If no matching metaobject + exists, the mutation creates a new one. + + The handle serves as a unique identifier within a metaobject type. Field + values map to the [`MetaobjectDefinition`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetaobjectDefinition)'s + field keys and overwrite existing values during updates. """ metaobjectUpsert( """The identifier of the metaobject to upsert.""" @@ -45292,16 +51398,66 @@ type Mutation { input: MobilePlatformApplicationUpdateInput! ): MobilePlatformApplicationUpdatePayload - """Cancels an order.""" + """ + Cancels an order, with options for refunding, restocking inventory, and customer notification. + + > Caution: + > Order cancellation is irreversible. An order that has been cancelled can't be restored to its original state. + + Use the `orderCancel` mutation to programmatically cancel orders in scenarios such as: + + - Customer-requested cancellations due to size, color, or other preference changes + - Payment processing failures or declined transactions + - Fraud detection and prevention + - Insufficient inventory availability + - Staff errors in order processing + - Wholesale or B2B order management workflows + + The `orderCancel` mutation provides flexible refund options including refunding to original payment methods + or issuing store credit. If a payment was only authorized (temporarily held) but not yet charged, + that hold will be automatically released when the order is cancelled, even if you choose not to refund other payments. + + The mutation supports different cancellation reasons: customer requests, payment declines, fraud, + inventory issues, staff errors, or other unspecified reasons. Each cancellation can include optional + staff notes for internal documentation (notes aren't visible to customers). + + An order can only be cancelled if it meets the following criteria: + + - The order hasn't already been cancelled. + - The order has no pending payment authorizations. + - The order has no active returns in progress. + - The order has no outstanding fulfillments that can't be cancelled. + + Orders might be assigned to locations that become + [deactivated](https://help.shopify.com/manual/fulfillment/setup/locations-management#deactivate-and-reactivate-locations) + after the order was created. When cancelling such orders, inventory behavior depends on payment status: + + - **Paid orders**: Cancellation will fail with an error if restocking is enabled, since inventory + can't be returned to deactivated locations. + - **Unpaid orders**: Cancellation succeeds but inventory is not restocked anywhere, even when the + restock option is enabled. The committed inventory effectively becomes unavailable rather than being + returned to stock at the deactivated location. + + After you cancel an order, you can still make limited updates to certain fields (like + notes and tags) using the + [`orderUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderUpdate). + + For partial refunds or more complex refund scenarios on active orders, + such as refunding only specific line items while keeping the rest of the order fulfilled, + consider using the [`refundCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/refundCreate) + mutation instead of full order cancellation. + + Learn how to build apps that integrate with + [order management and fulfillment processes](https://shopify.dev/docs/apps/build/orders-fulfillment). + """ orderCancel( """The ID of the order to be canceled.""" orderId: ID! """ - Indicates whether to refund the amount paid by the customer. Authorized - payments will be voided regardless of this setting. + Indicates how to refund the amount paid by the customer. Authorized payments will be voided regardless of this setting. """ - refund: Boolean! + refundMethod: OrderCancelRefundMethodInput """ Whether to restock the inventory committed to the order. For unpaid orders @@ -45319,26 +51475,49 @@ type Mutation { notifyCustomer: Boolean = false """ - A staff-facing note about the order cancellation. This is not visible to the customer. + A staff-facing note about the order cancellation. This is not visible to the customer. Maximum length of 255 characters. """ staffNote: String = null ): OrderCancelPayload """ - 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 - multi-capturable. To capture a partial payment, the included `amount` value - should be less than the total order amount. Multi-capture is available only to - stores on a Shopify Plus plan. + Captures payment for an authorized transaction on an order. Use this mutation to claim the money that was previously + reserved by an authorization transaction. + + The `orderCapture` mutation can be used in the following scenarios: + + - To capture the full amount of an authorized transaction + - To capture a partial payment by specifying an amount less than the total order amount + - To perform multiple captures on the same order, as long as the order transaction is + [multi-capturable](https://shopify.dev/docs/api/admin-graphql/latest/objects/ordertransaction#field-OrderTransaction.fields.multiCapturable) + + > Note: + > Multi-capture functionality is only available to stores on a + [Shopify Plus plan](https://help.shopify.com/manual/intro-to-shopify/pricing-plans/plans-features/shopify-plus-plan). + For multi-currency orders, the [`currency`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderCapture#arguments-input.fields.currency) + field is required and should match the presentment currency from the order. + + After capturing a payment, you can: + + - View the transaction details including status, amount, and processing information. + - Track the captured amount in both shop and presentment currencies. + - Monitor the transaction's settlement status. + + Learn more about [order transactions](https://shopify.dev/docs/api/admin-graphql/latest/objects/OrderTransaction). """ orderCapture( """The input for the mutation.""" input: OrderCaptureInput! ): OrderCapturePayload - """Closes an open order.""" + """ + Marks an open [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) as + closed. A closed order is one where merchants fulfill or cancel all [`LineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItem) + objects and complete all financial transactions. + + Once closed, the order indicates that no further work is required. The order's [`closedAt`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-closedAt) + timestamp is set when this mutation completes successfully. + """ orderClose( """The input for the mutation.""" input: OrderCloseInput! @@ -45384,7 +51563,24 @@ type Mutation { options: OrderCreateOptionsInput ): OrderCreatePayload - """Creates a payment for an order by mandate.""" + """ + Creates a payment for an + [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) using a stored [`PaymentMandate`](https://shopify.dev/docs/api/admin-graphql/latest/objects/PaymentMandate). + A payment mandate represents the customer's authorization to charge their + payment method for deferred payments, such as pre-orders or try-before-you-buy purchases. + + The mutation processes the payment asynchronously and returns a + [`Job`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Job) for + tracking the payment status. You can specify the payment amount to collect, and use the [`autoCapture`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderCreateMandatePayment#arguments-autoCapture) + argument to either immediately capture the payment or only authorize it for + later capture. Each payment request requires a unique [`idempotencyKey`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderCreateMandatePayment#arguments-idempotencyKey) + to prevent duplicate charges. Subsequent calls with the same key return the + original payment result rather than creating a new payment. + + Learn more about [deferred payments and payment mandates](https://shopify.dev/docs/apps/build/purchase-options/deferred#charging-the-remaining-balance) + and [idempotent + requests](https://shopify.dev/docs/api/usage/idempotent-requests). + """ orderCreateMandatePayment( """The ID of the order to collect the balance for.""" id: ID! @@ -45409,8 +51605,14 @@ type Mutation { ): OrderCreateMandatePaymentPayload """ - Create a manual payment for an order. You can only create a manual payment for an order if it isn't already - fully paid. + Records a manual payment for an + [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) + that isn't fully paid. Use this mutation to track payments received outside + the standard checkout process, such as cash, check, bank transfer, or other + offline payment methods. + + You can specify the payment [amount](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderCreateManualPayment#arguments-amount), [method name](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderCreateManualPayment#arguments-paymentMethodName), + and [when it was processed](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderCreateManualPayment#arguments-processedAt). """ orderCreateManualPayment( """The ID of the order to create a manual payment for.""" @@ -45424,10 +51626,40 @@ type Mutation { provided, then the default manual payment method ('Other') will be used. """ paymentMethodName: String + + """ + The date and time ([ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) + format) when a manual payment was processed. If you're importing + transactions from an app or another platform, then you can set processedAt + to a date and time in the past to match when the original transaction was created. + """ + processedAt: DateTime ): OrderCreateManualPaymentPayload + """Removes customer from an order.""" + orderCustomerRemove( + """The ID of the order having its customer removed.""" + orderId: ID! + ): OrderCustomerRemovePayload + + """Sets a customer on an order.""" + orderCustomerSet( + """The ID of the order having a customer set.""" + orderId: ID! + + """The ID of the customer being set on the order.""" + customerId: ID! + ): OrderCustomerSetPayload + """ - Deletes an order. For more information on which orders can be deleted, refer to [Delete an order](https://help.shopify.com/manual/orders/cancel-delete-order#delete-an-order). + Permanently deletes an [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) from the store. + + You can only delete [specific order types](https://help.shopify.com/manual/orders/cancel-delete-order#delete-an-order). + Other orders you can cancel using the [`orderCancel`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderCancel) + mutation instead. + + > Caution: + > This action is irreversible. You can't recover deleted orders. """ orderDelete( """The ID of the order to be deleted.""" @@ -45435,14 +51667,20 @@ type Mutation { ): OrderDeletePayload """ - Adds a custom line item to an existing order. For example, you could add a - gift wrapping service as a [custom line item](https://shopify.dev/apps/fulfillment/order-management-apps/order-editing#add-a-custom-line-item). - To learn how to edit existing orders, refer to [Edit an existing order with Admin API](https://shopify.dev/apps/fulfillment/order-management-apps/order-editing). + Adds a custom line item to an existing + [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order). + Custom line items represent products or services not in your catalog, such as + gift wrapping, installation fees, or one-off charges. + + Creates a [`CalculatedLineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CalculatedLineItem) with the specified title, price, and quantity. Changes remain in the edit + session until you commit them with the [`orderEditCommit`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderEditCommit) mutation. + + Learn more about [adding custom line items](https://shopify.dev/docs/apps/build/orders-fulfillment/order-management-apps/edit-orders#add-a-custom-line-item). """ orderEditAddCustomItem( """ The ID of the [calculated order](https://shopify.dev/api/admin-graphql/latest/objects/calculatedorder) - to which the custom item is added. + or the order edit session to edit. This is the edit to which the custom item is added. """ id: ID! @@ -45470,13 +51708,20 @@ type Mutation { ): OrderEditAddCustomItemPayload """ - 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). + Applies a discount to a [`LineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItem) + during an order edit session. The discount can be either a fixed amount or + percentage value. + + To modify pricing on specific line items, use this mutation after starting an + order edit with the [`orderEditBegin`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderEditBegin) + mutation. The changes remain staged until you commit them with the [`orderEditCommit`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderEditCommit) mutation. + + Learn more about [editing existing orders](https://shopify.dev/docs/apps/build/orders-fulfillment/order-management-apps/edit-orders). """ orderEditAddLineItemDiscount( """ The ID of the [calculated order](https://shopify.dev/api/admin-graphql/latest/objects/calculatedorder) - to update. + or the order edit session to edit. """ id: ID! @@ -45488,13 +51733,18 @@ type Mutation { ): OrderEditAddLineItemDiscountPayload """ - Adds a shipping line to an existing order. 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). + Adds a custom shipping line to an + [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) + during an edit session. Specify the shipping title and price to create a new [`ShippingLine`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShippingLine). + + Returns a [`CalculatedOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CalculatedOrder) showing the order with edits applied but not yet saved. To save your changes, use the [`orderEditCommit`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderEditCommit) mutation. + + Learn more about [editing existing orders](https://shopify.dev/docs/apps/build/orders-fulfillment/order-management-apps/edit-orders). """ orderEditAddShippingLine( """ The ID of the [calculated order](https://shopify.dev/api/admin-graphql/latest/objects/calculatedorder) - to edit. + or the order edit session to edit. This is the edit to which the shipping line is added. """ id: ID! @@ -45503,13 +51753,20 @@ type Mutation { ): OrderEditAddShippingLinePayload """ - Adds a line item from an existing product variant. As of API version 2025-04, the [orderEditAddVariant](https://shopify.dev/api/admin-graphql/latest/mutations/ordereditaddvariant) - API will respect the contextual pricing of the variant. + Adds a [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) as a line item to an + [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) + that's being edited. The mutation respects the variant's contextual pricing. + + You can specify a [`Location`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location) + to check for inventory availability and control whether duplicate variants are allowed. The [`quantity`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderEditAddVariant#arguments-quantity) + must be a positive value. + + Learn more about [editing existing orders](https://shopify.dev/docs/apps/build/orders-fulfillment/order-management-apps/edit-orders#add-a-new-variant). """ orderEditAddVariant( """ The ID of the [calculated order](https://shopify.dev/api/admin-graphql/latest/objects/calculatedorder) - to edit. + or the order edit session to edit. """ id: ID! @@ -45534,9 +51791,17 @@ type Mutation { ): OrderEditAddVariantPayload """ - Starts editing an order. Mutations are operating on `OrderEdit`. - All order edits start with `orderEditBegin`, have any number of `orderEdit`* - mutations made, and end with `orderEditCommit`. + Starts an order editing session that enables you to modify an existing + [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order). + This mutation creates an [`OrderEditSession`](https://shopify.dev/docs/api/admin-graphql/latest/objects/OrderEditSession) and returns a [`CalculatedOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CalculatedOrder) + showing how the order looks with your changes applied. + + Order editing follows a three-step workflow: Begin the edit with [`orderEditBegin`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderEditBegin), + apply changes using mutations like [`orderEditAddVariant`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderEditAddVariant) or [`orderEditSetQuantity`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderEditSetQuantity), + and then save the changes with the [`orderEditCommit`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderEditCommit) + mutation. The session tracks all staged changes until you commit or abandon them. + + Learn more about [editing existing orders](https://shopify.dev/docs/apps/build/orders-fulfillment/order-management-apps/edit-orders). """ orderEditBegin( """The ID of the order to begin editing.""" @@ -45544,14 +51809,25 @@ type Mutation { ): OrderEditBeginPayload """ - Applies and saves staged changes to an order. Mutations are operating on `OrderEdit`. - All order edits start with `orderEditBegin`, have any number of `orderEdit`* - mutations made, and end with `orderEditCommit`. + Applies staged changes from an order editing session to the original order. + This finalizes all modifications made during the edit session, including + changes to line items, quantities, discounts, and shipping lines. + + Order editing follows a three-step workflow: start with [`orderEditBegin`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderEditBegin) + to create an editing session, apply changes using various orderEdit mutations, + and then save the changes with the [`orderEditCommit`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderEditCommit) + mutation. The mutation can optionally notify the customer of changes and add + staff notes for internal tracking. + + You can only edit unfulfilled line items. If an edit changes the total order + value, then the customer might need to pay a balance or receive a refund. + + Learn more about [editing existing orders](https://shopify.dev/docs/apps/build/orders-fulfillment/order-management-apps/edit-orders). """ orderEditCommit( """ The ID of the [calculated order](https://shopify.dev/api/admin-graphql/latest/objects/calculatedorder) - that will have its changes applied to the order. + or the order edit session that will have its changes applied to the order. """ id: ID! @@ -45569,7 +51845,7 @@ type Mutation { orderEditRemoveDiscount( """ The ID of the [calculated order](https://shopify.dev/api/admin-graphql/latest/objects/calculatedorder) - from which to remove the discount. + or the order edit session to edit. This is the edit from which the discount is removed. """ id: ID! @@ -45586,7 +51862,7 @@ type Mutation { orderEditRemoveLineItemDiscount( """ The ID of the [calculated order](https://shopify.dev/api/admin-graphql/latest/objects/calculatedorder) - from which to remove the discount. + or the order edit session to edit. This is the edit from which the line item discount is removed. """ id: ID! @@ -45604,7 +51880,7 @@ type Mutation { orderEditRemoveShippingLine( """ The ID of the [calculated order](https://shopify.dev/api/admin-graphql/latest/objects/calculatedorder) - to edit. + or the order edit session to edit. This is the edit from which the shipping line is removed. """ id: ID! @@ -45613,14 +51889,20 @@ type Mutation { ): OrderEditRemoveShippingLinePayload """ - 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). + Sets the quantity of a line item on an order that's being edited. Use this + mutation to increase, decrease, or remove items by adjusting their quantities. + + Setting the quantity to zero effectively removes the line item from the order. + The item still exists as a data structure with zero quantity. When decreasing + quantities, you can optionally restock the removed items to inventory by + setting the `restock` parameter to `true`. + + Learn more about [editing workflows for existing orders](https://shopify.dev/docs/apps/build/orders-fulfillment/order-management-apps/edit-orders). """ orderEditSetQuantity( """ The ID of the [calculated order](https://shopify.dev/api/admin-graphql/latest/objects/calculatedorder) - to edit. The edit changes the quantity on the line item. + or the order edit session to edit. The edit changes the quantity on the line item. """ id: ID! @@ -45646,7 +51928,7 @@ type Mutation { orderEditUpdateDiscount( """ The ID of the [calculated order](https://shopify.dev/api/admin-graphql/latest/objects/calculatedorder) - from which to update the discount. + or the order edit session to edit. This is the edit used to update the discount. """ id: ID! @@ -45667,7 +51949,7 @@ type Mutation { orderEditUpdateShippingLine( """ The ID of the [calculated order](https://shopify.dev/api/admin-graphql/latest/objects/calculatedorder) - from which to update the shipping line. + or the order edit session to edit. This is the edit used to update the shipping line. """ id: ID! @@ -45678,7 +51960,14 @@ type Mutation { shippingLineId: ID! ): OrderEditUpdateShippingLinePayload - """Sends an email invoice for an order.""" + """ + Sends an email invoice for an [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order). + + You can customize the email recipient, sender, and subject line using the [`email`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderInvoiceSend#arguments-email) argument. + + > Note: + > Use store or staff account email addresses for the [`from`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderInvoiceSend#arguments-email.fields.from) and [`bcc`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderInvoiceSend#arguments-email.fields.bcc) input fields. + """ orderInvoiceSend( """The order associated with the invoice.""" id: ID! @@ -45690,7 +51979,28 @@ type Mutation { ): OrderInvoiceSendPayload """ - Marks an order as paid. You can only mark an order as paid if it isn't already fully paid. + Marks an order as paid by recording a payment transaction for the outstanding amount. + + Use the `orderMarkAsPaid` mutation to record payments received outside the standard checkout + process. The `orderMarkAsPaid` mutation is particularly useful in scenarios where: + + - Orders were created with manual payment methods (cash on delivery, bank deposit, money order) + - Payments were received offline and need to be recorded in the system + - Previously authorized payments need to be captured manually + - Orders require manual payment reconciliation due to external payment processing + + The mutation validates that the order can be marked as paid before processing. + An order can be marked as paid only if it has a positive outstanding balance and its + [financial status](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-Order.fields.displayFinancialStatus) + isn't already `PAID`. The mutation will either create a new sale transaction for the full + outstanding amount or capture an existing authorized transaction, depending on the order's current payment state. + + After successfully marking an order as paid, the order's financial status is updated to + reflect the payment, and payment events are logged for tracking and analytics + purposes. + + Learn more about [managing orders](https://shopify.dev/docs/apps/build/orders-fulfillment/order-management-apps) + in apps. """ orderMarkAsPaid( """The input for the mutation.""" @@ -45720,6 +52030,9 @@ type Mutation { allowing you to make multiple changes before finalizing them. Learn more about using the `orderEditBegin` mutation to [edit existing orders](https://shopify.dev/docs/apps/build/orders-fulfillment/order-management-apps/edit-orders). + If you need to remove a customer from an order, then use the [`orderCustomerRemove`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/orderCustomerRemove) + mutation instead. + Learn how to build apps that integrate with [order management and fulfillment processes](https://shopify.dev/docs/apps/build/orders-fulfillment). """ @@ -45728,19 +52041,54 @@ type Mutation { input: OrderInput! ): OrderUpdatePayload - """Creates a page.""" + """ + Creates a [`Page`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Page) for the online store. + + Pages contain custom content like "About Us" or "Contact" information that + merchants display outside their product catalog. The page requires a [`title`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Page#field-Page.fields.title) + and can include HTML content, publishing settings, and custom [template suffixes](https://shopify.dev/docs/api/admin-graphql/latest/objects/Page#field-Page.fields.templateSuffix). + You can control visibility through the [`isPublished`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Page#field-Page.fields.isPublished) + flag or schedule publication with a specific date. + + The mutation returns the complete page object upon successful creation or validation errors if the input is invalid. + """ pageCreate( """The properties of the new page.""" page: PageCreateInput! ): PageCreatePayload - """Deletes a page.""" + """ + Permanently deletes a page from the online store. + + For example, merchants might delete seasonal landing pages after campaigns + end, or remove outdated policy pages when terms change. + + Use the `pageDelete` mutation to: + - Remove outdated or unnecessary pages + - Clean up seasonal landing pages + - Delete duplicate pages + + The deletion is permanent and returns the deleted page's ID for confirmation. + """ pageDelete( """The ID of the page to be deleted.""" id: ID! ): PageDeletePayload - """Updates a page.""" + """ + Updates an existing page's content and settings. + + For example, merchants can update their "Shipping Policy" page when rates + change, or refresh their "About Us" page with new team information. + + Use the `pageUpdate` mutation to: + - Update page content and titles + - Modify publication status + - Change page handles for URL structure + - Adjust template settings + + The mutation supports partial updates, allowing specific changes while preserving other page properties. + """ pageUpdate( """The ID of the page to be updated.""" id: ID! @@ -45816,9 +52164,15 @@ type Mutation { ): PaymentTermsUpdatePayload """ - Creates a price list. You can use the `priceListCreate` mutation to create a - new price list and associate it with a catalog. This enables you to sell your - products with contextual pricing. + Creates a [`PriceList`](https://shopify.dev/docs/api/admin-graphql/latest/objects/PriceList). Price lists enable contextual pricing by defining fixed prices or + percentage-based adjustments. + + The price list requires a unique name, currency for fixed prices, and parent + adjustment settings that determine how the system calculates prices relative + to base prices. To apply contextual pricing, link the price list to a [`Catalog`](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/Catalog). + When that catalog's context is matched, customers receive the price list's prices. + + Learn more about [building catalogs with price lists](https://shopify.dev/docs/apps/build/markets/build-catalog#step-2-associate-a-price-list-with-the-catalog). """ priceListCreate( """The properties of the new price list.""" @@ -45835,10 +52189,11 @@ type Mutation { ): PriceListDeletePayload """ - Creates or updates fixed prices on a price list. You can use the - `priceListFixedPricesAdd` mutation to set a fixed price for specific product - variants. This lets you change product variant pricing on a per country basis. - Any existing fixed price list prices for these variants will be overwritten. + Creates or updates fixed prices on a [`PriceList`](https://shopify.dev/docs/api/admin-graphql/latest/objects/PriceList). + Use this mutation to set specific prices for [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) + objects that override the price list's default percentage-based adjustments. + + When you add fixed prices, the mutation replaces any existing fixed prices for those variants on the price list. """ priceListFixedPricesAdd( """ @@ -45851,9 +52206,14 @@ type Mutation { ): PriceListFixedPricesAddPayload """ - Updates the fixed prices for all variants for a product on a price list. You - can use the `priceListFixedPricesByProductUpdate` mutation to set or remove a - fixed price for all variants of a product associated with the price list. + Sets or removes fixed prices for all variants of a + [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) on a [`PriceList`](https://shopify.dev/docs/api/admin-graphql/latest/objects/PriceList). + Simplifies pricing management when all variants of a product should have the + same price on a price list, rather than setting individual variant prices. + + When you add a fixed price for a product, all its [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) + objects receive the same price on the price list. When you remove a product's + fixed prices, all variant prices revert to the price list's adjustment rules. """ priceListFixedPricesByProductUpdate( """ @@ -45888,9 +52248,13 @@ type Mutation { ): PriceListFixedPricesDeletePayload """ - Updates fixed prices on a price list. You can use the - `priceListFixedPricesUpdate` mutation to set a fixed price for specific - product variants or to delete prices for variants associated with the price list. + Updates fixed prices on a [`PriceList`](https://shopify.dev/docs/api/admin-graphql/latest/objects/PriceList). + This mutation lets you add new fixed prices for specific [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) + objects and remove existing prices in a single operation. + + Use this mutation to modify variant pricing on a price list by providing prices to add and variant IDs to delete. + + Learn more about [setting fixed prices for product variants](https://shopify.dev/docs/apps/build/markets/build-catalog#step-3-set-fixed-prices-for-specific-product-variants). """ priceListFixedPricesUpdate( """The price list that the prices will be updated against.""" @@ -45904,8 +52268,11 @@ type Mutation { ): PriceListFixedPricesUpdatePayload """ - Updates a price list. - If you modify the currency, then any fixed prices set on the price list will be deleted. + Updates a [`PriceList`](https://shopify.dev/docs/api/admin-graphql/latest/objects/PriceList)'s configuration, including its name, currency, [`Catalog`](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/Catalog) + association, and pricing adjustments. + + Changing the currency removes all fixed prices from the price list. The affected [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) + objects revert to prices calculated from the price list's adjustment settings. """ priceListUpdate( """The ID of the price list to update.""" @@ -45921,15 +52288,27 @@ type Mutation { featuresToDisable: [PrivacyFeaturesEnum!]! ): PrivacyFeaturesDisablePayload - """Creates a new componentized product.""" + """ + Creates a product bundle that groups multiple + [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) + objects together as components. The bundle appears as a single product in the + store, with its price determined by the parent product and inventory + calculated from the component products. + + The mutation runs asynchronously and returns a [`ProductBundleOperation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductBundleOperation) + object to track the creation status. Poll the operation using the [`productOperation`](https://shopify.dev/docs/api/admin-graphql/latest/queries/productOperation) + query to determine when the bundle is ready. + + Learn more about [creating product fixed bundles](https://shopify.dev/docs/apps/build/product-merchandising/bundles/add-product-fixed-bundle#step-1-create-a-bundle). + """ productBundleCreate( - """Input for creating a componentized product.""" + """Input for creating a product bundle or componentized product.""" input: ProductBundleCreateInput! ): ProductBundleCreatePayload - """Updates a componentized product.""" + """Updates a product bundle or componentized product.""" productBundleUpdate( - """Input for updating a componentized product.""" + """Input for updating a product bundle or componentized product.""" input: ProductBundleUpdateInput! ): ProductBundleUpdatePayload @@ -45946,20 +52325,38 @@ type Mutation { """ Creates a [product](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) - with attributes such as title, description, and vendor. - You can use the `productCreate` mutation to define + with attributes such as title, description, vendor, and media. + + The `productCreate` mutation helps you create many products at once, avoiding the tedious or time-consuming + process of adding them one by one in the Shopify admin. Common examples include creating products for a + new collection, launching a new product line, or adding seasonal products. + + You can define product [options](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductOption) and - [values](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductOptionValue) - for products with - [product variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant), - such as different sizes or colors. + [values](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductOptionValue), + allowing you to create products with different variations like sizes or colors. You can also associate media + files to your products, including images and videos. + The `productCreate` mutation only supports creating a product with its initial + [product variant](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant). To create multiple product variants for a single product and manage prices, use the [`productVariantsBulkCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkCreate) mutation. - To create or update a product in a single request, use the - [`productSet`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet) mutation. + > Note: + > The `productCreate` mutation has a [throttle](https://shopify.dev/docs/api/usage/rate-limits#resource-based-rate-limits) + > that takes effect when a store has 50,000 product variants. After this threshold is reached, no more than + > 1,000 new product variants can be created per day. + + After you create a product, you can make subsequent edits to the product using one of the following mutations: + + - [`publishablePublish`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/publishablePublish): + Used to publish the product and make it available to customers. The `productCreate` mutation creates products + in an unpublished state by default, so you must perform a separate operation to publish the product. + - [`productUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productUpdate): + Used to update a single product, such as changing the product's title, description, vendor, or associated media. + - [`productSet`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet): + Used to perform multiple operations on products, such as creating or modifying product options and variants. Learn more about the [product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model) and [adding product data](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/add-data). @@ -45972,7 +52369,17 @@ type Mutation { media: [CreateMediaInput!] ): ProductCreatePayload - """Creates media for a product.""" + """ + Adds media files to a [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product), + such as images, videos, or 3D models. Media files enhance product listings by + providing visual representations that help customers understand the product. + + The mutation accepts an array of [`CreateMediaInput`](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/CreateMediaInput) + objects, each specifying the source URL, content type, and optional alt text. + + You can add multiple media files in a single request. The mutation adds all + valid files and returns errors for any invalid ones. + """ productCreateMedia( """Specifies the product associated with the media.""" productId: ID! @@ -45982,15 +52389,55 @@ type Mutation { ): ProductCreateMediaPayload @deprecated(reason: "Use `productUpdate` or `productSet` instead.") """ - Deletes a product, including all associated variants and media. + Permanently deletes a product and all its associated data, including variants, media, publications, and inventory items. - As of API version `2023-01`, if you need to delete a large product, such as one that has many - [variants](https://shopify.dev/api/admin-graphql/latest/input-objects/ProductVariantInput) + Use the `productDelete` mutation to programmatically remove products from your store when they need to be + permanently deleted from your catalog, such as when removing discontinued items, cleaning up test data, or + synchronizing with external inventory management systems. + + The `productDelete` mutation removes the product from all associated collections, + and removes all associated data for the product, including: + + - All product variants and their inventory items + - Product media (images, videos) that are not referenced by other products + - [Product options](https://shopify.dev/api/admin-graphql/latest/objects/ProductOption) and [option values](https://shopify.dev/api/admin-graphql/latest/objects/ProductOptionValue) + - Product publications across all sales channels + - Product tags and metadata associations + + The `productDelete` mutation also has the following effects on existing orders and transactions: + + - **Draft orders**: Existing draft orders that reference this product will + retain the product information as stored data, but the product reference will + be removed. Draft orders can still be completed with the stored product details. + - **Completed orders and refunds**: Previously completed orders that included + this product aren't affected. The product information in completed orders is + preserved for record-keeping, and existing refunds for this product remain + valid and processable. + + > Caution: + > Product deletion is irreversible. After a product is deleted, it can't be recovered. Consider archiving + > or unpublishing products instead if you might need to restore them later. + + If you need to delete a large product, such as one that has many + [variants](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant) that are active at several - [locations](https://shopify.dev/api/admin-graphql/latest/input-objects/InventoryLevelInput), - you may encounter timeout errors. To avoid these timeout errors, you can instead use the asynchronous - [ProductDeleteAsync](https://shopify.dev/api/admin-graphql/latest/mutations/productDeleteAsync) - mutation. + [locations](https://shopify.dev/api/admin-graphql/latest/objects/Location), + you might encounter timeout errors. To avoid these timeout errors, you can set the + [`synchronous`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productDelete#arguments-synchronous) + parameter to `false` to run the deletion asynchronously, which returns a + [`ProductDeleteOperation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductDeleteOperation) + that you can monitor for completion status. + + If you need more granular control over product cleanup, consider using these alternative mutations: + + - [`productUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productUpdate): + Update the product status to archived or unpublished instead of deleting. + - [`productVariantsBulkDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkDelete): + Delete specific variants while keeping the product. + - [`productOptionsDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsDelete): + Delete the choices available for a product, such as size, color, or material. + + Learn more about the [product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model). """ productDelete( """Specifies the product to delete by its ID.""" @@ -46000,7 +52447,17 @@ type Mutation { synchronous: Boolean = true ): ProductDeletePayload - """Deletes media for a product.""" + """ + Deletes media from a [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product), + such as images, videos, and 3D models. + + When you delete media images, the mutation also removes any corresponding + product images. The mutation returns the IDs of both the deleted media and any + product images that the deletion removed. + + > Caution: + > This action is irreversible. You can't recover deleted media. + """ productDeleteMedia( """Specifies the product ID from which the media will be deleted.""" productId: ID! @@ -46093,7 +52550,43 @@ type Mutation { sellingPlanGroupIds: [ID!]! ): ProductLeaveSellingPlanGroupsPayload - """Updates a product option.""" + """ + Updates an [option](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductOption) + on a [product](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product), + such as size, color, or material. Each option includes a name, position, and a list of values. The combination + of a product option and value creates a [product variant](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant). + + Use the `productOptionUpdate` mutation for the following use cases: + + - **Update product choices**: Modify an existing option, like "Size" (Small, Medium, Large) or + "Color" (Red, Blue, Green), so customers can select their preferred variant. + - **Enable personalization features**: Update an option (for example, + "Engraving text") to let customers customize their purchase. + - **Offer seasonal or limited edition products**: Update a value + (for example, "Holiday red") on an existing option to support limited-time or seasonal variants. + - **Integrate with apps that manage product configuration**: Allow third-party apps to update options, like + "Bundle size", when customers select or customize + [product bundles](https://shopify.dev/docs/apps/build/product-merchandising/bundles). + - **Link options to metafields**: Associate a product option with a custom + [metafield](https://shopify.dev/docs/apps/build/custom-data), like "Fabric code", for + richer integrations with other systems or apps. + + > Note: + > The `productOptionUpdate` mutation enforces strict data integrity for product options and variants. + All option positions must be sequential, and every option should be used by at least one variant. + + After you update a product option, you can further manage a product's configuration using related mutations: + + - [`productOptionsCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsCreate) + - [`productOptionsDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsDelete) + - [`productOptionsReorder`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsReorder) + - [`productVariantsBulkCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkCreate) + - [`productVariantsBulkUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkUpdate) + - [`productSet`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet) + + Learn more about the [product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model) + and [adding product data](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/add-data). + """ productOptionUpdate( """Option to update.""" option: OptionUpdateInput! @@ -46118,7 +52611,44 @@ type Mutation { variantStrategy: ProductOptionUpdateVariantStrategy ): ProductOptionUpdatePayload - """Creates options on a product.""" + """ + Creates one or more [options](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductOption) + on a [product](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product), + such as size, color, or material. Each option includes a name, position, and a list of values. The combination + of a product option and value creates a [product variant](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant). + + Use the `productOptionsCreate` mutation for the following use cases: + + - **Add product choices**: Add a new option, like "Size" (Small, Medium, Large) or + "Color" (Red, Blue, Green), to an existing product so customers can select their preferred variant. + - **Enable personalization features**: Add options such as "Engraving text" to let customers customize their purchase. + - **Offer seasonal or limited edition products**: Add a new value + (for example, "Holiday red") to an existing option to support limited-time or seasonal variants. + - **Integrate with apps that manage product configuration**: Allow third-party apps to add options, like + "Bundle size", when customers select or customize + [product bundles](https://shopify.dev/docs/apps/build/product-merchandising/bundles). + - **Link options to metafields**: Associate a product option with a custom + [metafield](https://shopify.dev/docs/apps/build/custom-data), like "Fabric code", for + richer integrations with other systems or apps. + + > Note: + > The `productOptionsCreate` mutation enforces strict data integrity for product options and variants. + All option positions must be sequential, and every option should be used by at least one variant. + If you use the [`CREATE` variant strategy](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsCreate#arguments-variantStrategy.enums.CREATE), + consider the maximum allowed number of variants for each product is 2048. + + After you create product options, you can further manage a product's configuration using related mutations: + + - [`productOptionUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionUpdate) + - [`productOptionsReorder`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsReorder) + - [`productOptionsDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsDelete) + - [`productVariantsBulkCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkCreate) + - [`productVariantsBulkUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkUpdate) + - [`productSet`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet) + + Learn more about the [product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model) + and [adding product data](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/add-data). + """ productOptionsCreate( """The ID of the product to update.""" productId: ID! @@ -46133,7 +52663,43 @@ type Mutation { variantStrategy: ProductOptionCreateVariantStrategy = LEAVE_AS_IS ): ProductOptionsCreatePayload - """Deletes the specified options.""" + """ + Deletes one or more [options](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductOption) + from a [product](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product). Product options + define the choices available for a product, such as size, color, or material. + + > Caution: + > Removing an option can affect a product's + > [variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) and their + > configuration. Deleting an option might also delete associated option values and, depending on the chosen + > [strategy](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productoptionsdelete#arguments-strategy), + > might affect variants. + + Use the `productOptionsDelete` mutation for the following use cases: + + - **Simplify product configuration**: Remove obsolete or unnecessary options + (for example, discontinue "Material" if all variants are now the same material). + - **Clean up after seasonal or limited-time offerings**: Delete options that are no longer + relevant (for example, "Holiday edition"). + - **Automate catalog management**: Enable apps or integrations to programmatically remove options as product + data changes. + + > Note: + > The `productOptionsDelete` mutation enforces strict data integrity for product options and variants. + > All option positions must remain sequential, and every remaining option must be used by at least one variant. + + After you delete a product option, you can further manage a product's configuration using related mutations: + + - [`productOptionsCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsCreate) + - [`productOptionUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionUpdate) + - [`productOptionsReorder`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsReorder) + - [`productVariantsBulkCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkCreate) + - [`productVariantsBulkUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkUpdate) + - [`productSet`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet) + + Learn more about the [product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model) + and [adding product data](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/add-data). + """ productOptionsDelete( """ID of the product from which to delete the options.""" productId: ID! @@ -46149,29 +52715,63 @@ type Mutation { ): ProductOptionsDeletePayload """ - Reorders options and option values on a product, causing product variants to alter their position. + Reorders the [options](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductOption) and + [option values](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductOptionValue) on a + [product](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product), + updating the order in which [product variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) + are presented to customers. - Options order take precedence over option values order. Depending on the existing product variants, - some input orders might not be achieved. + The `productOptionsReorder` mutation accepts a list of product options, each identified by `id` or `name`, and an + optional list of values (also by `id` or `name`) specifying the new order. The order of options in the + mutation's input determines their new positions (for example, the first option becomes `option1`). + The order of values within each option determines their new positions. The mutation recalculates the order of + variants based on the new option and value order. - Example: - Existing product variants: - ["Red / Small", "Green / Medium", "Blue / Small"]. + Suppose a product has the following variants: + + 1. `"Red / Small"` + 2. `"Green / Medium"` + 3. `"Blue / Small"` + + You reorder options and values: - New order: - [ - { - name: "Size", values: [{ name: "Small" }, { name: "Medium" }], - name: "Color", values: [{ name: "Green" }, { name: "Red" }, { name: "Blue" }] - } - ]. + ``` + options: [ + { name: "Size", values: [{ name: "Small" }, { name: "Medium" }] }, + { name: "Color", values: [{ name: "Green" }, { name: "Red" }, { name: "Blue" }] } + ] + ``` - Description: - Variants with "Green" value are expected to appear before variants with "Red" and "Blue" values. - However, "Size" option appears before "Color". + The resulting variant order will be: + + 1. `"Small / Green"` + 2. `"Small / Red"` + 3. `"Small / Blue"` + 4. `"Medium / Green"` + + Use the `productOptionsReorder` mutation for the following use cases: + + - **Change the order of product options**: For example, display "Color" before "Size" in a store. + - **Reorder option values within an option**: For example, show "Red" before "Blue" in a color picker. + - **Control the order of product variants**: The order of options and their + values determines the sequence in which variants are listed and selected. + - **Highlight best-selling options**: Present the most popular or relevant options and values first. + - **Promote merchandising strategies**: Highlight seasonal colors, limited editions, or featured sizes. + + > Note: + > The `productOptionsReorder` mutation enforces strict data integrity for product options and variants. + > All option positions must be sequential, and every option should be used by at least one variant. - Therefore, output will be: - ["Small / "Red", "Small / Blue", "Medium / Green"]. + After you reorder product options, you can further manage a product's configuration using related mutations: + + - [`productOptionsCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsCreate) + - [`productOptionsDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsDelete) + - [`productVariantsBulkCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkCreate) + - [`productVariantsBulkUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkUpdate) + - [`productSet`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet) + + Learn more about the [product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model) + and [managing product data](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/add-data). """ productOptionsReorder( """The ID of the product to update.""" @@ -46182,15 +52782,36 @@ type Mutation { ): ProductOptionsReorderPayload """ - Publishes a product. Products that are sold exclusively on subscription - (`requiresSellingPlan: true`) can only be published on online stores. + Publishes a [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) to specified [`Publication`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication) objects. + + Products sold exclusively on subscription (`requiresSellingPlan: true`) can only be published to online stores. """ productPublish( """Specifies the product to publish and the channels to publish it to.""" input: ProductPublishInput! ): ProductPublishPayload @deprecated(reason: "Use `publishablePublish` instead.") - """Asynchronously reorders the media attached to a product.""" + """ + Reorders [media](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/Media) + attached to a product, changing their sequence in product displays. The + operation processes asynchronously to handle + [products](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) + with large media collections. + + Specify the [product ID](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productReorderMedia#arguments-id) + and an array of [moves](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productReorderMedia#arguments-moves), + where each move contains a media ID and its new zero-based position. + + > Note: + > Only include media items that need repositioning. Unchanged items maintain their relative order automatically. + + The mutation returns a + [`Job`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Job) to + track the reordering progress. Poll the job status to determine when the + operation completes and media positions update across all sales channels. + + Learn more about [reordering product media](https://shopify.dev/docs/apps/build/online-store/product-media#step-6-reorder-media-objects). + """ productReorderMedia( """The ID of the product on which to reorder medias.""" id: ID! @@ -46200,46 +52821,46 @@ type Mutation { ): ProductReorderMediaPayload """ - Creates or updates a product in a single request. + Performs multiple operations to create or update products in a single request. - Use this mutation when syncing information from an external data source into Shopify. + Use the `productSet` mutation to sync information from an external data source into Shopify, manage large + product catalogs, and perform batch updates. The mutation is helpful for bulk product management, including price + adjustments, inventory updates, and product lifecycle management. - When using this mutation to update a product, specify that product's `id` in the input. + The behavior of `productSet` depends on the type of field it's modifying: - Any list field (e.g. - [collections](https://shopify.dev/api/admin-graphql/current/input-objects/ProductSetInput#field-productsetinput-collections), - [metafields](https://shopify.dev/api/admin-graphql/current/input-objects/ProductSetInput#field-productsetinput-metafields), - [variants](https://shopify.dev/api/admin-graphql/current/input-objects/ProductSetInput#field-productsetinput-variants)) - will be updated so that all included entries are either created or updated, and all existing entries not - included will be deleted. + - **For list fields**: Creates new entries, updates existing entries, and deletes existing entries + that aren't included in the mutation's input. Common examples of list fields include + [`collections`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet#arguments-input.fields.collections), + [`metafields`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet#arguments-input.fields.metafields), + and [`variants`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet#arguments-input.fields.variants). - All other fields will be updated to the value passed. Omitted fields will not be updated. + - **For all other field types**: Updates only the included fields. Any omitted fields will remain unchanged. - When run in synchronous mode, you will get the product back in the response. - For versions `2024-04` and earlier, the synchronous mode has an input limit of 100 variants. - This limit has been removed for versions `2024-07` and later. + > Note: + > By default, stores have a limit of 2048 product variants for each product. + + You can run `productSet` in one of the following modes: + + - **Synchronously**: Returns the updated product in the response. + - **Asynchronously**: Returns a [`ProductSetOperation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductSetOperation) object. + Use the [`productOperation`](https://shopify.dev/api/admin-graphql/latest/queries/productOperation) query to check the status of the operation and + retrieve details of the updated product and its product variants. - In asynchronous mode, you will instead get a - [ProductSetOperation](https://shopify.dev/api/admin-graphql/current/objects/ProductSetOperation) - object back. You can then use the - [productOperation](https://shopify.dev/api/admin-graphql/current/queries/productOperation) query to - retrieve the updated product data. This query uses the `ProductSetOperation` object to - check the status of the operation and to retrieve the details of the updated product and its variants. + If you need to only manage product variants, then use one of the following mutations: - If you need to update a subset of variants, use one of the bulk variant mutations: - - [productVariantsBulkCreate](https://shopify.dev/api/admin-graphql/current/mutations/productVariantsBulkCreate) - - [productVariantsBulkUpdate](https://shopify.dev/api/admin-graphql/current/mutations/productVariantsBulkUpdate) - - [productVariantsBulkDelete](https://shopify.dev/api/admin-graphql/current/mutations/productVariantsBulkDelete) + - [`productVariantsBulkCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkCreate) + - [`productVariantsBulkUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkUpdate) + - [`productVariantsBulkDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkDelete) - If you need to update options, use one of the product option mutations: - - [productOptionsCreate](https://shopify.dev/api/admin-graphql/current/mutations/productOptionsCreate) - - [productOptionUpdate](https://shopify.dev/api/admin-graphql/current/mutations/productOptionUpdate) - - [productOptionsDelete](https://shopify.dev/api/admin-graphql/current/mutations/productOptionsDelete) - - [productOptionsReorder](https://shopify.dev/api/admin-graphql/current/mutations/productOptionsReorder) + If you need to only manage product options, then use one of the following mutations: - See our guide to - [sync product data from an external source](https://shopify.dev/api/admin/migrate/new-product-model/sync-data) - for more. + - [`productOptionsCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsCreate) + - [`productOptionUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionUpdate) + - [`productOptionsReorder`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsReorder) + - [`productOptionsDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsDelete) + + Learn more about [syncing product data from an external source](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/sync-data). """ productSet( """The properties of the newly created or updated product.""" @@ -46276,18 +52897,33 @@ type Mutation { ): ProductUnpublishPayload @deprecated(reason: "Use `publishableUnpublish` instead.") """ - Updates a product. + Updates a [product](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) + with attributes such as title, description, vendor, and media. - For versions `2024-01` and older: - If you update a product and only include some variants in the update, - then any variants not included will be deleted. + The `productUpdate` mutation helps you modify many products at once, avoiding the tedious or time-consuming + process of updating them one by one in the Shopify admin. Common examples including updating + product details like status or tags. - To safely manage variants without the risk of - deleting excluded variants, use - [productVariantsBulkUpdate](https://shopify.dev/api/admin-graphql/latest/mutations/productvariantsbulkupdate). + The `productUpdate` mutation doesn't support updating + [product variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant). + To update multiple product variants for a single product and manage prices, use the + [`productVariantsBulkUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkUpdate) + mutation. - If you want to update a single variant, then use - [productVariantUpdate](https://shopify.dev/api/admin-graphql/latest/mutations/productvariantupdate). + > Note: + > The `productUpdate` mutation has a [throttle](https://shopify.dev/docs/api/usage/rate-limits#resource-based-rate-limits) + > that takes effect when a store has 50,000 product variants. After this threshold is reached, no more than + > 1,000 new product variants can be updated per day. + + After updating a product, you can make additional changes using one of the following mutations: + + - [`productSet`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet): + Used to perform multiple operations on products, such as creating or modifying product options and variants. + - [`publishablePublish`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/publishablePublish): + Used to publish the product and make it available to customers, if the product is currently unpublished. + + Learn more about the [product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model) + and [adding product data](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/add-data). """ productUpdate( """The updated properties for a product.""" @@ -46297,7 +52933,16 @@ type Mutation { media: [CreateMediaInput!] ): ProductUpdatePayload - """Updates media for a product.""" + """ + Updates properties of media attached to a [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product). + You can modify alt text for accessibility or change preview images for + existing media items. + + Provide the product ID and an array of [`UpdateMediaInput`](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/UpdateMediaInput) + objects. Each update specifies the media's ID and the properties to change. + Updates apply only to media already attached to the product and don't affect + their position in the product gallery. + """ productUpdateMedia( """Specifies the product on which media will be updated.""" productId: ID! @@ -46306,7 +52951,25 @@ type Mutation { media: [UpdateMediaInput!]! ): ProductUpdateMediaPayload @deprecated(reason: "Use `fileUpdate` instead.") - """Appends media from a product to variants of the product.""" + """ + Appends existing media from a product to specific variants of that product, + creating associations between media files and particular product options. This + allows different variants to showcase relevant images or videos. + + For example, a t-shirt product might have color variants where each color + variant displays only the images showing that specific color, helping + customers see exactly what they're purchasing. + + Use `ProductVariantAppendMedia` to: + - Associate specific images with product variants for accurate display + - Build variant-specific media management in product interfaces + - Implement automated media assignment based on variant attributes + + The operation links existing product media to variants without duplicating + files, maintaining efficient media storage while enabling variant-specific displays. + + Learn more about [product variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant). + """ productVariantAppendMedia( """Specifies the product associated to the media.""" productId: ID! @@ -46343,7 +53006,18 @@ type Mutation { ): ProductVariantLeaveSellingPlanGroupsPayload """ - Creates new bundles, updates existing bundles, and removes bundle components for one or multiple bundles. + Creates new bundles, updates component quantities in existing bundles, and + removes bundle components for one or multiple [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) objects. + + Each bundle variant can contain up to 30 component variants with specified + quantities. After an app assigns components to a bundle, only that app can + manage those components. + + > Note: + > For most use cases, use [`productBundleCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productBundleCreate) + instead, which creates product fixed bundles. + `productVariantRelationshipBulkUpdate` is for [variant fixed bundles](https://shopify.dev/docs/apps/build/product-merchandising/bundles/add-variant-fixed-bundle), + where each variant has its own component configuration. """ productVariantRelationshipBulkUpdate( """The input options for the product variant being updated.""" @@ -46351,7 +53025,41 @@ type Mutation { ): ProductVariantRelationshipBulkUpdatePayload """ - Creates multiple variants in a single product. This mutation can be called directly or via the bulkOperation. + Creates multiple [product variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) + for a single [product](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) in one operation. + You can run this mutation directly or as part of a [bulk + operation](https://shopify.dev/docs/api/usage/bulk-operations/imports) + for large-scale catalog updates. + + Use the `productVariantsBulkCreate` mutation to efficiently add new product variants—such as different sizes, + colors, or materials—to an existing product. The mutation is helpful if you need to add product variants in bulk, + such as importing from an external system. + + The mutation supports: + + - Creating variants with custom option values + - Associating media (for example, images, videos, and 3D models) with the product or its variants + - Handling complex product configurations + + > Note: + > By default, stores have a limit of 2048 product variants for each product. + + After creating variants, you can make additional changes using one of the following mutations: + + - [`productVariantsBulkUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productVariantsBulkUpdate): + Updates multiple product variants for a single product in one operation. + - [`productSet`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet): + Used to perform multiple operations on products, such as creating or modifying product options and variants. + + You can also specifically manage product options through related mutations: + + - [`productOptionsCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsCreate) + - [`productOptionUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionUpdate) + - [`productOptionsReorder`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsReorder) + - [`productOptionsDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsDelete) + + Learn more about the [product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model) + and [adding product data](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/add-data). """ productVariantsBulkCreate( """An array of product variants to be created.""" @@ -46372,7 +53080,10 @@ type Mutation { ): ProductVariantsBulkCreatePayload """ - Deletes multiple variants in a single product. This mutation can be called directly or via the bulkOperation. + Deletes multiple variants in a single [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product). + Specify the product ID and an array of variant IDs to remove variants in bulk. + You can call this mutation directly or through the [`bulkOperationRunMutation`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/bulkOperationRunMutation) + mutation. Returns the updated product and any [`UserError`](https://shopify.dev/docs/api/admin-graphql/latest/objects/UserError) objects. """ productVariantsBulkDelete( """An array of product variants IDs to delete.""" @@ -46394,7 +53105,38 @@ type Mutation { ): ProductVariantsBulkReorderPayload """ - Updates multiple variants in a single product. This mutation can be called directly or via the bulkOperation. + Updates multiple [product variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) + for a single [product](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) in one operation. + You can run this mutation directly or as part of a [bulk + operation](https://shopify.dev/docs/api/usage/bulk-operations/imports) + for large-scale catalog updates. + + Use the `productVariantsBulkUpdate` mutation to efficiently modify product variants—such as different sizes, + colors, or materials—associated with an existing product. The mutation is helpful if you need to update a + product's variants in bulk, such as importing from an external system. + + The mutation supports: + + - Updating variants with custom option values + - Associating media (for example, images, videos, and 3D models) with the product or its variants + - Handling complex product configurations + + > Note: + > By default, stores have a limit of 2048 product variants for each product. + + After creating variants, you can make additional changes using the + [`productSet`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productSet) mutation, + which is used to perform multiple operations on products, such as creating or modifying product options and variants. + + You can also specifically manage product options through related mutations: + + - [`productOptionsCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsCreate) + - [`productOptionUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionUpdate) + - [`productOptionsReorder`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsReorder) + - [`productOptionsDelete`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productOptionsDelete) + + Learn more about the [product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model) + and [adding product data](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/add-data). """ productVariantsBulkUpdate( """An array of product variants to update.""" @@ -46427,7 +53169,21 @@ type Mutation { ): PubSubServerPixelUpdatePayload """ - Creates a new Google Cloud Pub/Sub webhook subscription. + Creates a webhook subscription that notifies your + [`App`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App) when + specific events occur in a shop. Webhooks push event data to your endpoint + immediately when changes happen, eliminating the need for polling. + + This mutation configures webhook delivery to a Google Cloud Pub/Sub topic. You + can filter events using [Shopify API search + syntax](https://shopify.dev/docs/api/usage/search-syntax) to receive only + relevant webhooks, control which data fields are included in webhook payloads, + and specify metafield namespaces to include. + + > Note: + > The Webhooks API version [configured in your app](https://shopify.dev/docs/apps/build/webhooks/subscribe/use-newer-api-version) + determines the API version for webhook events. You can't specify it per subscription. + Building an app? If you only use app-specific webhooks, you won't need this. App-specific webhook subscriptions specified in your `shopify.app.toml` may be @@ -46443,7 +53199,7 @@ type Mutation { Specifies the input fields for a Google Cloud Pub/Sub webhook subscription. """ webhookSubscription: PubSubWebhookSubscriptionInput! - ): PubSubWebhookSubscriptionCreatePayload + ): PubSubWebhookSubscriptionCreatePayload @deprecated(reason: "Use `webhookSubscriptionCreate` instead.") """ Updates a Google Cloud Pub/Sub webhook subscription. @@ -46461,10 +53217,35 @@ type Mutation { """ Specifies the input fields for a Google Cloud Pub/Sub webhook subscription. """ - webhookSubscription: PubSubWebhookSubscriptionInput - ): PubSubWebhookSubscriptionUpdatePayload + webhookSubscription: PubSubWebhookSubscriptionInput! + ): PubSubWebhookSubscriptionUpdatePayload @deprecated(reason: "Use `webhookSubscriptionUpdate` instead.") - """Creates a publication.""" + """ + Creates a [`Publication`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication) that controls which + [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) and [`Collection`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection) + customers can access through a [`Catalog`](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/Catalog). + + ### When to create a publication + + Publications are **optional** for catalogs. Only create a publication if you + need to control which products are visible in a specific catalog context. When + a publication isn't associated with a catalog, product availability is + determined by the sales channel. + + **Create a publication if you need to:** + - Restrict product visibility to a subset of your inventory for a specific market or company location + - Publish different product selections to different contexts + + **Do NOT create a publication if:** + - You want product availability determined by the sales channel + - You only need custom pricing (use a price list on the catalog instead) + + ### Configuration options + + You can create an empty publication and add products later, or prepopulate it + with all existing products. The [`autoPublish`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/publicationCreate#arguments-input.fields.autoPublish) + field determines whether the publication automatically adds newly created products. + """ publicationCreate( """The input fields to use when creating the publication.""" input: PublicationCreateInput! @@ -46476,7 +53257,14 @@ type Mutation { id: ID! ): PublicationDeletePayload - """Updates a publication.""" + """ + Updates a [`Publication`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication). + + You can add or remove + [products](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) + from the publication, with a maximum of 50 items per operation. The [`autoPublish`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/publicationUpdate#arguments-input.fields.autoPublish) + field determines whether new products automatically display in this publication. + """ publicationUpdate( """The ID of the publication to update.""" id: ID! @@ -46486,10 +53274,15 @@ type Mutation { ): PublicationUpdatePayload """ - Publishes a resource to a channel. If the resource is a product, then it's - visible in the channel only if the product status is `active`. Products that - are sold exclusively on subscription (`requiresSellingPlan: true`) can be - published only on online stores. + Publishes a resource, such as a + [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) or [`Collection`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection), to one or more [publications](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication). + + For products to be visible in a channel, they must have an active [`ProductStatus`](https://shopify.dev/docs/api/admin-graphql/latest/enums/ProductStatus). + Products sold exclusively on subscription (`requiresSellingPlan: true`) can + only be published to online stores. + + You can schedule future publication by providing a publish date. Only online + store channels support [scheduled publishing](https://shopify.dev/docs/apps/build/sales-channels/scheduled-product-publishing). """ publishablePublish( """The resource to create or update publications for.""" @@ -46500,19 +53293,29 @@ type Mutation { ): PublishablePublishPayload """ - Publishes a resource to current channel. If the resource is a product, then - it's visible in the channel only if the product status is `active`. Products - that are sold exclusively on subscription (`requiresSellingPlan: true`) can be - published only on online stores. + Publishes a resource to the current + [`Channel`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Channel) + associated with the requesting app. The system determines the current channel + by the app's API client ID. Resources include + [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) and [`Collection`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection) + objects that implement the [`Publishable`](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/Publishable) interface. + + For products to be visible in the channel, they must have an active [`ProductStatus`](https://shopify.dev/docs/api/admin-graphql/latest/enums/ProductStatus). + Products sold exclusively on subscription ([`requiresSellingPlan`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product#field-Product.fields.requiresSellingPlan): + `true`) can only be published to online stores. """ publishablePublishToCurrentChannel( """The resource to create or update publications for.""" id: ID! - ): PublishablePublishToCurrentChannelPayload + ): PublishablePublishToCurrentChannelPayload @deprecated(reason: "Use `publishablePublish` instead.") """ - Unpublishes a resource from a channel. If the resource is a product, then it's - visible in the channel only if the product status is `active`. + Unpublishes a resource, such as a + [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) or [`Collection`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection), + from one or more [publications](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication). + The resource remains in your store but becomes unavailable to customers. + + For products to be visible in a channel, they must have an active [`ProductStatus`](https://shopify.dev/docs/api/admin-graphql/latest/enums/ProductStatus). """ publishableUnpublish( """The resource to delete or update publications for.""" @@ -46529,14 +53332,19 @@ type Mutation { publishableUnpublishToCurrentChannel( """The resource to delete or update publications for.""" id: ID! - ): PublishableUnpublishToCurrentChannelPayload + ): PublishableUnpublishToCurrentChannelPayload @deprecated(reason: "Use `publishableUnpublish` instead.") """ - 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. + Updates quantity pricing on a [`PriceList`](https://shopify.dev/docs/api/admin-graphql/latest/objects/PriceList) for specific [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) + objects. You can set fixed prices (see [`PriceListPrice`](https://shopify.dev/docs/api/admin-graphql/latest/objects/PriceListPrice)), + quantity rules, and quantity price breaks in a single operation. + + [`QuantityRule`](https://shopify.dev/docs/api/admin-graphql/latest/objects/QuantityRule) objects define minimum, maximum, and increment constraints for ordering. [`QuantityPriceBreak`](https://shopify.dev/docs/api/admin-graphql/latest/objects/QuantityPriceBreak) + objects offer tiered pricing based on purchase volume. + + The mutation executes delete operations before create operations and doesn't allow partial updates. + + > Note: If any requested change fails, then the mutation doesn't apply any of the changes. """ quantityPricingByVariantUpdate( """The ID of the price list for which quantity pricing will be updated.""" @@ -46577,12 +53385,62 @@ type Mutation { variantIds: [ID!]! ): QuantityRulesDeletePayload - """Creates a refund.""" + """ + Creates a refund for an order, allowing you to process returns and issue payments back to customers. + + Use the `refundCreate` mutation to programmatically process refunds in scenarios where you need to + return money to customers, such as when handling returns, processing chargebacks, or correcting + order errors. + + The `refundCreate` mutation supports various refund scenarios: + + - Refunding line items with optional restocking + - Refunding shipping costs + - Refunding duties and import taxes + - Refunding additional fees + - Processing refunds through different payment methods + - Issuing store credit refunds (when enabled) + + You can create both full and partial refunds, and optionally allow over-refunding in specific + cases. + + After creating a refund, you can track its status and details through the order's + [`refunds`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-Order.fields.refunds) + field. The refund is associated with the order and can be used for reporting and reconciliation purposes. + + Learn more about + [managing returns](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/build-return-management) + and [refunding duties](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/view-and-refund-duties). + + > Note: + > The refunding behavior of the `refundCreate` mutation is similar to the + [`refundReturn`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/returnRefund) + mutation. The key difference is that the `refundCreate` mutation lets you to specify restocking behavior + for line items, whereas the `returnRefund` mutation focuses solely on handling the financial refund without + any restocking input. + + > Caution: + > As of 2026-01, this mutation supports an optional idempotency key using the `@idempotent` directive. + > As of 2026-04, the idempotency key is required and must be provided using the `@idempotent` directive. + > For more information, see the [idempotency documentation](https://shopify.dev/docs/api/usage/idempotent-requests). + """ refundCreate( """The input fields that are used in the mutation for creating a refund.""" input: RefundInput! ): RefundCreatePayload + """Removes return and/or exchange lines from a return.""" + removeFromReturn( + """The ID of the return for line item removal.""" + returnId: ID! + + """The return line items to remove from the return.""" + returnLineItems: [ReturnLineItemRemoveFromReturnInput!] + + """The exchange line items to remove from the return.""" + exchangeLineItems: [ExchangeLineItemRemoveFromReturnInput!] + ): RemoveFromReturnPayload + """ Approves a customer's return request. If this mutation is successful, then the `Return.status` field of the @@ -46612,7 +53470,34 @@ type Mutation { id: ID! ): ReturnClosePayload - """Creates a return.""" + """ + Creates a return from an existing order that has at least one fulfilled + [line item](https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItem) + that hasn't yet been refunded. If you create a return on an archived order, then the order is automatically + unarchived. + + Use the `returnCreate` mutation when your workflow involves + [approving](https://shopify.dev/docs/api/admin-graphql/latest/mutations/returnApproveRequest) or + [declining](https://shopify.dev/docs/api/admin-graphql/latest/mutations/returnDeclineRequest) requested returns + outside of the Shopify platform. + + The `returnCreate` mutation performs the following actions: + + - Creates a return in the `OPEN` state, and assumes that the return request from the customer has already been + approved + - Creates a [reverse fulfillment order](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/manage-reverse-fulfillment-orders), + and enables you to create a [reverse delivery](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/manage-reverse-deliveries) + for the reverse fulfillment order + - Creates a sales agreement with a `RETURN` reason, which links to all sales created for the return or exchange + - Generates sales records that reverse the sales records for the items being returned + - Generates sales records for any exchange line items + + After you've created a return, use the + [`return`](https://shopify.dev/docs/api/admin-graphql/latest/queries/return) query to retrieve the + return by its ID. Learn more about providing a + [return management workflow](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/build-return-management) + for merchants. + """ returnCreate( """Specifies the input fields for a return.""" returnInput: ReturnInput! @@ -46635,15 +53520,37 @@ type Mutation { """The return line items to remove from the return.""" returnLineItems: [ReturnLineItemRemoveFromReturnInput!]! - ): ReturnLineItemRemoveFromReturnPayload + ): ReturnLineItemRemoveFromReturnPayload @deprecated(reason: "Use `removeFromReturn` instead.") + + """ + Processes a return by confirming which items customers return and exchange, + handling their disposition, and optionally issuing refunds. This mutation + confirms the quantities for [`ReturnLineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ReturnLineItem) and [`ExchangeLineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ExchangeLineItem) + objects previously created on the + [`Return`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Return). + + For returned items, you specify how to handle them through dispositions such + as restocking or disposal. The mutation creates [`FulfillmentOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder) + objects for exchange items and records all transactions in the merchant's + financial reports. You can optionally issue refunds through financial + transfers, apply refund duties, and refund shipping costs. + + Learn more about [processing returns](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/build-return-management). + """ + returnProcess( + """Specifies the input fields for processing a return.""" + input: ReturnProcessInput! + ): ReturnProcessPayload """ - Refunds a return when its status is `OPEN` or `CLOSED` and associates it with the related return request. + Creates a refund for items being returned when the return status is `OPEN` or + `CLOSED`. This mutation processes the financial aspects of a return by + refunding line items, shipping costs, and duties back to the customer. """ returnRefund( """The input fields to refund a return.""" returnRefundInput: ReturnRefundInput! - ): ReturnRefundPayload + ): ReturnRefundPayload @deprecated(reason: "Use `returnProcess` instead.") """Reopens a closed return.""" returnReopen( @@ -46652,9 +53559,17 @@ type Mutation { ): ReturnReopenPayload """ - A customer's return request that hasn't been approved or declined. - This mutation sets the value of the `Return.status` field to `REQUESTED`. - To create a return that has the `Return.status` field set to `OPEN`, use the `returnCreate` mutation. + Creates a return request that requires merchant approval before processing. + The return has its status set to `REQUESTED` and the merchant must approve or decline it. + + Use this mutation when customers initiate returns that need review. After + creating a requested return, use [`returnApproveRequest`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/returnApproveRequest) + to approve it or [`returnDeclineRequest`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/returnDeclineRequest) to decline it. + + For returns that should be immediately open for processing, use the [`returnCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/returnCreate) + mutation instead. + + Learn more about [building return management workflows](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/build-return-management). """ returnRequest( """The input fields for requesting a return.""" @@ -46738,11 +53653,10 @@ type Mutation { """

Theme app extensions

-

Your app might not pass App Store review if it uses script tags instead of - theme app extensions. All new apps, and apps that integrate with Online Store - 2.0 themes, should use theme app extensions, such as app blocks or app embed - blocks. Script tags are an alternative you can use with only vintage themes. - If your app integrates with a Shopify theme and you plan to submit it to + the Shopify App Store, you must use theme app extensions instead of Script + tags. Script tags can only be used with vintage themes. Learn more.

Script tag deprecation

@@ -46761,11 +53675,10 @@ type Mutation { """

Theme app extensions

-

Your app might not pass App Store review if it uses script tags instead of - theme app extensions. All new apps, and apps that integrate with Online Store - 2.0 themes, should use theme app extensions, such as app blocks or app embed - blocks. Script tags are an alternative you can use with only vintage themes. - If your app integrates with a Shopify theme and you plan to submit it to + the Shopify App Store, you must use theme app extensions instead of Script + tags. Script tags can only be used with vintage themes. Learn more.

Script tag deprecation

@@ -46784,11 +53697,10 @@ type Mutation { """

Theme app extensions

-

Your app might not pass App Store review if it uses script tags instead of - theme app extensions. All new apps, and apps that integrate with Online Store - 2.0 themes, should use theme app extensions, such as app blocks or app embed - blocks. Script tags are an alternative you can use with only vintage themes. - If your app integrates with a Shopify theme and you plan to submit it to + the Shopify App Store, you must use theme app extensions instead of Script + tags. Script tags can only be used with vintage themes. Learn more.

Script tag deprecation

@@ -46863,7 +53775,18 @@ type Mutation { productIds: [ID!]! ): SellingPlanGroupAddProductsPayload - """Creates a Selling Plan Group.""" + """ + Creates a selling plan group that defines how products can be sold and + purchased. A selling plan group represents a selling method such as "Subscribe + and save", "Pre-order", or "Try before you buy" and contains one or more + selling plans with specific billing, delivery, and pricing policies. + + Use the [`resources`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/sellingPlanGroupCreate#arguments-resources) argument to associate products or product variants with the group during + creation. You can also add products later using [`sellingPlanGroupAddProducts`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/sellingPlanGroupAddProducts) or [`sellingPlanGroupAddProductVariants`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/sellingPlanGroupAddProductVariants). + + Learn more about [building selling plan groups](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/selling-plans/build-a-selling-plan#step-1-create-a-selling-plan-group) + or explore [examples of creating TBYB and other selling plan groups](https://shopify.dev/docs/api/admin-graphql/latest/mutations/sellingPlanGroupCreate?example=create-a-tbyb-selling-plan-group). + """ sellingPlanGroupCreate( """The properties of the new Selling Plan Group.""" input: SellingPlanGroupInput! @@ -47037,12 +53960,48 @@ type Mutation { ): StagedUploadTargetsGeneratePayload @deprecated(reason: "Use `stagedUploadsCreate` instead.") """ - Creates staged upload targets for each input. This is the first step in the upload process. - The returned staged upload targets' URL and parameter fields can be used to send a request - to upload the file described in the corresponding input. + Creates staged upload targets for file uploads such as images, videos, and 3D models. + + Use the `stagedUploadsCreate` mutation instead of direct file creation mutations when: + + - **Uploading large files**: Files over a few MB benefit from staged uploads for better reliability + - **Uploading media files**: Videos, 3D models, and high-resolution images + - **Bulk importing**: CSV files, product catalogs, or other bulk data + - **Using external file sources**: When files are stored remotely and need to be transferred to Shopify + + The `stagedUploadsCreate` mutation is the first step in Shopify's secure two-step upload process: - For more information on the upload process, refer to - [Upload media to Shopify](https://shopify.dev/apps/online-store/media/products#step-1-upload-media-to-shopify). + **Step 1: Create staged upload targets** (this mutation) + - Generate secure, temporary upload URLs for your files. + - Receive authentication parameters for the upload. + + **Step 2: Upload files and create assets** + - Upload your files directly to the provided URLs using the authentication parameters. + - Use the returned `resourceUrl` as the `originalSource` in subsequent mutations like `fileCreate`. + + This approach provides better performance for large files, handles network interruptions gracefully, + and ensures secure file transfers to Shopify's storage infrastructure. + + > Note: + > File size is required when uploading + > [`VIDEO`](https://shopify.dev/docs/api/admin-graphql/latest/enums/StagedUploadTargetGenerateUploadResource#enums-VIDEO) or + > [`MODEL_3D`](https://shopify.dev/docs/api/admin-graphql/latest/enums/StagedUploadTargetGenerateUploadResource#enums-MODEL_3D) + > resources. + + After creating staged upload targets, complete the process by: + + 1. **Uploading files**: Send your files to the returned [`url`](https://shopify.dev/docs/api/admin-graphql/latest/objects/StagedMediaUploadTarget#field-StagedMediaUploadTarget.fields.url) + using the provided + [`parameters`](https://shopify.dev/docs/api/admin-graphql/latest/objects/StagedMediaUploadTarget#field-StagedMediaUploadTarget.fields.parameters) + for authentication + 2. **Creating file assets**: Use the [`resourceUrl`](https://shopify.dev/docs/api/admin-graphql/latest/objects/StagedMediaUploadTarget#field-StagedMediaUploadTarget.fields.resourceUrl) + as the `originalSource` in mutations such as: + - [`fileCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/fileCreate): + Creates file assets from staged uploads + - [`productUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productUpdate): + Updates products with new media from staged uploads + + Learn more about [uploading media to Shopify](https://shopify.dev/apps/online-store/media/products). """ stagedUploadsCreate( """The information required to generate staged upload targets.""" @@ -47072,7 +54031,7 @@ type Mutation { key: String """Whether to pin the metafield definition.""" - pin: Boolean! = false + pin: Boolean = null """The capabilities of the metafield definition.""" capabilities: MetafieldCapabilityCreateInput @@ -47092,10 +54051,16 @@ type Mutation { ): StandardMetaobjectDefinitionEnablePayload """ - Creates a credit transaction that increases the store credit account balance by the given amount. - This operation will create an account if one does not already exist. - A store credit account owner can hold multiple accounts each with a different currency. - Use the most appropriate currency for the given store credit account owner. + Adds funds to a [`StoreCreditAccount`](https://shopify.dev/docs/api/admin-graphql/latest/objects/StoreCreditAccount) by creating a [`StoreCreditAccountCreditTransaction`](https://shopify.dev/docs/api/admin-graphql/latest/objects/StoreCreditAccountCreditTransaction). + The mutation accepts either a store credit account ID, a [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer) ID, or a [`CompanyLocation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CompanyLocation) + ID. When you provide a customer or company location ID, it automatically + creates an account if one doesn't exist for the specified currency. + + Store credit accounts are currency-specific. A single owner can have multiple + accounts, each holding a different currency. Use the most appropriate currency + for the given store credit account owner. + + Credits can optionally include an expiration date. """ storeCreditAccountCredit( """The ID of the store credit account or the ID of the account owner.""" @@ -47117,11 +54082,16 @@ type Mutation { ): StoreCreditAccountDebitPayload """ - Creates a storefront access token for use with the [Storefront API](https://shopify.dev/docs/api/storefront). + Creates a storefront access token that delegates unauthenticated access scopes + to clients using the [Storefront + API](https://shopify.dev/docs/api/storefront). The token provides public + access to storefront resources without requiring customer authentication. - An app can have a maximum of 100 active storefront access tokens for each shop. + Each shop can have up to 100 active [`StorefrontAccessToken`](https://shopify.dev/docs/api/admin-graphql/latest/objects/StorefrontAccessToken) + objects. Headless storefronts, mobile apps, and other client applications + typically use these tokens to access public storefront data. - [Get started with the Storefront API](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/getting-started). + Learn more about [building with the Storefront API](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/getting-started). """ storefrontAccessTokenCreate( """Provides the input fields for creating a storefront access token.""" @@ -47137,8 +54107,25 @@ type Mutation { ): StorefrontAccessTokenDeletePayload """ - Creates a new subscription billing attempt. For more information, refer to - [Create a subscription contract](https://shopify.dev/docs/apps/selling-strategies/subscriptions/contracts/create#step-4-create-a-billing-attempt). + Creates a billing attempt to charge for a [`SubscriptionContract`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SubscriptionContract). + The mutation processes either the payment for the current billing cycle or for + a specific cycle, if selected. + + The mutation creates an + [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) + when successful. Failed billing attempts include a [`processingError`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/subscriptionBillingAttemptCreate#returns-subscriptionBillingAttempt.fields.processingError) + field with error details. + + > Tip: + > Use the [`idempotencyKey`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/subscriptionBillingAttemptCreate#arguments-subscriptionBillingAttemptInput.fields.idempotencyKey) to ensure the billing attempt executes only once, preventing duplicate charges + if the request is retried. + + You can target a specific billing cycle using the [`billingCycleSelector`](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/SubscriptionBillingCycleSelector) + to bill past or future cycles. The [`originTime`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SubscriptionBillingAttempt#field-SubscriptionBillingAttempt.fields.originTime) + parameter adjusts fulfillment scheduling for attempts completed after the + expected billing date. + + Learn more about [creating billing attempts](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/contracts/build-a-subscription-contract#step-4-create-a-billing-attempt). """ subscriptionBillingAttemptCreate( """The ID of the subscription contract.""" @@ -47291,10 +54278,19 @@ type Mutation { ): SubscriptionContractCancelPayload """ - Creates a Subscription Contract Draft. - You can submit all the desired information for the draft using [Subscription Draft Input object](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/SubscriptionDraftInput). - You can also update the draft using the [Subscription Contract Update](https://shopify.dev/docs/api/admin-graphql/latest/mutations/subscriptionContractUpdate) mutation. - The draft is not saved until you call the [Subscription Draft Commit](https://shopify.dev/docs/api/admin-graphql/latest/mutations/subscriptionDraftCommit) mutation. + Creates a subscription contract draft, which is an intention to create a new + subscription. The draft lets you incrementally build and modify subscription + details before committing them to create the actual [`SubscriptionContract`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SubscriptionContract). + + The mutation requires [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer) + information, billing details, and contract configuration including the [`SubscriptionBillingPolicy`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SubscriptionBillingPolicy) and [`SubscriptionDeliveryPolicy`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SubscriptionDeliveryPolicy). + You can specify the [`CustomerPaymentMethod`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CustomerPaymentMethod), the [`MailingAddress`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MailingAddress) + for shipping, and subscription intervals. + + After you create the draft, you can either modify it with the [`subscriptionDraftUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/subscriptionDraftUpdate) + mutation or finalize and create the active subscription contract with [`subscriptionDraftCommit`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/subscriptionDraftCommit). + + Learn more about [building subscription contracts](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/contracts/build-a-subscription-contract). """ subscriptionContractCreate( """The properties of the new Subscription Contract.""" @@ -47348,10 +54344,15 @@ type Mutation { ): SubscriptionContractSetNextBillingDatePayload """ - The subscriptionContractUpdate mutation allows you to create a draft of an - existing subscription contract. This [draft](https://shopify.dev/api/admin-graphql/latest/objects/SubscriptionDraft) - can be reviewed and modified as needed. Once the draft is committed with [subscriptionDraftCommit](https://shopify.dev/api/admin-graphql/latest/mutations/subscriptionDraftCommit), - the changes are applied to the original subscription contract. + Creates a draft of an existing [`SubscriptionContract`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SubscriptionContract). + The draft captures the current state of the contract and allows incremental + modifications through draft mutations such as [`subscriptionDraftLineAdd`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/subscriptionDraftLineAdd), [`subscriptionDraftDiscountAdd`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/subscriptionDraftDiscountAdd), and [`subscriptionDraftUpdate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/subscriptionDraftUpdate). + + Changes remain in draft state and don't affect the live contract until + committed. After you've made all necessary changes to the draft, commit it using [`subscriptionDraftCommit`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/subscriptionDraftCommit) + to apply the updates to the original contract. + + Learn more about [updating subscription contracts](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/contracts/update-a-subscription-contract#step-2-create-a-draft-of-an-existing-contract). """ subscriptionContractUpdate( """The gid of the Subscription Contract to update.""" @@ -47482,7 +54483,13 @@ type Mutation { ): SubscriptionDraftUpdatePayload """ - Add tags to an order, a draft order, a customer, a product, or an online store article. + Adds tags to a resource in the store. Supported resources include + [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order), [`DraftOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrder), [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer), [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product), and [`Article`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Article). + + Tags help merchants organize and filter resources. See the [`tags`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/tagsAdd#arguments-tags) + argument for supported input formats. + + Learn more about [using tags to organize subscription orders](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/fulfillments/sync-orders-subscriptions#order-tagging). """ tagsAdd( """The ID of a resource to add tags to.""" @@ -47497,7 +54504,10 @@ type Mutation { ): TagsAddPayload """ - Remove tags from an order, a draft order, a customer, a product, or an online store article. + Removes tags from an + [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order), [`DraftOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrder), [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer), [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product), or [`Article`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Article). + + Tags are searchable keywords that help organize and filter these resources. """ tagsRemove( """The ID of the resource to remove tags from.""" @@ -47519,9 +54529,29 @@ type Mutation { ): TaxAppConfigurePayload """ - Creates a theme using an external URL or for files that were previously uploaded using the - [stagedUploadsCreate mutation](https://shopify.dev/api/admin-graphql/latest/mutations/stageduploadscreate). - These themes are added to the [Themes page](https://admin.shopify.com/themes) in Shopify admin. + Creates a tax summary for a given order. + If both an order ID and a start and end time are provided, the order ID will be used. + """ + taxSummaryCreate( + """The ID of the order to create the tax summary for.""" + orderId: ID + + """The start time of the range of orders to create the tax summary for.""" + startTime: DateTime + + """The end time of the range of orders to create the tax summary for.""" + endTime: DateTime + ): TaxSummaryCreatePayload + + """ + Creates a theme from an external URL or staged upload. The theme source can + either be a ZIP file hosted at a public URL or files previously uploaded using the [`stagedUploadsCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/stageduploadscreate) + mutation. The theme displays in the [Themes + page](https://admin.shopify.com/themes) in the Shopify admin. + + New themes have an [`UNPUBLISHED`](https://shopify.dev//docs/api/admin-graphql/latest/mutations/themeCreate#arguments-role.enums.UNPUBLISHED) + role by default. You can optionally specify a [`DEVELOPMENT`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/themeCreate#arguments-role.enums.DEVELOPMENT) + role for temporary themes used during development. """ themeCreate( """ @@ -47546,6 +54576,15 @@ type Mutation { id: ID! ): ThemeDeletePayload + """Duplicates a theme.""" + themeDuplicate( + """ID of the theme to be duplicated.""" + id: ID! + + """Name of the new theme.""" + name: String + ): ThemeDuplicatePayload + """Copy theme files. Copying to existing theme files will overwrite them.""" themeFilesCopy( """The theme to update.""" @@ -47564,7 +54603,19 @@ type Mutation { files: [String!]! ): ThemeFilesDeletePayload - """Create or update theme files.""" + """ + Creates or updates theme files in an online store theme. This mutation allows + batch operations on multiple theme files, either creating new files or + overwriting existing ones with the same filename. + + > Note: You can process a maximum of 50 files in a single request. + + Each file requires a filename and body content. The body must specify a [`type`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/themeFilesUpsert#arguments-files.fields.body.type) + with the corresponding [`value`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/themeFilesUpsert#arguments-files.fields.body.value). + The mutation returns a [`job`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/themeFilesUpsert#returns-job) + field for tracking asynchronous operations and an [`upsertedThemeFiles`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/themeFilesUpsert#returns-upsertedThemeFiles) + field with details about the processed files. + """ themeFilesUpsert( """The theme to update.""" themeId: ID! @@ -47594,7 +54645,17 @@ type Mutation { parentTransactionId: ID! ): TransactionVoidPayload - """Creates or updates translations.""" + """ + Creates or updates translations for a resource's [translatable content](https://shopify.dev/docs/api/admin-graphql/latest/objects/TranslatableContent). + + Each translation requires a digest value from the resource's translatable + content. Use the [`translatableResource`](https://shopify.dev/docs/api/admin-graphql/latest/queries/translatableResource) + query to get a resource's translatable content and digest values before + creating translations. You can optionally scope translations to specific + markets using the `marketId` field in each translation input. + + Learn more about [managing translations](https://shopify.dev/docs/apps/build/markets/manage-translated-content). + """ translationsRegister( """ID of the resource that is being translated.""" resourceId: ID! @@ -47787,7 +54848,22 @@ type Mutation { ): WebPresenceUpdatePayload """ - Creates a new webhook subscription. + Creates a webhook subscription that notifies your + [`App`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App) when + specific events occur in a shop. Webhooks push event data to your endpoint + immediately when changes happen, eliminating the need for polling. + + The subscription configuration supports multiple endpoint types including + HTTPS URLs, Google Pub/Sub topics, and AWS EventBridge event sources. You can + filter events using [Shopify API search + syntax](https://shopify.dev/docs/api/usage/search-syntax) to receive only + relevant webhooks, control which data fields are included in webhook payloads, + and specify metafield namespaces to include. + + > Note: + > The Webhooks API version [configured in your app](https://shopify.dev/docs/apps/build/webhooks/subscribe/use-newer-api-version) + determines the API version for webhook events. You can't specify it per subscription. + Building an app? If you only use app-specific webhooks, you won't need this. App-specific webhook subscriptions specified in your `shopify.app.toml` may be @@ -47804,7 +54880,9 @@ type Mutation { ): WebhookSubscriptionCreatePayload """ - Deletes a webhook subscription. + Deletes a [`WebhookSubscription`](https://shopify.dev/docs/api/admin-graphql/latest/objects/WebhookSubscription) and stops all future webhooks to its endpoint. Returns the deleted + subscription's ID for confirmation. + Building an app? If you only use app-specific webhooks, you won't need this. App-specific webhook subscriptions specified in your `shopify.app.toml` may be @@ -47818,7 +54896,14 @@ type Mutation { ): WebhookSubscriptionDeletePayload """ - Updates a webhook subscription. + Updates a webhook subscription's configuration. Modify the endpoint URL, event + filters, included fields, or metafield namespaces without recreating the subscription. + + The mutation accepts a [`WebhookSubscriptionInput`](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/WebhookSubscriptionInput) + that specifies the new configuration. You can switch between endpoint types + (HTTP, Pub/Sub, EventBridge) by providing a different URI format. Updates + apply atomically without interrupting webhook delivery. + Building an app? If you only use app-specific webhooks, you won't need this. App-specific webhook subscriptions specified in your `shopify.app.toml` may be @@ -47892,6 +54977,17 @@ interface Node { id: ID! } +""" +The valid values for the notification usage, specifying the intended notification environment usage for certain operations. +""" +enum NotificationUsage { + """The notification environment is web.""" + WEB + + """The notification environment is sms.""" + SMS +} + """The input fields for dimensions of an object.""" input ObjectDimensionsInput { """The length in `unit`s.""" @@ -47927,7 +55023,19 @@ interface OnlineStorePreviewable { onlineStorePreviewUrl: URL } -"""A theme for display on the storefront.""" +""" +A theme for display on the storefront. Themes control the visual appearance and +functionality of the online store through templates, stylesheets, and assets +that determine how +[products](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product), [collections](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection), +and other content display to customers. + +Each theme has a [role](https://shopify.dev/docs/api/admin-graphql/latest/objects/OnlineStoreTheme#field-OnlineStoreTheme.fields.role) +that indicates its status. Main themes are live on the storefront, unpublished +themes are inactive, demo themes require purchase before publishing, and +development themes are temporary for previewing during development. The theme includes [translations](https://shopify.dev/docs/api/admin-graphql/latest/objects/OnlineStoreTheme#field-OnlineStoreTheme.fields.translations) +for multi-language support. +""" type OnlineStoreTheme implements HasPublishedTranslations & Node { """The date and time when the theme was created.""" createdAt: DateTime! @@ -47942,7 +55050,7 @@ type OnlineStoreTheme implements HasPublishedTranslations & Node { """ Returns at most the first n files for this theme. Fewer than n files may be returned to stay within the payload size limit, or when the end of the list - is reached. At most 250 can be fetched at once. + is reached. At most 2500 can be fetched at once. """ first: Int = 50 @@ -48365,30 +55473,47 @@ input OptionValueUpdateInput { } """ -An order is a customer's request to purchase one or more products from a shop. -You can retrieve and update orders using the `Order` object. -Learn more about -[editing an existing order with the GraphQL Admin -API](https://shopify.dev/apps/fulfillment/order-management-apps/order-editing). +The `Order` object represents a customer's request to purchase one or more +products from a store. Use the `Order` object to handle the complete purchase +lifecycle from checkout to fulfillment. -Only the last 60 days' worth of orders from a store are accessible from the -`Order` object by default. If you want to access older orders, -then you need to [request access to all -orders](https://shopify.dev/api/usage/access-scopes#orders-permissions). If your app is granted -access, then you can add the `read_all_orders` scope to your app along with `read_orders` or `write_orders`. -[Private apps](https://shopify.dev/apps/auth/basic-http) are not affected by -this change and are automatically granted the scope. +Use the `Order` object when you need to: -**Caution:** Only use this data if it's required for your app's functionality. -Shopify will restrict [access to -scopes](https://shopify.dev/api/usage/access-scopes) for apps that don't have a -legitimate use for the associated data. +- Display order details on customer account pages or admin dashboards. +- Create orders for phone sales, wholesale customers, or subscription services. +- Update order information like shipping addresses, notes, or fulfillment status. +- Process returns, exchanges, and partial refunds. +- Generate invoices, receipts, and shipping labels. + +The `Order` object serves as the central hub connecting customer information, +product details, payment processing, and fulfillment data within the GraphQL +Admin API schema. + +> Note: +> Only the last 60 days' worth of orders from a store are accessible from the +`Order` object by default. If you want to access older records, +> then you need to [request access to all +orders](https://shopify.dev/docs/api/usage/access-scopes#orders-permissions). If +your app is granted +> access, then you can add the `read_all_orders`, `read_orders`, and `write_orders` scopes. + +> Caution: +> Only use orders data if it's required for your app's functionality. Shopify +will restrict [access to scopes](https://shopify.dev/docs/api/usage/access-scopes#requesting-specific-permissions) +for apps that don't have a legitimate use for the associated data. + +Learn more about [building apps for orders and fulfillment](https://shopify.dev/docs/apps/build/orders-fulfillment). """ type Order implements CommentEventSubject & HasEvents & HasLocalizationExtensions & HasLocalizedFields & HasMetafieldDefinitions & HasMetafields & LegacyInteroperability & Node { - """A list of additional fees applied to the order.""" + """ + A list of additional fees applied to an order, such as duties, import fees, or [tax lines](https://shopify.dev/docs/api/admin-graphql/latest/objects/order#field-Order.fields.additionalFees.taxLines). + """ additionalFees: [AdditionalFee!]! - """A list of sales agreements associated with the order.""" + """ + A list of sales agreements associated with the order, such as contracts + defining payment terms, or delivery schedules between merchants and customers. + """ agreements( """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). @@ -48426,106 +55551,169 @@ type Order implements CommentEventSubject & HasEvents & HasLocalizationExtension query: String ): SalesAgreementConnection! - """A list of messages that appear on the order page in the Shopify admin.""" + """ + A list of messages that appear on the **Orders** page in the Shopify admin. + These alerts provide merchants with important information about an order's + status or required actions. + """ alerts: [ResourceAlert!]! - """The application that created the order.""" + """ + The application that created the order. For example, "Online Store", "Point of Sale", or a custom app name. + Use this to identify the order source for attribution and fulfillment workflows. + Learn more about [building apps for orders and fulfillment](https://shopify.dev/docs/apps/build/orders-fulfillment). + """ app: OrderApp - """The billing address of the customer.""" + """ + The billing address associated with the payment method selected by the customer for an order. + Returns `null` if no billing address was provided during checkout. + """ billingAddress: MailingAddress - """Whether the billing address matches the shipping address.""" + """ + Whether the billing address matches the [shipping address](https://shopify.dev/docs/api/admin-graphql/latest/objects/order#field-Order.fields.shippingAddress). + Returns `true` if both addresses are the same, and `false` if they're + different or if an address is missing. + """ billingAddressMatchesShippingAddress: Boolean! - """Whether the order can be manually marked as paid.""" + """ + Whether an order can be manually marked as paid. Returns `false` if the order + is already paid, is canceled, has pending [Shopify Payments](https://help.shopify.com/en/manual/payments/shopify-payments/payouts) + transactions, or has a negative payment amount. + """ canMarkAsPaid: Boolean! - """Whether a customer email exists for the order.""" + """ + Whether order notifications can be sent to the customer. + Returns `true` if the customer has a valid [email address](https://shopify.dev/docs/api/admin-graphql/latest/objects/order#field-Order.fields.email). + """ canNotifyCustomer: Boolean! """ - The reason provided when the order was canceled. - Returns `null` if the order wasn't canceled. + The reason provided for an order cancellation. For example, a merchant might + cancel an order if there's insufficient inventory. Returns `null` if the order + hasn't been canceled. """ cancelReason: OrderCancelReason - """Cancellation details for the order.""" + """ + Details of an order's cancellation, if it has been canceled. This includes the + reason, date, and any [staff notes](https://shopify.dev/api/admin-graphql/latest/objects/OrderCancellation#field-OrderCancellation.fields.staffNote). + """ cancellation: OrderCancellation """ - The date and time when the order was canceled. - Returns `null` if the order wasn't canceled. + The date and time in [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601) when an order was canceled. + Returns `null` if the order hasn't been canceled. """ cancelledAt: DateTime - """Whether payment for the order can be captured.""" + """ + Whether an authorized payment for an order can be captured. + Returns `true` if an authorized payment exists that hasn't been fully captured + yet. Learn more about [capturing payments](https://help.shopify.com/en/manual/fulfillment/managing-orders/payments/capturing-payments). + """ capturable: Boolean! """ - The total order-level discount amount, before returns, in shop currency. + The total discount amount that applies to the entire order in shop currency, + before returns, refunds, order edits, and cancellations. """ cartDiscountAmount: Money @deprecated(reason: "Use `cartDiscountAmountSet` instead.") """ - The total order-level discount amount, before returns, in shop and presentment currencies. + The total discount amount applied at the time the order was created, displayed + in both shop and presentment currencies, before returns, refunds, order edits, + and cancellations. This field only includes discounts applied to the entire order. """ cartDiscountAmountSet: MoneyBag - """The channel that created the order.""" + """ + The sales channel from which an order originated, such as the [Online + Store](https://shopify.dev/docs/apps/build/app-surfaces#online-store) or + [Shopify POS](https://shopify.dev/docs/apps/build/app-surfaces#point-of-sale). + """ channel: Channel @deprecated(reason: "Use `publication` instead.") - """Details about the channel that created the order.""" + """ + Details about the sales channel that created the order, such as the [channel app type](https://shopify.dev/docs/api/admin-graphql/latest/objects/channel#field-Channel.fields.channelType) + and [channel name](https://shopify.dev/docs/api/admin-graphql/latest/objects/ChannelDefinition#field-ChannelDefinition.fields.channelName), which helps to track order sources. + """ channelInformation: ChannelInformation - """The IP address of the API client that created the order.""" + """ + The IP address of the customer who placed the order. Useful for fraud detection and geographic analysis. + """ clientIp: String - """Whether the order is closed.""" + """ + Whether an order is closed. An order is considered closed if all its line + items have been fulfilled or canceled, and all financial transactions are complete. + """ closed: Boolean! """ - The date and time when the order was closed. - Returns `null` if the order isn't closed. + The date and time [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601) + when an order was closed. Shopify automatically records this timestamp when + all items have been fulfilled or canceled, and all financial transactions are + complete. Returns `null` if the order isn't closed. """ closedAt: DateTime """ - A randomly generated alpha-numeric identifier for the order that may be shown to the customer - instead of the sequential order name. For example, "XPAV284CT", "R50KELTJP" or "35PKUN0UJ". - This value isn't guaranteed to be unique. + A customer-facing order identifier, often shown instead of the sequential order name. + It uses a random alphanumeric format (for example, `XPAV284CT`) and isn't guaranteed to be unique across orders. """ confirmationNumber: String - """Whether inventory has been reserved for the order.""" + """ + Whether inventory has been reserved for an order. Returns `true` if inventory + quantities for an order's [line + items](https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItem) + have been reserved. + Learn more about [managing inventory quantities and states](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states). + """ confirmed: Boolean! - """Date and time when the order was created in Shopify.""" + """ + The date and time in [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601) + when an order was created. This timestamp is set when the customer completes + checkout and remains unchanged throughout an order's lifecycle. + """ createdAt: DateTime! - """The shop currency when the order was placed.""" + """ + The shop currency when the order was placed. For example, "USD" or "CAD". + """ currencyCode: CurrencyCode! """ - The current order-level discount amount after all order updates, in shop and presentment currencies. + The current total of all discounts applied to the entire order, after returns, + refunds, order edits, and cancellations. This includes discount codes, + automatic discounts, and other promotions that affect the whole order rather + than individual line items. To get the original discount amount at the time of + order creation, use the [`cartDiscountAmountSet`](https://shopify.dev/docs/api/admin-graphql/latest/objects/order#field-Order.fields.cartDiscountAmountSet) field. """ currentCartDiscountAmountSet: MoneyBag! """ - The current shipping price after applying refunds and discounts. If the parent - `order.taxesIncluded` field is true, then this price includes taxes. - Otherwise, this field is the pre-tax price. + The current shipping price after applying refunds and discounts. + If the parent `order.taxesIncluded` field is true, then this price includes + taxes. Otherwise, this field is the pre-tax price. """ currentShippingPriceSet: MoneyBag! """ - The sum of the quantities for all line items that contribute to the order's current subtotal price. + The current sum of the quantities for all line items that contribute to the + order's subtotal price, after returns, refunds, order edits, and cancellations. """ currentSubtotalLineItemsQuantity: Int! """ - The sum of the prices for all line items after discounts and returns, in shop and presentment currencies. - If `taxesIncluded` is `true`, then the subtotal also includes tax. + The total price of the order, after returns and refunds, in shop and presentment currencies. + This includes taxes and discounts. """ currentSubtotalPriceSet: MoneyBag! @@ -48536,20 +55724,22 @@ type Order implements CommentEventSubject & HasEvents & HasLocalizationExtension currentTaxLines: [TaxLine!]! """ - The total amount of additional fees after returns, in shop and presentment currencies. - Returns `null` if there are no additional fees for the order. + The current total of all additional fees for an order, after any returns or + modifications. Modifications include returns, refunds, order edits, and + cancellations. Additional fees can include charges such as duties, import + fees, and special handling. """ currentTotalAdditionalFeesSet: MoneyBag """ - The total amount discounted on the order after returns, in shop and presentment currencies. + The total amount discounted on the order after returns and refunds, in shop and presentment currencies. This includes both order and line level discounts. """ currentTotalDiscountsSet: MoneyBag! """ - The total amount of duties after returns, in shop and presentment currencies. - Returns `null` if duties aren't applicable. + The current total duties amount for an order, after any returns or + modifications. Modifications include returns, refunds, order edits, and cancellations. """ currentTotalDutiesSet: MoneyBag @@ -48561,23 +55751,31 @@ type Order implements CommentEventSubject & HasEvents & HasLocalizationExtension """ The sum of the prices of all tax lines applied to line items on the order, - after returns, in shop and presentment currencies. + after returns and refunds, in shop and presentment currencies. """ currentTotalTaxSet: MoneyBag! - """The total weight of the order after returns, in grams.""" + """The total weight of the order after returns and refunds, in grams.""" currentTotalWeight: UnsignedInt64! """ - A list of additional merchant-facing details that have been added to the - order. For example, whether an order is a customer's first. + A list of additional information that has been attached to the order. For + example, gift message, delivery instructions, or internal notes. """ customAttributes: [Attribute!]! - """The customer that placed the order.""" + """ + The customer who placed an order. Returns `null` if an order was created + through a checkout without customer authentication, such as a guest checkout. + Learn more about [customer accounts](https://help.shopify.com/manual/customers/customer-accounts). + """ customer: Customer - """Whether the customer agreed to receive marketing materials.""" + """ + Whether the customer agreed to receive marketing emails at the time of purchase. + Use this to ensure compliance with marketing consent laws and to segment customers for email campaigns. + Learn more about [building customer segments](https://shopify.dev/docs/apps/build/marketing-analytics/customer-segments). + """ customerAcceptsMarketing: Boolean! """ @@ -48587,16 +55785,20 @@ type Order implements CommentEventSubject & HasEvents & HasLocalizationExtension """ The customer's visits and interactions with the online store before placing the order. + Use this to understand customer behavior, attribution sources, and marketing effectiveness to optimize your sales funnel. """ customerJourneySummary: CustomerJourneySummary """ - A two-letter or three-letter language code, optionally followed by a region modifier. + The customer's language and region preference at the time of purchase. For + example, "en" for English, "fr-CA" for French (Canada), or "es-MX" for Spanish (Mexico). + Use this to provide localized customer service and targeted marketing in the customer's preferred language. """ customerLocale: String """ - A list of discounts that are applied to the order, not including order edits and refunds. + A list of discounts that are applied to the order, excluding order edits and refunds. + Includes discount codes, automatic discounts, and other promotions that reduce the order total. """ discountApplications( """ @@ -48623,43 +55825,55 @@ type Order implements CommentEventSubject & HasEvents & HasLocalizationExtension reverse: Boolean = false ): DiscountApplicationConnection! - """The discount code used for the order.""" + """ + The discount code used for an order. Returns `null` if no discount code was applied. + """ discountCode: String - """The discount codes used for the order.""" + """ + The discount codes used for the order. Multiple codes can be applied to a single order. + """ discountCodes: [String!]! """ - The primary address of the customer. - Returns `null` if neither the shipping address nor the billing address was provided. + The primary address of the customer, prioritizing shipping address over billing address when both are available. + Returns `null` if neither shipping address nor billing address was provided. """ displayAddress: MailingAddress - """ - The financial status of the order that can be shown to the merchant. - This field doesn't capture all the details of an order's financial state. It - should only be used for display summary purposes. - """ + """An order's financial status for display in the Shopify admin.""" displayFinancialStatus: OrderDisplayFinancialStatus """ - The fulfillment status for the order that can be shown to the merchant. - This field does not capture all the details of an order's fulfillment state. - It should only be used for display summary purposes. - For a more granular view of the fulfillment status, refer to the [FulfillmentOrder](https://shopify.dev/api/admin-graphql/latest/objects/FulfillmentOrder) object. + The order's fulfillment status that displays in the Shopify admin to + merchants. For example, an order might be unfulfilled or scheduled. + For detailed processing, use the [`FulfillmentOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder) object. """ displayFulfillmentStatus: OrderDisplayFulfillmentStatus! - """A list of the disputes associated with the order.""" + """ + A list of payment disputes associated with the order, such as chargebacks or payment inquiries. + Disputes occur when customers challenge transactions with their bank or payment provider. + """ disputes: [OrderDisputeSummary!]! - """Whether duties are included in the subtotal price of the order.""" + """ + Whether duties are included in the subtotal price of the order. + Duties are import taxes charged by customs authorities when goods cross international borders. + """ dutiesIncluded: Boolean! - """Whether the order has had any edits applied.""" + """ + Whether the order has had any edits applied. For example, adding or removing + line items, updating quantities, or changing prices. + """ edited: Boolean! - """The email address associated with the customer.""" + """ + The email address associated with the customer for this order. + Used for sending order confirmations, shipping notifications, and other order-related communications. + Returns `null` if no email address was provided during checkout. + """ email: String """ @@ -48668,7 +55882,11 @@ type Order implements CommentEventSubject & HasEvents & HasLocalizationExtension """ estimatedTaxes: Boolean! - """A list of events associated with the order.""" + """ + A list of events associated with the order. Events track significant changes + and activities related to the order, such as creation, payment, fulfillment, + and cancellation. + """ events( """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). @@ -48707,8 +55925,9 @@ type Order implements CommentEventSubject & HasEvents & HasLocalizationExtension | comments | boolean | Whether or not to include [comment-events](https://shopify.dev/api/admin-graphql/latest/objects/CommentEvent) in your search, passing `false` will exclude comment-events, any other value will include comment-events. | | | - `false`
- `true` | - | created_at | time | Filter by the date and time when the event happened. | - | | - `created_at:>2020-10-21`
- `created_at:2025-10-21`
- + `created_at: - `id:>=1234`
- `id:<=1234` | | subject_type | string | The resource type affected by this event. See [EventSubjectType](https://shopify.dev/api/admin-graphql/latest/enums/EventSubjectType) for possible values. | | | - `PRODUCT_VARIANT`
- `PRODUCT`
- `COLLECTION` | @@ -48766,14 +55985,10 @@ type Order implements CommentEventSubject & HasEvents & HasLocalizationExtension fulfillable: Boolean! """ - A list of fulfillment orders for a specific order. - - [FulfillmentOrder API access scopes](https://shopify.dev/api/admin-graphql/latest/objects/FulfillmentOrder#api-access-scopes) - govern which fulfillments orders are returned. - An API client will only receive a subset of the fulfillment orders which belong to an order - if they don't have the necessary access scopes to view all of the fulfillment orders. - In the case that an API client does not have the access scopes necessary to view - any of the fulfillment orders that belong to an order, an empty array will be returned. + A list of [fulfillment orders](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentOrder) for an order. + Each fulfillment order groups [line items](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-Order.fields.lineItems) + that are fulfilled together, + allowing an order to be processed in parts if needed. """ fulfillmentOrders( """ @@ -48823,19 +56038,33 @@ type Order implements CommentEventSubject & HasEvents & HasLocalizationExtension query: String ): FulfillmentOrderConnection! - """List of shipments for the order.""" + """ + A list of shipments for the order. Fulfillments represent the physical shipment of products to customers. + """ fulfillments( """Truncate the array result to this size.""" first: Int + + """ + Optional query string to filter fulfillments by timestamps. Examples: + `created_at:>='2024-05-07T08:37:00Z' updated_at:<'2025-05-07T08:37:00Z'`, + `created_at:'2024-05-07T08:37:00Z'` + """ + query: String ): [Fulfillment!]! - """The count of fulfillments including the cancelled fulfillments.""" + """ + The total number of fulfillments for the order, including canceled ones. + """ fulfillmentsCount: Count - """Whether the order has been paid in full.""" + """ + Whether the order has been paid in full. This field returns `true` when the + total amount received equals or exceeds the order total. + """ fullyPaid: Boolean! - """Whether the merchant added a timeline comment to the order.""" + """Whether the merchant has added a timeline comment to the order.""" hasTimelineComment: Boolean! """A globally-unique ID.""" @@ -48854,7 +56083,9 @@ type Order implements CommentEventSubject & HasEvents & HasLocalizationExtension """The ID of the corresponding resource in the REST Admin API.""" legacyResourceId: UnsignedInt64! - """A list of the order's line items.""" + """ + A list of the order's line items. Line items represent the individual products and quantities that make up the order. + """ lineItems( """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). @@ -48944,20 +56175,28 @@ type Order implements CommentEventSubject & HasEvents & HasLocalizationExtension reverse: Boolean = false ): LocalizedFieldConnection! - """The merchant's business entity associated with the order.""" + """ + The legal business structure that the merchant operates under for this order, such as an LLC, corporation, or partnership. + Used for tax reporting, legal compliance, and determining which business entity is responsible for the order. + """ merchantBusinessEntity: BusinessEntity! """ - Whether the order can be edited by the merchant. For example, canceled orders can’t be edited. + Whether the order can be edited by the merchant. Returns `false` for orders + that can't be modified, such as canceled orders or orders with specific + payment statuses. """ merchantEditable: Boolean! """ - A list of reasons why the order can't be edited. For example, "Canceled orders can't be edited". + A list of reasons why the order can't be edited. For example, canceled orders can't be edited. """ merchantEditableErrors: [String!]! - """The application acting as the Merchant of Record for the order.""" + """ + The application acting as the Merchant of Record for the order. The Merchant + of Record is responsible for tax collection and remittance. + """ merchantOfRecordApp: OrderApp """ @@ -49038,7 +56277,7 @@ type Order implements CommentEventSubject & HasEvents & HasLocalizationExtension """ query: String - ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use the root `metafieldDefinitions` field instead.") + ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use `Query.metafieldDefinitions` instead.") """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) @@ -49046,7 +56285,7 @@ type Order implements CommentEventSubject & HasEvents & HasLocalizationExtension """ metafields( """ - The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. + The metafield namespace to filter by. If omitted, all metafields are returned. """ namespace: String @@ -49080,9 +56319,10 @@ type Order implements CommentEventSubject & HasEvents & HasLocalizationExtension ): MetafieldConnection! """ - The unique identifier for the order that appears on the order page in the Shopify admin and the Order status page. + 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. + This value isn't unique across multiple stores. Use this field to identify + orders in the Shopify admin and for order tracking. """ name: String! @@ -49127,27 +56367,46 @@ type Order implements CommentEventSubject & HasEvents & HasLocalizationExtension reverse: Boolean = false ): LineItemConnection! - """The contents of the note associated with the order.""" + """ + The note associated with the order. + Contains additional information or instructions added by merchants or customers during the order process. + Commonly used for special delivery instructions, gift messages, or internal processing notes. + """ note: String """ - The total amount of additional fees at the time of order creation, in shop and presentment currencies. + The order number used to generate the name using the store's configured order + number prefix/suffix. This number isn't guaranteed to follow a consecutive + integer sequence (e.g. 1, 2, 3..), nor is it guaranteed to be unique across + multiple stores, or even for a single store. + """ + number: Int! + + """ + The total amount of all additional fees, such as import fees or taxes, that were applied when an order was created. Returns `null` if additional fees aren't applicable. """ originalTotalAdditionalFeesSet: MoneyBag """ - The total amount of duties at the time of order creation, in shop and presentment currencies. - Returns `null` if duties aren't applicable. + The total amount of duties calculated when an order was created, before any + modifications. Modifications include returns, refunds, order edits, and + cancellations. Use [`currentTotalDutiesSet`](https://shopify.dev/docs/api/admin-graphql/latest/objects/order#field-Order.fields.currentTotalDutiesSet) + to retrieve the current duties amount after adjustments. """ originalTotalDutiesSet: MoneyBag """ The total price of the order at the time of order creation, in shop and presentment currencies. + Use this to compare the original order value against the current total after edits, returns, or refunds. """ originalTotalPriceSet: MoneyBag! - """The payment collection details for the order.""" + """ + The payment collection details for the order, including payment status, outstanding amounts, and collection information. + Use this to understand when and how payments should be collected, especially + for orders with deferred or installment payment terms. + """ paymentCollectionDetails: OrderPaymentCollectionDetails! """ @@ -49156,10 +56415,18 @@ type Order implements CommentEventSubject & HasEvents & HasLocalizationExtension """ paymentGatewayNames: [String!]! - """The payment terms associated with the order.""" + """ + The payment terms associated with the order, such as net payment due dates or + early payment discounts. Payment terms define when and how an order should be + paid. Returns `null` if no specific payment terms were set for the order. + """ paymentTerms: PaymentTerms - """The phone number associated with the customer.""" + """ + The phone number associated with the customer for this order. + Useful for contacting customers about shipping updates, delivery notifications, or order issues. + Returns `null` if no phone number was provided during checkout. + """ phone: String """ @@ -49173,22 +56440,40 @@ type Order implements CommentEventSubject & HasEvents & HasLocalizationExtension """ physicalLocation: Location @deprecated(reason: "Use `fulfillmentOrders` to get the fulfillment location for the order") - """The PO number associated with the order.""" + """ + The purchase order (PO) number that's associated with an order. + This is typically provided by business customers who require a PO number for their procurement. + """ poNumber: String - """The payment `CurrencyCode` of the customer for the order.""" + """ + The currency used by the customer when placing the order. For example, "USD", "EUR", or "CAD". + This may differ from the shop's base currency when serving international customers or using multi-currency pricing. + """ presentmentCurrencyCode: CurrencyCode! """ - The date and time when the order was processed. + The date and time in [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601) when the order was processed. This date and time might not match the date and time when the order was created. """ processedAt: DateTime! - """The publication that the order was created from.""" + """ + Whether the customer also purchased items from other stores in the network. + """ + productNetwork: Boolean! + + """ + The sales channel that the order was created from, such as the [Online + Store](https://shopify.dev/docs/apps/build/app-surfaces#online-store) or + [Shopify POS](https://shopify.dev/docs/apps/build/app-surfaces#point-of-sale). + """ publication: Publication - """The purchasing entity for the order.""" + """ + The business entity that placed the order, including company details and purchasing relationships. + Used for B2B transactions to track which company or organization is responsible for the purchase and payment terms. + """ purchasingEntity: PurchasingEntity """ @@ -49210,47 +56495,68 @@ type Order implements CommentEventSubject & HasEvents & HasLocalizationExtension referrerUrl: URL @deprecated(reason: "Use `customerJourneySummary.lastVisit.referrerUrl` instead") """ - The difference between the suggested and actual refund amount of all refunds - that have been applied to the order. A positive value indicates a difference - in the merchant's favor, and a negative value indicates a difference in the - customer's favor. + The difference between the suggested and actual refund amount of all refunds that have been applied to the order. + A positive value indicates a difference in the merchant's favor, and a + negative value indicates a difference in the customer's favor. """ refundDiscrepancySet: MoneyBag! - """Whether the order can be refunded.""" + """ + Whether the order can be refunded based on its payment transactions. + Returns `false` for orders with no eligible payment transactions, such as + fully refunded orders or orders with non-refundable payment methods. + """ refundable: Boolean! - """A list of refunds that have been applied to the order.""" + """ + A list of refunds that have been applied to the order. + Refunds represent money returned to customers for returned items, cancellations, or adjustments. + """ refunds( """Truncate the array result to this size.""" first: Int ): [Refund!]! """ - The URL of the source that the order originated from, if found in the domain registry. + The URL of the source that the order originated from, if found in the domain + registry. Returns `null` if the source URL isn't in the domain registry. """ registeredSourceUrl: URL """ - Whether the order has shipping lines or at least one line item on the order that requires shipping. + Whether the order requires physical shipping to the customer. + Returns `false` for digital-only orders (such as gift cards or downloadable + products) and `true` for orders with physical products that need delivery. + Use this to determine shipping workflows and logistics requirements. """ requiresShipping: Boolean! - """Whether any line item on the order can be restocked.""" + """ + Whether any line items on the order can be restocked into inventory. + Returns `false` for digital products, custom items, or items that can't be resold. + """ restockable: Boolean! """ The physical location where a retail order is created or completed, except for - draft POS orders completed via the “mark as paid” flow in Admin, which return - null. Transactions associated with the order might have been processed at a - different location. + draft POS orders completed using the "mark as paid" flow in the Shopify admin, + which return `null`. Transactions associated with the order might have been + processed at a different location. """ retailLocation: Location - """The order's aggregated return status for display purposes.""" + """ + The order's aggregated return status for display purposes. + Indicates the overall state of returns for the order, helping merchants track and manage the return process. + """ returnStatus: OrderReturnStatus! - """A list of returns for the order.""" + """ + The returns associated with the order. + Contains information about items that customers have requested to return, + including return reasons, status, and refund details. + Use this to track and manage the return process for order items. + """ returns( """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). @@ -49288,7 +56594,11 @@ type Order implements CommentEventSubject & HasEvents & HasLocalizationExtension query: String ): ReturnConnection! - """The risk characteristics for the order.""" + """ + The risk assessment summary for the order. + Provides fraud analysis and risk scoring to help you identify potentially fraudulent orders. + Use this to make informed decisions about order fulfillment and payment processing. + """ risk: OrderRiskSummary! """The fraud risk level of the order.""" @@ -49300,13 +56610,24 @@ type Order implements CommentEventSubject & HasEvents & HasLocalizationExtension first: Int ): [OrderRisk!]! @deprecated(reason: "This field is deprecated in favor of OrderRiskAssessment, which provides enhanced capabilities such as distinguishing risks from their provider.") - """The mailing address of the customer.""" + """ + The shipping address where the order will be delivered. + Contains the customer's delivery location for fulfillment and shipping label generation. + Returns `null` for digital orders or orders that don't require shipping. + """ shippingAddress: MailingAddress - """A summary of all shipping costs on the order.""" + """ + A summary of all shipping costs on the order. + Aggregates shipping charges, discounts, and taxes to provide a single view of delivery costs. + """ shippingLine: ShippingLine - """A list of the order's shipping lines.""" + """ + The shipping methods applied to the order. + Each shipping line represents a shipping option chosen during checkout, including the carrier, service level, and cost. + Use this to understand shipping charges and delivery options for the order. + """ shippingLines( """Whether results should contain removed shipping lines.""" includeRemovals: Boolean = false @@ -49336,27 +56657,49 @@ type Order implements CommentEventSubject & HasEvents & HasLocalizationExtension ): ShippingLineConnection! """ - The Shopify Protect details for the order. If Shopify Protect is disabled for the shop, then this will be null. + The Shopify Protect details for the order, including fraud protection status and coverage information. + Shopify Protect helps protect eligible orders against fraudulent chargebacks. + Returns `null` if Shopify Protect is disabled for the shop or the order isn't eligible for protection. + Learn more about [Shopify Protect](https://www.shopify.com/protect). """ shopifyProtect: ShopifyProtectOrderSummary """ 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. + For example, "1234-12-1000" or "111-98567-54". The [`receiptNumber`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-receiptNumber) + field is derived from this value for POS orders. """ sourceIdentifier: String - """The name of the source associated with the order.""" + """ + The name of the source associated with the order, such as "web", "mobile_app", + or "pos". Use this field to identify the platform where the order was placed. + """ sourceName: String - """The staff member associated with the order.""" + """ + The staff member who created or is responsible for the order. + Useful for tracking which team member handled phone orders, manual orders, or order modifications. + Returns `null` for orders created directly by customers through the online store. + """ staffMember: StaffMember - """The URL where the customer can check the order's current status.""" - statusPageUrl: URL! + """ + The URL where customers can check their order's current status, including tracking information and delivery updates. + Provides order tracking links in emails, apps, or customer communications. + """ + statusPageUrl( + """Specifies the intended audience for the status page URL.""" + audience: Audience + + """Specifies the intended notification usage for the status page URL.""" + notificationUsage: NotificationUsage + ): URL! """ - The sum of the quantities for all line items that contribute to the order's subtotal price. + The sum of quantities for all line items that contribute to the order's subtotal price. + This excludes quantities for items like tips, shipping costs, or gift cards that don't affect the subtotal. + Use this to quickly understand the total item count for pricing calculations. """ subtotalLineItemsQuantity: Int! @@ -49372,7 +56715,10 @@ type Order implements CommentEventSubject & HasEvents & HasLocalizationExtension """ subtotalPriceSet: MoneyBag - """A suggested refund for the order.""" + """ + A calculated refund suggestion for the order based on specified line items, shipping, and duties. + Use this to preview refund amounts, taxes, and processing fees before creating an actual refund. + """ suggestedRefund( """ The amount to refund for shipping. Overrides the `refundShipping` argument. @@ -49393,6 +56739,11 @@ type Order implements CommentEventSubject & HasEvents & HasLocalizationExtension If `true`, the `refundLineItems` argument will be ignored. """ suggestFullRefund: Boolean = false + + """ + Specifies which refund methods to allocate the suggested refund amount to. + """ + refundMethodAllocation: RefundMethodAllocation = ORIGINAL_PAYMENT_METHODS ): SuggestedRefund """ @@ -49403,7 +56754,12 @@ type Order implements CommentEventSubject & HasEvents & HasLocalizationExtension """ tags: [String!]! - """Whether taxes are exempt on the order.""" + """ + Whether taxes are exempt on the order. + Returns `true` for orders where the customer or business has a valid tax + exemption, such as non-profit organizations or tax-free purchases. + Use this to understand if tax calculations were skipped during checkout. + """ taxExempt: Boolean! """ @@ -49412,7 +56768,11 @@ type Order implements CommentEventSubject & HasEvents & HasLocalizationExtension """ taxLines: [TaxLine!]! - """Whether taxes are included in the subtotal price of the order.""" + """ + Whether taxes are included in the subtotal price of the order. + When `true`, the subtotal and line item prices include tax amounts. When + `false`, taxes are calculated and displayed separately. + """ taxesIncluded: Boolean! """ @@ -49435,7 +56795,7 @@ type Order implements CommentEventSubject & HasEvents & HasLocalizationExtension totalCapturableSet: MoneyBag! """ - The total rounding adjustment applied to payments or refunds for an Order + The total rounding adjustment applied to payments or refunds for an order involving cash payments. Applies to some countries where cash transactions are rounded to the nearest currency denomination. """ @@ -49502,7 +56862,8 @@ type Order implements CommentEventSubject & HasEvents & HasLocalizationExtension totalShippingPrice: Money! @deprecated(reason: "Use `totalShippingPriceSet` instead.") """ - The total shipping amount before discounts and returns, in shop and presentment currencies. + The total shipping costs returned to the customer, in shop and presentment + currencies. This includes fees and any related discounts that were refunded. """ totalShippingPriceSet: MoneyBag! @@ -49546,7 +56907,9 @@ type Order implements CommentEventSubject & HasEvents & HasLocalizationExtension """Whether no payments have been made for the order.""" unpaid: Boolean! - """The date and time when the order was modified last.""" + """ + The date and time in [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601) when the order was last modified. + """ updatedAt: DateTime! } @@ -49714,7 +57077,15 @@ type OrderAgreement implements SalesAgreement { user: StaffMember } -"""The [application](https://shopify.dev/apps) that created the order.""" +""" +Identifies the [`App`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App) that +created an order. Common sources include "online store" for web purchases, +"Point of Sale" for in-person sales, or custom app names for orders created +through third-party integrations. + +Use this information to track order attribution, analyze sales channels, and +route orders to appropriate fulfillment workflows based on their source. +""" type OrderApp { """The application icon.""" icon: Image! @@ -49765,6 +57136,23 @@ enum OrderCancelReason { OTHER } +""" +The input fields used to specify the refund method for an order cancellation. +""" +input OrderCancelRefundMethodInput { + """Whether to refund to the original payment method.""" + originalPaymentMethodsRefund: Boolean + + """Whether to refund to store credit.""" + storeCreditRefund: OrderCancelStoreCreditRefundInput +} + +"""The input fields used to refund to store credit.""" +input OrderCancelStoreCreditRefundInput { + """The expiration date of the store credit.""" + expiresAt: DateTime +} + """Errors related to order cancellation.""" type OrderCancelUserError implements DisplayableError { """The error code.""" @@ -49784,11 +57172,34 @@ enum OrderCancelUserErrorCode { """ NO_REFUND_PERMISSION + """ + An order refund was requested but the user does not have the refund_to_store_credit permission. + """ + NO_REFUND_TO_STORE_CREDIT_PERMISSION + + """ + A store credit order refund was requested but the expiration date is in the past. + """ + STORE_CREDIT_REFUND_EXPIRATION_IN_PAST + + """ + A store credit order refund was requested but the order has no customer. + """ + STORE_CREDIT_REFUND_MISSING_CUSTOMER + + """ + A store credit order refund was requested but the order is a B2B order. + """ + STORE_CREDIT_REFUND_B2B_NOT_SUPPORTED + """The record with the ID used as the input value couldn't be found.""" NOT_FOUND """The input value is invalid.""" INVALID + + """Unexpected internal error happened.""" + INTERNAL_ERROR } """ @@ -50254,6 +57665,11 @@ enum OrderCreateManualPaymentOrderCreateManualPaymentErrorCode { """Order is temporarily unavailable.""" ORDER_IS_TEMPORARILY_UNAVAILABLE + + """ + Indicates that the processedAt field is invalid, such as when it references a future date. + """ + PROCESSED_AT_INVALID } """Return type for `orderCreateManualPayment` mutation.""" @@ -50551,7 +57967,9 @@ input OrderCreateTaxLineInput { """ channelLiable: Boolean = false - """The amount of tax to be charged on the item.""" + """ + The amount added to the order for this tax in shop and presentment currencies after discounts are applied. + """ priceSet: MoneyBagInput """The proportion of the item price that the tax represents as a decimal.""" @@ -50664,6 +58082,79 @@ enum OrderCreateUserErrorCode { SHOP_DORMANT } +"""Return type for `orderCustomerRemove` mutation.""" +type OrderCustomerRemovePayload { + """The order that had its customer removed.""" + order: Order + + """The list of errors that occurred from executing the mutation.""" + userErrors: [OrderCustomerRemoveUserError!]! +} + +"""Errors related to order customer removal.""" +type OrderCustomerRemoveUserError implements DisplayableError { + """The error code.""" + code: OrderCustomerRemoveUserErrorCode + + """The path to the input field that caused the error.""" + field: [String!] + + """The error message.""" + message: String! +} + +""" +Possible error codes that can be returned by `OrderCustomerRemoveUserError`. +""" +enum OrderCustomerRemoveUserErrorCode { + """The record with the ID used as the input value couldn't be found.""" + NOT_FOUND + + """The input value is invalid.""" + INVALID + + """An error ocurred while saving the order.""" + NOT_SAVED +} + +"""Return type for `orderCustomerSet` mutation.""" +type OrderCustomerSetPayload { + """The order that had a customer set.""" + order: Order + + """The list of errors that occurred from executing the mutation.""" + userErrors: [OrderCustomerSetUserError!]! +} + +"""Errors related to order customer set.""" +type OrderCustomerSetUserError implements DisplayableError { + """The error code.""" + code: OrderCustomerSetUserErrorCode + + """The path to the input field that caused the error.""" + field: [String!] + + """The error message.""" + message: String! +} + +""" +Possible error codes that can be returned by `OrderCustomerSetUserError`. +""" +enum OrderCustomerSetUserErrorCode { + """The record with the ID used as the input value couldn't be found.""" + NOT_FOUND + + """The input value is invalid.""" + INVALID + + """An error ocurred while saving the order.""" + NOT_SAVED + + """The customer does not have the permissions to place this order.""" + NOT_PERMITTED +} + """Return type for `orderDelete` mutation.""" type OrderDeletePayload { """Deleted order ID.""" @@ -50780,8 +58271,9 @@ enum OrderDisplayFulfillmentStatus { OPEN """ - Displayed as **In progress**. Some of the items in the order have been - fulfilled, or a request for fulfillment has been sent to the fulfillment service. + Displayed as **In progress**. All of the items in the order have had a request + for fulfillment sent to the fulfillment service or all of the items have been + marked as in progress. """ IN_PROGRESS @@ -50837,6 +58329,9 @@ type OrderEditAddCustomItemPayload { """An order with the edits applied but not saved.""" calculatedOrder: CalculatedOrder + """The order edit session with the edits applied but not saved.""" + orderEditSession: OrderEditSession + """The list of errors that occurred from executing the mutation.""" userErrors: [UserError!]! } @@ -50852,6 +58347,9 @@ type OrderEditAddLineItemDiscountPayload { """An order with the edits applied but not saved.""" calculatedOrder: CalculatedOrder + """The order edit session with the edits applied but not saved.""" + orderEditSession: OrderEditSession + """The list of errors that occurred from executing the mutation.""" userErrors: [UserError!]! } @@ -50879,6 +58377,9 @@ type OrderEditAddShippingLinePayload { """ calculatedShippingLine: CalculatedShippingLine + """The order edit session with the edits applied but not saved.""" + orderEditSession: OrderEditSession + """The list of errors that occurred from executing the mutation.""" userErrors: [OrderEditAddShippingLineUserError!]! } @@ -50919,6 +58420,9 @@ type OrderEditAddVariantPayload { """ calculatedOrder: CalculatedOrder + """The order edit session with the edits applied but not saved.""" + orderEditSession: OrderEditSession + """The list of errors that occurred from executing the mutation.""" userErrors: [UserError!]! } @@ -50984,6 +58488,9 @@ type OrderEditBeginPayload { """The order that will be edited.""" calculatedOrder: CalculatedOrder + """The order edit session that was created.""" + orderEditSession: OrderEditSession + """The list of errors that occurred from executing the mutation.""" userErrors: [UserError!]! } @@ -50993,6 +58500,11 @@ type OrderEditCommitPayload { """The order with changes applied.""" order: Order + """ + Messages to display to the user after the staged changes are commmitted. + """ + successMessages: [String!] + """The list of errors that occurred from executing the mutation.""" userErrors: [UserError!]! } @@ -51002,6 +58514,9 @@ type OrderEditRemoveDiscountPayload { """An order with the edits applied but not saved.""" calculatedOrder: CalculatedOrder + """The order edit session with the edits applied but not saved.""" + orderEditSession: OrderEditSession + """The list of errors that occurred from executing the mutation.""" userErrors: [OrderEditRemoveDiscountUserError!]! } @@ -51036,6 +58551,9 @@ type OrderEditRemoveLineItemDiscountPayload { """An order with the edits applied but not saved.""" calculatedOrder: CalculatedOrder + """The order edit session with the edits applied but not saved.""" + orderEditSession: OrderEditSession + """The list of errors that occurred from executing the mutation.""" userErrors: [UserError!]! } @@ -51048,6 +58566,9 @@ type OrderEditRemoveShippingLinePayload { """ calculatedOrder: CalculatedOrder + """The order edit session with the edits applied but not saved.""" + orderEditSession: OrderEditSession + """The list of errors that occurred from executing the mutation.""" userErrors: [OrderEditRemoveShippingLineUserError!]! } @@ -51074,6 +58595,12 @@ enum OrderEditRemoveShippingLineUserErrorCode { INVALID } +"""An edit session for an order.""" +type OrderEditSession implements Node { + """The unique ID of the order edit session.""" + id: ID! +} + """Return type for `orderEditSetQuantity` mutation.""" type OrderEditSetQuantityPayload { """The calculated line item with the edits applied but not saved.""" @@ -51082,6 +58609,9 @@ type OrderEditSetQuantityPayload { """The calculated order with the edits applied but not saved.""" calculatedOrder: CalculatedOrder + """The order edit session with the edits applied but not saved.""" + orderEditSession: OrderEditSession + """The list of errors that occurred from executing the mutation.""" userErrors: [UserError!]! } @@ -51091,6 +58621,9 @@ type OrderEditUpdateDiscountPayload { """An order with the edits applied but not saved.""" calculatedOrder: CalculatedOrder + """The order edit session with the edits applied but not saved.""" + orderEditSession: OrderEditSession + """The list of errors that occurred from executing the mutation.""" userErrors: [OrderEditUpdateDiscountUserError!]! } @@ -51131,6 +58664,9 @@ type OrderEditUpdateShippingLinePayload { """An order with the edits applied but not saved.""" calculatedOrder: CalculatedOrder + """The order edit session with the edits applied but not saved.""" + orderEditSession: OrderEditSession + """The list of errors that occurred from executing the mutation.""" userErrors: [OrderEditUpdateShippingLineUserError!]! } @@ -51180,6 +58716,11 @@ input OrderInput { """ email: String + """ + A new customer phone number for the order. Overwrites the existing phone number. + """ + phone: String + """ The new contents for the note associated with the order. Overwrites the existing note. """ @@ -51538,10 +59079,15 @@ type OrderRiskSummary { """The set of valid sort keys for the Order query.""" enum OrderSortKeys { - """Sort by the `created_at` value.""" + """Sorts by the date and time the order was created.""" CREATED_AT - """Sort by the `customer_name` value.""" + """ + Sorts by the current total price of an order in the shop currency, including any returns/refunds/removals. + """ + CURRENT_TOTAL_PRICE + + """Sorts by the customer's name.""" CUSTOMER_NAME """ @@ -51549,16 +59095,16 @@ enum OrderSortKeys { """ DESTINATION - """Sort by the `financial_status` value.""" + """Sorts by the financial status of the order.""" FINANCIAL_STATUS - """Sort by the `fulfillment_status` value.""" + """Sorts by the order's fulfillment status.""" FULFILLMENT_STATUS """Sort by the `id` value.""" ID - """Sort by the `order_number` value.""" + """Sorts by the order number.""" ORDER_NUMBER """ @@ -51566,7 +59112,7 @@ enum OrderSortKeys { """ PO_NUMBER - """Sort by the `processed_at` value.""" + """Sorts by the date and time the order was processed.""" PROCESSED_AT """ @@ -51580,15 +59126,17 @@ enum OrderSortKeys { """ TOTAL_ITEMS_QUANTITY - """Sort by the `total_price` value.""" + """ + Sorts by the total sold price of an order in the shop currency, excluding any returns/refunds/removals. + """ TOTAL_PRICE - """Sort by the `updated_at` value.""" + """Sorts by the date and time the order was last updated.""" UPDATED_AT } """A change that has been applied to an order.""" -union OrderStagedChange = OrderStagedChangeAddCustomItem | OrderStagedChangeAddLineItemDiscount | OrderStagedChangeAddShippingLine | OrderStagedChangeAddVariant | OrderStagedChangeDecrementItem | OrderStagedChangeIncrementItem | OrderStagedChangeRemoveShippingLine +union OrderStagedChange = OrderStagedChangeAddCustomItem | OrderStagedChangeAddLineItemDiscount | OrderStagedChangeAddShippingLine | OrderStagedChangeAddVariant | OrderStagedChangeDecrementItem | OrderStagedChangeIncrementItem | OrderStagedChangeRemoveDiscount | OrderStagedChangeRemoveShippingLine """ A change to the order representing the addition of a @@ -51711,13 +59259,42 @@ type OrderStagedChangeIncrementItem { lineItem: LineItem! } +"""A discount application removed during an order edit.""" +type OrderStagedChangeRemoveDiscount { + """The removed discount application.""" + discountApplication: DiscountApplication! +} + """A shipping line removed during an order edit.""" type OrderStagedChangeRemoveShippingLine { """The removed shipping line.""" shippingLine: ShippingLine! } -"""A payment transaction in the context of an order.""" +""" +The `OrderTransaction` object represents a payment transaction that's associated with an order. An order +transaction is a specific action or event that happens within the context of an order, such as a customer paying +for a purchase or receiving a refund, or other payment-related activity. + +Use the `OrderTransaction` object to capture the complete lifecycle of a payment, from initial +authorization to final settlement, including refunds and currency exchanges. Common use cases for using the +`OrderTransaction` object include: + +- Processing new payments for orders +- Managing payment authorizations and captures +- Processing refunds for returned items +- Tracking payment status and errors +- Managing multi-currency transactions +- Handling payment gateway integrations + +Each `OrderTransaction` object has a [`kind`](https://shopify.dev/docs/api/admin-graphql/latest/enums/OrderTransactionKind) +that defines the type of transaction and a [`status`](https://shopify.dev/docs/api/admin-graphql/latest/enums/OrderTransactionStatus) +that indicates the current state of the transaction. The object stores detailed information about payment +methods, gateway processing, and settlement details. + +Learn more about [payment processing](https://help.shopify.com/manual/payments) +and [payment gateway integrations](https://www.shopify.com/ca/payment-gateways). +""" type OrderTransaction implements Node { """The masked account number associated with the payment method.""" accountNumber: String @@ -51739,7 +59316,7 @@ type OrderTransaction implements Node { amountV2: MoneyV2! @deprecated(reason: "Use `amountSet` instead.") """Authorization code associated with the transaction.""" - authorizationCode: String + authorizationCode: String @deprecated(reason: "Use `paymentId` instead.") """ The time when the authorization expires. This field is available only to stores on a Shopify Plus plan. @@ -51749,6 +59326,14 @@ type OrderTransaction implements Node { """Date and time when the transaction was created.""" createdAt: DateTime! + """ + An adjustment on the transaction showing the amount lost or gained due to fluctuations in the currency exchange rate. + """ + currencyExchangeAdjustment: CurrencyExchangeAdjustment + + """The Shopify Point of Sale device used to process the transaction.""" + device: PointOfSaleDevice + """A standardized error code, independent of the payment provider.""" errorCode: OrderTransactionErrorCode @@ -51771,6 +59356,9 @@ type OrderTransaction implements Node { """The kind of transaction.""" kind: OrderTransactionKind! + """The physical location where the transaction was processed.""" + location: Location + """Whether the transaction is processed by manual payment gateway.""" manualPaymentGateway: Boolean! @@ -51819,7 +59407,10 @@ type OrderTransaction implements Node { """ The transaction receipt that the payment gateway attaches to the transaction. - The value of this field depends on which payment gateway processed the transaction. + > **Note:** This field is **gateway-specific** and **not a stable contract**. + > Its structure and contents can vary by payment gateway and may change without notice. + > Apps **shouldn't parse or rely on this field for business logic**; prefer + typed fields on `OrderTransaction` and related objects. """ receiptJson: JSON @@ -51921,16 +59512,16 @@ enum OrderTransactionErrorCode { """The card is expired.""" EXPIRED_CARD - """The CVC does not match the card number.""" + """The card security code (CVC/CVV) is incorrect.""" INCORRECT_CVC - """The ZIP or postal code does not match the card number.""" + """The ZIP or postal code doesn't match the one on file.""" INCORRECT_ZIP - """The address does not match the card number.""" + """The address is incorrect.""" INCORRECT_ADDRESS - """The entered PIN is incorrect.""" + """The PIN entered is incorrect.""" INCORRECT_PIN """The card was declined.""" @@ -51939,7 +59530,9 @@ enum OrderTransactionErrorCode { """There was an error while processing the payment.""" PROCESSING_ERROR - """Call the card issuer.""" + """ + The issuer declined the transaction, the customer should contact their issuer for more details. + """ CALL_ISSUER """ @@ -51965,7 +59558,7 @@ enum OrderTransactionErrorCode { """The payment method is not available in the customer's country.""" INVALID_COUNTRY - """The amount is either too high or too low for the provider.""" + """The amount is invalid.""" INVALID_AMOUNT """The payment method is momentarily unavailable.""" @@ -52080,7 +59673,15 @@ type OrderUpdatePayload { userErrors: [UserError!]! } -"""A page on the Online Store.""" +""" +A standalone content page in the online store. Pages display HTML-formatted +content for informational pages like "About Us", contact information, or +shipping policies. + +Each page has a unique handle for URL routing and supports custom template +suffixes for specialized layouts. Pages can be published or hidden, and include +creation and update timestamps. +""" type Page implements HasEvents & HasMetafieldDefinitions & HasMetafields & HasPublishedTranslations & Navigable & Node { """The text content of the page, complete with HTML markup.""" body: HTML! @@ -52139,8 +59740,9 @@ type Page implements HasEvents & HasMetafieldDefinitions & HasMetafields & HasPu | comments | boolean | Whether or not to include [comment-events](https://shopify.dev/api/admin-graphql/latest/objects/CommentEvent) in your search, passing `false` will exclude comment-events, any other value will include comment-events. | | | - `false`
- `true` | - | created_at | time | Filter by the date and time when the event happened. | - | | - `created_at:>2020-10-21`
- `created_at:2025-10-21`
- + `created_at: - `id:>=1234`
- `id:<=1234` | | subject_type | string | The resource type affected by this event. See [EventSubjectType](https://shopify.dev/api/admin-graphql/latest/enums/EventSubjectType) for possible values. | | | - `PRODUCT_VARIANT`
- `PRODUCT`
- `COLLECTION` | @@ -52241,7 +59843,7 @@ type Page implements HasEvents & HasMetafieldDefinitions & HasMetafields & HasPu """ query: String - ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use the root `metafieldDefinitions` field instead.") + ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use `Query.metafieldDefinitions` instead.") """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) @@ -52249,7 +59851,7 @@ type Page implements HasEvents & HasMetafieldDefinitions & HasMetafields & HasPu """ metafields( """ - The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. + The metafield namespace to filter by. If omitted, all metafields are returned. """ namespace: String @@ -52397,9 +59999,15 @@ enum PageCreateUserErrorCode { """The input value is too long.""" TOO_LONG + """The input value is too big.""" + TOO_BIG + """The input value is already taken.""" TAKEN + """The input value is invalid.""" + INVALID + """ The value is invalid for the metafield type or for the definition options. """ @@ -52559,8 +60167,22 @@ enum PageUpdateUserErrorCode { """The input value is too long.""" TOO_LONG + """The input value is too big.""" + TOO_BIG + """The input value is already taken.""" TAKEN + + """The input value is invalid.""" + INVALID + + """ + The value is invalid for the metafield type or for the definition options. + """ + INVALID_VALUE + + """The metafield type is invalid.""" + INVALID_TYPE } """A payment customization.""" @@ -52657,7 +60279,7 @@ type PaymentCustomization implements HasMetafieldDefinitions & HasMetafields & N """ query: String - ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use the root `metafieldDefinitions` field instead.") + ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use `Query.metafieldDefinitions` instead.") """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) @@ -52665,7 +60287,7 @@ type PaymentCustomization implements HasMetafieldDefinitions & HasMetafields & N """ metafields( """ - The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. + The metafield namespace to filter by. If omitted, all metafields are returned. """ namespace: String @@ -52821,12 +60443,18 @@ enum PaymentCustomizationErrorCode { """Function ID cannot be changed.""" FUNCTION_ID_CANNOT_BE_CHANGED + + """Either function_id or function_handle must be provided.""" + MISSING_FUNCTION_IDENTIFIER + + """Only one of function_id or function_handle can be provided, not both.""" + MULTIPLE_FUNCTION_IDENTIFIERS } """The input fields to create and update a payment customization.""" input PaymentCustomizationInput { - """The ID of the function providing the payment customization.""" - functionId: String + """Function handle scoped to your app ID.""" + functionHandle: String """The title of the payment customization.""" title: String @@ -52848,10 +60476,10 @@ type PaymentCustomizationUpdatePayload { } """Payment details related to a transaction.""" -union PaymentDetails = CardPaymentDetails | LocalPaymentMethodsPaymentDetails | ShopPayInstallmentsPaymentDetails +union PaymentDetails = CardPaymentDetails | LocalPaymentMethodsPaymentDetails | PaypalWalletPaymentDetails | ShopPayInstallmentsPaymentDetails """All possible instrument outputs for Payment Mandates.""" -union PaymentInstrument = VaultCreditCard | VaultPaypalBillingAgreement +union PaymentInstrument = BankAccount | VaultCreditCard | VaultPaypalBillingAgreement """ A payment instrument and the permission @@ -52865,6 +60493,58 @@ type PaymentMandate implements Node { paymentInstrument: PaymentInstrument! } +""" +A payment mandate with resource information, representing the permission +the owner of the payment instrument gives to the merchant to debit it +for specific resources (e.g., Order, Subscriptions). +""" +type PaymentMandateResource { + """The ID of the resource that this payment method was created for.""" + resourceId: ID + + """ + The resource type that this payment method was created for (e.g., Order, Subscriptions). + """ + resourceType: MandateResourceType +} + +""" +An auto-generated type for paginating through multiple PaymentMandateResources. +""" +type PaymentMandateResourceConnection { + """ + The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + """ + edges: [PaymentMandateResourceEdge!]! + + """ + A list of nodes that are contained in PaymentMandateResourceEdge. You can + fetch data about an individual node, or you can follow the edges to fetch data + about a collection of related nodes. At each node, you specify the fields that + you want to retrieve. + """ + nodes: [PaymentMandateResource!]! + + """ + An object that’s used to retrieve [cursor + information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + """ + pageInfo: PageInfo! +} + +""" +An auto-generated type which holds one PaymentMandateResource and a cursor during pagination. +""" +type PaymentMandateResourceEdge { + """ + The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + """ + cursor: String! + + """The item at the end of PaymentMandateResourceEdge.""" + node: PaymentMandateResource! +} + """Some of the payment methods used in Shopify.""" enum PaymentMethods { VISA @@ -52937,9 +60617,15 @@ type PaymentSchedule implements Node { """Amount owed for this payment schedule.""" amount: MoneyV2! @deprecated(reason: "Use `balanceDue`, `totalBalance`, or `Order.totalOutstandingSet` instead.") + """Remaining balance to be captured for this payment schedule.""" + balanceDue: MoneyV2! + """Date and time when the payment schedule is paid or fulfilled.""" completedAt: DateTime + """Whether the payment schedule is due.""" + due: Boolean! + """Date and time when the payment schedule is due.""" dueAt: DateTime @@ -52951,6 +60637,11 @@ type PaymentSchedule implements Node { """The payment terms the payment schedule belongs to.""" paymentTerms: PaymentTerms! + + """ + Remaining balance to be paid or authorized by the customer for this payment schedule. + """ + totalBalance: MoneyV2! } """ @@ -53009,11 +60700,27 @@ type PaymentSettings { supportedDigitalWallets: [DigitalWallet!]! } -"""Represents the payment terms for an order or draft order.""" +""" +Payment conditions for an +[`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) or [`DraftOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrder), +including when payment is due and how it's scheduled. Payment terms are created +from templates that specify net terms (payment due after a certain number of +days) or fixed schedules with specific due dates. You can optionally provide +custom payment schedules using [`PaymentScheduleInput`](https://shopify.dev/docs/api/admin-graphql/latest/input-objects/PaymentScheduleInput). + +Each payment term contains one or more [`PaymentSchedule`](https://shopify.dev/docs/api/admin-graphql/latest/objects/PaymentSchedule), +which you can access through the [`paymentSchedules`](https://shopify.dev/docs/api/admin-graphql/latest/objects/PaymentTerms#field-PaymentTerms.fields.paymentSchedules) +field. Payment schedules contain detailed information for each payment installment. + +Learn more about [payment terms](https://shopify.dev/docs/apps/build/checkout/payments/payment-terms). +""" type PaymentTerms implements Node { """The draft order associated with the payment terms.""" draftOrder: DraftOrder + """Whether payment terms have a payment schedule that's due.""" + due: Boolean! + """ Duration of payment terms in days based on the payment terms template used to create the payment terms. """ @@ -53291,6 +60998,44 @@ enum PaypalExpressSubscriptionsGatewayStatus { PENDING } +"""PayPal Wallet payment details related to a transaction.""" +type PaypalWalletPaymentDetails implements BasePaymentDetails { + """The name of payment method used by the buyer.""" + paymentMethodName: String +} + +"""A location for in-store pickup.""" +type PickupInStoreLocation { + """The code of the pickup location.""" + code: String! + + """Distance from the buyer to the pickup location.""" + distanceFromBuyer: Distance + + """A unique identifier for this pickup location.""" + handle: String! + + """Pickup instructions.""" + instructions: String! + + """The location ID of the pickup location.""" + locationId: ID! + + """The source of the pickup location.""" + source: String! + + """Title of the pickup location.""" + title: String! +} + +""" +Represents a mobile device that Shopify Point of Sale has been installed on. +""" +type PointOfSaleDevice implements Node { + """A globally-unique ID.""" + id: ID! +} + """ The input fields used to include the line items of a specified fulfillment order that should be marked as prepared for pickup by a customer. @@ -53301,7 +61046,7 @@ input PreparedFulfillmentOrderLineItemsInput { } """ -How to caluclate the parent product variant's price while bulk updating variant relationships. +How to calculate the parent product variant's price while bulk updating variant relationships. """ enum PriceCalculationType { """ @@ -53331,13 +61076,16 @@ input PriceInput { } """ -Represents a price list, including information about related prices and eligibility rules. -You can use price lists to specify either fixed prices or adjusted relative prices that -override initial product variant prices. Price lists are applied to customers -using context rules, which determine price list eligibility. +A list that defines pricing for [product variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant). +Price lists override default product prices with either fixed prices or +percentage-based adjustments. + +Each price list associates with a [`Catalog`](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/Catalog) +to determine which customers see the pricing. The catalog's context rules +control when the price list applies, such as for specific markets, company +locations, or apps. - For more information on price lists, refer to - [Support different pricing models](https://shopify.dev/apps/internationalization/product-price-lists). +Learn how to [support different pricing models](https://shopify.dev/docs/apps/build/markets/build-catalog). """ type PriceList implements Node { """The catalog that the price list is associated with.""" @@ -53704,10 +61452,13 @@ input PriceListParentUpdateInput { } """ -Represents information about pricing for a product variant - as defined on a price list, such as the price, compare at price, and -origin type. You can use a `PriceListPrice` to specify a fixed price for a -specific product variant. For examples, refer to [PriceListFixedPricesAdd](https://shopify.dev/api/admin-graphql/latest/mutations/priceListFixedPricesAdd) and [PriceList](https://shopify.dev/api/admin-graphql/latest/queries/priceList#section-examples). +Pricing for a [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) on a [`PriceList`](https://shopify.dev/docs/api/admin-graphql/latest/objects/PriceList). Represents the variant's price, compare-at price, and whether the price is fixed +or calculated using percentage-based adjustments. The [`PriceListPriceOriginType`](https://shopify.dev/docs/api/admin-graphql/latest/enums/PriceListPriceOriginType) +distinguishes between prices set directly on the price list (fixed) and prices +calculated using the price list's adjustment configuration (relative). + +Learn more about [building catalogs with different pricing +models](https://shopify.dev/docs/apps/build/markets/build-catalog). """ type PriceListPrice { """The compare-at price of the product variant on this price list.""" @@ -53858,8 +61609,15 @@ input PriceListProductPriceInput { """Specifies the ID of the product to update its variants for.""" productId: ID! - """The price of the product to use for all variants with its currency.""" + """ + Specifies the price and currency to apply to the product's variants on the price list. + """ price: MoneyInput! + + """ + Specifies the compare-at price and currency to apply to the product's variants on the price list. + """ + compareAtPrice: MoneyInput } """The set of valid sort keys for the PriceList query.""" @@ -53992,12 +61750,12 @@ enum PriceListUserErrorCode { } """ -Price rules are a set of conditions, including entitlements and prerequisites, -that must be met in order for a discount code to apply. +A set of conditions, including entitlements and prerequisites, that must be met for a discount code to apply. -We recommend using the types and queries detailed at [Getting started with discounts](https://shopify.dev/docs/apps/selling-strategies/discounts/getting-started) -instead. These will replace the GraphQL `PriceRule` object and REST Admin -`PriceRule` and `DiscountCode` resources. +> Note: +> Use the types and queries included our [discount tutorials](https://shopify.dev/docs/apps/selling-strategies/discounts/getting-started) +instead. These will replace the GraphQL Admin API's [`PriceRule`](https://shopify.dev/docs/api/admin-graphql/latest/objects/PriceRule) object and [`DiscountCode`](https://shopify.dev/docs/api/admin-graphql/latest/unions/DiscountCode) +union, and the REST Admin API's deprecated[`PriceRule`](https://shopify.dev/docs/api/admin-rest/unstable/resources/pricerule) resource. """ type PriceRule implements CommentEventSubject & HasEvents & LegacyInteroperability & Node { """ @@ -54141,8 +61899,9 @@ type PriceRule implements CommentEventSubject & HasEvents & LegacyInteroperabili | comments | boolean | Whether or not to include [comment-events](https://shopify.dev/api/admin-graphql/latest/objects/CommentEvent) in your search, passing `false` will exclude comment-events, any other value will include comment-events. | | | - `false`
- `true` | - | created_at | time | Filter by the date and time when the event happened. | - | | - `created_at:>2020-10-21`
- `created_at:2025-10-21`
- + `created_at: - `id:>=1234`
- `id:<=1234` | | subject_type | string | The resource type affected by this event. See [EventSubjectType](https://shopify.dev/api/admin-graphql/latest/enums/EventSubjectType) for possible values. | | | - `PRODUCT_VARIANT`
- `PRODUCT`
- `COLLECTION` | @@ -54299,12 +62058,16 @@ type PriceRuleCustomerSelection { `country:Canada`
- `country:JP` | | customer_date | time | Filter by the date and time when the customer record was created. This query parameter filters by the [`createdAt`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer#field-createdAt) - field. | | | - `customer_date:'2024-03-15T14:30:00Z'`
- - `customer_date:'>=2024-01-01'` | + field. | | | - `customer_date:'2024-03-15T14:30:00Z'`
- `customer_date: + >='2024-01-01'` | | email | string | The customer's email address, used to communicate information about orders and for the purposes of email marketing campaigns. You can use a wildcard value to filter the query by customers who have an - email address specified. | | | - `email:bo.wang@example.com`
- `email:*` | + email address specified. Please note that _email_ is a tokenized field: To + retrieve exact matches, quote the email address (_phrase query_) as + described in [Shopify API search + syntax](https://shopify.dev/docs/api/usage/search-syntax). | | | - + `email:gmail.com`
- `email:"bo.wang@example.com"`
- `email:*` | | first_name | string | Filter by the customer's first name. | | | - `first_name:Jane` | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | last_abandoned_order_date | time | Filter by the date and time of the @@ -54312,12 +62075,12 @@ type PriceRuleCustomerSelection { a customer adds items to their cart, begins the checkout process, but leaves the site without completing their purchase. | | | - `last_abandoned_order_date:'2024-04-01T10:00:00Z'`
- - `last_abandoned_order_date:'>=2024-01-01'` | + `last_abandoned_order_date: >='2024-01-01'` | | last_name | string | Filter by the customer's last name. | | | - `last_name:Reeves` | | order_date | time | Filter by the date and time that the order was placed by the customer. Use this query filter to check if a customer has placed at least one order within a specified date range. | | | - - `order_date:'2024-02-20T00:00:00Z'`
- `order_date:'>=2024-01-01'`
+ `order_date:'2024-02-20T00:00:00Z'`
- `order_date: >='2024-01-01'`
- `order_date:'2024-01-01..2024-03-31'` | | orders_count | integer | Filter by the total number of orders a customer has placed. | | | - `orders_count:5` | | phone | string | The phone number of the customer, used to communicate @@ -55682,6 +63445,9 @@ type Product implements HasEvents & HasMetafieldDefinitions & HasMetafields & Ha reverse: Boolean = false ): ProductBundleComponentConnection! + """A list of consolidated options for a product in a bundle.""" + bundleConsolidatedOptions: [ComponentizedProductsBundleConsolidatedOption!] + """ The category of a product from [Shopify's Standard Product Taxonomy](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17). @@ -55732,29 +63498,56 @@ type Product implements HasEvents & HasMetafieldDefinitions & HasMetafields & Ha | handle | string | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | product_id | id | Filter by collections containing a product by its ID. | - | product_publication_status | string | Filter by the publishable status of - the resource on a channel, such as the online store. The value is a - composite of the [channel `app` - ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) - (`Channel.app.id`) and one of the valid values. | - `approved`
- - `rejected`
- `needs_action`
- `awaiting_review`
- - `published`
- `demoted`
- `scheduled`
- - `provisionally_published` | | - `publishable_status:189769876-approved` | - | publishable_status | string | Filter by the publishable status of the - resource on a channel, such as the online store. The value is a composite of - either the [channel `app` + | product_publication_status | string | Filter by channel approval process + status of the resource on a channel, such as the online store. The value is + a composite of the [channel `app` ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#field-Channel.fields.app) + (`Channel.app.id`) and one of the valid values. For simple visibility checks, use [published_status](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-publishable_status) + instead. | - `* {channel_app_id}-approved`
- `* + {channel_app_id}-rejected`
- `* {channel_app_id}-needs_action`
- + `* {channel_app_id}-awaiting_review`
- `* + {channel_app_id}-published`
- `* {channel_app_id}-demoted`
- `* + {channel_app_id}-scheduled`
- `* + {channel_app_id}-provisionally_published` | | - + `product_publication_status:189769876-approved` | + | publishable_status | string | **Deprecated:** This parameter is deprecated + as of 2025-12 and will be removed in a future API version. Use [published_status](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-publishable_status) + for visibility checks. Filter by the publishable status of the resource on a + channel. The value is a composite of the [channel `app` ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) - (`Channel.app.id`) or [channel `name`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Channel#field-name) - and one of the valid values. | - `online_store_channel`
- - `published`
- `unpublished`
- `visible`
- `unavailable`
- - `hidden`
- `intended`
- `visible` | | - - `publishable_status:published`
- - `publishable_status:189769876:visible`
- - `publishable_status:pos:hidden` | + (`Channel.app.id`) and one of the valid status values. | - `* + {channel_app_id}-unset`
- `* {channel_app_id}-pending`
- `* + {channel_app_id}-approved`
- `* {channel_app_id}-not_approved` | | - + `publishable_status:580111-unset`
- `publishable_status:580111-pending` | | published_at | time | Filter by the date and time when the collection was published to the Online Store. | - | published_status | string | Filter by the published status of the resource - on a channel, such as the online store. | - `unset`
- `pending`
- - `approved`
- `not approved` | | - `published_status:approved` | + | published_status | string | Filter resources by their visibility and + publication state on a channel. Online store channel filtering: - + `online_store_channel`: Returns all resources in the online store channel, + regardless of publication status. - `published`/`visible`: Returns resources + that are published to the online store. - `unpublished`: Returns resources + that are not published to the online store. Channel-specific filtering using + a channel ID, channel handle, [channel `app` + ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) + (`Channel.app.id`), or app handle with suffixes: - + `{id_or_handle}-published`: Returns resources published to the specified + channel. - `{id_or_handle}-visible`: Same as `{id_or_handle}-published` + (kept for backwards compatibility). - `{id_or_handle}-intended`: Returns + resources added to the channel but not yet published. - + `{id_or_handle}-hidden`: Returns resources not added to the channel or not + published. Other: - `unavailable`: Returns resources not published to any + channel. | - `online_store_channel`
- `published`
- `visible`
+ - `unpublished`
- `* {channel_id_or_handle}-published`
- `* + {channel_id_or_handle}-visible`
- `* + {channel_id_or_handle}-intended`
- `* + {channel_id_or_handle}-hidden`
- `* + {channel_app_id_or_handle}-published`
- `* + {channel_app_id_or_handle}-visible`
- `* + {channel_app_id_or_handle}-intended`
- `* + {channel_app_id_or_handle}-hidden`
- `unavailable` | | - + `published_status:online_store_channel`
- + `published_status:published`
- `published_status:580111-published`
+ - `published_status:580111-hidden`
- + `published_status:my-channel-handle-published`
- + `published_status:unavailable` | | title | string | | updated_at | time | You can apply one or more filters to a query. Learn more about [Shopify API @@ -55787,8 +63580,8 @@ type Product implements HasEvents & HasMetafieldDefinitions & HasMetafields & Ha """ The pricing that applies to a customer in a specific context. For example, a - price might vary depending on the customer's location. As of API version - 2025-04, only active markets are considered in the price resolution. + price might vary depending on the customer's location. Only active markets are + considered in the price resolution. """ contextualPricing( """The context used to generate contextual pricing for the variant.""" @@ -55799,7 +63592,7 @@ type Product implements HasEvents & HasMetafieldDefinitions & HasMetafields & Ha createdAt: DateTime! """The custom product type specified by the merchant.""" - customProductType: String @deprecated(reason: "Deprecated in API version 2022-10. Use `productType` instead.") + customProductType: String @deprecated(reason: "Use `productType` instead.") """ A default [cursor](https://shopify.dev/api/usage/pagination-graphql) that @@ -55868,8 +63661,9 @@ type Product implements HasEvents & HasMetafieldDefinitions & HasMetafields & Ha | comments | boolean | Whether or not to include [comment-events](https://shopify.dev/api/admin-graphql/latest/objects/CommentEvent) in your search, passing `false` will exclude comment-events, any other value will include comment-events. | | | - `false`
- `true` | - | created_at | time | Filter by the date and time when the event happened. | - | | - `created_at:>2020-10-21`
- `created_at:2025-10-21`
- + `created_at: - `id:>=1234`
- `id:<=1234` | | subject_type | string | The resource type affected by this event. See [EventSubjectType](https://shopify.dev/api/admin-graphql/latest/enums/EventSubjectType) for possible values. | | | - `PRODUCT_VARIANT`
- `PRODUCT`
- `COLLECTION` | @@ -56113,7 +63907,7 @@ type Product implements HasEvents & HasMetafieldDefinitions & HasMetafields & Ha """ query: String - ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use the root `metafieldDefinitions` field instead.") + ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use `Query.metafieldDefinitions` instead.") """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) @@ -56121,7 +63915,7 @@ type Product implements HasEvents & HasMetafieldDefinitions & HasMetafields & Ha """ metafields( """ - The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. + The metafield namespace to filter by. If omitted, all metafields are returned. """ namespace: String @@ -56176,7 +63970,7 @@ type Product implements HasEvents & HasMetafieldDefinitions & HasMetafields & Ha ): [ProductOption!]! """The price range of the product.""" - priceRange: ProductPriceRange! @deprecated(reason: "Deprecated in API version 2020-10. Use `priceRangeV2` instead.") + priceRange: ProductPriceRange! @deprecated(reason: "Use `priceRangeV2` instead.") """ The minimum and maximum prices of a product, expressed in decimal numbers. @@ -56186,7 +63980,217 @@ type Product implements HasEvents & HasMetafieldDefinitions & HasMetafields & Ha priceRangeV2: ProductPriceRangeV2! """The product category specified by the merchant.""" - productCategory: ProductCategory @deprecated(reason: "Deprecated in API version 2024-04. Use `category` instead.") + productCategory: ProductCategory @deprecated(reason: "Use `category` instead.") + + """ + A list of products that contain at least one variant associated with + at least one of the current products' variants via group relationship. + """ + productComponents( + """ + The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + first: Int + + """ + The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + after: String + + """ + The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + last: Int + + """ + The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + before: String + + """Reverse the order of the underlying list.""" + reverse: Boolean = false + ): ProductComponentTypeConnection! + + """ + A count of unique products that contain at least one variant associated with + at least one of the current products' variants via group relationship. + """ + productComponentsCount: Count + + """ + A list of products that has a variant that contains any of this product's variants as a component. + """ + productParents( + """ + The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + first: Int + + """ + The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + after: String + + """ + The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + last: Int + + """ + The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + before: String + + """Reverse the order of the underlying list.""" + reverse: Boolean = false + + """ + A filter made up of terms, connectives, modifiers, and comparators. + | name | type | description | acceptable_values | default_value | example_use | + | ---- | ---- | ---- | ---- | ---- | ---- | + | default | string | Filter by a case-insensitive search of multiple fields + in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | + | barcode | string | Filter by the product variant [`barcode`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-barcode) + field. | | | - `barcode:ABC-abc-1234` | + | bundles | boolean | Filter by a [product + bundle](https://shopify.dev/docs/apps/build/product-merchandising/bundles). + A product bundle is a set of two or more related products, which are + commonly offered at a discount. | | | - `bundles:true` | + | category_id | string | Filter by the product [category ID](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-category) + (`product.category.id`). A product category is the category of a product + from [Shopify's Standard Product Taxonomy](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17). + | | | - `category_id:sg-4-17-2-17` | + | collection_id | id | Filter by the collection [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Collection#field-id) + field. | | | - `collection_id:108179161409` | + | combined_listing_role | string | Filter by the role of the product in a [combined listing](https://shopify.dev/apps/build/product-merchandising/combined-listings). + | - `parent`
- `child`
- `no_role` | | - + `combined_listing_role:parent` | + | created_at | time | Filter by the date and time when the product was + created. | | | - `created_at:>'2020-10-21T23:39:20Z'`
- + `created_at: - `created_at:<='2024'` | + | delivery_profile_id | id | Filter by the delivery profile [`id`](https://shopify.dev/api/admin-graphql/latest/objects/DeliveryProfile#field-id) + field. | | | - `delivery_profile_id:108179161409` | + | error_feedback | string | Filter by products with publishing errors. | + | gift_card | boolean | Filter by the product [`isGiftCard`](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-isgiftcard) + field. | | | - `gift_card:true` | + | handle | string | Filter by a comma-separated list of product [handles](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-handle). + | | | - `handle:the-minimal-snowboard` | + | has_only_composites | boolean | Filter by products that have only + composite variants. | | | - `has_only_composites:true` | + | has_only_default_variant | boolean | Filter by products that have only a + default variant. A default variant is the only variant if no other variants + are specified. | | | - `has_only_default_variant:true` | + | has_variant_with_components | boolean | Filter by products that have + variants with associated components. | | | - + `has_variant_with_components:true` | + | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | + | inventory_total | integer | Filter by inventory count. | | | - + `inventory_total:0`
- `inventory_total:>150`
- + `inventory_total:>=200` | + | is_price_reduced | boolean | Filter by products that have a reduced price. + For more information, refer to the [`CollectionRule`](https://shopify.dev/api/admin-graphql/latest/objects/CollectionRule) + object. | | | - `is_price_reduced:true` | + | metafields.{namespace}.{key} | mixed | Filters resources by metafield + value. Format: `metafields.{namespace}.{key}:{value}`. Learn more about + [querying by metafield value](https://shopify.dev/apps/build/custom-data/metafields/query-by-metafield-value). + | | | - `metafields.custom.on_sale:true`
- + `metafields.product.material:"gid://shopify/Metaobject/43458085"` | + | out_of_stock_somewhere | boolean | Filter by products that are out of + stock in at least one location. | | | - `out_of_stock_somewhere:true` | + | price | bigdecimal | Filter by the product variant [`price`](https://shopify.dev/api/admin-graphql/latest/objects/Productvariant#field-price) + field. | | | - `price:100.57` | + | product_configuration_owner | string | Filter by the app + [`id`](https://shopify.dev/api/admin-graphql/latest/objects/App#field-id) + field. | | | - `product_configuration_owner:10001` | + | product_publication_status | string | Filter by channel approval process + status of the resource on a channel, such as the online store. The value is + a composite of the [channel `app` ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#field-Channel.fields.app) + (`Channel.app.id`) and one of the valid values. For simple visibility checks, use [published_status](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-publishable_status) + instead. | - `* {channel_app_id}-approved`
- `* + {channel_app_id}-rejected`
- `* {channel_app_id}-needs_action`
- + `* {channel_app_id}-awaiting_review`
- `* + {channel_app_id}-published`
- `* {channel_app_id}-demoted`
- `* + {channel_app_id}-scheduled`
- `* + {channel_app_id}-provisionally_published` | | - + `product_publication_status:189769876-approved` | + | product_type | string | Filter by a comma-separated list of [product + types](https://help.shopify.com/manual/products/details/product-type). | | | + - `product_type:snowboard` | + | publication_ids | string | Filter by a comma-separated list of publication + IDs that are associated with the product. | | | - + `publication_ids:184111530305,184111694145` | + | publishable_status | string | **Deprecated:** This parameter is deprecated + as of 2025-12 and will be removed in a future API version. Use [published_status](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-publishable_status) + for visibility checks. Filter by the publishable status of the resource on a + channel. The value is a composite of the [channel `app` + ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) + (`Channel.app.id`) and one of the valid status values. | - `* + {channel_app_id}-unset`
- `* {channel_app_id}-pending`
- `* + {channel_app_id}-approved`
- `* {channel_app_id}-not_approved` | | - + `publishable_status:580111-unset`
- `publishable_status:580111-pending` | + | published_at | time | Filter by the date and time when the product was + published to the online store and other sales channels. | | | - + `published_at:>2020-10-21T23:39:20Z`
- `published_at: - + `published_at:<=2024` | + | published_status | string | Filter resources by their visibility and + publication state on a channel. Online store channel filtering: - + `online_store_channel`: Returns all resources in the online store channel, + regardless of publication status. - `published`/`visible`: Returns resources + that are published to the online store. - `unpublished`: Returns resources + that are not published to the online store. Channel-specific filtering using + a channel ID, channel handle, [channel `app` + ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) + (`Channel.app.id`), or app handle with suffixes: - + `{id_or_handle}-published`: Returns resources published to the specified + channel. - `{id_or_handle}-visible`: Same as `{id_or_handle}-published` + (kept for backwards compatibility). - `{id_or_handle}-intended`: Returns + resources added to the channel but not yet published. - + `{id_or_handle}-hidden`: Returns resources not added to the channel or not + published. Other: - `unavailable`: Returns resources not published to any + channel. | - `online_store_channel`
- `published`
- `visible`
+ - `unpublished`
- `* {channel_id_or_handle}-published`
- `* + {channel_id_or_handle}-visible`
- `* + {channel_id_or_handle}-intended`
- `* + {channel_id_or_handle}-hidden`
- `* + {channel_app_id_or_handle}-published`
- `* + {channel_app_id_or_handle}-visible`
- `* + {channel_app_id_or_handle}-intended`
- `* + {channel_app_id_or_handle}-hidden`
- `unavailable` | | - + `published_status:online_store_channel`
- + `published_status:published`
- `published_status:580111-published`
+ - `published_status:580111-hidden`
- + `published_status:my-channel-handle-published`
- + `published_status:unavailable` | + | sku | string | Filter by the product variant [`sku`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-sku) + field. [Learn more about + SKUs](https://help.shopify.com/manual/products/details/sku). | | | - + `sku:XYZ-12345` | + | status | string | Filter by a comma-separated list of statuses. You can + use statuses to manage inventory. Shopify only displays products with an + `ACTIVE` status in online stores, sales channels, and apps. | - + `active`
- `archived`
- `draft` | `active` | - + `status:active,draft` | + | tag | string | Filter objects by the `tag` field. | | | - `tag:my_tag` | + | tag_not | string | Filter by objects that don’t have the specified tag. | | | - `tag_not:my_tag` | + | title | string | Filter by the product [`title`](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-title) + field. | | | - `title:The Minimal Snowboard` | + | updated_at | time | Filter by the date and time when the product was last + updated. | | | - `updated_at:>'2020-10-21T23:39:20Z'`
- + `updated_at: - `updated_at:<='2024'` | + | variant_id | id | Filter by the product variant [`id`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-id) + field. | | | - `variant_id:45779434701121` | + | variant_title | string | Filter by the product variant [`title`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-title) + field. | | | - `variant_title:'Special ski wax'` | + | vendor | string | Filter by the origin or source of the product. Learn + more about [vendors and managing vendor + information](https://help.shopify.com/manual/products/managing-vendor-info). + | | | - `vendor:Snowdevil`
- `vendor:Snowdevil OR vendor:Icedevil` | + You can apply one or more filters to a query. Learn more about [Shopify API + search syntax](https://shopify.dev/api/usage/search-syntax). + + """ + query: String + ): ProductConnection! """A list of the channels where the product is published.""" productPublications( @@ -56295,7 +64299,7 @@ type Product implements HasEvents & HasMetafieldDefinitions & HasMetafields & Ha [publication](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication). For example, the resource might be published to the app's online store channel. """ - publishedOnCurrentPublication: Boolean! + publishedOnCurrentPublication: Boolean! @deprecated(reason: "Use `publishedOnPublication` instead.") """ Whether the resource is published to a specified @@ -56321,7 +64325,7 @@ type Product implements HasEvents & HasMetafieldDefinitions & HasMetafields & Ha The resource that's either published or staged to be published to the [publication](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication). """ - resourcePublicationOnCurrentPublication: ResourcePublicationV2 + resourcePublicationOnCurrentPublication: ResourcePublicationV2 @deprecated(reason: "Use `resourcePublications` instead.") """ The list of resources that are published to a @@ -56469,7 +64473,7 @@ type Product implements HasEvents & HasMetafieldDefinitions & HasMetafields & Ha seo: SEO! """The standardized product type in the Shopify product taxonomy.""" - standardizedProductType: StandardizedProductType @deprecated(reason: "Deprecated in API version 2022-10. Use `productCategory` instead.") + standardizedProductType: StandardizedProductType @deprecated(reason: "Use `productCategory` instead.") """ The [product status](https://help.shopify.com/manual/products/details/product-details-page#product-status), @@ -56480,9 +64484,9 @@ type Product implements HasEvents & HasMetafieldDefinitions & HasMetafields & Ha """ The Storefront GraphQL API ID of the `Product`. - As of the `2022-04` version release, the Storefront GraphQL API will no longer - return Base64 encoded IDs to match the behavior of the Admin GraphQL API. - Therefore, you can safely use the `id` field's value instead. + The Storefront GraphQL API will no longer return Base64 encoded IDs to match + the behavior of the Admin GraphQL API. Therefore, you can safely use the `id` + field's value instead. """ storefrontId: StorefrontID! @deprecated(reason: "Use `id` instead.") @@ -56601,7 +64605,7 @@ type Product implements HasEvents & HasMetafieldDefinitions & HasMetafields & Ha """ A list of [variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) associated with the product. - If querying a single product at the root, you can fetch up to 2000 variants. + If querying a single product at the root, you can fetch up to 2048 variants. """ variants( """ @@ -56860,11 +64864,56 @@ input ProductBundleComponentQuantityOptionValueInput { quantity: Int! } +""" +The input fields for mapping a consolidated option to a specific component option. +""" +input ProductBundleConsolidatedOptionComponentInput { + """The value to use for the component option (e.g., 'Small', 'Red').""" + componentOptionValue: String! + + """ + The ID of the component option that this consolidated option maps to. + If null, this selection targets the component's quantity option with the given name. + """ + componentOptionId: ID +} + +"""The input fields for a consolidated option on a componentized product.""" +input ProductBundleConsolidatedOptionInput { + """The name of the consolidated option (e.g., 'Size', 'Color').""" + optionName: String! + + """ + The option selections that define how this consolidated option maps to component options. + """ + optionSelections: [ProductBundleConsolidatedOptionSelectionInput!]! +} + +""" +The input fields for a consolidated option selection that maps to component options. +""" +input ProductBundleConsolidatedOptionSelectionInput { + """ + The value for this consolidated option selection (e.g., 'Small', 'Medium', 'Large'). + """ + optionValue: String! + + """ + The component mappings that define how this option value maps to specific component options. + """ + components: [ProductBundleConsolidatedOptionComponentInput!]! +} + """The input fields for creating a componentized product.""" input ProductBundleCreateInput { """The title of the product to create.""" title: String! + """ + The consolidated options of the componentized product to create, if provided. + """ + consolidatedOptions: [ProductBundleConsolidatedOptionInput!] + """The component products to bundle with the bundle product.""" components: [ProductBundleComponentInput!]! } @@ -56872,7 +64921,7 @@ input ProductBundleCreateInput { """Return type for `productBundleCreate` mutation.""" type ProductBundleCreatePayload { """ - The asynchronous ProductBundleOperation creating the componentized product. + The asynchronous ProductBundleOperation creating the product bundle or componentized product. """ productBundleOperation: ProductBundleOperation @@ -56948,6 +64997,11 @@ input ProductBundleUpdateInput { """The title to rename the componentized product to, if provided.""" title: String + """ + The consolidated options of the componentized product to update, if provided. + """ + consolidatedOptions: [ProductBundleConsolidatedOptionInput!] + """ The components to update existing ones. If none provided, no changes occur. Note: This replaces, not adds to, current components. @@ -56958,7 +65012,7 @@ input ProductBundleUpdateInput { """Return type for `productBundleUpdate` mutation.""" type ProductBundleUpdatePayload { """ - The asynchronous ProductBundleOperation updating the componentized product. + The asynchronous ProductBundleOperation updating the product bundle or componentized product. """ productBundleOperation: ProductBundleOperation @@ -56967,7 +65021,8 @@ type ProductBundleUpdatePayload { } """ -The details of a specific product category within the [Shopify product taxonomy](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17). +The details of a specific product category within Shopify's [standardized product taxonomy](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17). +Provides access to the associated [`ProductTaxonomyNode`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductTaxonomyNode). """ type ProductCategory { """The product taxonomy node associated with the product category.""" @@ -57060,6 +65115,107 @@ type ProductCompareAtPriceRange { minVariantCompareAtPrice: MoneyV2! } +"""The product component information.""" +type ProductComponentType { + """The list of products' variants that are components.""" + componentVariants( + """ + The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + first: Int + + """ + The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + after: String + + """ + The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + last: Int + + """ + The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + before: String + + """Reverse the order of the underlying list.""" + reverse: Boolean = false + ): ProductVariantConnection! + + """The number of component variants for the product component.""" + componentVariantsCount: Count + + """The list of products' variants that are not components.""" + nonComponentVariants( + """ + The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + first: Int + + """ + The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + after: String + + """ + The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + last: Int + + """ + The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + before: String + + """Reverse the order of the underlying list.""" + reverse: Boolean = false + ): ProductVariantConnection! + + """The number of non_components variants for the product component.""" + nonComponentVariantsCount: Count + + """The product that's a component.""" + product: Product! +} + +""" +An auto-generated type for paginating through multiple ProductComponentTypes. +""" +type ProductComponentTypeConnection { + """ + The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + """ + edges: [ProductComponentTypeEdge!]! + + """ + A list of nodes that are contained in ProductComponentTypeEdge. You can fetch + data about an individual node, or you can follow the edges to fetch data about + a collection of related nodes. At each node, you specify the fields that you + want to retrieve. + """ + nodes: [ProductComponentType!]! + + """ + An object that’s used to retrieve [cursor + information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + """ + pageInfo: PageInfo! +} + +""" +An auto-generated type which holds one ProductComponentType and a cursor during pagination. +""" +type ProductComponentTypeEdge { + """ + The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + """ + cursor: String! + + """The item at the end of ProductComponentTypeEdge.""" + node: ProductComponentType! +} + """An auto-generated type for paginating through multiple Products.""" type ProductConnection { """ @@ -57082,10 +65238,10 @@ type ProductConnection { } """ -The price of a product in a specific country. -Prices vary between countries. -Refer to [Product](https://shopify.dev/docs/api/admin-graphql/latest/queries/product?example=Get+the+price+range+for+a+product+for+buyers+from+Canada) -for more information on how to use this object. +The price of a [product](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) +in a specific country. Shows the minimum and maximum variant prices through the +price range and the count of fixed quantity rules that apply to the product's +variants in the given pricing context. """ type ProductContextualPricing { """ @@ -57118,10 +65274,12 @@ input ProductCreateInput { descriptionHtml: String """ - A unique, human-readable string of the product's title. A handle can contain - letters, hyphens (`-`), and numbers, but no spaces. - The handle is used in the online store URL for the product. - For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`. + A unique, human-readable string that's used to identify the product in URLs. A + handle can contain letters, hyphens (`-`), and numbers, but no spaces. + If no handle is explicitly provided, then the title is used to construct the product's handle. + For example, if a product is titled "Black Sunglasses" and no handle is + provided, then the handle `black-sunglasses` is generated (unless that handle + is already taken, in which case a suffix is added to make the handle unique). """ handle: String @@ -57138,13 +65296,7 @@ input ProductCreateInput { productType: String """ - The ID of the [category](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) - that's associated with the product. - """ - category: ID - - """ - A comma-separated list of searchable keywords that are + A list of searchable keywords that are associated with the product. For example, a merchant might apply the `sports` and `summer` tags to products that are associated with sportwear for summer. @@ -57168,14 +65320,22 @@ input ProductCreateInput { giftCardTemplateSuffix: String """ - The name for the product that displays to customers. The title is used to construct the product's handle. - For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`. + The name for the product that displays to customers. If no handle is + explicitly provided, then the title is used to construct the product's handle. + For example, if a product is titled "Black Sunglasses" and no handle is + provided, then the handle `black-sunglasses` is generated. """ title: String """The name of the product's vendor.""" vendor: String + """ + The ID of the [category](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) + that's associated with the product. + """ + category: ID + """Whether the product is a gift card.""" giftCard: Boolean @@ -57597,10 +65757,12 @@ input ProductInput { descriptionHtml: String """ - A unique, human-readable string of the product's title. A handle can contain - letters, hyphens (`-`), and numbers, but no spaces. - The handle is used in the online store URL for the product. - For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`. + A unique, human-readable string that's used to identify the product in URLs. A + handle can contain letters, hyphens (`-`), and numbers, but no spaces. + If no handle is explicitly provided, then the title is used to construct the product's handle. + For example, if a product is titled "Black Sunglasses" and no handle is + provided, then the handle `black-sunglasses` is generated (unless that handle + is already taken, in which case a suffix is added to make the handle unique). """ handle: String @@ -57617,13 +65779,7 @@ input ProductInput { productType: String """ - The ID of the [category](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) - that's associated with the product. - """ - category: ID - - """ - A comma-separated list of searchable keywords that are + A list of searchable keywords that are associated with the product. For example, a merchant might apply the `sports` and `summer` tags to products that are associated with sportwear for summer. @@ -57647,14 +65803,22 @@ input ProductInput { giftCardTemplateSuffix: String """ - The name for the product that displays to customers. The title is used to construct the product's handle. - For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`. + The name for the product that displays to customers. If no handle is + explicitly provided, then the title is used to construct the product's handle. + For example, if a product is titled "Black Sunglasses" and no handle is + provided, then the handle `black-sunglasses` is generated. """ title: String """The name of the product's vendor.""" vendor: String + """ + The ID of the [category](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) + that's associated with the product. + """ + category: ID + """Whether the product is a gift card.""" giftCard: Boolean @@ -57754,7 +65918,10 @@ enum ProductMediaSortKeys { } """ -An entity that represents details of an asynchronous operation on a product. +An interface representing asynchronous operations on products. Tracks the status +and details of background product mutations like `productSet`, `productDelete`, +`productDuplicate`, and `productBundle` operations. Provides status field +(CREATED, ACTIVE, COMPLETE) and product field to monitor long-running product operations. """ interface ProductOperation { """The product on which the operation is being performed.""" @@ -57777,9 +65944,15 @@ enum ProductOperationStatus { } """ -The product property names. For example, "Size", "Color", and "Material". -Variants are selected based on permutations of these options. -The limit for each product property name is 255 characters. +A product attribute that customers can choose from, such as "Size", "Color", or "Material". +[`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) +objects use options to define the different variations available for purchase. +Each option has a name and a set of possible values that combine to create [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) objects. + +The option includes its display position, associated values, and optional [`LinkedMetafield`](https://shopify.dev/docs/api/admin-graphql/latest/objects/LinkedMetafield) +for structured data. Options support translations for international selling and track which [`ProductOptionValue`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductOptionValue) +objects that variants actively use versus unused values that exist without +associated variants. """ type ProductOption implements HasPublishedTranslations & Node { """A globally-unique ID.""" @@ -58238,7 +66411,15 @@ enum ProductOptionUpdateVariantStrategy { } """ -The product option value names. For example, "Red", "Blue", and "Green" for a "Color" option. +A specific value for a [`ProductOption`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductOption), +such as "Red" or "Blue" for a "Color" option. Each value can be assigned to [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) +objects to create different versions of a +[`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product). + +The value tracks whether any variants currently use it through the [`hasVariants`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductOptionValue#field-hasVariants) +field. Values can include visual representations through swatches that display +colors or images. When linked to a [`Metafield`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Metafield), the [`linkedMetafieldValue`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductOptionValue#field-linkedMetafieldValue) +provides additional structured data for the option value. """ type ProductOptionValue implements HasPublishedTranslations & Node { """Whether the product option value has any linked variants.""" @@ -58447,7 +66628,7 @@ input ProductResourceFeedbackInput { A concise set of copy strings to be displayed to merchants. Used to guide merchants in resolving problems that your app encounters when trying to make use of their products. - You can specify up to four messages. Each message is limited to 100 characters. + You can specify up to ten messages. Each message is limited to 100 characters. """ messages: [String!] } @@ -58508,10 +66689,12 @@ input ProductSetInput { descriptionHtml: String """ - A unique, human-readable string of the product's title. A handle can contain - letters, hyphens (`-`), and numbers, but no spaces. - The handle is used in the online store URL for the product. - For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`. + A unique, human-readable string that's used to identify the product in URLs. A + handle can contain letters, hyphens (`-`), and numbers, but no spaces. + If no handle is explicitly provided, then the title is used to construct the product's handle. + For example, if a product is titled "Black Sunglasses" and no handle is + provided, then the handle `black-sunglasses` is generated (unless that handle + is already taken, in which case a suffix is added to make the handle unique). """ handle: String @@ -58528,13 +66711,7 @@ input ProductSetInput { productType: String """ - The ID of the [category](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) - that's associated with the product. - """ - category: ID - - """ - A comma-separated list of searchable keywords that are + A list of searchable keywords that are associated with the product. For example, a merchant might apply the `sports` and `summer` tags to products that are associated with sportwear for summer. @@ -58558,14 +66735,22 @@ input ProductSetInput { giftCardTemplateSuffix: String """ - The name for the product that displays to customers. The title is used to construct the product's handle. - For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`. + The name for the product that displays to customers. If no handle is + explicitly provided, then the title is used to construct the product's handle. + For example, if a product is titled "Black Sunglasses" and no handle is + provided, then the handle `black-sunglasses` is generated. """ title: String """The name of the product's vendor.""" vendor: String + """ + The ID of the [category](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) + that's associated with the product. + """ + category: ID + """Whether the product is a gift card.""" giftCard: Boolean @@ -58575,20 +66760,37 @@ input ProductSetInput { """ redirectNewHandle: Boolean + """The status of the product.""" + status: ProductStatus + """The IDs of collections that this product will be a member of.""" collections: [ID!] - """The metafields to associate with this product.""" + """ + The metafields to associate with this product. + + Complexity cost: 0.4 per metafield. + """ metafields: [MetafieldInput!] - """A list of variants associated with the product.""" - variants: [ProductVariantSetInput!] - - """The files to associate with the product.""" + """ + The files to associate with the product. + + Complexity cost: 1.9 per file. + """ files: [FileSetInput!] - """The status of the product.""" - status: ProductStatus + """ + List of custom product options and option values (maximum of 3 per product). + """ + productOptions: [OptionSetInput!] + + """ + A list of variants associated with the product. + + Complexity cost: 0.2 per variant. + """ + variants: [ProductVariantSetInput!] """ Whether the product can only be purchased with a selling plan (subscription). @@ -58598,11 +66800,6 @@ input ProductSetInput { """ requiresSellingPlan: Boolean - """ - List of custom product options and option values (maximum of 3 per product). - """ - productOptions: [OptionSetInput!] - """ The input field to enable an app to provide additional product features. For example, you can specify @@ -58788,6 +66985,9 @@ enum ProductSetUserErrorCode { """Cannot link multiple options to the same metafield.""" DUPLICATE_LINKED_OPTION + """Duplicated metafield value for linked option.""" + DUPLICATED_METAFIELD_VALUE + """Linked options are currently not supported for this shop.""" LINKED_OPTIONS_NOT_SUPPORTED_FOR_SHOP @@ -58799,6 +66999,11 @@ enum ProductSetUserErrorCode { """Handle already in use. Please provide a new handle.""" HANDLE_NOT_UNIQUE + + """ + Inventory quantity input exceeds the limit of 50000. Consider using separate `inventorySetQuantities` mutations. + """ + INVENTORY_QUANTITIES_LIMIT_EXCEEDED } """The set of valid sort keys for the Product query.""" @@ -58853,6 +67058,16 @@ enum ProductStatus { channels and apps. By default, duplicated and unarchived products are set to draft. """ DRAFT + + """ + The product is active but you need a direct link to view it. The product + doesn't show up in search, collections, or product recommendations. It will be + returned in Storefront API and Liquid only when referenced individually by + handle, id, or metafield reference.This status is only visible from 2025-10 + and up, is translated to active in older versions and can't be changed from + unlisted in older versions. + """ + UNLISTED } """ @@ -58909,10 +67124,12 @@ input ProductUpdateInput { descriptionHtml: String """ - A unique, human-readable string of the product's title. A handle can contain - letters, hyphens (`-`), and numbers, but no spaces. - The handle is used in the online store URL for the product. - For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`. + A unique, human-readable string that's used to identify the product in URLs. A + handle can contain letters, hyphens (`-`), and numbers, but no spaces. + If no handle is explicitly provided, then the title is used to construct the product's handle. + For example, if a product is titled "Black Sunglasses" and no handle is + provided, then the handle `black-sunglasses` is generated (unless that handle + is already taken, in which case a suffix is added to make the handle unique). """ handle: String @@ -58929,13 +67146,7 @@ input ProductUpdateInput { productType: String """ - The ID of the [category](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) - that's associated with the product. - """ - category: ID - - """ - A comma-separated list of searchable keywords that are + A list of searchable keywords that are associated with the product. For example, a merchant might apply the `sports` and `summer` tags to products that are associated with sportwear for summer. @@ -58959,14 +67170,22 @@ input ProductUpdateInput { giftCardTemplateSuffix: String """ - The name for the product that displays to customers. The title is used to construct the product's handle. - For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`. + The name for the product that displays to customers. If no handle is + explicitly provided, then the title is used to construct the product's handle. + For example, if a product is titled "Black Sunglasses" and no handle is + provided, then the handle `black-sunglasses` is generated. """ title: String """The name of the product's vendor.""" vendor: String + """ + The ID of the [category](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) + that's associated with the product. + """ + category: ID + """ Whether a redirect is required after a new handle has been provided. If `true`, then the old handle is redirected to the new one automatically. @@ -59034,7 +67253,35 @@ type ProductUpdatePayload { userErrors: [UserError!]! } -"""Represents a product variant.""" +""" +The `ProductVariant` object represents a version of a +[product](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) +that comes in more than one [option](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductOption), +such as size or color. For example, if a merchant sells t-shirts with options for size and color, then a small, +blue t-shirt would be one product variant and a large, blue t-shirt would be another. + +Use the `ProductVariant` object to manage the full lifecycle and configuration of a product's variants. Common +use cases for using the `ProductVariant` object include: + +- Tracking inventory for each variant +- Setting unique prices for each variant +- Assigning barcodes and SKUs to connect variants to fulfillment services +- Attaching variant-specific images and media +- Setting delivery and tax requirements +- Supporting product bundles, subscriptions, and selling plans + +A `ProductVariant` is associated with a parent +[`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) object. +`ProductVariant` serves as the central link between a product's merchandising configuration, inventory, +pricing, fulfillment, and sales channels within the GraphQL Admin API schema. Each variant +can reference other GraphQL types such as: + +- [`InventoryItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryItem): Used for inventory tracking +- [`Image`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Image): Used for variant-specific images +- [`SellingPlanGroup`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SellingPlanGroup): Used for subscriptions and selling plans + +Learn more about [Shopify's product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/product-model-components). +""" type ProductVariant implements HasEvents & HasMetafieldDefinitions & HasMetafields & HasPublishedTranslations & LegacyInteroperability & Navigable & Node { """Whether the product variant is available for sale.""" availableForSale: Boolean! @@ -59112,8 +67359,9 @@ type ProductVariant implements HasEvents & HasMetafieldDefinitions & HasMetafiel | comments | boolean | Whether or not to include [comment-events](https://shopify.dev/api/admin-graphql/latest/objects/CommentEvent) in your search, passing `false` will exclude comment-events, any other value will include comment-events. | | | - `false`
- `true` | - | created_at | time | Filter by the date and time when the event happened. | - | | - `created_at:>2020-10-21`
- `created_at:2025-10-21`
- + `created_at: - `id:>=1234`
- `id:<=1234` | | subject_type | string | The resource type affected by this event. See [EventSubjectType](https://shopify.dev/api/admin-graphql/latest/enums/EventSubjectType) for possible values. | | | - `PRODUCT_VARIANT`
- `PRODUCT`
- `COLLECTION` | @@ -59128,7 +67376,7 @@ type ProductVariant implements HasEvents & HasMetafieldDefinitions & HasMetafiel id: ID! """The featured image for the variant.""" - image: Image + image: Image @deprecated(reason: "Use `media` instead.") """The inventory item, which is used to query for inventory information.""" inventoryItem: InventoryItem! @@ -59248,7 +67496,7 @@ type ProductVariant implements HasEvents & HasMetafieldDefinitions & HasMetafiel """ query: String - ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use the root `metafieldDefinitions` field instead.") + ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use `Query.metafieldDefinitions` instead.") """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) @@ -59256,7 +67504,7 @@ type ProductVariant implements HasEvents & HasMetafieldDefinitions & HasMetafiel """ metafields( """ - The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. + The metafield namespace to filter by. If omitted, all metafields are returned. """ namespace: String @@ -59331,6 +67579,181 @@ type ProductVariant implements HasEvents & HasMetafieldDefinitions & HasMetafiel """The product that this variant belongs to.""" product: Product! + """ + A list of products that have product variants that contain this variant as a product component. + """ + productParents( + """ + The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + first: Int + + """ + The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + after: String + + """ + The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + last: Int + + """ + The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + before: String + + """Reverse the order of the underlying list.""" + reverse: Boolean = false + + """ + A filter made up of terms, connectives, modifiers, and comparators. + | name | type | description | acceptable_values | default_value | example_use | + | ---- | ---- | ---- | ---- | ---- | ---- | + | default | string | Filter by a case-insensitive search of multiple fields + in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | + | barcode | string | Filter by the product variant [`barcode`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-barcode) + field. | | | - `barcode:ABC-abc-1234` | + | bundles | boolean | Filter by a [product + bundle](https://shopify.dev/docs/apps/build/product-merchandising/bundles). + A product bundle is a set of two or more related products, which are + commonly offered at a discount. | | | - `bundles:true` | + | category_id | string | Filter by the product [category ID](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-category) + (`product.category.id`). A product category is the category of a product + from [Shopify's Standard Product Taxonomy](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17). + | | | - `category_id:sg-4-17-2-17` | + | collection_id | id | Filter by the collection [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Collection#field-id) + field. | | | - `collection_id:108179161409` | + | combined_listing_role | string | Filter by the role of the product in a [combined listing](https://shopify.dev/apps/build/product-merchandising/combined-listings). + | - `parent`
- `child`
- `no_role` | | - + `combined_listing_role:parent` | + | created_at | time | Filter by the date and time when the product was + created. | | | - `created_at:>'2020-10-21T23:39:20Z'`
- + `created_at: - `created_at:<='2024'` | + | delivery_profile_id | id | Filter by the delivery profile [`id`](https://shopify.dev/api/admin-graphql/latest/objects/DeliveryProfile#field-id) + field. | | | - `delivery_profile_id:108179161409` | + | error_feedback | string | Filter by products with publishing errors. | + | gift_card | boolean | Filter by the product [`isGiftCard`](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-isgiftcard) + field. | | | - `gift_card:true` | + | handle | string | Filter by a comma-separated list of product [handles](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-handle). + | | | - `handle:the-minimal-snowboard` | + | has_only_composites | boolean | Filter by products that have only + composite variants. | | | - `has_only_composites:true` | + | has_only_default_variant | boolean | Filter by products that have only a + default variant. A default variant is the only variant if no other variants + are specified. | | | - `has_only_default_variant:true` | + | has_variant_with_components | boolean | Filter by products that have + variants with associated components. | | | - + `has_variant_with_components:true` | + | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | + | inventory_total | integer | Filter by inventory count. | | | - + `inventory_total:0`
- `inventory_total:>150`
- + `inventory_total:>=200` | + | is_price_reduced | boolean | Filter by products that have a reduced price. + For more information, refer to the [`CollectionRule`](https://shopify.dev/api/admin-graphql/latest/objects/CollectionRule) + object. | | | - `is_price_reduced:true` | + | metafields.{namespace}.{key} | mixed | Filters resources by metafield + value. Format: `metafields.{namespace}.{key}:{value}`. Learn more about + [querying by metafield value](https://shopify.dev/apps/build/custom-data/metafields/query-by-metafield-value). + | | | - `metafields.custom.on_sale:true`
- + `metafields.product.material:"gid://shopify/Metaobject/43458085"` | + | out_of_stock_somewhere | boolean | Filter by products that are out of + stock in at least one location. | | | - `out_of_stock_somewhere:true` | + | price | bigdecimal | Filter by the product variant [`price`](https://shopify.dev/api/admin-graphql/latest/objects/Productvariant#field-price) + field. | | | - `price:100.57` | + | product_configuration_owner | string | Filter by the app + [`id`](https://shopify.dev/api/admin-graphql/latest/objects/App#field-id) + field. | | | - `product_configuration_owner:10001` | + | product_publication_status | string | Filter by channel approval process + status of the resource on a channel, such as the online store. The value is + a composite of the [channel `app` ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#field-Channel.fields.app) + (`Channel.app.id`) and one of the valid values. For simple visibility checks, use [published_status](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-publishable_status) + instead. | - `* {channel_app_id}-approved`
- `* + {channel_app_id}-rejected`
- `* {channel_app_id}-needs_action`
- + `* {channel_app_id}-awaiting_review`
- `* + {channel_app_id}-published`
- `* {channel_app_id}-demoted`
- `* + {channel_app_id}-scheduled`
- `* + {channel_app_id}-provisionally_published` | | - + `product_publication_status:189769876-approved` | + | product_type | string | Filter by a comma-separated list of [product + types](https://help.shopify.com/manual/products/details/product-type). | | | + - `product_type:snowboard` | + | publication_ids | string | Filter by a comma-separated list of publication + IDs that are associated with the product. | | | - + `publication_ids:184111530305,184111694145` | + | publishable_status | string | **Deprecated:** This parameter is deprecated + as of 2025-12 and will be removed in a future API version. Use [published_status](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-publishable_status) + for visibility checks. Filter by the publishable status of the resource on a + channel. The value is a composite of the [channel `app` + ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) + (`Channel.app.id`) and one of the valid status values. | - `* + {channel_app_id}-unset`
- `* {channel_app_id}-pending`
- `* + {channel_app_id}-approved`
- `* {channel_app_id}-not_approved` | | - + `publishable_status:580111-unset`
- `publishable_status:580111-pending` | + | published_at | time | Filter by the date and time when the product was + published to the online store and other sales channels. | | | - + `published_at:>2020-10-21T23:39:20Z`
- `published_at: - + `published_at:<=2024` | + | published_status | string | Filter resources by their visibility and + publication state on a channel. Online store channel filtering: - + `online_store_channel`: Returns all resources in the online store channel, + regardless of publication status. - `published`/`visible`: Returns resources + that are published to the online store. - `unpublished`: Returns resources + that are not published to the online store. Channel-specific filtering using + a channel ID, channel handle, [channel `app` + ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) + (`Channel.app.id`), or app handle with suffixes: - + `{id_or_handle}-published`: Returns resources published to the specified + channel. - `{id_or_handle}-visible`: Same as `{id_or_handle}-published` + (kept for backwards compatibility). - `{id_or_handle}-intended`: Returns + resources added to the channel but not yet published. - + `{id_or_handle}-hidden`: Returns resources not added to the channel or not + published. Other: - `unavailable`: Returns resources not published to any + channel. | - `online_store_channel`
- `published`
- `visible`
+ - `unpublished`
- `* {channel_id_or_handle}-published`
- `* + {channel_id_or_handle}-visible`
- `* + {channel_id_or_handle}-intended`
- `* + {channel_id_or_handle}-hidden`
- `* + {channel_app_id_or_handle}-published`
- `* + {channel_app_id_or_handle}-visible`
- `* + {channel_app_id_or_handle}-intended`
- `* + {channel_app_id_or_handle}-hidden`
- `unavailable` | | - + `published_status:online_store_channel`
- + `published_status:published`
- `published_status:580111-published`
+ - `published_status:580111-hidden`
- + `published_status:my-channel-handle-published`
- + `published_status:unavailable` | + | sku | string | Filter by the product variant [`sku`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-sku) + field. [Learn more about + SKUs](https://help.shopify.com/manual/products/details/sku). | | | - + `sku:XYZ-12345` | + | status | string | Filter by a comma-separated list of statuses. You can + use statuses to manage inventory. Shopify only displays products with an + `ACTIVE` status in online stores, sales channels, and apps. | - + `active`
- `archived`
- `draft` | `active` | - + `status:active,draft` | + | tag | string | Filter objects by the `tag` field. | | | - `tag:my_tag` | + | tag_not | string | Filter by objects that don’t have the specified tag. | | | - `tag_not:my_tag` | + | title | string | Filter by the product [`title`](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-title) + field. | | | - `title:The Minimal Snowboard` | + | updated_at | time | Filter by the date and time when the product was last + updated. | | | - `updated_at:>'2020-10-21T23:39:20Z'`
- + `updated_at: - `updated_at:<='2024'` | + | variant_id | id | Filter by the product variant [`id`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-id) + field. | | | - `variant_id:45779434701121` | + | variant_title | string | Filter by the product variant [`title`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-title) + field. | | | - `variant_title:'Special ski wax'` | + | vendor | string | Filter by the origin or source of the product. Learn + more about [vendors and managing vendor + information](https://help.shopify.com/manual/products/managing-vendor-info). + | | | - `vendor:Snowdevil`
- `vendor:Snowdevil OR vendor:Icedevil` | + You can apply one or more filters to a query. Learn more about [Shopify API + search syntax](https://shopify.dev/api/usage/search-syntax). + + """ + query: String + ): ProductConnection! + """A list of the product variant components.""" productVariantComponents( """ @@ -59408,6 +67831,9 @@ type ProductVariant implements HasEvents & HasMetafieldDefinitions & HasMetafiel """Count of selling plan groups associated with the product variant.""" sellingPlanGroupsCount: Count + """Whether to show the unit price for this product variant.""" + showUnitPrice: Boolean! + """ A case-sensitive identifier for the product variant in the shop. Required in order to connect to a fulfillment service. @@ -59417,14 +67843,16 @@ type ProductVariant implements HasEvents & HasMetafieldDefinitions & HasMetafiel """ The Storefront GraphQL API ID of the `ProductVariant`. - As of the `2022-04` version release, the Storefront GraphQL API will no longer - return Base64 encoded IDs to match the behavior of the Admin GraphQL API. - Therefore, you can safely use the `id` field's value instead. + The Storefront GraphQL API will no longer return Base64 encoded IDs to match + the behavior of the Admin GraphQL API. Therefore, you can safely use the `id` + field's value instead. """ storefrontId: StorefrontID! @deprecated(reason: "Use `id` instead.") - """The tax code for the product variant.""" - taxCode: String + """ + Avalara tax code for the product variant. Applies only to the stores that have the Avalara AvaTax app installed. + """ + taxCode: String @deprecated(reason: "This field should no longer be used in new integrations. This field will not be available in future API versions.") """Whether a tax is charged when the product variant is sold.""" taxable: Boolean! @@ -59443,6 +67871,9 @@ type ProductVariant implements HasEvents & HasMetafieldDefinitions & HasMetafiel marketId: ID ): [Translation!]! + """The unit price value for the variant based on the variant measurement.""" + unitPrice: MoneyV2 + """The unit price measurement for the variant.""" unitPriceMeasurement: UnitPriceMeasurement @@ -59473,7 +67904,12 @@ type ProductVariantAppendMediaPayload { userErrors: [MediaUserError!]! } -"""A product variant component associated with a product variant.""" +""" +A product variant component that is included within a bundle. + +These are the individual product variants that make up a bundle product, +where each component has a specific required quantity. +""" type ProductVariantComponent implements Node { """A globally-unique ID.""" id: ID! @@ -59591,6 +68027,11 @@ type ProductVariantContextualPricing { """The quantity rule applied for a given context.""" quantityRule: QuantityRule! + + """ + The unit price value for the given context based on the variant measurement. + """ + unitPrice: MoneyV2 } """The input fields required to detach media from a single variant.""" @@ -59816,7 +68257,7 @@ enum ProductVariantRelationshipBulkUpdateUserErrorCode { FAILED_TO_UPDATE_PARENT_PRODUCT_VARIANT_PRICE """ - A price must be provided for a parent product variant if the price calucation is set to fixed. + A price must be provided for a parent product variant if the price calculation is set to fixed. """ UPDATE_PARENT_VARIANT_PRICE_REQUIRED @@ -59899,15 +68340,21 @@ The set of strategies available for use on the `productVariantsBulkCreate` mutat """ enum ProductVariantsBulkCreateStrategy { """ - The default strategy; keep the standalone variant (when product has only a - single or default variant) when creating variants in bulk. + The default strategy. Deletes the standalone default ("Default Title") variant + when it's the only variant on the product. Preserves the standalone custom variant. """ DEFAULT """ - Delete the standalone variant (when product has only a single or default variant) when creating new variants in bulk. + Deletes the existing standalone variant when the product has only a single default ("Default Title") or custom variant. """ REMOVE_STANDALONE_VARIANT + + """ + Preserves the existing standalone variant when the product has only a single + default ("Default Title") or a single custom variant. + """ + PRESERVE_STANDALONE_VARIANT } """Error codes for failed product variant bulk create mutations.""" @@ -59979,6 +68426,11 @@ enum ProductVariantsBulkCreateUserErrorCode { """Cannot set name for an option value linked to a metafield.""" CANNOT_SET_NAME_FOR_LINKED_OPTION_VALUE + + """ + Inventory quantity input exceeds the limit of 50000. Consider using separate `inventorySetQuantities` mutations. + """ + INVENTORY_QUANTITIES_LIMIT_EXCEEDED } """Return type for `productVariantsBulkDelete` mutation.""" @@ -60050,6 +68502,9 @@ input ProductVariantsBulkInput { """ inventoryQuantities: [InventoryLevelInput!] + """Adjust inventory quantities with deltas.""" + quantityAdjustments: [InventoryAdjustmentInput!] + """The inventory item associated with the variant, used for unit cost.""" inventoryItem: InventoryItemInput @@ -60073,6 +68528,12 @@ input ProductVariantsBulkInput { """The tax code associated with the variant.""" taxCode: String + """The unit price measurement for the product variant.""" + unitPriceMeasurement: UnitPriceMeasurementInput + + """Whether the unit price should be shown for this product variant.""" + showUnitPrice: Boolean + """ Whether a product variant requires components. The default value is `false`. If `true`, then the product variant can only be purchased as a parent bundle with components and it will be @@ -60230,34 +68691,65 @@ enum ProductVariantsBulkUpdateUserErrorCode { """Operation is not supported for a combined listing parent product.""" UNSUPPORTED_COMBINED_LISTING_PARENT_OPERATION + + """ + Inventory quantity input exceeds the limit of 50000. Consider using separate `inventorySetQuantities` mutations. + """ + INVENTORY_QUANTITIES_LIMIT_EXCEEDED } """The input fields for specifying a product variant to create or update.""" input ProductVariantSetInput { """ - Whether a product variant requires components. The default value is `false`. - If `true`, then the product variant can only be purchased as a parent bundle with components and it will be omitted - from channels that don't support bundles. + Specifies the product variant to update or create a new variant if absent. """ - requiresComponents: Boolean + id: ID - """The value of the barcode associated with the product.""" - barcode: String + """ + The custom properties that a shop owner uses to define product variants. + """ + optionValues: [VariantOptionValueInput!]! + + """The price of the variant.""" + price: Money """The compare-at price of the variant.""" compareAtPrice: Money + """The SKU for the variant. Case-sensitive string.""" + sku: String + + """The value of the barcode associated with the product.""" + barcode: String + """ - Specifies the product variant to update or create a new variant if absent. + The order of the product variant in the list of product variants. The first position in the list is 1. """ - id: ID + position: Int """ The file to associate with the variant. + + Complexity cost: 0.6 per variant file. + Any file specified here must also be specified in the `files` input for the product. """ file: FileSetInput + """ + Additional customizable information about the product variant. + + Complexity cost: 0.4 per variant metafield. + """ + metafields: [MetafieldInput!] + + """ + Whether a product variant requires components. The default value is `false`. + If `true`, then the product variant can only be purchased as a parent bundle with components and it will be omitted + from channels that don't support bundles. + """ + requiresComponents: Boolean + """ Whether customers are allowed to place an order for the product variant when it's out of stock. Defaults to `DENY`. """ @@ -60267,36 +68759,25 @@ input ProductVariantSetInput { The inventory quantities at each location where the variant is stocked. If you're updating an existing variant, then you can only update the quantities at locations where the variant is already stocked. + + The total number of inventory quantities across all variants in the mutation can't exceed 50000. """ inventoryQuantities: [ProductSetInventoryInput!] """The inventory item associated with the variant, used for unit cost.""" inventoryItem: InventoryItemInput - """Additional customizable information about the product variant.""" - metafields: [MetafieldInput!] - - """ - The custom properties that a shop owner uses to define product variants. - """ - optionValues: [VariantOptionValueInput!]! - - """ - The order of the product variant in the list of product variants. The first position in the list is 1. - """ - position: Int - - """The price of the variant.""" - price: Money - - """The SKU for the variant. Case-sensitive string.""" - sku: String - """Whether the variant is taxable.""" taxable: Boolean """The tax code associated with the variant.""" taxCode: String + + """The unit price measurement for the product variant.""" + unitPriceMeasurement: UnitPriceMeasurementInput + + """Whether or not unit price should be shown for this product variant.""" + showUnitPrice: Boolean } """The set of valid sort keys for the ProductVariant query.""" @@ -60378,7 +68859,18 @@ enum ProfileItemSortKeys { } """ -A publication is a group of products and collections that is published to an app. +A group of [products](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) and [collections](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection) +that are published to an app. + +Each publication manages which products and collections display on its associated +[`Channel`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Channel). +Merchants can automatically publish products when they're created if [`autoPublish`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication#field-Publication.fields.autoPublish) +is enabled, or manually control publication through publication records. + +Publications support scheduled publishing through future publish dates for +online store channels, allowing merchants to coordinate product launches and +promotional campaigns. The [`catalog`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication#field-Publication.fields.catalog) +field links to pricing and availability rules specific to that publication's context. """ type Publication implements Node { """The app associated with the publication.""" @@ -60391,7 +68883,8 @@ type Publication implements Node { catalog: Catalog """ - The collection publications for the list of collections published to the publication. + The list of collection publication records, each representing the publication + status and details for a collection published to this publication (typically channel). """ collectionPublicationsV3( """ @@ -60479,8 +68972,331 @@ type Publication implements Node { """Reverse the order of the underlying list.""" reverse: Boolean = false + + """ + Sort the underlying list using a key. If your query is slow or returns an + error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). + """ + sortKey: ProductSortKeys = ID + + """ + A filter made up of terms, connectives, modifiers, and comparators. + | name | type | description | acceptable_values | default_value | example_use | + | ---- | ---- | ---- | ---- | ---- | ---- | + | default | string | Filter by a case-insensitive search of multiple fields + in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | + | barcode | string | Filter by the product variant [`barcode`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-barcode) + field. | | | - `barcode:ABC-abc-1234` | + | bundles | boolean | Filter by a [product + bundle](https://shopify.dev/docs/apps/build/product-merchandising/bundles). + A product bundle is a set of two or more related products, which are + commonly offered at a discount. | | | - `bundles:true` | + | category_id | string | Filter by the product [category ID](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-category) + (`product.category.id`). A product category is the category of a product + from [Shopify's Standard Product Taxonomy](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17). + | | | - `category_id:sg-4-17-2-17` | + | collection_id | id | Filter by the collection [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Collection#field-id) + field. | | | - `collection_id:108179161409` | + | combined_listing_role | string | Filter by the role of the product in a [combined listing](https://shopify.dev/apps/build/product-merchandising/combined-listings). + | - `parent`
- `child`
- `no_role` | | - + `combined_listing_role:parent` | + | created_at | time | Filter by the date and time when the product was + created. | | | - `created_at:>'2020-10-21T23:39:20Z'`
- + `created_at: - `created_at:<='2024'` | + | delivery_profile_id | id | Filter by the delivery profile [`id`](https://shopify.dev/api/admin-graphql/latest/objects/DeliveryProfile#field-id) + field. | | | - `delivery_profile_id:108179161409` | + | error_feedback | string | Filter by products with publishing errors. | + | gift_card | boolean | Filter by the product [`isGiftCard`](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-isgiftcard) + field. | | | - `gift_card:true` | + | handle | string | Filter by a comma-separated list of product [handles](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-handle). + | | | - `handle:the-minimal-snowboard` | + | has_only_composites | boolean | Filter by products that have only + composite variants. | | | - `has_only_composites:true` | + | has_only_default_variant | boolean | Filter by products that have only a + default variant. A default variant is the only variant if no other variants + are specified. | | | - `has_only_default_variant:true` | + | has_variant_with_components | boolean | Filter by products that have + variants with associated components. | | | - + `has_variant_with_components:true` | + | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | + | inventory_total | integer | Filter by inventory count. | | | - + `inventory_total:0`
- `inventory_total:>150`
- + `inventory_total:>=200` | + | is_price_reduced | boolean | Filter by products that have a reduced price. + For more information, refer to the [`CollectionRule`](https://shopify.dev/api/admin-graphql/latest/objects/CollectionRule) + object. | | | - `is_price_reduced:true` | + | metafields.{namespace}.{key} | mixed | Filters resources by metafield + value. Format: `metafields.{namespace}.{key}:{value}`. Learn more about + [querying by metafield value](https://shopify.dev/apps/build/custom-data/metafields/query-by-metafield-value). + | | | - `metafields.custom.on_sale:true`
- + `metafields.product.material:"gid://shopify/Metaobject/43458085"` | + | out_of_stock_somewhere | boolean | Filter by products that are out of + stock in at least one location. | | | - `out_of_stock_somewhere:true` | + | price | bigdecimal | Filter by the product variant [`price`](https://shopify.dev/api/admin-graphql/latest/objects/Productvariant#field-price) + field. | | | - `price:100.57` | + | product_configuration_owner | string | Filter by the app + [`id`](https://shopify.dev/api/admin-graphql/latest/objects/App#field-id) + field. | | | - `product_configuration_owner:10001` | + | product_publication_status | string | Filter by channel approval process + status of the resource on a channel, such as the online store. The value is + a composite of the [channel `app` ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#field-Channel.fields.app) + (`Channel.app.id`) and one of the valid values. For simple visibility checks, use [published_status](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-publishable_status) + instead. | - `* {channel_app_id}-approved`
- `* + {channel_app_id}-rejected`
- `* {channel_app_id}-needs_action`
- + `* {channel_app_id}-awaiting_review`
- `* + {channel_app_id}-published`
- `* {channel_app_id}-demoted`
- `* + {channel_app_id}-scheduled`
- `* + {channel_app_id}-provisionally_published` | | - + `product_publication_status:189769876-approved` | + | product_type | string | Filter by a comma-separated list of [product + types](https://help.shopify.com/manual/products/details/product-type). | | | + - `product_type:snowboard` | + | publication_ids | string | Filter by a comma-separated list of publication + IDs that are associated with the product. | | | - + `publication_ids:184111530305,184111694145` | + | publishable_status | string | **Deprecated:** This parameter is deprecated + as of 2025-12 and will be removed in a future API version. Use [published_status](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-publishable_status) + for visibility checks. Filter by the publishable status of the resource on a + channel. The value is a composite of the [channel `app` + ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) + (`Channel.app.id`) and one of the valid status values. | - `* + {channel_app_id}-unset`
- `* {channel_app_id}-pending`
- `* + {channel_app_id}-approved`
- `* {channel_app_id}-not_approved` | | - + `publishable_status:580111-unset`
- `publishable_status:580111-pending` | + | published_at | time | Filter by the date and time when the product was + published to the online store and other sales channels. | | | - + `published_at:>2020-10-21T23:39:20Z`
- `published_at: - + `published_at:<=2024` | + | published_status | string | Filter resources by their visibility and + publication state on a channel. Online store channel filtering: - + `online_store_channel`: Returns all resources in the online store channel, + regardless of publication status. - `published`/`visible`: Returns resources + that are published to the online store. - `unpublished`: Returns resources + that are not published to the online store. Channel-specific filtering using + a channel ID, channel handle, [channel `app` + ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) + (`Channel.app.id`), or app handle with suffixes: - + `{id_or_handle}-published`: Returns resources published to the specified + channel. - `{id_or_handle}-visible`: Same as `{id_or_handle}-published` + (kept for backwards compatibility). - `{id_or_handle}-intended`: Returns + resources added to the channel but not yet published. - + `{id_or_handle}-hidden`: Returns resources not added to the channel or not + published. Other: - `unavailable`: Returns resources not published to any + channel. | - `online_store_channel`
- `published`
- `visible`
+ - `unpublished`
- `* {channel_id_or_handle}-published`
- `* + {channel_id_or_handle}-visible`
- `* + {channel_id_or_handle}-intended`
- `* + {channel_id_or_handle}-hidden`
- `* + {channel_app_id_or_handle}-published`
- `* + {channel_app_id_or_handle}-visible`
- `* + {channel_app_id_or_handle}-intended`
- `* + {channel_app_id_or_handle}-hidden`
- `unavailable` | | - + `published_status:online_store_channel`
- + `published_status:published`
- `published_status:580111-published`
+ - `published_status:580111-hidden`
- + `published_status:my-channel-handle-published`
- + `published_status:unavailable` | + | sku | string | Filter by the product variant [`sku`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-sku) + field. [Learn more about + SKUs](https://help.shopify.com/manual/products/details/sku). | | | - + `sku:XYZ-12345` | + | status | string | Filter by a comma-separated list of statuses. You can + use statuses to manage inventory. Shopify only displays products with an + `ACTIVE` status in online stores, sales channels, and apps. | - + `active`
- `archived`
- `draft` | `active` | - + `status:active,draft` | + | tag | string | Filter objects by the `tag` field. | | | - `tag:my_tag` | + | tag_not | string | Filter by objects that don’t have the specified tag. | | | - `tag_not:my_tag` | + | title | string | Filter by the product [`title`](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-title) + field. | | | - `title:The Minimal Snowboard` | + | updated_at | time | Filter by the date and time when the product was last + updated. | | | - `updated_at:>'2020-10-21T23:39:20Z'`
- + `updated_at: - `updated_at:<='2024'` | + | variant_id | id | Filter by the product variant [`id`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-id) + field. | | | - `variant_id:45779434701121` | + | variant_title | string | Filter by the product variant [`title`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-title) + field. | | | - `variant_title:'Special ski wax'` | + | vendor | string | Filter by the origin or source of the product. Learn + more about [vendors and managing vendor + information](https://help.shopify.com/manual/products/managing-vendor-info). + | | | - `vendor:Snowdevil`
- `vendor:Snowdevil OR vendor:Icedevil` | + You can apply one or more filters to a query. Learn more about [Shopify API + search syntax](https://shopify.dev/api/usage/search-syntax). + + """ + query: String + + """ + The ID of a [saved search](https://shopify.dev/api/admin-graphql/latest/objects/savedsearch#field-id). + The search’s query string is used as the query argument. + """ + savedSearchId: ID ): ProductConnection! + """ + The count of products included in the publication. Limited to a maximum of 10000 by default. + """ + includedProductsCount( + """ + A filter made up of terms, connectives, modifiers, and comparators. + | name | type | description | acceptable_values | default_value | example_use | + | ---- | ---- | ---- | ---- | ---- | ---- | + | default | string | Filter by a case-insensitive search of multiple fields + in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | + | barcode | string | Filter by the product variant [`barcode`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-barcode) + field. | | | - `barcode:ABC-abc-1234` | + | bundles | boolean | Filter by a [product + bundle](https://shopify.dev/docs/apps/build/product-merchandising/bundles). + A product bundle is a set of two or more related products, which are + commonly offered at a discount. | | | - `bundles:true` | + | category_id | string | Filter by the product [category ID](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-category) + (`product.category.id`). A product category is the category of a product + from [Shopify's Standard Product Taxonomy](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17). + | | | - `category_id:sg-4-17-2-17` | + | collection_id | id | Filter by the collection [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Collection#field-id) + field. | | | - `collection_id:108179161409` | + | combined_listing_role | string | Filter by the role of the product in a [combined listing](https://shopify.dev/apps/build/product-merchandising/combined-listings). + | - `parent`
- `child`
- `no_role` | | - + `combined_listing_role:parent` | + | created_at | time | Filter by the date and time when the product was + created. | | | - `created_at:>'2020-10-21T23:39:20Z'`
- + `created_at: - `created_at:<='2024'` | + | delivery_profile_id | id | Filter by the delivery profile [`id`](https://shopify.dev/api/admin-graphql/latest/objects/DeliveryProfile#field-id) + field. | | | - `delivery_profile_id:108179161409` | + | error_feedback | string | Filter by products with publishing errors. | + | gift_card | boolean | Filter by the product [`isGiftCard`](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-isgiftcard) + field. | | | - `gift_card:true` | + | handle | string | Filter by a comma-separated list of product [handles](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-handle). + | | | - `handle:the-minimal-snowboard` | + | has_only_composites | boolean | Filter by products that have only + composite variants. | | | - `has_only_composites:true` | + | has_only_default_variant | boolean | Filter by products that have only a + default variant. A default variant is the only variant if no other variants + are specified. | | | - `has_only_default_variant:true` | + | has_variant_with_components | boolean | Filter by products that have + variants with associated components. | | | - + `has_variant_with_components:true` | + | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | + | inventory_total | integer | Filter by inventory count. | | | - + `inventory_total:0`
- `inventory_total:>150`
- + `inventory_total:>=200` | + | is_price_reduced | boolean | Filter by products that have a reduced price. + For more information, refer to the [`CollectionRule`](https://shopify.dev/api/admin-graphql/latest/objects/CollectionRule) + object. | | | - `is_price_reduced:true` | + | metafields.{namespace}.{key} | mixed | Filters resources by metafield + value. Format: `metafields.{namespace}.{key}:{value}`. Learn more about + [querying by metafield value](https://shopify.dev/apps/build/custom-data/metafields/query-by-metafield-value). + | | | - `metafields.custom.on_sale:true`
- + `metafields.product.material:"gid://shopify/Metaobject/43458085"` | + | out_of_stock_somewhere | boolean | Filter by products that are out of + stock in at least one location. | | | - `out_of_stock_somewhere:true` | + | price | bigdecimal | Filter by the product variant [`price`](https://shopify.dev/api/admin-graphql/latest/objects/Productvariant#field-price) + field. | | | - `price:100.57` | + | product_configuration_owner | string | Filter by the app + [`id`](https://shopify.dev/api/admin-graphql/latest/objects/App#field-id) + field. | | | - `product_configuration_owner:10001` | + | product_publication_status | string | Filter by channel approval process + status of the resource on a channel, such as the online store. The value is + a composite of the [channel `app` ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#field-Channel.fields.app) + (`Channel.app.id`) and one of the valid values. For simple visibility checks, use [published_status](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-publishable_status) + instead. | - `* {channel_app_id}-approved`
- `* + {channel_app_id}-rejected`
- `* {channel_app_id}-needs_action`
- + `* {channel_app_id}-awaiting_review`
- `* + {channel_app_id}-published`
- `* {channel_app_id}-demoted`
- `* + {channel_app_id}-scheduled`
- `* + {channel_app_id}-provisionally_published` | | - + `product_publication_status:189769876-approved` | + | product_type | string | Filter by a comma-separated list of [product + types](https://help.shopify.com/manual/products/details/product-type). | | | + - `product_type:snowboard` | + | publication_ids | string | Filter by a comma-separated list of publication + IDs that are associated with the product. | | | - + `publication_ids:184111530305,184111694145` | + | publishable_status | string | **Deprecated:** This parameter is deprecated + as of 2025-12 and will be removed in a future API version. Use [published_status](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-publishable_status) + for visibility checks. Filter by the publishable status of the resource on a + channel. The value is a composite of the [channel `app` + ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) + (`Channel.app.id`) and one of the valid status values. | - `* + {channel_app_id}-unset`
- `* {channel_app_id}-pending`
- `* + {channel_app_id}-approved`
- `* {channel_app_id}-not_approved` | | - + `publishable_status:580111-unset`
- `publishable_status:580111-pending` | + | published_at | time | Filter by the date and time when the product was + published to the online store and other sales channels. | | | - + `published_at:>2020-10-21T23:39:20Z`
- `published_at: - + `published_at:<=2024` | + | published_status | string | Filter resources by their visibility and + publication state on a channel. Online store channel filtering: - + `online_store_channel`: Returns all resources in the online store channel, + regardless of publication status. - `published`/`visible`: Returns resources + that are published to the online store. - `unpublished`: Returns resources + that are not published to the online store. Channel-specific filtering using + a channel ID, channel handle, [channel `app` + ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) + (`Channel.app.id`), or app handle with suffixes: - + `{id_or_handle}-published`: Returns resources published to the specified + channel. - `{id_or_handle}-visible`: Same as `{id_or_handle}-published` + (kept for backwards compatibility). - `{id_or_handle}-intended`: Returns + resources added to the channel but not yet published. - + `{id_or_handle}-hidden`: Returns resources not added to the channel or not + published. Other: - `unavailable`: Returns resources not published to any + channel. | - `online_store_channel`
- `published`
- `visible`
+ - `unpublished`
- `* {channel_id_or_handle}-published`
- `* + {channel_id_or_handle}-visible`
- `* + {channel_id_or_handle}-intended`
- `* + {channel_id_or_handle}-hidden`
- `* + {channel_app_id_or_handle}-published`
- `* + {channel_app_id_or_handle}-visible`
- `* + {channel_app_id_or_handle}-intended`
- `* + {channel_app_id_or_handle}-hidden`
- `unavailable` | | - + `published_status:online_store_channel`
- + `published_status:published`
- `published_status:580111-published`
+ - `published_status:580111-hidden`
- + `published_status:my-channel-handle-published`
- + `published_status:unavailable` | + | sku | string | Filter by the product variant [`sku`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-sku) + field. [Learn more about + SKUs](https://help.shopify.com/manual/products/details/sku). | | | - + `sku:XYZ-12345` | + | status | string | Filter by a comma-separated list of statuses. You can + use statuses to manage inventory. Shopify only displays products with an + `ACTIVE` status in online stores, sales channels, and apps. | - + `active`
- `archived`
- `draft` | `active` | - + `status:active,draft` | + | tag | string | Filter objects by the `tag` field. | | | - `tag:my_tag` | + | tag_not | string | Filter by objects that don’t have the specified tag. | | | - `tag_not:my_tag` | + | title | string | Filter by the product [`title`](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-title) + field. | | | - `title:The Minimal Snowboard` | + | updated_at | time | Filter by the date and time when the product was last + updated. | | | - `updated_at:>'2020-10-21T23:39:20Z'`
- + `updated_at: - `updated_at:<='2024'` | + | variant_id | id | Filter by the product variant [`id`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-id) + field. | | | - `variant_id:45779434701121` | + | variant_title | string | Filter by the product variant [`title`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-title) + field. | | | - `variant_title:'Special ski wax'` | + | vendor | string | Filter by the origin or source of the product. Learn + more about [vendors and managing vendor + information](https://help.shopify.com/manual/products/managing-vendor-info). + | | | - `vendor:Snowdevil`
- `vendor:Snowdevil OR vendor:Icedevil` | + You can apply one or more filters to a query. Learn more about [Shopify API + search syntax](https://shopify.dev/api/usage/search-syntax). + + """ + query: String + + """ + The ID of an existing saved search. + The search’s query string is used as the query argument. + Refer to the [`SavedSearch`](https://shopify.dev/api/admin-graphql/latest/objects/savedsearch) object. + """ + savedSearchId: ID + + """ + The upper bound on count value before returning a result. Use `null` to have no limit. + """ + limit: Int = 10000 + ): Count + """Name of the publication.""" name: String! @deprecated(reason: "Use [Catalog.title](https://shopify.dev/api/admin-graphql/unstable/interfaces/Catalog#field-catalog-title) instead.") @@ -60539,6 +69355,165 @@ type Publication implements Node { """Reverse the order of the underlying list.""" reverse: Boolean = false + + """ + Sort the underlying list using a key. If your query is slow or returns an + error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). + """ + sortKey: ProductSortKeys = ID + + """ + A filter made up of terms, connectives, modifiers, and comparators. + | name | type | description | acceptable_values | default_value | example_use | + | ---- | ---- | ---- | ---- | ---- | ---- | + | default | string | Filter by a case-insensitive search of multiple fields + in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | + | barcode | string | Filter by the product variant [`barcode`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-barcode) + field. | | | - `barcode:ABC-abc-1234` | + | bundles | boolean | Filter by a [product + bundle](https://shopify.dev/docs/apps/build/product-merchandising/bundles). + A product bundle is a set of two or more related products, which are + commonly offered at a discount. | | | - `bundles:true` | + | category_id | string | Filter by the product [category ID](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-category) + (`product.category.id`). A product category is the category of a product + from [Shopify's Standard Product Taxonomy](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17). + | | | - `category_id:sg-4-17-2-17` | + | collection_id | id | Filter by the collection [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Collection#field-id) + field. | | | - `collection_id:108179161409` | + | combined_listing_role | string | Filter by the role of the product in a [combined listing](https://shopify.dev/apps/build/product-merchandising/combined-listings). + | - `parent`
- `child`
- `no_role` | | - + `combined_listing_role:parent` | + | created_at | time | Filter by the date and time when the product was + created. | | | - `created_at:>'2020-10-21T23:39:20Z'`
- + `created_at: - `created_at:<='2024'` | + | delivery_profile_id | id | Filter by the delivery profile [`id`](https://shopify.dev/api/admin-graphql/latest/objects/DeliveryProfile#field-id) + field. | | | - `delivery_profile_id:108179161409` | + | error_feedback | string | Filter by products with publishing errors. | + | gift_card | boolean | Filter by the product [`isGiftCard`](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-isgiftcard) + field. | | | - `gift_card:true` | + | handle | string | Filter by a comma-separated list of product [handles](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-handle). + | | | - `handle:the-minimal-snowboard` | + | has_only_composites | boolean | Filter by products that have only + composite variants. | | | - `has_only_composites:true` | + | has_only_default_variant | boolean | Filter by products that have only a + default variant. A default variant is the only variant if no other variants + are specified. | | | - `has_only_default_variant:true` | + | has_variant_with_components | boolean | Filter by products that have + variants with associated components. | | | - + `has_variant_with_components:true` | + | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | + | inventory_total | integer | Filter by inventory count. | | | - + `inventory_total:0`
- `inventory_total:>150`
- + `inventory_total:>=200` | + | is_price_reduced | boolean | Filter by products that have a reduced price. + For more information, refer to the [`CollectionRule`](https://shopify.dev/api/admin-graphql/latest/objects/CollectionRule) + object. | | | - `is_price_reduced:true` | + | metafields.{namespace}.{key} | mixed | Filters resources by metafield + value. Format: `metafields.{namespace}.{key}:{value}`. Learn more about + [querying by metafield value](https://shopify.dev/apps/build/custom-data/metafields/query-by-metafield-value). + | | | - `metafields.custom.on_sale:true`
- + `metafields.product.material:"gid://shopify/Metaobject/43458085"` | + | out_of_stock_somewhere | boolean | Filter by products that are out of + stock in at least one location. | | | - `out_of_stock_somewhere:true` | + | price | bigdecimal | Filter by the product variant [`price`](https://shopify.dev/api/admin-graphql/latest/objects/Productvariant#field-price) + field. | | | - `price:100.57` | + | product_configuration_owner | string | Filter by the app + [`id`](https://shopify.dev/api/admin-graphql/latest/objects/App#field-id) + field. | | | - `product_configuration_owner:10001` | + | product_publication_status | string | Filter by channel approval process + status of the resource on a channel, such as the online store. The value is + a composite of the [channel `app` ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#field-Channel.fields.app) + (`Channel.app.id`) and one of the valid values. For simple visibility checks, use [published_status](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-publishable_status) + instead. | - `* {channel_app_id}-approved`
- `* + {channel_app_id}-rejected`
- `* {channel_app_id}-needs_action`
- + `* {channel_app_id}-awaiting_review`
- `* + {channel_app_id}-published`
- `* {channel_app_id}-demoted`
- `* + {channel_app_id}-scheduled`
- `* + {channel_app_id}-provisionally_published` | | - + `product_publication_status:189769876-approved` | + | product_type | string | Filter by a comma-separated list of [product + types](https://help.shopify.com/manual/products/details/product-type). | | | + - `product_type:snowboard` | + | publication_ids | string | Filter by a comma-separated list of publication + IDs that are associated with the product. | | | - + `publication_ids:184111530305,184111694145` | + | publishable_status | string | **Deprecated:** This parameter is deprecated + as of 2025-12 and will be removed in a future API version. Use [published_status](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-publishable_status) + for visibility checks. Filter by the publishable status of the resource on a + channel. The value is a composite of the [channel `app` + ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) + (`Channel.app.id`) and one of the valid status values. | - `* + {channel_app_id}-unset`
- `* {channel_app_id}-pending`
- `* + {channel_app_id}-approved`
- `* {channel_app_id}-not_approved` | | - + `publishable_status:580111-unset`
- `publishable_status:580111-pending` | + | published_at | time | Filter by the date and time when the product was + published to the online store and other sales channels. | | | - + `published_at:>2020-10-21T23:39:20Z`
- `published_at: - + `published_at:<=2024` | + | published_status | string | Filter resources by their visibility and + publication state on a channel. Online store channel filtering: - + `online_store_channel`: Returns all resources in the online store channel, + regardless of publication status. - `published`/`visible`: Returns resources + that are published to the online store. - `unpublished`: Returns resources + that are not published to the online store. Channel-specific filtering using + a channel ID, channel handle, [channel `app` + ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) + (`Channel.app.id`), or app handle with suffixes: - + `{id_or_handle}-published`: Returns resources published to the specified + channel. - `{id_or_handle}-visible`: Same as `{id_or_handle}-published` + (kept for backwards compatibility). - `{id_or_handle}-intended`: Returns + resources added to the channel but not yet published. - + `{id_or_handle}-hidden`: Returns resources not added to the channel or not + published. Other: - `unavailable`: Returns resources not published to any + channel. | - `online_store_channel`
- `published`
- `visible`
+ - `unpublished`
- `* {channel_id_or_handle}-published`
- `* + {channel_id_or_handle}-visible`
- `* + {channel_id_or_handle}-intended`
- `* + {channel_id_or_handle}-hidden`
- `* + {channel_app_id_or_handle}-published`
- `* + {channel_app_id_or_handle}-visible`
- `* + {channel_app_id_or_handle}-intended`
- `* + {channel_app_id_or_handle}-hidden`
- `unavailable` | | - + `published_status:online_store_channel`
- + `published_status:published`
- `published_status:580111-published`
+ - `published_status:580111-hidden`
- + `published_status:my-channel-handle-published`
- + `published_status:unavailable` | + | sku | string | Filter by the product variant [`sku`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-sku) + field. [Learn more about + SKUs](https://help.shopify.com/manual/products/details/sku). | | | - + `sku:XYZ-12345` | + | status | string | Filter by a comma-separated list of statuses. You can + use statuses to manage inventory. Shopify only displays products with an + `ACTIVE` status in online stores, sales channels, and apps. | - + `active`
- `archived`
- `draft` | `active` | - + `status:active,draft` | + | tag | string | Filter objects by the `tag` field. | | | - `tag:my_tag` | + | tag_not | string | Filter by objects that don’t have the specified tag. | | | - `tag_not:my_tag` | + | title | string | Filter by the product [`title`](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-title) + field. | | | - `title:The Minimal Snowboard` | + | updated_at | time | Filter by the date and time when the product was last + updated. | | | - `updated_at:>'2020-10-21T23:39:20Z'`
- + `updated_at: - `updated_at:<='2024'` | + | variant_id | id | Filter by the product variant [`id`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-id) + field. | | | - `variant_id:45779434701121` | + | variant_title | string | Filter by the product variant [`title`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-title) + field. | | | - `variant_title:'Special ski wax'` | + | vendor | string | Filter by the origin or source of the product. Learn + more about [vendors and managing vendor + information](https://help.shopify.com/manual/products/managing-vendor-info). + | | | - `vendor:Snowdevil`
- `vendor:Snowdevil OR vendor:Icedevil` | + You can apply one or more filters to a query. Learn more about [Shopify API + search syntax](https://shopify.dev/api/usage/search-syntax). + + """ + query: String + + """ + The ID of a [saved search](https://shopify.dev/api/admin-graphql/latest/objects/savedsearch#field-id). + The search’s query string is used as the query argument. + """ + savedSearchId: ID ): ProductConnection! """Whether the publication supports future publishing.""" @@ -60803,7 +69778,7 @@ interface Publishable { [publication](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication). For example, the resource might be published to the app's online store channel. """ - publishedOnCurrentPublication: Boolean! + publishedOnCurrentPublication: Boolean! @deprecated(reason: "Use `publishedOnPublication` instead.") """ Whether the resource is published to a specified @@ -61052,16 +70027,14 @@ enum PubSubWebhookSubscriptionCreateUserErrorCode { """The input fields for a PubSub webhook subscription.""" input PubSubWebhookSubscriptionInput { - """The Pub/Sub project ID.""" - pubSubProject: String! - - """The Pub/Sub topic ID.""" - pubSubTopic: String! - """The format in which the webhook subscription should send the data.""" format: WebhookSubscriptionFormat - """The list of fields to be included in the webhook subscription.""" + """ + The list of fields to be included in the webhook subscription. Only the fields + specified will be included in the webhook payload. If null, then all fields + will be included. Learn more about [modifying webhook payloads](https://shopify.dev/docs/apps/build/webhooks/customize/modify_payloads). + """ includeFields: [String!] """ @@ -61080,6 +70053,12 @@ input PubSubWebhookSubscriptionInput { A list of identifiers specifying metafields to include in the webhook payload. """ metafields: [HasMetafieldsMetafieldIdentifierInput!] + + """The Pub/Sub project ID.""" + pubSubProject: String! + + """The Pub/Sub topic ID.""" + pubSubTopic: String! } """Return type for `pubSubWebhookSubscriptionUpdate` mutation.""" @@ -61111,6 +70090,9 @@ Possible error codes that can be returned by `PubSubWebhookSubscriptionUpdateUse enum PubSubWebhookSubscriptionUpdateUserErrorCode { """Invalid parameters provided.""" INVALID_PARAMETERS + + """Address for this topic has already been taken.""" + TAKEN } """ @@ -61612,7 +70594,13 @@ The schema's entry-point for queries. This acts as the public, top-level API fro """ type Query { """ - List of abandoned checkouts. Includes checkouts that were recovered after being abandoned. + Returns a list of abandoned checkouts. A checkout is considered abandoned when + a customer adds contact information but doesn't complete their purchase. + Includes both abandoned and recovered checkouts. + + Each checkout provides [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer) details, [`AbandonedCheckoutLineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AbandonedCheckoutLineItem) + objects, pricing information, and a recovery URL for re-engaging customers who + didn't complete their purchase. """ abandonedCheckouts( """ @@ -61674,7 +70662,7 @@ type Query { ): AbandonedCheckoutConnection! """ - Returns the count of abandoned checkouts for the given shop. Limited to a maximum of 10000. + Returns the count of abandoned checkouts for the given shop. Limited to a maximum of 10000 by default. """ abandonedCheckoutsCount( """ @@ -61706,11 +70694,13 @@ type Query { """ savedSearchId: ID - """The upper bound on count value before returning a result.""" - limit: Int + """ + The upper bound on count value before returning a result. Use `null` to have no limit. + """ + limit: Int = 10000 ): Count - """Returns an abandonment by ID.""" + """Returns a `Abandonment` resource by ID.""" abandonment( """The ID of the `Abandonment` to return.""" id: ID! @@ -61722,15 +70712,25 @@ type Query { abandonedCheckoutId: ID! ): Abandonment - """Lookup an App by ID or return the currently authenticated App.""" + """ + Retrieves an [`App`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App) by + its ID. If no ID is provided, returns details about the currently + authenticated app. The query provides access to app details including title, + icon, and pricing information. + + If the app isn't installed on the current shop, then the [`installation`](https://shopify.dev/docs/api/admin-graphql/latest/queries/app#returns-App.fields.installation) + field will be `null`. + """ app( """The ID to lookup the App by.""" id: ID ): App """ - Fetches app by handle. - Returns null if the app doesn't exist. + Retrieves an app by its unique handle. The handle is a URL-friendly identifier for the app. + + Returns the [`App`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App) if + found, or `null` if no app exists with the specified handle. """ appByHandle( """Handle of the App.""" @@ -61738,8 +70738,11 @@ type Query { ): App """ - Fetches an app by its client ID. - Returns null if the app doesn't exist. + Retrieves an [`App`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App) by + its client ID (API key). Returns the app's configuration, installation status, [`AccessScope`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AccessScope) + objects, and developer information. + + Returns `null` if no app exists with the specified client ID. """ appByKey( """Client ID of the app.""" @@ -61782,7 +70785,16 @@ type Query { ): AppDiscountTypeConnection! """ - Lookup an AppInstallation by ID or return the AppInstallation for the currently authenticated App. + Retrieves an [`AppInstallation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AppInstallation) by ID. If no ID is provided, returns the installation for the currently authenticated + [`App`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App). The + query provides essential data for validating installation state and managing + app functionality within a store. + + Use this query to access installation details including granted [`AccessScope`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AccessScope) + objects, active [`AppSubscription`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AppSubscription) objects, [`AppCredit`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AppCredit) objects, [`AppPurchaseOneTime`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AppPurchaseOneTime) + objects, and app-specific metadata. + + Learn more about [app installation](https://shopify.dev/docs/apps/build/authentication-authorization/app-installation). """ appInstallation( """ID used to lookup AppInstallation.""" @@ -61790,9 +70802,13 @@ type Query { ): AppInstallation """ - A list of app installations. To use this query, you need to contact [Shopify - Support](https://partners.shopify.com/current/support/) to grant your custom - app the `read_apps` access scope. Public apps can't be granted this access scope. + A paginated list of [`AppInstallation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AppInstallation) + objects across multiple stores where your app is installed. Use this query to + monitor installation status, track billing and subscriptions through [`AppSubscription`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AppSubscription) + objects, and review granted [`AccessScope`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AccessScope) objects. + + Filter by [`AppInstallationCategory`](https://shopify.dev/docs/api/admin-graphql/latest/enums/AppInstallationCategory) to find specific types of installations (such as POS or channel apps) and by [`AppInstallationPrivacy`](https://shopify.dev/docs/api/admin-graphql/latest/enums/AppInstallationPrivacy) + to scope to public or private installations. """ appInstallations( """ @@ -61831,7 +70847,7 @@ type Query { privacy: AppInstallationPrivacy = PUBLIC ): AppInstallationConnection! - """Returns an Article resource by ID.""" + """Returns a `Article` resource by ID.""" article( """The ID of the `Article` to return.""" id: ID! @@ -61872,7 +70888,16 @@ type Query { limit: Int! ): [String!]! - """List of the shop's articles.""" + """ + Returns a paginated list of articles from the shop's blogs. + [`Article`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Article) + objects are blog posts that contain content like text, images, and tags. + + Supports [cursor-based + pagination](https://shopify.dev/docs/api/usage/pagination-graphql) to control + the number of articles returned and their order. Use the [`query`](https://shopify.dev/docs/api/admin-graphql/latest/queries/articles#arguments-query) + argument to filter results by specific criteria. + """ articles( """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). @@ -61926,6 +70951,7 @@ type Query { | published_status | string | Filter by published status | | tag | string | Filter objects by the `tag` field. | | | - `tag:my_tag` | | tag_not | string | Filter by objects that don’t have the specified tag. | | | - `tag_not:my_tag` | + | title | string | Filter by the title of the article. | | | - `title:summer-collection`
- `title:green hoodie` | | updated_at | time | Filter by the date and time when the article was last updated. | | | - `updated_at:>'2020-10-21T23:39:20Z'`
- `updated_at: - `updated_at:<=2024` | @@ -62001,13 +71027,13 @@ type Query { sortKey: FulfillmentOrderSortKeys = ID ): FulfillmentOrderConnection! - """Returns an automatic discount resource by ID.""" + """Returns a `DiscountAutomatic` resource by ID.""" automaticDiscount( """The ID of the `DiscountAutomatic` to return.""" id: ID! ): DiscountAutomatic @deprecated(reason: "Use `automaticDiscountNode` instead.") - """Returns an automatic discount resource by ID.""" + """Returns a `DiscountAutomaticNode` resource by ID.""" automaticDiscountNode( """The ID of the `DiscountAutomaticNode` to return.""" id: ID! @@ -62070,7 +71096,7 @@ type Query { The search’s query string is used as the query argument. """ savedSearchId: ID - ): DiscountAutomaticNodeConnection! + ): DiscountAutomaticNodeConnection! @deprecated(reason: "Use `discountNodes` instead.") """List of the shop's automatic discount saved searches.""" automaticDiscountSavedSearches( @@ -62098,7 +71124,9 @@ type Query { reverse: Boolean = false ): SavedSearchConnection! - """List of automatic discounts.""" + """ + Returns a list of automatic discounts that are applied in the cart and at checkout without requiring a discount code. + """ automaticDiscounts( """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). @@ -62155,7 +71183,12 @@ type Query { savedSearchId: ID ): DiscountAutomaticConnection! @deprecated(reason: "Use `automaticDiscountNodes` instead.") - """The regions that can be used as the backup region of the shop.""" + """ + The geographic regions that you can set as the + [`Shop`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Shop)'s + backup region. The backup region serves as a fallback when the system can't + determine a buyer's actual location. + """ availableBackupRegions: [MarketRegion!]! """ @@ -62163,19 +71196,35 @@ type Query { """ availableCarrierServices: [DeliveryCarrierServiceAndLocations!]! - """A list of available locales.""" + """ + Returns all locales that Shopify supports. Each + [`Locale`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Locale) + includes an ISO code and human-readable name. Use this query to discover which + locales you can enable on a shop with the [`shopLocaleEnable`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/shopLocaleEnable) mutation. + """ availableLocales: [Locale!]! """The backup region of the shop.""" backupRegion: MarketRegion! - """Returns a Blog resource by ID.""" + """Returns a `Blog` resource by ID.""" blog( """The ID of the `Blog` to return.""" id: ID! ): Blog - """List of the shop's blogs.""" + """ + Returns a paginated list of the shop's + [`Blog`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Blog) + objects. Blogs serve as containers for + [`Article`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Article) + objects and provide content management capabilities for the store's editorial content. + + Supports [cursor-based + pagination](https://shopify.dev/docs/api/usage/pagination-graphql) to control + the number of blogs returned and their order. Use the [`query`](https://shopify.dev/docs/api/admin-graphql/latest/queries/blogs#arguments-query) + argument to filter results by specific criteria. + """ blogs( """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). @@ -62224,7 +71273,7 @@ type Query { query: String ): BlogConnection! - """Count of blogs.""" + """Count of blogs. Limited to a maximum of 10000 by default.""" blogsCount( """ A filter made up of terms, connectives, modifiers, and comparators. @@ -62242,9 +71291,81 @@ type Query { """ query: String + + """ + The upper bound on count value before returning a result. Use `null` to have no limit. + """ + limit: Int = 10000 ): Count - """Returns a list of Business Entities associated with the shop.""" + """Returns a `BulkOperation` resource by ID.""" + bulkOperation( + """The ID of the `BulkOperation` to return.""" + id: ID! + ): BulkOperation + + """ + Returns the app's bulk operations meeting the specified filters. Defaults to + sorting by created_at, with newest operations first. + """ + bulkOperations( + """ + The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + first: Int + + """ + The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + after: String + + """ + The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + last: Int + + """ + The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + before: String + + """Reverse the order of the underlying list.""" + reverse: Boolean = false + + """ + Sort the underlying list using a key. If your query is slow or returns an + error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). + """ + sortKey: BulkOperationsSortKeys = CREATED_AT + + """ + A filter made up of terms, connectives, modifiers, and comparators. + | name | type | description | acceptable_values | default_value | example_use | + | ---- | ---- | ---- | ---- | ---- | ---- | + | created_at | time | Filter operations created after a specific date. | + | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | + | operation_type | string | Filter operations by type. | - `query`
- `mutation` | + | status | string | Filter operations by status. | - `canceled`
- + `canceling`
- `completed`
- `created`
- `failed`
- `running` | + You can apply one or more filters to a query. Learn more about [Shopify API + search syntax](https://shopify.dev/api/usage/search-syntax). + + """ + query: String + ): BulkOperationConnection! + + """ + Returns the list of [business entities](https://shopify.dev/docs/api/admin-graphql/latest/objects/BusinessEntity) + associated with the shop. Use this query to retrieve business entities for + assigning to markets, managing payment providers per entity, or viewing entity + attribution on orders. + + Each shop can have multiple business entities with one designated as primary. + To identify the primary entity in the query results, set the [`primary`](https://shopify.dev/docs/api/admin-graphql/latest/queries/businessEntities#returns-BusinessEntity.fields.primary) + field to `true`. + + Learn more about [managing multiple legal entities](https://shopify.dev/docs/apps/build/markets/multiple-entities). + """ businessEntities: [BusinessEntity!]! """Returns a Business Entity by ID.""" @@ -62255,13 +71376,18 @@ type Query { id: ID ): BusinessEntity - """Returns a `DeliveryCarrierService` object by ID.""" + """Returns a `DeliveryCarrierService` resource by ID.""" carrierService( """The ID of the `DeliveryCarrierService` to return.""" id: ID! ): DeliveryCarrierService - """Retrieve a list of CarrierServices.""" + """ + A paginated list of carrier services configured for the shop. Carrier services + provide real-time shipping rates from external providers like FedEx, UPS, or + custom shipping solutions. Use the `query` parameter to filter results by + attributes such as active status. + """ carrierServices( """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). @@ -62305,7 +71431,22 @@ type Query { query: String ): DeliveryCarrierServiceConnection! - """List of Cart transform objects owned by the current API client.""" + """ + Retrieves all cart transform functions currently deployed by your app within + the merchant's store. This query provides comprehensive access to your active + cart modification logic, enabling management and monitoring of bundling and + merchandising features. + + The query returns paginated results with full cart transform details, + including function IDs, configuration settings, and operational status. + + Cart Transform ownership is scoped to your API client, ensuring you only see + and manage functions deployed by your specific app. This isolation prevents + conflicts between different apps while maintaining security boundaries for + sensitive merchandising logic. + + Learn more about [managing cart transforms](https://shopify.dev/docs/api/functions/latest/cart-transform). + """ cartTransforms( """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). @@ -62331,7 +71472,7 @@ type Query { reverse: Boolean = false ): CartTransformConnection! - """Lookup a cash tracking session by ID.""" + """Returns a `CashTrackingSession` resource by ID.""" cashTrackingSession( """The ID of the `CashTrackingSession` to return.""" id: ID! @@ -62390,7 +71531,26 @@ type Query { query: String ): CashTrackingSessionConnection! - """Returns a Catalog resource by ID.""" + """ + Retrieves a [catalog](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/Catalog) by its ID. + A catalog represents a list of products with publishing and pricing information, + and can be associated with a context, such as a market, company location, or app. + + Use the `catalog` query to retrieve information associated with the following workflows: + + - Managing product publications across different contexts + - Setting up contextual pricing with price lists + - Managing market-specific product availability + - Configuring B2B customer catalogs + + There are several types of catalogs: + + - [`MarketCatalog`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MarketCatalog) + - [`AppCatalog`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AppCatalog) + - [`CompanyLocationCatalog`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CompanyLocationCatalog) + + Learn more about [catalogs for different markets](https://shopify.dev/docs/apps/build/markets/catalogs-different-markets). + """ catalog( """The ID of the `Catalog` to return.""" id: ID! @@ -62399,7 +71559,18 @@ type Query { """Returns the most recent catalog operations for the shop.""" catalogOperations: [ResourceOperation!]! - """The catalogs belonging to the shop.""" + """ + Returns a paginated list of catalogs for the shop. Catalogs control which + products are published and how they're priced in different contexts, such as + international markets (Canada vs. United States), B2B company locations + (different branches of the same business), or specific sales channels (such as + online store vs. POS). + + Filter catalogs by [`type`](https://shopify.dev/docs/api/admin-graphql/latest/queries/catalogs#arguments-type) and use the [`query`](https://shopify.dev/docs/api/admin-graphql/latest/queries/catalogs#arguments-query) + argument to search and filter by additional criteria. + + Learn more about [Shopify Catalogs](https://shopify.dev/docs/apps/build/markets/catalogs-different-markets). + """ catalogs( """The type of the catalogs to be returned.""" type: CatalogType = null @@ -62455,7 +71626,7 @@ type Query { ): CatalogConnection! """ - The count of catalogs belonging to the shop. Limited to a maximum of 10000. + The count of catalogs belonging to the shop. Limited to a maximum of 10000 by default. """ catalogsCount( """The type of the catalogs to be returned.""" @@ -62480,15 +71651,25 @@ type Query { """ query: String + + """ + The upper bound on count value before returning a result. Use `null` to have no limit. + """ + limit: Int = 10000 ): Count - """Lookup a channel by ID.""" + """Returns a `Channel` resource by ID.""" channel( """The ID of the `Channel` to return.""" id: ID! - ): Channel @deprecated(reason: "Use `publication` instead.") + ): Channel - """List of the active sales channels.""" + """ + Returns active [channels](https://shopify.dev/docs/api/admin-graphql/latest/objects/Channel) + where merchants sell products and collections. Each channel is an + authenticated link to an external platform such as marketplaces, social media + platforms, online stores, or point-of-sale systems. + """ channels( """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). @@ -62512,21 +71693,26 @@ type Query { """Reverse the order of the underlying list.""" reverse: Boolean = false - ): ChannelConnection! @deprecated(reason: "Use `publications` instead.") + ): ChannelConnection! """ - Returns the visual customizations for checkout for a given checkout profile. + Returns the visual customizations for checkout for a given [checkout profile](https://shopify.dev/docs/api/admin-graphql/latest/objects/CheckoutProfile). - To learn more about updating checkout branding settings, refer to the - [checkoutBrandingUpsert](https://shopify.dev/api/admin-graphql/unstable/mutations/checkoutBrandingUpsert) - mutation and the checkout branding [tutorial](https://shopify.dev/docs/apps/checkout/styling). + To update checkout branding settings, use the [`checkoutBrandingUpsert`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/checkoutBrandingUpsert) + mutation. Learn more about [customizing checkout's + appearance](https://shopify.dev/docs/apps/build/checkout/styling). """ checkoutBranding( """A globally-unique identifier.""" checkoutProfileId: ID! ): CheckoutBranding - """A checkout profile on a shop.""" + """ + Returns a [`CheckoutProfile`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CheckoutProfile). Checkout profiles define the branding settings and UI extensions for a store's + checkout experience. Stores can have one published profile that renders on + their live checkout and multiple draft profiles for testing customizations in + the checkout editor. + """ checkoutProfile( """The ID of the checkout profile.""" id: ID! @@ -62584,7 +71770,18 @@ type Query { id: ID! ): DiscountCodeNode - """Returns a code discount identified by its discount code.""" + """ + Retrieves a [code discount](https://help.shopify.com/manual/discounts/discount-types#discount-codes) + by its discount code. The search is case-insensitive, enabling you to find + discounts regardless of how customers enter the code. + + Returns a [`DiscountCodeNode`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCodeNode) that contains the underlying discount details, which could be a basic [amount off discount](https://help.shopify.com/manual/discounts/discount-types/percentage-fixed-amount), + a ["Buy X Get Y" (BXGY) discount](https://help.shopify.com/manual/discounts/discount-types/buy-x-get-y), + a [free shipping discount](https://help.shopify.com/manual/discounts/discount-types/free-shipping), + or an [app-provided discount](https://help.shopify.com/manual/discounts/discount-types/discounts-with-apps). + + Learn more about working with [Shopify's discount model](https://shopify.dev/docs/apps/build/discounts). + """ codeDiscountNodeByCode( """The case-insensitive code of the `DiscountCodeNode` to return.""" code: String! @@ -62639,8 +71836,8 @@ type Query { `created_at: - `created_at:<='2024'` | | discount_type | string | Filter by the [discount type](https://help.shopify.com/manual/discounts/discount-types). | - - `bogo`
- `fixed_amount`
- `free_shipping`
- `percentage` | | - - `discount_type:fixed_amount` | + `app`
- `bogo`
- `fixed_amount`
- `free_shipping`
- + `percentage` | | - `discount_type:fixed_amount` | | ends_at | time | Filter by the date and time when the discount expires and is no longer available for customer use. | | | - `ends_at:>'2020-10-21T23:39:20Z'`
- `ends_at: - @@ -62678,7 +71875,7 @@ type Query { The search’s query string is used as the query argument. """ savedSearchId: ID - ): DiscountCodeNodeConnection! + ): DiscountCodeNodeConnection! @deprecated(reason: "Use `discountNodes` instead.") """List of the shop's code discount saved searches.""" codeDiscountSavedSearches( @@ -62706,13 +71903,48 @@ type Query { reverse: Boolean = false ): SavedSearchConnection! - """Returns a Collection resource by ID.""" + """ + Retrieves a [collection](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection) by its ID. + A collection represents a grouping of [products](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) + that merchants can display and sell as a group in their [online + store](https://shopify.dev/docs/apps/build/online-store) and + other [sales channels](https://shopify.dev/docs/apps/build/sales-channels). + + Use the `collection` query when you need to: + + - Manage collection publishing across sales channels + - Access collection metadata and SEO information + - Work with collection rules and product relationships + + A collection can be either a custom ([manual](https://help.shopify.com/manual/products/collections/manual-shopify-collection)) + collection where products are manually added, or a smart ([automated](https://help.shopify.com/manual/products/collections/automated-collections)) + collection where products are automatically included based on defined rules. + Each collection has associated metadata including + title, description, handle, image, and [metafields](https://shopify.dev/docs/apps/build/custom-data/metafields). + """ collection( """The ID of the `Collection` to return.""" id: ID! ): Collection - """Return a collection by its handle.""" + """ + Retrieves a collection by its unique handle identifier. Handles provide a + URL-friendly way to reference collections and are commonly used in storefront + URLs and navigation. + + For example, a collection with the title "Summer Sale" might have the handle + `summer-sale`, allowing you to fetch it directly without knowing the internal ID. + + Use `CollectionByHandle` to: + - Fetch collections for storefront display and navigation + - Build collection-based URLs and routing systems + - Validate collection existence before displaying content + + Handles are automatically generated from collection titles but can be + customized by merchants for SEO and branding purposes. + + Learn more about [collections](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection). + """ collectionByHandle( """The handle of the collection.""" handle: String! @@ -62753,7 +71985,36 @@ type Query { reverse: Boolean = false ): SavedSearchConnection! - """Returns a list of collections.""" + """ + Retrieves a list of [collections](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection) + in a store. Collections are groups of [products](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) + that merchants can organize for display in their [online store](https://shopify.dev/docs/apps/build/online-store) and + other [sales channels](https://shopify.dev/docs/apps/build/sales-channels). + For example, an athletics store might create different collections for running attire, shoes, and accessories. + + Use the `collections` query when you need to: + + - Build a browsing interface for a store's product groupings. + - Create collection searching, sorting, and filtering experiences (for example, by title, type, or published status). + - Sync collection data with external systems. + - Manage both custom ([manual](https://help.shopify.com/manual/products/collections/manual-shopify-collection)) + and smart ([automated](https://help.shopify.com/manual/products/collections/automated-collections)) collections. + + The `collections` query supports [pagination](https://shopify.dev/docs/api/usage/pagination-graphql) + for large catalogs and [saved searches](https://shopify.dev/docs/api/admin-graphql/latest/queries/collections#arguments-savedSearchId) + for frequently used collection queries. + + The `collections` query returns collections with their associated metadata, including: + + - Basic collection information (title, description, handle, and type) + - Collection image and SEO metadata + - Product count and product relationships + - Collection rules (for smart collections) + - Publishing status and publication details + - Metafields and custom attributes + + Learn more about [using metafields with smart collections](https://shopify.dev/docs/apps/build/custom-data/metafields/use-metafield-capabilities). + """ collections( """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). @@ -62794,29 +72055,56 @@ type Query { | handle | string | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | product_id | id | Filter by collections containing a product by its ID. | - | product_publication_status | string | Filter by the publishable status of - the resource on a channel, such as the online store. The value is a - composite of the [channel `app` + | product_publication_status | string | Filter by channel approval process + status of the resource on a channel, such as the online store. The value is + a composite of the [channel `app` ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#field-Channel.fields.app) + (`Channel.app.id`) and one of the valid values. For simple visibility checks, use [published_status](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-publishable_status) + instead. | - `* {channel_app_id}-approved`
- `* + {channel_app_id}-rejected`
- `* {channel_app_id}-needs_action`
- + `* {channel_app_id}-awaiting_review`
- `* + {channel_app_id}-published`
- `* {channel_app_id}-demoted`
- `* + {channel_app_id}-scheduled`
- `* + {channel_app_id}-provisionally_published` | | - + `product_publication_status:189769876-approved` | + | publishable_status | string | **Deprecated:** This parameter is deprecated + as of 2025-12 and will be removed in a future API version. Use [published_status](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-publishable_status) + for visibility checks. Filter by the publishable status of the resource on a + channel. The value is a composite of the [channel `app` ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) - (`Channel.app.id`) and one of the valid values. | - `approved`
- - `rejected`
- `needs_action`
- `awaiting_review`
- - `published`
- `demoted`
- `scheduled`
- - `provisionally_published` | | - `publishable_status:189769876-approved` | - | publishable_status | string | Filter by the publishable status of the - resource on a channel, such as the online store. The value is a composite of - either the [channel `app` - ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) - (`Channel.app.id`) or [channel `name`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Channel#field-name) - and one of the valid values. | - `online_store_channel`
- - `published`
- `unpublished`
- `visible`
- `unavailable`
- - `hidden`
- `intended`
- `visible` | | - - `publishable_status:published`
- - `publishable_status:189769876:visible`
- - `publishable_status:pos:hidden` | + (`Channel.app.id`) and one of the valid status values. | - `* + {channel_app_id}-unset`
- `* {channel_app_id}-pending`
- `* + {channel_app_id}-approved`
- `* {channel_app_id}-not_approved` | | - + `publishable_status:580111-unset`
- `publishable_status:580111-pending` | | published_at | time | Filter by the date and time when the collection was published to the Online Store. | - | published_status | string | Filter by the published status of the resource - on a channel, such as the online store. | - `unset`
- `pending`
- - `approved`
- `not approved` | | - `published_status:approved` | + | published_status | string | Filter resources by their visibility and + publication state on a channel. Online store channel filtering: - + `online_store_channel`: Returns all resources in the online store channel, + regardless of publication status. - `published`/`visible`: Returns resources + that are published to the online store. - `unpublished`: Returns resources + that are not published to the online store. Channel-specific filtering using + a channel ID, channel handle, [channel `app` + ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) + (`Channel.app.id`), or app handle with suffixes: - + `{id_or_handle}-published`: Returns resources published to the specified + channel. - `{id_or_handle}-visible`: Same as `{id_or_handle}-published` + (kept for backwards compatibility). - `{id_or_handle}-intended`: Returns + resources added to the channel but not yet published. - + `{id_or_handle}-hidden`: Returns resources not added to the channel or not + published. Other: - `unavailable`: Returns resources not published to any + channel. | - `online_store_channel`
- `published`
- `visible`
+ - `unpublished`
- `* {channel_id_or_handle}-published`
- `* + {channel_id_or_handle}-visible`
- `* + {channel_id_or_handle}-intended`
- `* + {channel_id_or_handle}-hidden`
- `* + {channel_app_id_or_handle}-published`
- `* + {channel_app_id_or_handle}-visible`
- `* + {channel_app_id_or_handle}-intended`
- `* + {channel_app_id_or_handle}-hidden`
- `unavailable` | | - + `published_status:online_store_channel`
- + `published_status:published`
- `published_status:580111-published`
+ - `published_status:580111-hidden`
- + `published_status:my-channel-handle-published`
- + `published_status:unavailable` | | title | string | | updated_at | time | You can apply one or more filters to a query. Learn more about [Shopify API @@ -62832,7 +72120,7 @@ type Query { savedSearchId: ID ): CollectionConnection! - """Count of collections. Limited to a maximum of 10000.""" + """Count of collections. Limited to a maximum of 10000 by default.""" collectionsCount( """ A filter made up of terms, connectives, modifiers, and comparators. @@ -62844,29 +72132,56 @@ type Query { | handle | string | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | product_id | id | Filter by collections containing a product by its ID. | - | product_publication_status | string | Filter by the publishable status of - the resource on a channel, such as the online store. The value is a - composite of the [channel `app` + | product_publication_status | string | Filter by channel approval process + status of the resource on a channel, such as the online store. The value is + a composite of the [channel `app` ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#field-Channel.fields.app) + (`Channel.app.id`) and one of the valid values. For simple visibility checks, use [published_status](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-publishable_status) + instead. | - `* {channel_app_id}-approved`
- `* + {channel_app_id}-rejected`
- `* {channel_app_id}-needs_action`
- + `* {channel_app_id}-awaiting_review`
- `* + {channel_app_id}-published`
- `* {channel_app_id}-demoted`
- `* + {channel_app_id}-scheduled`
- `* + {channel_app_id}-provisionally_published` | | - + `product_publication_status:189769876-approved` | + | publishable_status | string | **Deprecated:** This parameter is deprecated + as of 2025-12 and will be removed in a future API version. Use [published_status](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-publishable_status) + for visibility checks. Filter by the publishable status of the resource on a + channel. The value is a composite of the [channel `app` ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) - (`Channel.app.id`) and one of the valid values. | - `approved`
- - `rejected`
- `needs_action`
- `awaiting_review`
- - `published`
- `demoted`
- `scheduled`
- - `provisionally_published` | | - `publishable_status:189769876-approved` | - | publishable_status | string | Filter by the publishable status of the - resource on a channel, such as the online store. The value is a composite of - either the [channel `app` - ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) - (`Channel.app.id`) or [channel `name`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Channel#field-name) - and one of the valid values. | - `online_store_channel`
- - `published`
- `unpublished`
- `visible`
- `unavailable`
- - `hidden`
- `intended`
- `visible` | | - - `publishable_status:published`
- - `publishable_status:189769876:visible`
- - `publishable_status:pos:hidden` | + (`Channel.app.id`) and one of the valid status values. | - `* + {channel_app_id}-unset`
- `* {channel_app_id}-pending`
- `* + {channel_app_id}-approved`
- `* {channel_app_id}-not_approved` | | - + `publishable_status:580111-unset`
- `publishable_status:580111-pending` | | published_at | time | Filter by the date and time when the collection was published to the Online Store. | - | published_status | string | Filter by the published status of the resource - on a channel, such as the online store. | - `unset`
- `pending`
- - `approved`
- `not approved` | | - `published_status:approved` | + | published_status | string | Filter resources by their visibility and + publication state on a channel. Online store channel filtering: - + `online_store_channel`: Returns all resources in the online store channel, + regardless of publication status. - `published`/`visible`: Returns resources + that are published to the online store. - `unpublished`: Returns resources + that are not published to the online store. Channel-specific filtering using + a channel ID, channel handle, [channel `app` + ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) + (`Channel.app.id`), or app handle with suffixes: - + `{id_or_handle}-published`: Returns resources published to the specified + channel. - `{id_or_handle}-visible`: Same as `{id_or_handle}-published` + (kept for backwards compatibility). - `{id_or_handle}-intended`: Returns + resources added to the channel but not yet published. - + `{id_or_handle}-hidden`: Returns resources not added to the channel or not + published. Other: - `unavailable`: Returns resources not published to any + channel. | - `online_store_channel`
- `published`
- `visible`
+ - `unpublished`
- `* {channel_id_or_handle}-published`
- `* + {channel_id_or_handle}-visible`
- `* + {channel_id_or_handle}-intended`
- `* + {channel_id_or_handle}-hidden`
- `* + {channel_app_id_or_handle}-published`
- `* + {channel_app_id_or_handle}-visible`
- `* + {channel_app_id_or_handle}-intended`
- `* + {channel_app_id_or_handle}-hidden`
- `unavailable` | | - + `published_status:online_store_channel`
- + `published_status:published`
- `published_status:580111-published`
+ - `published_status:580111-hidden`
- + `published_status:my-channel-handle-published`
- + `published_status:unavailable` | | title | string | | updated_at | time | You can apply one or more filters to a query. Learn more about [Shopify API @@ -62881,9 +72196,14 @@ type Query { Refer to the [`SavedSearch`](https://shopify.dev/api/admin-graphql/latest/objects/savedsearch) object. """ savedSearchId: ID + + """ + The upper bound on count value before returning a result. Use `null` to have no limit. + """ + limit: Int = 10000 ): Count - """Returns a Comment resource by ID.""" + """Returns a `Comment` resource by ID.""" comment( """The ID of the `Comment` to return.""" id: ID! @@ -62947,7 +72267,15 @@ type Query { query: String ): CommentConnection! - """Returns the list of companies in the shop.""" + """ + A paginated list of companies in the shop. + [`Company`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Company) + objects are business entities that purchase from the merchant. + + Use the [`query`](https://shopify.dev/docs/api/admin-graphql/latest/queries/companies#arguments-query) argument to filter companies by attributes like name or externalId. Sort and + paginate results to handle large datasets efficiently. Learn more about + [Shopify API search syntax](https://shopify.dev/docs/api/usage/search-syntax). + """ companies( """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). @@ -62985,6 +72313,11 @@ type Query { | created_at | time | | external_id | id | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | + | metafields.{namespace}.{key} | mixed | Filters resources by metafield + value. Format: `metafields.{namespace}.{key}:{value}`. Learn more about + [querying by metafield value](https://shopify.dev/apps/build/custom-data/metafields/query-by-metafield-value). + | | | - `metafields.custom.on_sale:true`
- + `metafields.product.material:"gid://shopify/Metaobject/43458085"` | | name | string | | since_date | time | | updated_at | time | @@ -62995,34 +72328,52 @@ type Query { query: String ): CompanyConnection! - """The number of companies for a shop.""" - companiesCount: Count + """ + The number of companies for a shop. Limited to a maximum of 10000 by default. + """ + companiesCount( + """ + The upper bound on count value before returning a result. Use `null` to have no limit. + """ + limit: Int = 10000 + ): Count - """Returns a `Company` object by ID.""" + """Returns a `Company` resource by ID.""" company( """The ID of the `Company` to return.""" id: ID! ): Company - """Returns a `CompanyContact` object by ID.""" + """Returns a `CompanyContact` resource by ID.""" companyContact( """The ID of the `CompanyContact` to return.""" id: ID! ): CompanyContact - """Returns a `CompanyContactRole` object by ID.""" + """Returns a `CompanyContactRole` resource by ID.""" companyContactRole( """The ID of the `CompanyContactRole` to return.""" id: ID! ): CompanyContactRole - """Returns a `CompanyLocation` object by ID.""" + """Returns a `CompanyLocation` resource by ID.""" companyLocation( """The ID of the `CompanyLocation` to return.""" id: ID! ): CompanyLocation - """Returns the list of company locations in the shop.""" + """ + A paginated list of [`CompanyLocation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CompanyLocation) + objects for B2B customers. Company locations represent individual branches or offices of a + [`Company`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Company) + where B2B orders can be placed. + + Each location can have its own billing and shipping addresses, tax settings, [`PaymentTerms`](https://shopify.dev/docs/api/admin-graphql/latest/objects/PaymentTerms), and [`Catalog`](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/Catalog) + assignments with custom pricing. Use the query parameter to search locations + by name or other attributes. + + Learn more about [managing company locations](https://shopify.dev/docs/apps/build/b2b/manage-client-company-locations). + """ companyLocations( """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). @@ -63061,6 +72412,11 @@ type Query { | external_id | string | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | ids | string | + | metafields.{namespace}.{key} | mixed | Filters resources by metafield + value. Format: `metafields.{namespace}.{key}:{value}`. Learn more about + [querying by metafield value](https://shopify.dev/apps/build/custom-data/metafields/query-by-metafield-value). + | | | - `metafields.custom.on_sale:true`
- + `metafields.product.material:"gid://shopify/Metaobject/43458085"` | | name | string | | updated_at | time | You can apply one or more filters to a query. Learn more about [Shopify API @@ -63093,28 +72449,41 @@ type Query { """ consentPolicyRegions: [ConsentPolicyRegion!]! - """Return the AppInstallation for the currently authenticated App.""" + """ + Returns the [`AppInstallation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AppInstallation) for the currently authenticated app. Provides access to granted access scopes, active [`AppSubscription`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AppSubscription) + objects, and billing information for your app. + + Use this query to check which permissions your app has, monitor subscription + status, or retrieve [`AppCredit`](https://shopify.dev/docs/api/admin-graphql/latest/objects/AppCredit) + objects. Learn more about [managing access scopes](https://shopify.dev/docs/api/usage/access-scopes#checking-granted-access-scopes), [subscription + billing](https://shopify.dev/docs/apps/launch/billing/subscription-billing), and + [app credits](https://shopify.dev/docs/apps/launch/billing/award-app-credits). + """ currentAppInstallation: AppInstallation! """ - Returns the current app's most recent BulkOperation. Apps can run one bulk - query and one bulk mutation operation at a time, by shop. + Returns the current app's most recent [`BulkOperation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/BulkOperation). + Apps can run one bulk query and one bulk mutation operation at a time per shop. + + The operation type parameter determines whether to retrieve the most recent + query or mutation bulk operation. Use this query to check the operation's + status, track its progress, and retrieve the result URL when it completes. """ currentBulkOperation( """The current bulk operation's type.""" type: BulkOperationType = QUERY - ): BulkOperation + ): BulkOperation @deprecated(reason: "Use `bulkOperations` with status filter instead.") """The staff member making the API request.""" currentStaffMember: StaffMember - """Returns a Customer resource by ID.""" + """Returns a `Customer` resource by ID.""" customer( """The ID of the `Customer` to return.""" id: ID! ): Customer - """Returns a customer account page.""" + """Returns a `CustomerAccountPage` resource by ID.""" customerAccountPage( """The ID of the `CustomerAccountPage` to return.""" id: ID! @@ -63226,7 +72595,11 @@ type Query { ): SavedSearchConnection! """ - The list of members, such as customers, that's associated with an individual segment. + A paginated list of customers that belong to an individual [`Segment`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Segment). + Segments group customers based on criteria defined through [ShopifyQL queries](https://shopify.dev/docs/api/shopifyql/segment-query-language-reference). + Access segment members with their profile information and purchase summary + data. The connection includes statistics for analyzing segment attributes + (such as average and sum calculations) and a total count of all members. The maximum page size is 1000. """ customerSegmentMembers( @@ -63255,7 +72628,17 @@ type Query { """ reverse: Boolean = false - """Sort the list by a given key.""" + """ + Sort the list by a given key. Valid values: + • `created_at` - Sort by customer creation date + • `first_order_date` - Sort by the date of the customer's first order + • `last_abandoned_order_date` - Sort by the date of the customer's last abandoned checkout + • `last_order_date` - Sort by the date of the customer's most recent order + • `number_of_orders` - Sort by the total number of orders placed by the customer + • `amount_spent` - Sort by the total amount the customer has spent across all orders + + Use with the `reverse` parameter to control sort direction (ascending by default, descending when reverse=true). + """ sortKey: String """ @@ -63279,7 +72662,7 @@ type Query { before: String ): CustomerSegmentMemberConnection! - """Returns a segment members query resource by ID.""" + """Returns a `CustomerSegmentMembersQuery` resource by ID.""" customerSegmentMembersQuery( """The ID of the `CustomerSegmentMembersQuery` to return.""" id: ID! @@ -63348,12 +72731,16 @@ type Query { `country:Canada`
- `country:JP` | | customer_date | time | Filter by the date and time when the customer record was created. This query parameter filters by the [`createdAt`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer#field-createdAt) - field. | | | - `customer_date:'2024-03-15T14:30:00Z'`
- - `customer_date:'>=2024-01-01'` | + field. | | | - `customer_date:'2024-03-15T14:30:00Z'`
- `customer_date: + >='2024-01-01'` | | email | string | The customer's email address, used to communicate information about orders and for the purposes of email marketing campaigns. You can use a wildcard value to filter the query by customers who have an - email address specified. | | | - `email:bo.wang@example.com`
- `email:*` | + email address specified. Please note that _email_ is a tokenized field: To + retrieve exact matches, quote the email address (_phrase query_) as + described in [Shopify API search + syntax](https://shopify.dev/docs/api/usage/search-syntax). | | | - + `email:gmail.com`
- `email:"bo.wang@example.com"`
- `email:*` | | first_name | string | Filter by the customer's first name. | | | - `first_name:Jane` | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | last_abandoned_order_date | time | Filter by the date and time of the @@ -63361,12 +72748,12 @@ type Query { a customer adds items to their cart, begins the checkout process, but leaves the site without completing their purchase. | | | - `last_abandoned_order_date:'2024-04-01T10:00:00Z'`
- - `last_abandoned_order_date:'>=2024-01-01'` | + `last_abandoned_order_date: >='2024-01-01'` | | last_name | string | Filter by the customer's last name. | | | - `last_name:Reeves` | | order_date | time | Filter by the date and time that the order was placed by the customer. Use this query filter to check if a customer has placed at least one order within a specified date range. | | | - - `order_date:'2024-02-20T00:00:00Z'`
- `order_date:'>=2024-01-01'`
+ `order_date:'2024-02-20T00:00:00Z'`
- `order_date: >='2024-01-01'`
- `order_date:'2024-01-01..2024-03-31'` | | orders_count | integer | Filter by the total number of orders a customer has placed. | | | - `orders_count:5` | | phone | string | The phone number of the customer, used to communicate @@ -63398,7 +72785,7 @@ type Query { query: String ): CustomerConnection! - """The number of customers.""" + """The number of customers. Limited to a maximum of 10000 by default.""" customersCount( """ A filter made up of terms, connectives, modifiers, and comparators. @@ -63412,6 +72799,11 @@ type Query { """ query: String + + """ + The upper bound on count value before returning a result. Use `null` to have no limit. + """ + limit: Int = 10000 ): Count """The paginated list of deletion events.""" @@ -63506,13 +72898,35 @@ type Query { query: String ): DeliveryCustomizationConnection! - """Returns a Delivery Profile resource by ID.""" + """ + Retrieves a [`DeliveryProfile`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DeliveryProfile) by ID. Delivery profiles group shipping settings for specific + [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) + objects that ship from selected [`Location`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location) + objects to [delivery + zones](https://shopify.dev/docs/api/admin-graphql/latest/objects/DeliveryZone + with defined rates. + + Learn more about [delivery profiles](https://shopify.dev/docs/apps/build/purchase-options/deferred/delivery-and-deferment#whats-a-delivery-profile). + """ deliveryProfile( """The ID of the DeliveryProfile to return.""" id: ID! ): DeliveryProfile - """Returns a list of saved delivery profiles.""" + """ + Returns a paginated list of [`DeliveryProfile`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DeliveryProfile) + objects for the shop. Delivery profiles group + [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) and [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) + objects that share shipping rates and zones. + + Each profile contains [`DeliveryLocationGroup`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DeliveryLocationGroup) + objects that organize fulfillment [`Location`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location) + objects and their associated delivery zones. [`DeliveryZone`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DeliveryZone) + objects define geographic regions with specific shipping methods and rates. Use the [`merchantOwnedOnly`](https://shopify.dev/docs/api/admin-graphql/latest/queries/deliveryProfiles#arguments-merchantOwnedOnly) + filter to exclude profiles that third-party apps manage. + + Learn more about [delivery profiles](https://shopify.dev/docs/apps/build/purchase-options/deferred/delivery-and-deferment#whats-a-delivery-profile). + """ deliveryProfiles( """ If `true`, returns only delivery profiles that were created by the merchant. @@ -63587,7 +73001,9 @@ type Query { """Returns the shop-wide shipping settings.""" deliverySettings: DeliverySetting - """The total number of discount codes for the shop.""" + """ + The total number of discount codes for the shop. Limited to a maximum of 10000 by default. + """ discountCodesCount( """ A filter made up of terms, connectives, modifiers, and comparators. @@ -63602,9 +73018,14 @@ type Query { """ query: String + + """ + The upper bound on count value before returning a result. Use `null` to have no limit. + """ + limit: Int = 10000 ): Count - """Returns a discount resource by ID.""" + """Returns a `DiscountNode` resource by ID.""" discountNode( """The ID of the `DiscountNode` to return.""" id: ID! @@ -63651,32 +73072,44 @@ type Query { | combines_with | string | Filter by the [Shopify Functions discount classes](https://shopify.dev/docs/apps/build/discounts#discount-classes) that the [discount type](https://shopify.dev/docs/api/admin-graphql/latest/queries/discountnodes#argument-query-filter-discount_type) - can combine with. | - `order_discounts`
- `product_discounts`
- - `shipping_discounts` | | - `combines_with:product_discounts` | + can combine with. Supports multiple values separated by commas (e.g., + combines_with:product_discounts,order_discounts). | - `order_discounts`
+ - `product_discounts`
- `shipping_discounts` | | - + `combines_with:product_discounts`
- + `combines_with:product_discounts,order_discounts` | | created_at | time | Filter by the date and time, in the shop's timezone, when the discount was created. | | | - `created_at:>'2020-10-21T23:39:20Z'`
- `created_at: - `created_at:<='2024'` | | discount_class | string | Filter by the [discount - class](https://shopify.dev/docs/apps/build/discounts#discount-classes). | - - `order`
- `product`
- `shipping` | | - `discount_class:product` | + class](https://shopify.dev/docs/apps/build/discounts#discount-classes). + Supports multiple classes separated by commas (e.g., + discount_class:product,order). | - `order`
- `product`
- + `shipping` | | - `discount_class:product`
- + `discount_class:product,order` | | discount_type | string | Filter by the [discount - type](https://help.shopify.com/manual/discounts/discount-types). | - - `bogo`
- `fixed_amount`
- `free_shipping`
- `percentage` | | - - `type:fixed_amount` | + type](https://help.shopify.com/manual/discounts/discount-types). Supports + multiple types separated by commas (e.g., + discount_type:percentage,fixed_amount). | - `app`
- `bogo`
- + `fixed_amount`
- `free_shipping`
- `percentage` | | - + `discount_type:fixed_amount`
- `discount_type:percentage,fixed_amount` | | ends_at | time | Filter by the date and time, in the shop's timezone, when the discount ends. | | | - `ends_at:>'2020-10-21T23:39:20Z'`
- `ends_at: - `ends_at:<='2024'` | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | method | string | Filter by the [discount - method](https://shopify.dev/docs/apps/build/discounts#discount-methods). | - - `automatic`
- `code` | | - `method:code` | + method](https://shopify.dev/docs/apps/build/discounts#discount-methods). + Supports multiple methods separated by commas (e.g., method:code,automatic). + | - `automatic`
- `code` | | - `method:code`
- + `method:code,automatic` | | starts_at | time | Filter by the date and time, in the shop's timezone, when the discount becomes active and is available for customer use. | | | - `starts_at:>'2020-10-21T23:39:20Z'`
- `starts_at: - `starts_at:<='2024'` | - | status | string | Filter by the status of the discount. | - `active`
- - `expired`
- `scheduled` | | - `status:scheduled` | + | status | string | Filter by the status of the discount. Supports multiple + statuses separated by commas (e.g., status:active,scheduled). | - + `active`
- `expired`
- `scheduled` | | - `status:scheduled`
- + `status:active,scheduled` | | times_used | integer | Filter by the number of times the discount has been used. For example, if a "Buy 3, Get 1 Free" t-shirt discount is automatically applied in 200 transactions, then the discount has been used @@ -63686,10 +73119,11 @@ type Query { | title | string | Filter by the discount name that displays to merchants in the Shopify admin and to customers. | | | - `title:Black Friday Sale` | | type | string | Filter by the [discount - type](https://help.shopify.com/manual/discounts/discount-types). | - + type](https://help.shopify.com/manual/discounts/discount-types). Supports + multiple types separated by commas (e.g., type:percentage,fixed_amount). | - `all`
- `all_with_app`
- `app`
- `bxgy`
- `fixed_amount`
- `free_shipping`
- `percentage` | | - - `type:percentage` | + `type:percentage`
- `type:percentage,fixed_amount` | | updated_at | time | Filter by the date and time, in the shop's timezone, when the discount was last updated. | | | - `updated_at:>'2020-10-21T23:39:20Z'`
- `updated_at: - @@ -63708,7 +73142,7 @@ type Query { ): DiscountNodeConnection! """ - The total number of discounts for the shop. Limited to a maximum of 10000. + The total number of discounts for the shop. Limited to a maximum of 10000 by default. """ discountNodesCount( """ @@ -63721,32 +73155,44 @@ type Query { | combines_with | string | Filter by the [Shopify Functions discount classes](https://shopify.dev/docs/apps/build/discounts#discount-classes) that the [discount type](https://shopify.dev/docs/api/admin-graphql/latest/queries/discountnodes#argument-query-filter-discount_type) - can combine with. | - `order_discounts`
- `product_discounts`
- - `shipping_discounts` | | - `combines_with:product_discounts` | + can combine with. Supports multiple values separated by commas (e.g., + combines_with:product_discounts,order_discounts). | - `order_discounts`
+ - `product_discounts`
- `shipping_discounts` | | - + `combines_with:product_discounts`
- + `combines_with:product_discounts,order_discounts` | | created_at | time | Filter by the date and time, in the shop's timezone, when the discount was created. | | | - `created_at:>'2020-10-21T23:39:20Z'`
- `created_at: - `created_at:<='2024'` | | discount_class | string | Filter by the [discount - class](https://shopify.dev/docs/apps/build/discounts#discount-classes). | - - `order`
- `product`
- `shipping` | | - `discount_class:product` | + class](https://shopify.dev/docs/apps/build/discounts#discount-classes). + Supports multiple classes separated by commas (e.g., + discount_class:product,order). | - `order`
- `product`
- + `shipping` | | - `discount_class:product`
- + `discount_class:product,order` | | discount_type | string | Filter by the [discount - type](https://help.shopify.com/manual/discounts/discount-types). | - - `bogo`
- `fixed_amount`
- `free_shipping`
- `percentage` | | - - `type:fixed_amount` | + type](https://help.shopify.com/manual/discounts/discount-types). Supports + multiple types separated by commas (e.g., + discount_type:percentage,fixed_amount). | - `app`
- `bogo`
- + `fixed_amount`
- `free_shipping`
- `percentage` | | - + `discount_type:fixed_amount`
- `discount_type:percentage,fixed_amount` | | ends_at | time | Filter by the date and time, in the shop's timezone, when the discount ends. | | | - `ends_at:>'2020-10-21T23:39:20Z'`
- `ends_at: - `ends_at:<='2024'` | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | method | string | Filter by the [discount - method](https://shopify.dev/docs/apps/build/discounts#discount-methods). | - - `automatic`
- `code` | | - `method:code` | + method](https://shopify.dev/docs/apps/build/discounts#discount-methods). + Supports multiple methods separated by commas (e.g., method:code,automatic). + | - `automatic`
- `code` | | - `method:code`
- + `method:code,automatic` | | starts_at | time | Filter by the date and time, in the shop's timezone, when the discount becomes active and is available for customer use. | | | - `starts_at:>'2020-10-21T23:39:20Z'`
- `starts_at: - `starts_at:<='2024'` | - | status | string | Filter by the status of the discount. | - `active`
- - `expired`
- `scheduled` | | - `status:scheduled` | + | status | string | Filter by the status of the discount. Supports multiple + statuses separated by commas (e.g., status:active,scheduled). | - + `active`
- `expired`
- `scheduled` | | - `status:scheduled`
- + `status:active,scheduled` | | times_used | integer | Filter by the number of times the discount has been used. For example, if a "Buy 3, Get 1 Free" t-shirt discount is automatically applied in 200 transactions, then the discount has been used @@ -63756,10 +73202,11 @@ type Query { | title | string | Filter by the discount name that displays to merchants in the Shopify admin and to customers. | | | - `title:Black Friday Sale` | | type | string | Filter by the [discount - type](https://help.shopify.com/manual/discounts/discount-types). | - + type](https://help.shopify.com/manual/discounts/discount-types). Supports + multiple types separated by commas (e.g., type:percentage,fixed_amount). | - `all`
- `all_with_app`
- `app`
- `bxgy`
- `fixed_amount`
- `free_shipping`
- `percentage` | | - - `type:percentage` | + `type:percentage`
- `type:percentage,fixed_amount` | | updated_at | time | Filter by the date and time, in the shop's timezone, when the discount was last updated. | | | - `updated_at:>'2020-10-21T23:39:20Z'`
- `updated_at: - @@ -63776,9 +73223,14 @@ type Query { Refer to the [`SavedSearch`](https://shopify.dev/api/admin-graphql/latest/objects/savedsearch) object. """ savedSearchId: ID + + """ + The upper bound on count value before returning a result. Use `null` to have no limit. + """ + limit: Int = 10000 ): Count - """Returns a bulk code creation resource by ID.""" + """Returns a `DiscountRedeemCodeBulkCreation` resource by ID.""" discountRedeemCodeBulkCreation( """The ID of the `DiscountRedeemCodeBulkCreation` to return.""" id: ID! @@ -63830,13 +73282,13 @@ type Query { query: String ): SavedSearchConnection! - """Returns dispute details based on ID.""" + """Returns a `ShopifyPaymentsDispute` resource by ID.""" dispute( """The ID of the `ShopifyPaymentsDispute` to return.""" id: ID! ): ShopifyPaymentsDispute - """Returns dispute evidence details based on ID.""" + """Returns a `ShopifyPaymentsDisputeEvidence` resource by ID.""" disputeEvidence( """The ID of the `ShopifyPaymentsDisputeEvidence` to return.""" id: ID! @@ -63881,18 +73333,66 @@ type Query { query: String ): ShopifyPaymentsDisputeConnection! - """Lookup a Domain by ID.""" + """Returns a `Domain` resource by ID.""" domain( """The ID of the `Domain` to return.""" id: ID! ): Domain - """Returns a DraftOrder resource by ID.""" + """ + Retrieves a [draft order](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrder) by its ID. + A draft order is an order created by a merchant on behalf of their + customers. Draft orders contain all necessary order details (products, pricing, customer information) + but require payment to be accepted before they can be converted into + [completed orders](https://shopify.dev/docs/api/admin-graphql/latest/mutations/draftOrderComplete). + + Use the `draftOrder` query to retrieve information associated with the following workflows: + + - Creating orders for phone, in-person, or chat sales + - Sending invoices to customers with secure checkout links + - Managing custom items and additional costs + - Selling products at discount or wholesale rates + - Processing pre-orders and saving drafts for later completion + + A draft order is associated with a + [customer](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer) + and contains multiple [line items](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrderLineItem). + Each draft order has a [status](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrder#field-DraftOrder.fields.status), + which indicates its progress through the sales workflow. + """ draftOrder( """The ID of the `DraftOrder` to return.""" id: ID! ): DraftOrder + """ + Available delivery options for a [`DraftOrder`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DraftOrder) + based on the provided input. The query returns shipping rates, local delivery + rates, and pickup locations that merchants can choose from when creating draft orders. + + Accepts draft order details including [`LineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItem) objects, [`MailingAddress`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MailingAddress) + for shipping, and discounts to determine which delivery methods are available. + Pagination parameters control the number of local pickup options returned. + """ + draftOrderAvailableDeliveryOptions( + """The fields for the draft order.""" + input: DraftOrderAvailableDeliveryOptionsInput! + + """The search term for the delivery options.""" + search: String + + """The offset for the local pickup options.""" + localPickupFrom: Int + + """The number of local pickup options required.""" + localPickupCount: Int + + """ + Unique token used to trace execution and help optimize the calculation. + """ + sessionToken: String + ): DraftOrderAvailableDeliveryOptions! + """List of the shop's draft order saved searches.""" draftOrderSavedSearches( """ @@ -63919,7 +73419,7 @@ type Query { reverse: Boolean = false ): SavedSearchConnection! - """Returns a DraftOrderTag resource by ID.""" + """Returns a `DraftOrderTag` resource by ID.""" draftOrderTag( """The ID of the `DraftOrderTag` to return.""" id: ID! @@ -63982,13 +73482,68 @@ type Query { savedSearchId: ID ): DraftOrderConnection! - """Get a single event by its id.""" + """ + Returns the number of draft orders that match the query. Limited to a maximum of 10000 by default. + """ + draftOrdersCount( + """ + A filter made up of terms, connectives, modifiers, and comparators. + | name | type | description | acceptable_values | default_value | example_use | + | ---- | ---- | ---- | ---- | ---- | ---- | + | default | string | Filter by a case-insensitive search of multiple fields + in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | + | created_at | time | + | customer_id | id | + | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | + | ids | string | + | source | string | + | status | string | + | tag | string | + | updated_at | time | + You can apply one or more filters to a query. Learn more about [Shopify API + search syntax](https://shopify.dev/api/usage/search-syntax). + + """ + query: String + + """ + The ID of an existing saved search. + The search’s query string is used as the query argument. + Refer to the [`SavedSearch`](https://shopify.dev/api/admin-graphql/latest/objects/savedsearch) object. + """ + savedSearchId: ID + + """ + The upper bound on count value before returning a result. Use `null` to have no limit. + """ + limit: Int = 10000 + ): Count + + """ + Retrieves a single event by ID. Events chronicle activities in your store such + as resource creation, updates, or staff comments. The query returns an + [`Event`](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/Event) + interface of type [`BasicEvent`](https://shopify.dev/docs/api/admin-graphql/latest/objects/BasicEvent) or [`CommentEvent`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CommentEvent). + """ event( """The ID of the event.""" id: ID! ): Event - """The paginated list of events associated with the store.""" + """ + A paginated list of events that chronicle activities in the store. + [`Event`](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/Event) + is an interface implemented by types such as [`BasicEvent`](https://shopify.dev/docs/api/admin-graphql/latest/objects/BasicEvent) and [`CommentEvent`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CommentEvent) + that track actions such as creating + [`Article`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Article) + objects, fulfilling + [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) + objects, adding + [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) + objects, or staff comments on timelines. + + The query supports filtering and sorting to help you find specific events or audit store activity over time. + """ events( """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). @@ -64027,8 +73582,9 @@ type Query { | comments | boolean | Whether or not to include [comment-events](https://shopify.dev/api/admin-graphql/latest/objects/CommentEvent) in your search, passing `false` will exclude comment-events, any other value will include comment-events. | | | - `false`
- `true` | - | created_at | time | Filter by the date and time when the event happened. | - | | - `created_at:>2020-10-21`
- `created_at:2025-10-21`
- + `created_at: - `id:>=1234`
- `id:<=1234` | | subject_type | string | The resource type affected by this event. See [EventSubjectType](https://shopify.dev/api/admin-graphql/latest/enums/EventSubjectType) for possible values. | | | - `PRODUCT_VARIANT`
- `PRODUCT`
- `COLLECTION` | @@ -64049,8 +73605,9 @@ type Query { | comments | boolean | Whether or not to include [comment-events](https://shopify.dev/api/admin-graphql/latest/objects/CommentEvent) in your search, passing `false` will exclude comment-events, any other value will include comment-events. | | | - `false`
- `true` | - | created_at | time | Filter by the date and time when the event happened. | - | | - `created_at:>2020-10-21`
- `created_at:2025-10-21`
- + `created_at: - `id:>=1234`
- `id:<=1234` | | subject_type | string | The resource type affected by this event. See [EventSubjectType](https://shopify.dev/api/admin-graphql/latest/enums/EventSubjectType) for possible values. | | | - `PRODUCT_VARIANT`
- `PRODUCT`
- `COLLECTION` | @@ -64087,7 +73644,25 @@ type Query { reverse: Boolean = false ): SavedSearchConnection! - """Returns a paginated list of files that have been uploaded to Shopify.""" + """ + Retrieves a paginated list of files that have been uploaded to a Shopify store. Files represent digital assets + that merchants can upload to their store for various purposes including product images, marketing materials, + documents, and brand assets. + + Use the `files` query to retrieve information associated with the following workflows: + + - [Managing product media and images](https://shopify.dev/docs/apps/build/online-store/product-media) + - [Theme development and asset management](https://shopify.dev/docs/storefronts/themes/store/success/brand-assets) + - Brand asset management and [checkout branding](https://shopify.dev/docs/apps/build/checkout/styling/add-favicon) + + Files can include multiple [content types](https://shopify.dev/docs/api/admin-graphql/latest/enums/FileContentType), + such as images, videos, 3D models, and generic files. Each file has + properties like dimensions, file size, alt text for accessibility, and upload status. Files can be filtered + by [media type](https://shopify.dev/docs/api/admin-graphql/latest/enums/MediaContentType) and can be associated with + [products](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product), + [themes](https://shopify.dev/docs/api/admin-graphql/latest/objects/OnlineStoreTheme), + and other store resources. + """ files( """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). @@ -64155,7 +73730,17 @@ type Query { """ financeKycInformation: FinanceKycInformation - """Returns a Fulfillment resource by ID.""" + """ + Retrieves a [`Fulfillment`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Fulfillment) by its ID. A fulfillment is a record that the merchant has completed their + work required for one or more line items in an + [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order). It + includes tracking information, [`LineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItem) + objects, and the status of the fulfillment. + + Use this query to track the progress of shipped items, view tracking details, + or check [fulfillment events](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentEvent) + for example when a package is out for delivery or delivered. + """ fulfillment( """The ID of the Fulfillment to return.""" id: ID! @@ -64164,7 +73749,7 @@ type Query { """The fulfillment constraint rules that belong to a shop.""" fulfillmentConstraintRules: [FulfillmentConstraintRule!]! - """Returns a Fulfillment order resource by ID.""" + """Returns a `FulfillmentOrder` resource by ID.""" fulfillmentOrder( """The ID of the `FulfillmentOrder` to return.""" id: ID! @@ -64233,13 +73818,31 @@ type Query { query: String ): FulfillmentOrderConnection! - """Returns a FulfillmentService resource by ID.""" + """ + Returns a [`FulfillmentService`](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentService) by its ID. The service can manage inventory, process fulfillment requests, and + provide tracking details through callback endpoints or directly calling + Shopify's APIs. + + When you register a fulfillment service, Shopify automatically creates an associated [`Location`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location) + where fulfillment order's can be assigned to be processed. + + Learn more about [building fulfillment service apps](https://shopify.dev/docs/apps/build/orders-fulfillment/fulfillment-service-apps/build-for-fulfillment-services). + """ fulfillmentService( """The ID of the FulfillmentService to return.""" id: ID! ): FulfillmentService - """Returns a gift card resource by ID.""" + """ + Retrieves a [`GiftCard`](https://shopify.dev/docs/api/admin-graphql/latest/objects/GiftCard) by its ID. Returns the gift card's balance, transaction history, [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer) + information, and whether it's enabled. + + Additional fields include the initial value, expiration date, deactivation + timestamp (if applicable), and the associated + [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) if + the gift card was purchased by a customer through checkout. Gift cards that + merchants create manually won't have an associated order. + """ giftCard( """The ID of the GiftCard to return.""" id: ID! @@ -64248,7 +73851,15 @@ type Query { """The configuration for the shop's gift cards.""" giftCardConfiguration: GiftCardConfiguration! - """Returns a list of gift cards.""" + """ + Returns a paginated list of [`GiftCard`](https://shopify.dev/docs/api/admin-graphql/latest/objects/GiftCard) + objects issued for the shop. + + You can filter gift cards by attributes such as status, last characters of the + code, balance status, and other values using the [`query`](https://shopify.dev/docs/api/admin-graphql/latest/queries/giftCards#arguments-query) + parameter. You can also apply [`SavedSearch`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SavedSearch) + objects to filter results. + """ giftCards( """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). @@ -64283,7 +73894,9 @@ type Query { A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | - | default | string | Searched fields: code. | | | - `query=Bob Norman`
- `query=title:green hoodie` | + | default | string | Filter by a case-insensitive search of multiple fields + in a document, including gift card codes. | | | - + `query=a5bh6h64b329j4k7`
- `query=Bob Norman` | | balance_status | string | | - `full`
- `partial`
- `empty`
- `full_or_partial` | | - `balance_status:full` | | created_at | time | | | | - `created_at:>=2020-01-01T12:00:00Z` | @@ -64307,14 +73920,16 @@ type Query { ): GiftCardConnection! """ - The total number of gift cards issued for the shop. Limited to a maximum of 10000. + The total number of gift cards issued for the shop. Limited to a maximum of 10000 by default. """ giftCardsCount( """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | - | default | string | Searched fields: code. | | | - `query=Bob Norman`
- `query=title:green hoodie` | + | default | string | Filter by a case-insensitive search of multiple fields + in a document, including gift card codes. | | | - + `query=a5bh6h64b329j4k7`
- `query=Bob Norman` | | balance_status | string | | - `full`
- `partial`
- `empty`
- `full_or_partial` | | - `balance_status:full` | | created_at | time | | | | - `created_at:>=2020-01-01T12:00:00Z` | @@ -64336,6 +73951,11 @@ type Query { Refer to the [`SavedSearch`](https://shopify.dev/api/admin-graphql/latest/objects/savedsearch) object. """ savedSearchId: ID + + """ + The upper bound on count value before returning a result. Use `null` to have no limit. + """ + limit: Int = 10000 ): Count """ @@ -64401,9 +74021,100 @@ type Query { id: ID! ): InventoryLevel - """General inventory properties for the shop.""" + """ + Returns the shop's inventory configuration, including all inventory quantity + names. Quantity names represent different [inventory states](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps#inventory-states) + that merchants use to track inventory. + """ inventoryProperties: InventoryProperties! + """ + Retrieves an [`InventoryShipment`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryShipment) by ID. Returns tracking details, [`InventoryShipmentLineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryShipmentLineItem) + objects with quantities, and the shipment's current [`InventoryShipmentStatus`](https://shopify.dev/docs/api/admin-graphql/latest/enums/InventoryShipmentStatus). + """ + inventoryShipment( + """The ID of the inventory shipment.""" + id: ID! + ): InventoryShipment + + """ + Returns an [`InventoryTransfer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryTransfer) by ID. Inventory transfers track the movement of inventory between locations, + including origin and destination details, [`InventoryTransferLineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryTransferLineItem) + objects, quantities, and [`InventoryTransferStatus`](https://shopify.dev/docs/api/admin-graphql/latest/enums/InventoryTransferStatus) values. + """ + inventoryTransfer( + """The ID of the inventory transfer.""" + id: ID! + ): InventoryTransfer + + """ + Returns a paginated list of [`InventoryTransfer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryTransfer) + objects between locations. Transfers track the movement of [`InventoryItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryItem) + objects between [`Location`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location) objects. + + Supports filtering transfers using query parameters and sorting by various + criteria. Use the connection's edges to access transfer details including [`InventoryTransferLineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryTransferLineItem) + objects, quantities, and shipment status. + """ + inventoryTransfers( + """ + The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + first: Int + + """ + The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + after: String + + """ + The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + last: Int + + """ + The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + before: String + + """Reverse the order of the underlying list.""" + reverse: Boolean = false + + """ + Sort the underlying list using a key. If your query is slow or returns an + error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). + """ + sortKey: TransferSortKeys = ID + + """ + A filter made up of terms, connectives, modifiers, and comparators. + | name | type | description | acceptable_values | default_value | example_use | + | ---- | ---- | ---- | ---- | ---- | ---- | + | default | string | Filter by a case-insensitive search of multiple fields + in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | + | created_at | time | + | destination_id | id | + | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | + | origin_id | id | + | product_id | id | + | product_variant_id | id | + | source_id | id | + | status | string | + | tag | string | Filter objects by the `tag` field. | | | - `tag:my_tag` | + | tag_not | string | Filter by objects that don’t have the specified tag. | | | - `tag_not:my_tag` | + You can apply one or more filters to a query. Learn more about [Shopify API + search syntax](https://shopify.dev/api/usage/search-syntax). + + """ + query: String + + """ + The ID of a [saved search](https://shopify.dev/api/admin-graphql/latest/objects/savedsearch#field-id). + The search’s query string is used as the query argument. + """ + savedSearchId: ID + ): InventoryTransferConnection! + """ Returns a Job resource by ID. Used to check the status of internal jobs and any applicable changes. """ @@ -64412,7 +74123,14 @@ type Query { id: ID! ): Job - """Returns an inventory Location resource by ID.""" + """ + Retrieves a [`Location`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location) by its ID. Locations are physical places where merchants store inventory, such + as warehouses, retail stores, or fulfillment centers. + + Each location tracks inventory levels, fulfillment capabilities, and address + information. Active locations can stock products and fulfill orders based on + their configuration settings. + """ location( """ The ID of the location to return. If no ID is provided, the primary location of the Shop is returned. @@ -64426,7 +74144,20 @@ type Query { identifier: LocationIdentifierInput! ): Location - """Returns a list of active inventory locations.""" + """ + A paginated list of inventory locations where merchants can stock + [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) + items and fulfill + [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) items. + + Returns only active locations by default. Use the [`includeInactive`](https://shopify.dev/docs/api/admin-graphql/latest/queries/locations#arguments-includeInactive) + argument to retrieve deactivated locations that can no longer stock inventory + or fulfill orders. Use the [`includeLegacy`](https://shopify.dev/docs/api/admin-graphql/latest/queries/locations#arguments-includeLegacy) + argument to include locations that [`FulfillmentService`](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentService) + apps manage. Use the [`query`](https://shopify.dev/docs/api/admin-graphql/latest/queries/locations#arguments-query) + argument to filter by location attributes like name, address, and whether + local pickup is enabled. + """ locations( """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). @@ -64524,7 +74255,7 @@ type Query { ): LocationConnection! """ - Returns the count of locations for the given shop. Limited to a maximum of 10000. + Returns the count of locations for the given shop. Limited to a maximum of 10000 by default. """ locationsCount( """ @@ -64552,6 +74283,11 @@ type Query { """ query: String + + """ + The upper bound on count value before returning a result. Use `null` to have no limit. + """ + limit: Int = 10000 ): Count """Returns a list of fulfillment orders that are on hold.""" @@ -64593,7 +74329,7 @@ type Query { reverse: Boolean = false ): FulfillmentOrderConnection! - """Returns a market resource by ID.""" + """Returns a `Market` resource by ID.""" market( """The ID of the `Market` to return.""" id: ID! @@ -64742,13 +74478,13 @@ type Query { savedSearchId: ID ): MarketingActivityConnection! - """Returns a MarketingActivity resource by ID.""" + """Returns a `MarketingActivity` resource by ID.""" marketingActivity( """The ID of the `MarketingActivity` to return.""" id: ID! ): MarketingActivity - """Returns a MarketingEvent resource by ID.""" + """Returns a `MarketingEvent` resource by ID.""" marketingEvent( """The ID of the `MarketingEvent` to return.""" id: ID! @@ -64801,7 +74537,17 @@ type Query { query: String ): MarketingEventConnection! - """The markets configured for the shop.""" + """ + Returns a paginated list of + [`Market`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Market) + objects configured for the shop. Markets match buyers based on defined + conditions to deliver customized shopping experiences. + + Filter markets by [`MarketType`](https://shopify.dev/docs/api/admin-graphql/latest/enums/MarketType) and [`MarketStatus`](https://shopify.dev/docs/api/admin-graphql/latest/enums/MarketStatus), + search by name, and control sort order. Retrieve market configurations including [`MarketCurrencySettings`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MarketCurrencySettings), [`MarketWebPresence`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MarketWebPresence) objects, and [`MarketConditions`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MarketConditions). + + Learn more about [Shopify Markets](https://shopify.dev/docs/apps/build/markets). + """ markets( """Filters markets by type.""" type: MarketType = null @@ -64854,13 +74600,28 @@ type Query { query: String ): MarketConnection! - """Returns a Menu resource by ID.""" + """The resolved values for a buyer signal.""" + marketsResolvedValues( + """The buyer signal.""" + buyerSignal: BuyerSignalInput! + ): MarketsResolvedValues! + + """Returns a `Menu` resource by ID.""" menu( """The ID of the `Menu` to return.""" id: ID! ): Menu - """The shop's menus.""" + """ + Retrieves navigation menus. Menus organize content into hierarchical + navigation structures that merchants can display in the online store (for + example, in headers, footers, and sidebars) and customer accounts. + + Each [`Menu`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Menu) + contains a handle for identification, a title for display, and a collection of [`MenuItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MenuItem) + objects that can be nested up to 3 levels deep. Default menus have protected + handles that can't be modified. + """ menus( """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). @@ -64906,17 +74667,25 @@ type Query { query: String ): MenuConnection! - """Returns a metafield definition by identifier.""" + """ + Retrieves a [`MetafieldDefinition`](https://shopify.dev/docs/api/admin-graphql/current/objects/MetafieldDefinition) by its identifier. You can identify a definition using either its owner type, + namespace, and key, or its global ID. + + Use this query to inspect a definition's configuration, including its data + type, validations, access settings, and the count of [metafields](https://shopify.dev/docs/api/admin-graphql/current/objects/Metafield) using it. + """ metafieldDefinition( """The identifier of the MetafieldDefinition to return.""" identifier: MetafieldDefinitionIdentifierInput ): MetafieldDefinition """ - Each metafield definition has a type, which defines the type of information that it can store. - This type is enforced across every instance of the resource that owns the metafield definition. + The available metafield types that you can use when creating [`MetafieldDefinition`](https://shopify.dev/docs/api/admin-graphql/current/objects/MetafieldDefinition) + objects. Each type specifies what kind of data it stores (such as boolean, + color, date, or references), its category, and which validations it supports. - Refer to the [list of supported metafield types](https://shopify.dev/apps/metafields/types). + For a list of supported types and their capabilities, refer to the [metafield + types documentation](https://shopify.dev/docs/apps/metafields/types). """ metafieldDefinitionTypes: [MetafieldDefinitionType!]! @@ -64999,31 +74768,57 @@ type Query { query: String ): MetafieldDefinitionConnection! - """Retrieves a metaobject by ID.""" + """ + Retrieves a single [`Metaobject`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Metaobject) + by its global ID. [Metaobjects](https://shopify.dev/docs/apps/build/custom-data#what-are-metaobjects) + store custom structured data based on defined schemas. The returned metaobject + includes its fields with values, display name, handle, and associated metadata + like update timestamps and capabilities. + """ metaobject( """The ID of the metaobject to return.""" id: ID! ): Metaobject - """Retrieves a metaobject by handle.""" + """ + Retrieves a [`Metaobject`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Metaobject) by its handle and type. Handles are unique identifiers within a metaobject type. + """ metaobjectByHandle( """The identifier of the metaobject to return.""" handle: MetaobjectHandleInput! ): Metaobject - """Retrieves a metaobject definition by ID.""" + """ + Retrieves a [`MetaobjectDefinition`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetaobjectDefinition) by its global ID. Metaobject definitions provide the structure and fields for metaobjects. + + The definition includes field configurations, access settings, display + preferences, and capabilities that determine how [metaobjects](https://shopify.dev/docs/api/admin-graphql/latest/objects/Metaobject) + of this type behave across the Shopify platform. + """ metaobjectDefinition( """The ID of the metaobject to return.""" id: ID! ): MetaobjectDefinition - """Finds a metaobject definition by type.""" + """ + Retrieves a [`MetaobjectDefinition`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetaobjectDefinition) by its type. The type serves as a unique identifier that distinguishes one + metaobject definition from another. + """ metaobjectDefinitionByType( """The type of the metaobject definition to return.""" type: String! ): MetaobjectDefinition - """All metaobject definitions.""" + """ + Returns a paginated list of all [`MetaobjectDefinition`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetaobjectDefinition) + objects configured for the store. Metaobject definitions provide the schema + for creating custom data structures composed of individual fields. Each + definition specifies the field types, access permissions, and capabilities for [`Metaobject`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Metaobject) + entries of that type. Use this query to discover available metaobject types + before creating or querying metaobject entries. + + Learn more about [managing metaobjects](https://shopify.dev/docs/apps/build/custom-data/metaobjects/manage-metaobjects). + """ metaobjectDefinitions( """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). @@ -65049,7 +74844,18 @@ type Query { reverse: Boolean = false ): MetaobjectDefinitionConnection! - """All metaobjects for the shop.""" + """ + Returns a paginated list of [`Metaobject`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Metaobject) + entries for a specific type. Metaobjects are custom data structures that + extend Shopify's data model with merchant or app-specific data types. + + Filter results using the query parameter with a search syntax for metaobject + fields. Use `fields.{key}:{value}` to filter by field values, supporting any + field previously marked as filterable. The `sortKey` parameter accepts `id`, + `type`, `updated_at`, or `display_name` to control result ordering. + + Learn more about [querying metaobjects by field value](https://shopify.dev/docs/apps/build/custom-data/metafields/query-by-metafield-value). + """ metaobjects( """The type of the metaobjects to query.""" type: String! @@ -65087,6 +74893,10 @@ type Query { | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | display_name | string | + | fields.{key} | mixed | Filters metaobject entries by field value. Format: + `fields.{key}:{value}`. Only fields marked as filterable in the metaobject + definition can be used. Learn more about [querying metaobjects by field value](https://shopify.dev/apps/build/custom-data/metafields/query-by-metafield-value). + | | | - `fields.color:blue`
- `fields.on_sale:true` | | handle | string | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | updated_at | time | @@ -65155,7 +74965,31 @@ type Query { """The shop's online store channel.""" onlineStore: OnlineStore! - """Returns an Order resource by ID.""" + """ + The `order` query retrieves an + [order](https://shopify.dev/docs/api/admin-graphql/latest/objects/order) by + its ID. This query provides access to comprehensive order information such as + customer details, line items, financial data, and fulfillment status. + + Use the `order` query to retrieve information associated with the following processes: + + - [Order management and fulfillment](https://shopify.dev/docs/apps/build/orders-fulfillment/order-management-apps) + - [Financial reporting](https://help.shopify.com/manual/finance) + - [Customer purchase history](https://help.shopify.com/manual/reports-and-analytics/shopify-reports/report-types/default-reports/customers-reports) + and [transaction analysis](https://shopify.dev/docs/apps/launch/billing/view-charges-earnings#transaction-data-through-the-graphql-admin-api) + - [Shipping](https://shopify.dev/docs/apps/build/checkout/delivery-shipping) and [inventory management](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps) + + You can only retrieve the last 60 days worth of orders from a store by + default. If you want to access older orders, then you need to [request access to all + orders](https://shopify.dev/docs/api/usage/access-scopes#orders-permissions). + + For large order datasets, consider using [bulk operations](https://shopify.dev/docs/api/usage/bulk-operations/queries). + Bulk operations handle pagination automatically and allow you to retrieve data + asynchronously without being constrained by API rate limits. + Learn more about [creating orders](https://shopify.dev/docs/api/admin-graphql/latest/mutations/ordercreate) + and [building order management + apps](https://shopify.dev/docs/apps/build/orders-fulfillment). + """ order( """The ID of the `Order` to return.""" id: ID! @@ -65167,8 +75001,23 @@ type Query { identifier: OrderIdentifierInput! ): Order + """Returns a `OrderEditSession` resource by ID.""" + orderEditSession( + """The ID of the `OrderEditSession` to return.""" + id: ID! + ): OrderEditSession + """ - Returns a payment status by payment reference ID. Used to check the status of a deferred payment. + Retrieves the status of a deferred payment by its payment reference ID. Use + this query to monitor the processing status of payments that are initiated + through payment mutations. Deferred payments are called [payment + terms](https://shopify.dev/docs/apps/build/checkout/payments/payment-terms) in the API. + + The query returns an [`OrderPaymentStatus`](https://shopify.dev/docs/api/admin-graphql/latest/objects/OrderPaymentStatus) + object that includes the current payment status, any error messages, and + associated transactions. Poll this query to track [asynchronous payment + processing](https://shopify.dev/docs/apps/build/payments/processing) after + initiating a deferred payment. """ orderPaymentStatus( """Unique identifier returned by orderCreatePayment.""" @@ -65178,7 +75027,10 @@ type Query { orderId: ID! ): OrderPaymentStatus - """List of the shop's order saved searches.""" + """ + Returns [saved searches](https://shopify.dev/docs/api/admin-graphql/latest/objects/SavedSearch) for orders in the shop. Saved searches store search queries with their filters + and search terms. + """ orderSavedSearches( """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). @@ -65211,7 +75063,7 @@ type Query { Use the `orders` query to build reports, analyze sales performance, or automate fulfillment workflows. The `orders` query supports [pagination](https://shopify.dev/docs/api/usage/pagination-graphql), - [sorting](https://shopify.dev/docs/api/admin-graphql/latest/queries/orders#argument-sortkey), and [filtering](https://shopify.dev/docs/api/admin-graphql/latest/queries/orders#argument-query). + [sorting](https://shopify.dev/docs/api/admin-graphql/latest/queries/orders#arguments-sortKey), and [filtering](https://shopify.dev/docs/api/admin-graphql/latest/queries/orders#arguments-query). """ orders( """ @@ -65253,10 +75105,10 @@ type Query { abandoned cart conversions or troubleshoot checkout issues. The token references the cart that's associated with an order. | | | - `cart_token:abc123` | - | channel | string | Filter by the channel information [`handle`](https://shopify.dev/api/admin-graphql/latest/objects/ChannelInformation#field-channeldefinition) + | channel | string | Filter by the channel information [`handle`](https://shopify.dev/api/admin-graphql/latest/objects/ChannelInformation#field-ChannelInformation.fields.channelDefinition.handle) (`ChannelInformation.channelDefinition.handle`) field. | | | - `channel:web`
- `channel:web,pos` | - | channel_id | id | Filter by the channel [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Channel#field-id) + | channel_id | id | Filter by the channel [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Channel#field-Channel.fields.id) field. | | | - `channel_id:123` | | chargeback_status | string | Filter by the order's chargeback status. A chargeback occurs when a customer questions the legitimacy of a charge with @@ -65278,18 +75130,23 @@ type Query { card that was used to pay for the order. This filter matches only the last four digits of the card for heightened security. | | | - `credit_card_last4:1234` | - | customer_id | id | Filter orders by the customer [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Customer#field-id) + | current_total_price | float | Filter by the current total price of the + order in the shop currency, including any returns/refunds/removals. This + filter supports both exact values and ranges. | | | - + `current_total_price:10`
- `current_total_price:>=5.00 + current_total_price:<=20.99` | + | customer_id | id | Filter orders by the customer [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Customer#field-Customer.fields.id) field. | | | - `customer_id:123` | - | delivery_method | string | Filter by the delivery [`methodType`](https://shopify.dev/api/admin-graphql/2024-07/objects/DeliveryMethod#field-methodtype) + | delivery_method | string | Filter by the delivery [`methodType`](https://shopify.dev/api/admin-graphql/2024-07/objects/DeliveryMethod#field-DeliveryMethod.fields.methodType) field. | - `shipping`
- `pick-up`
- `retail`
- `local`
- `pickup-point`
- `none` | | - `delivery_method:shipping` | | discount_code | string | Filter by the case-insensitive discount code that - was applied to the order at checkout. Maximum characters: 255. | | | - - `discount_code:ABC123` | + was applied to the order at checkout. Limited to the first discount code + used on an order. Maximum characters: 255. | | | - `discount_code:ABC123` | | email | string | Filter by the email address that's associated with the order to provide customer support or analyze purchasing patterns. | | | - `email:example@shopify.com` | - | financial_status | string | Filter by the order [`displayFinancialStatus`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-displayfinancialstatus) + | financial_status | string | Filter by the order [`displayFinancialStatus`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-Order.fields.displayFinancialStatus) field. | - `paid`
- `pending`
- `authorized`
- `partially_paid`
- `partially_refunded`
- `refunded`
- `voided`
- `expired` | | - `financial_status:authorized` | @@ -65298,23 +75155,28 @@ type Query { disputes. | - `fully_protected`
- `partially_protected`
- `not_protected`
- `pending`
- `not_eligible`
- `not_available` | | - `fraud_protection_level:fully_protected` | - | fulfillment_location_id | id | Filter by the fulfillment location [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Fulfillment#field-location) + | fulfillment_location_id | id | Filter by the fulfillment location [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Fulfillment#field-Fulfillment.fields.location.id) (`Fulfillment.location.id`) field. | | | - `fulfillment_location_id:123` | - | fulfillment_status | string | Filter by the [`displayFulfillmentStatus`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-displayfulfillmentstatus) + | fulfillment_status | string | Filter by the [`displayFulfillmentStatus`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-Order.fields.displayFulfillmentStatus) field to prioritize shipments or monitor order processing. | - `unshipped`
- `shipped`
- `fulfilled`
- `partial`
- `scheduled`
- `on_hold`
- `unfulfilled`
- `request_declined` | | - `fulfillment_status:fulfilled` | - | gateway | string | Filter by the [`paymentGatewayNames`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-paymentgatewaynames) + | gateway | string | Filter by the [`paymentGatewayNames`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-Order.fields.paymentGatewayNames) field. Use this filter to find orders that were processed through specific payment providers like Shopify Payments, PayPal, or other custom payment gateways. | | | - `gateway:shopify_payments` | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | - | location_id | id | Filter by the location [`id`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location#field-id) + | location_id | id | Filter by the location [`id`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location#field-Location.fields.id) that's associated with the order to view and manage orders for specific locations. For POS orders, locations must be defined in the Shopify admin under **Settings** > **Locations**. If no ID is provided, then the primary location of the shop is returned. | | | - `location_id:123` | + | metafields.{namespace}.{key} | mixed | Filters resources by metafield + value. Format: `metafields.{namespace}.{key}:{value}`. Learn more about + [querying by metafield value](https://shopify.dev/apps/build/custom-data/metafields/query-by-metafield-value). + | | | - `metafields.custom.on_sale:true`
- + `metafields.product.material:"gid://shopify/Metaobject/43458085"` | | name | string | Filter by the order [`name`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-name) field. | | | - `name:1001-A` | | payment_id | string | Filter by the payment ID that's associated with the @@ -65323,26 +75185,26 @@ type Query { | payment_provider_id | id | Filter by the ID of the payment provider that's associated with the order to manage payment methods or troubleshoot transactions. | | | - `payment_provider_id:123` | - | po_number | string | Filter by the order [`poNumber`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-ponumber) + | po_number | string | Filter by the order [`poNumber`](https://shopify.dev/api/admin-graphql/latest/objects/order#field-Order.fields.poNumber) field. | | | - `po_number:P01001` | - | processed_at | time | Filter by the order [`processedAt`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-processedat) + | processed_at | time | Filter by the order [`processedAt`](https://shopify.dev/api/admin-graphql/latest/objects/order#field-Order.fields.processedAt) field. | | | - `processed_at:2021-01-01T00:00:00Z` | | reference_location_id | id | Filter by the ID of a location that's associated with the order, such as locations from fulfillments, refunds, or the shop's primary location. | | | - `reference_location_id:123` | - | return_status | string | Filter by the return status to monitor returns - processing and track which orders have active returns. | - - `return_requested`
- `in_progress`
- `inspection_complete`
- - `returned`
- `return_failed`
- `no_return` | | - + | return_status | string | Filter by the order's [`returnStatus`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-Order.fields.returnStatus) + to monitor returns processing and track which orders have active returns. | + - `return_requested`
- `in_progress`
- `inspection_complete`
+ - `returned`
- `return_failed`
- `no_return` | | - `return_status:in_progress` | - | risk_level | string | Filter by the order risk assessment [`riskLevel`](https://shopify.dev/api/admin-graphql/latest/objects/OrderRiskAssessment#field-risklevel) + | risk_level | string | Filter by the order risk assessment [`riskLevel`](https://shopify.dev/api/admin-graphql/latest/objects/OrderRiskAssessment#field-OrderRiskAssessment.fields.riskLevel) field. | - `high`
- `medium`
- `low`
- `none`
- `pending` | | - `risk_level:high` | | sales_channel | string | Filter by the [sales channel](https://shopify.dev/docs/apps/build/sales-channels) where the order was made to analyze performance or manage fulfillment processes. | | | - `sales_channel: some_sales_channel` | - | sku | string | Filter by the product variant [`sku`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-sku) + | sku | string | Filter by the product variant [`sku`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-ProductVariant.fields.sku) field. [Learn more about SKUs](https://help.shopify.com/manual/products/details/sku). | | | - `sku:ABC123` | | source_identifier | string | Filter by the ID of the order placed on the @@ -65364,9 +75226,14 @@ type Query { `subtotal_line_items_quantity:5..20` | | tag | string | Filter objects by the `tag` field. | | | - `tag:my_tag` | | tag_not | string | Filter by objects that don’t have the specified tag. | | | - `tag_not:my_tag` | - | test | boolean | Filter by test orders. Test orders are made using the [Shopify Bogus - Gateway](https://help.shopify.com/manual/checkout-settings/test-orders) or a - payment provider with test mode enabled. | | | - `test:true` | + | test | boolean | Filter by test orders. Test orders are made using the [Shopify Bogus Gateway](https://help.shopify.com/manual/checkout-settings/test-orders/payments-test-mode#bogus-gateway) + or a payment provider with test mode enabled. | | | - `test:true` | + | total_weight | string | Filter by the order weight. This filter supports + both exact values and ranges, and is to be used to filter orders by the + total weight of all items (excluding packaging). It takes a unit of + measurement as a suffix. It accepts the following units: g, kg, lb, oz. | | + | - `total_weight:10.5kg`
- `total_weight:>=5g total_weight:<=20g`
+ - `total_weight:.5 lb` | | updated_at | time | Filter by the date and time when the order was last updated in Shopify's system. | | | - `updated_at:2020-10-21T23:39:20Z`
- `updated_at: - `updated_at:<=2024` | @@ -65384,7 +75251,20 @@ type Query { ): OrderConnection! """ - Returns the count of orders for the given shop. Limited to a maximum of 10000. + Returns the number of + [orders](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) in + the shop. You can filter orders using [search + syntax](https://shopify.dev/docs/api/usage/search-syntax) or a [`SavedSearch`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SavedSearch), + and set a maximum count limit to control query performance. + + Use the [`query`](https://shopify.dev/docs/api/admin-graphql/latest/queries/ordersCount#arguments-query) argument to filter the count by criteria like order status, financial state, + or fulfillment status. The response includes both the count value and its + precision, indicating whether the count is exact or an estimate. + + > Note: + > The count is limited to 10,000 orders by default. Use the [`limit`](https://shopify.dev/docs/api/admin-graphql/latest/queries/ordersCount#arguments-limit) + argument to adjust this value, or pass `null` for no limit. Limited to a + maximum of 10000 by default. """ ordersCount( """ @@ -65397,10 +75277,10 @@ type Query { abandoned cart conversions or troubleshoot checkout issues. The token references the cart that's associated with an order. | | | - `cart_token:abc123` | - | channel | string | Filter by the channel information [`handle`](https://shopify.dev/api/admin-graphql/latest/objects/ChannelInformation#field-channeldefinition) + | channel | string | Filter by the channel information [`handle`](https://shopify.dev/api/admin-graphql/latest/objects/ChannelInformation#field-ChannelInformation.fields.channelDefinition.handle) (`ChannelInformation.channelDefinition.handle`) field. | | | - `channel:web`
- `channel:web,pos` | - | channel_id | id | Filter by the channel [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Channel#field-id) + | channel_id | id | Filter by the channel [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Channel#field-Channel.fields.id) field. | | | - `channel_id:123` | | chargeback_status | string | Filter by the order's chargeback status. A chargeback occurs when a customer questions the legitimacy of a charge with @@ -65422,18 +75302,23 @@ type Query { card that was used to pay for the order. This filter matches only the last four digits of the card for heightened security. | | | - `credit_card_last4:1234` | - | customer_id | id | Filter orders by the customer [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Customer#field-id) + | current_total_price | float | Filter by the current total price of the + order in the shop currency, including any returns/refunds/removals. This + filter supports both exact values and ranges. | | | - + `current_total_price:10`
- `current_total_price:>=5.00 + current_total_price:<=20.99` | + | customer_id | id | Filter orders by the customer [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Customer#field-Customer.fields.id) field. | | | - `customer_id:123` | - | delivery_method | string | Filter by the delivery [`methodType`](https://shopify.dev/api/admin-graphql/2024-07/objects/DeliveryMethod#field-methodtype) + | delivery_method | string | Filter by the delivery [`methodType`](https://shopify.dev/api/admin-graphql/2024-07/objects/DeliveryMethod#field-DeliveryMethod.fields.methodType) field. | - `shipping`
- `pick-up`
- `retail`
- `local`
- `pickup-point`
- `none` | | - `delivery_method:shipping` | | discount_code | string | Filter by the case-insensitive discount code that - was applied to the order at checkout. Maximum characters: 255. | | | - - `discount_code:ABC123` | + was applied to the order at checkout. Limited to the first discount code + used on an order. Maximum characters: 255. | | | - `discount_code:ABC123` | | email | string | Filter by the email address that's associated with the order to provide customer support or analyze purchasing patterns. | | | - `email:example@shopify.com` | - | financial_status | string | Filter by the order [`displayFinancialStatus`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-displayfinancialstatus) + | financial_status | string | Filter by the order [`displayFinancialStatus`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-Order.fields.displayFinancialStatus) field. | - `paid`
- `pending`
- `authorized`
- `partially_paid`
- `partially_refunded`
- `refunded`
- `voided`
- `expired` | | - `financial_status:authorized` | @@ -65442,23 +75327,28 @@ type Query { disputes. | - `fully_protected`
- `partially_protected`
- `not_protected`
- `pending`
- `not_eligible`
- `not_available` | | - `fraud_protection_level:fully_protected` | - | fulfillment_location_id | id | Filter by the fulfillment location [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Fulfillment#field-location) + | fulfillment_location_id | id | Filter by the fulfillment location [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Fulfillment#field-Fulfillment.fields.location.id) (`Fulfillment.location.id`) field. | | | - `fulfillment_location_id:123` | - | fulfillment_status | string | Filter by the [`displayFulfillmentStatus`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-displayfulfillmentstatus) + | fulfillment_status | string | Filter by the [`displayFulfillmentStatus`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-Order.fields.displayFulfillmentStatus) field to prioritize shipments or monitor order processing. | - `unshipped`
- `shipped`
- `fulfilled`
- `partial`
- `scheduled`
- `on_hold`
- `unfulfilled`
- `request_declined` | | - `fulfillment_status:fulfilled` | - | gateway | string | Filter by the [`paymentGatewayNames`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-paymentgatewaynames) + | gateway | string | Filter by the [`paymentGatewayNames`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-Order.fields.paymentGatewayNames) field. Use this filter to find orders that were processed through specific payment providers like Shopify Payments, PayPal, or other custom payment gateways. | | | - `gateway:shopify_payments` | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | - | location_id | id | Filter by the location [`id`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location#field-id) + | location_id | id | Filter by the location [`id`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location#field-Location.fields.id) that's associated with the order to view and manage orders for specific locations. For POS orders, locations must be defined in the Shopify admin under **Settings** > **Locations**. If no ID is provided, then the primary location of the shop is returned. | | | - `location_id:123` | + | metafields.{namespace}.{key} | mixed | Filters resources by metafield + value. Format: `metafields.{namespace}.{key}:{value}`. Learn more about + [querying by metafield value](https://shopify.dev/apps/build/custom-data/metafields/query-by-metafield-value). + | | | - `metafields.custom.on_sale:true`
- + `metafields.product.material:"gid://shopify/Metaobject/43458085"` | | name | string | Filter by the order [`name`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-name) field. | | | - `name:1001-A` | | payment_id | string | Filter by the payment ID that's associated with the @@ -65467,26 +75357,26 @@ type Query { | payment_provider_id | id | Filter by the ID of the payment provider that's associated with the order to manage payment methods or troubleshoot transactions. | | | - `payment_provider_id:123` | - | po_number | string | Filter by the order [`poNumber`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-ponumber) + | po_number | string | Filter by the order [`poNumber`](https://shopify.dev/api/admin-graphql/latest/objects/order#field-Order.fields.poNumber) field. | | | - `po_number:P01001` | - | processed_at | time | Filter by the order [`processedAt`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-processedat) + | processed_at | time | Filter by the order [`processedAt`](https://shopify.dev/api/admin-graphql/latest/objects/order#field-Order.fields.processedAt) field. | | | - `processed_at:2021-01-01T00:00:00Z` | | reference_location_id | id | Filter by the ID of a location that's associated with the order, such as locations from fulfillments, refunds, or the shop's primary location. | | | - `reference_location_id:123` | - | return_status | string | Filter by the return status to monitor returns - processing and track which orders have active returns. | - - `return_requested`
- `in_progress`
- `inspection_complete`
- - `returned`
- `return_failed`
- `no_return` | | - + | return_status | string | Filter by the order's [`returnStatus`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-Order.fields.returnStatus) + to monitor returns processing and track which orders have active returns. | + - `return_requested`
- `in_progress`
- `inspection_complete`
+ - `returned`
- `return_failed`
- `no_return` | | - `return_status:in_progress` | - | risk_level | string | Filter by the order risk assessment [`riskLevel`](https://shopify.dev/api/admin-graphql/latest/objects/OrderRiskAssessment#field-risklevel) + | risk_level | string | Filter by the order risk assessment [`riskLevel`](https://shopify.dev/api/admin-graphql/latest/objects/OrderRiskAssessment#field-OrderRiskAssessment.fields.riskLevel) field. | - `high`
- `medium`
- `low`
- `none`
- `pending` | | - `risk_level:high` | | sales_channel | string | Filter by the [sales channel](https://shopify.dev/docs/apps/build/sales-channels) where the order was made to analyze performance or manage fulfillment processes. | | | - `sales_channel: some_sales_channel` | - | sku | string | Filter by the product variant [`sku`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-sku) + | sku | string | Filter by the product variant [`sku`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-ProductVariant.fields.sku) field. [Learn more about SKUs](https://help.shopify.com/manual/products/details/sku). | | | - `sku:ABC123` | | source_identifier | string | Filter by the ID of the order placed on the @@ -65508,9 +75398,14 @@ type Query { `subtotal_line_items_quantity:5..20` | | tag | string | Filter objects by the `tag` field. | | | - `tag:my_tag` | | tag_not | string | Filter by objects that don’t have the specified tag. | | | - `tag_not:my_tag` | - | test | boolean | Filter by test orders. Test orders are made using the [Shopify Bogus - Gateway](https://help.shopify.com/manual/checkout-settings/test-orders) or a - payment provider with test mode enabled. | | | - `test:true` | + | test | boolean | Filter by test orders. Test orders are made using the [Shopify Bogus Gateway](https://help.shopify.com/manual/checkout-settings/test-orders/payments-test-mode#bogus-gateway) + or a payment provider with test mode enabled. | | | - `test:true` | + | total_weight | string | Filter by the order weight. This filter supports + both exact values and ranges, and is to be used to filter orders by the + total weight of all items (excluding packaging). It takes a unit of + measurement as a suffix. It accepts the following units: g, kg, lb, oz. | | + | - `total_weight:10.5kg`
- `total_weight:>=5g total_weight:<=20g`
+ - `total_weight:.5 lb` | | updated_at | time | Filter by the date and time when the order was last updated in Shopify's system. | | | - `updated_at:2020-10-21T23:39:20Z`
- `updated_at: - `updated_at:<=2024` | @@ -65527,17 +75422,28 @@ type Query { """ savedSearchId: ID - """The upper bound on count value before returning a result.""" - limit: Int + """ + The upper bound on count value before returning a result. Use `null` to have no limit. + """ + limit: Int = 10000 ): Count - """Returns a Page resource by ID.""" + """Returns a `Page` resource by ID.""" page( """The ID of the `Page` to return.""" id: ID! ): Page - """List of the shop's pages.""" + """ + A paginated list of pages from the online store. + [`Page`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Page) + objects are content pages that merchants create to provide information to + customers, such as "About Us", "Contact", or policy pages. + + The query supports filtering with a [search + query](https://shopify.dev/docs/api/usage/search-syntax) and sorting by + various criteria. Advanced filtering is available through saved searches using the [`savedSearchId`](https://shopify.dev/docs/api/admin-graphql/latest/queries/pages#arguments-savedSearchId) argument. + """ pages( """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). @@ -65600,8 +75506,13 @@ type Query { savedSearchId: ID ): PageConnection! - """Count of pages.""" - pagesCount: Count + """Count of pages. Limited to a maximum of 10000 by default.""" + pagesCount( + """ + The upper bound on count value before returning a result. Use `null` to have no limit. + """ + limit: Int = 10000 + ): Count """The payment customization.""" paymentCustomization( @@ -65657,7 +75568,21 @@ type Query { """The number of pendings orders. Limited to a maximum of 10000.""" pendingOrdersCount: Count - """Returns a price list resource by ID.""" + """Returns a `PointOfSaleDevice` resource by ID.""" + pointOfSaleDevice( + """The ID of the `PointOfSaleDevice` to return.""" + id: ID! + ): PointOfSaleDevice + + """ + Returns a [`PriceList`](https://shopify.dev/docs/api/admin-graphql/latest/objects/PriceList) by ID. You can use price lists to specify either fixed prices or adjusted + relative prices that override initial + [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) prices. + + Price lists enable contextual pricing for the [`Catalog`](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/Catalog) + they are associated to. Each price list can define fixed prices for specific [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) + objects or percentage-based adjustments relative to other prices. + """ priceList( """The ID of the `PriceList` to return.""" id: ID! @@ -65701,13 +75626,31 @@ type Query { """Privacy related settings for a shop.""" privacySettings: PrivacySettings! - """Returns a Product resource by ID.""" + """ + Retrieves a [product](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) by its ID. + A product is an item that a merchant can sell in their store. + + Use the `product` query when you need to: + + - Access essential product data (for example, title, description, price, images, SEO metadata, and metafields). + - Build product detail pages and manage inventory. + - Handle international sales with localized pricing and content. + - Manage product variants and product options. + + Learn more about working with [Shopify's product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/product-model-components). + """ product( """The ID of the `Product` to return.""" id: ID! ): Product - """Return a product by its handle.""" + """ + Retrieves a [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) + using its handle. A handle is a unique, URL-friendly string that Shopify + automatically generates from the product's title. + + Returns `null` if no product exists with the specified handle. + """ productByHandle( """ A unique string that identifies the product. Handles are automatically @@ -65791,7 +75734,41 @@ type Query { ): ProductOperation """ - Returns the product resource feedback for the currently authenticated app. + Retrieves product resource feedback for the currently authenticated app, + providing insights into product data quality, completeness, and optimization + opportunities. This feedback helps apps guide merchants toward better product + listings and improved store performance. + + For example, an SEO app might receive feedback indicating that certain + products lack meta descriptions or have suboptimal titles, enabling the app to + provide specific recommendations for improving search visibility and + conversion rates. + + Use `ProductResourceFeedback` to: + - Display product optimization recommendations to merchants + - Identify data quality issues across product catalogs + - Build product improvement workflows and guided experiences + - Track progress on product listing completeness and quality + - Implement automated product auditing and scoring systems + - Generate reports on catalog health and optimization opportunities + - Provide contextual suggestions within product editing interfaces + + The feedback system evaluates products against various criteria including SEO + best practices, required fields, media quality, and sales channel + requirements. Each feedback item includes specific details about the issue, + suggested improvements, and priority levels. + + Feedback is app-specific and reflects the particular focus of your application + - marketing apps receive different insights than inventory management apps. + The system continuously updates as merchants make changes, providing real-time + guidance for product optimization. + + This resource is particularly valuable for apps that help merchants improve + their product listings, optimize for search engines, or enhance their overall + catalog quality. The feedback enables proactive suggestions rather than + reactive problem-solving. + + Learn more about [product optimization](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product). """ productResourceFeedback( """The product associated with the resource feedback.""" @@ -65825,7 +75802,12 @@ type Query { ): SavedSearchConnection! """ - A list of tags that have been added to products. + Returns tags added to + [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) + objects in the shop. Provides a paginated list of tag strings. + + The maximum page size is 5000 tags per request. Tags are returned as simple + strings through a [`StringConnection`](https://shopify.dev/docs/api/admin-graphql/latest/objects/StringConnection). The maximum page size is 5000. """ productTags( @@ -65854,7 +75836,9 @@ type Query { ): StringConnection """ - The list of types added to products. + Returns a paginated list of product types assigned to + [products](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) + in the store. The maximum page size is 1000. The maximum page size is 1000. """ productTypes( @@ -65882,7 +75866,24 @@ type Query { reverse: Boolean = false ): StringConnection - """Returns a ProductVariant resource by ID.""" + """ + Retrieves a [product variant](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) by its ID. + + A product variant is a specific version of a + [product](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) that comes in more than + one [option](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductOption), + such as size or color. For example, if a merchant sells t-shirts with options for size and color, + then a small, blue t-shirt would be one product variant and a large, blue t-shirt would be another. + + Use the `productVariant` query when you need to: + + - Access essential product variant data (for example, title, price, image, and metafields). + - Build product detail pages and manage inventory. + - Handle international sales with localized pricing and content. + - Manage product variants that are part of a bundle or selling plan. + + Learn more about working with [Shopify's product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/product-model-components). + """ productVariant( """The ID of the `ProductVariant` to return.""" id: ID! @@ -65894,7 +75895,34 @@ type Query { identifier: ProductVariantIdentifierInput! ): ProductVariant - """Returns a list of product variants.""" + """ + Retrieves a list of [product variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) + associated with a [product](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product). + + A product variant is a specific version of a product that comes in more than + one [option](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductOption), + such as size or color. For example, if a merchant sells t-shirts with options for size and color, + then a small, blue t-shirt would be one product variant and a large, blue t-shirt would be another. + + Use the `productVariants` query when you need to: + + - Search for product variants by attributes such as SKU, barcode, or inventory quantity. + - Filter product variants by attributes, such as whether they're gift cards or have custom metafields. + - Fetch product variants for bulk operations, such as updating prices or inventory. + - Preload data for product variants, such as inventory items, selected options, or associated products. + + The `productVariants` query supports [pagination](https://shopify.dev/docs/api/usage/pagination-graphql) + to handle large product catalogs and [saved searches](https://shopify.dev/docs/api/admin-graphql/latest/queries/productVariants#arguments-savedSearchId) + for frequently used product variant queries. + + The `productVariants` query returns product variants with their associated metadata, including: + + - Basic product variant information (for example, title, SKU, barcode, price, and inventory) + - Media attachments (for example, images and videos) + - Associated products, selling plans, bundles, and metafields + + Learn more about working with [Shopify's product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/product-model-components). + """ productVariants( """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). @@ -65966,32 +75994,59 @@ type Query { field. | | | - `product_id:8474977763649` | | product_ids | string | Filter by a comma-separated list of product [IDs](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-id). | | | - `product_ids:8474977763649,8474977796417` | - | product_publication_status | string | Filter by the publishable status of - the resource on a channel, such as the online store. The value is a - composite of the [channel `app` - ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) - (`Channel.app.id`) and one of the valid values. | - `approved`
- - `rejected`
- `needs_action`
- `awaiting_review`
- - `published`
- `demoted`
- `scheduled`
- - `provisionally_published` | | - `publishable_status:189769876-approved` | + | product_publication_status | string | Filter by channel approval process + status of the resource on a channel, such as the online store. The value is + a composite of the [channel `app` ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#field-Channel.fields.app) + (`Channel.app.id`) and one of the valid values. For simple visibility checks, use [published_status](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-publishable_status) + instead. | - `* {channel_app_id}-approved`
- `* + {channel_app_id}-rejected`
- `* {channel_app_id}-needs_action`
- + `* {channel_app_id}-awaiting_review`
- `* + {channel_app_id}-published`
- `* {channel_app_id}-demoted`
- `* + {channel_app_id}-scheduled`
- `* + {channel_app_id}-provisionally_published` | | - + `product_publication_status:189769876-approved` | | product_status | string | Filter by a comma-separated list of product [statuses](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-status). | | | - `product_status:ACTIVE,DRAFT` | | product_type | string | Filter by the product type that's associated with the product variants. | | | - `product_type:snowboard` | - | publishable_status | string | Filter by the publishable status of the - resource on a channel, such as the online store. The value is a composite of - either the [channel `app` + | publishable_status | string | **Deprecated:** This parameter is deprecated + as of 2025-12 and will be removed in a future API version. Use [published_status](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-publishable_status) + for visibility checks. Filter by the publishable status of the resource on a + channel. The value is a composite of the [channel `app` + ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) + (`Channel.app.id`) and one of the valid status values. | - `* + {channel_app_id}-unset`
- `* {channel_app_id}-pending`
- `* + {channel_app_id}-approved`
- `* {channel_app_id}-not_approved` | | - + `publishable_status:580111-unset`
- `publishable_status:580111-pending` | + | published_status | string | Filter resources by their visibility and + publication state on a channel. Online store channel filtering: - + `online_store_channel`: Returns all resources in the online store channel, + regardless of publication status. - `published`/`visible`: Returns resources + that are published to the online store. - `unpublished`: Returns resources + that are not published to the online store. Channel-specific filtering using + a channel ID, channel handle, [channel `app` ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) - (`Channel.app.id`) or [channel `name`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Channel#field-name) - and one of the valid values. | - `online_store_channel`
- - `published`
- `unpublished`
- `visible`
- `unavailable`
- - `hidden`
- `intended`
- `visible` | | - - `publishable_status:published`
- - `publishable_status:189769876:visible`
- - `publishable_status:pos:hidden` | - | published_status | string | Filter by the published status of the resource - on a channel, such as the online store. | - `unset`
- `pending`
- - `approved`
- `not approved` | | - `published_status:approved` | + (`Channel.app.id`), or app handle with suffixes: - + `{id_or_handle}-published`: Returns resources published to the specified + channel. - `{id_or_handle}-visible`: Same as `{id_or_handle}-published` + (kept for backwards compatibility). - `{id_or_handle}-intended`: Returns + resources added to the channel but not yet published. - + `{id_or_handle}-hidden`: Returns resources not added to the channel or not + published. Other: - `unavailable`: Returns resources not published to any + channel. | - `online_store_channel`
- `published`
- `visible`
+ - `unpublished`
- `* {channel_id_or_handle}-published`
- `* + {channel_id_or_handle}-visible`
- `* + {channel_id_or_handle}-intended`
- `* + {channel_id_or_handle}-hidden`
- `* + {channel_app_id_or_handle}-published`
- `* + {channel_app_id_or_handle}-visible`
- `* + {channel_app_id_or_handle}-intended`
- `* + {channel_app_id_or_handle}-hidden`
- `unavailable` | | - + `published_status:online_store_channel`
- + `published_status:published`
- `published_status:580111-published`
+ - `published_status:580111-hidden`
- + `published_status:my-channel-handle-published`
- + `published_status:unavailable` | | requires_components | boolean | Filter by whether the product variant can only be purchased with components. [Learn more](https://shopify.dev/apps/build/product-merchandising/bundles#store-eligibility). | | | - `requires_components:true` | @@ -66025,10 +76080,15 @@ type Query { savedSearchId: ID ): ProductVariantConnection! - """Count of product variants.""" + """Count of product variants. Limited to a maximum of 10000 by default.""" productVariantsCount( """No supported search fields.""" query: String + + """ + The upper bound on count value before returning a result. Use `null` to have no limit. + """ + limit: Int = 10000 ): Count """ @@ -66060,7 +76120,33 @@ type Query { reverse: Boolean = false ): StringConnection - """Returns a list of products.""" + """ + Retrieves a list of [products](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) + in a store. Products are the items that merchants can sell in their store. + + Use the `products` query when you need to: + + - Build a browsing interface for a product catalog. + - Create product + [searching](https://shopify.dev/docs/api/usage/search-syntax), [sorting](https://shopify.dev/docs/api/admin-graphql/latest/queries/products#arguments-sortKey), and [filtering](https://shopify.dev/docs/api/admin-graphql/latest/queries/products#arguments-query) experiences. + - Implement product recommendations. + - Sync product data with external systems. + + The `products` query supports [pagination](https://shopify.dev/docs/api/usage/pagination-graphql) + to handle large product catalogs and [saved searches](https://shopify.dev/docs/api/admin-graphql/latest/queries/products#arguments-savedSearchId) + for frequently used product queries. + + The `products` query returns products with their associated metadata, including: + + - Basic product information (for example, title, description, vendor, and type) + - Product options and product variants, with their prices and inventory + - Media attachments (for example, images and videos) + - SEO metadata + - Product categories and tags + - Product availability and publishing statuses + + Learn more about working with [Shopify's product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/product-model-components). + """ products( """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). @@ -66137,6 +76223,11 @@ type Query { | is_price_reduced | boolean | Filter by products that have a reduced price. For more information, refer to the [`CollectionRule`](https://shopify.dev/api/admin-graphql/latest/objects/CollectionRule) object. | | | - `is_price_reduced:true` | + | metafields.{namespace}.{key} | mixed | Filters resources by metafield + value. Format: `metafields.{namespace}.{key}:{value}`. Learn more about + [querying by metafield value](https://shopify.dev/apps/build/custom-data/metafields/query-by-metafield-value). + | | | - `metafields.custom.on_sale:true`
- + `metafields.product.material:"gid://shopify/Metaobject/43458085"` | | out_of_stock_somewhere | boolean | Filter by products that are out of stock in at least one location. | | | - `out_of_stock_somewhere:true` | | price | bigdecimal | Filter by the product variant [`price`](https://shopify.dev/api/admin-graphql/latest/objects/Productvariant#field-price) @@ -66144,38 +76235,65 @@ type Query { | product_configuration_owner | string | Filter by the app [`id`](https://shopify.dev/api/admin-graphql/latest/objects/App#field-id) field. | | | - `product_configuration_owner:10001` | - | product_publication_status | string | Filter by the publishable status of - the resource on a channel, such as the online store. The value is a - composite of the [channel `app` - ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) - (`Channel.app.id`) and one of the valid values. | - `approved`
- - `rejected`
- `needs_action`
- `awaiting_review`
- - `published`
- `demoted`
- `scheduled`
- - `provisionally_published` | | - `publishable_status:189769876-approved` | + | product_publication_status | string | Filter by channel approval process + status of the resource on a channel, such as the online store. The value is + a composite of the [channel `app` ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#field-Channel.fields.app) + (`Channel.app.id`) and one of the valid values. For simple visibility checks, use [published_status](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-publishable_status) + instead. | - `* {channel_app_id}-approved`
- `* + {channel_app_id}-rejected`
- `* {channel_app_id}-needs_action`
- + `* {channel_app_id}-awaiting_review`
- `* + {channel_app_id}-published`
- `* {channel_app_id}-demoted`
- `* + {channel_app_id}-scheduled`
- `* + {channel_app_id}-provisionally_published` | | - + `product_publication_status:189769876-approved` | | product_type | string | Filter by a comma-separated list of [product types](https://help.shopify.com/manual/products/details/product-type). | | | - `product_type:snowboard` | | publication_ids | string | Filter by a comma-separated list of publication IDs that are associated with the product. | | | - `publication_ids:184111530305,184111694145` | - | publishable_status | string | Filter by the publishable status of the - resource on a channel, such as the online store. The value is a composite of - either the [channel `app` + | publishable_status | string | **Deprecated:** This parameter is deprecated + as of 2025-12 and will be removed in a future API version. Use [published_status](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-publishable_status) + for visibility checks. Filter by the publishable status of the resource on a + channel. The value is a composite of the [channel `app` ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) - (`Channel.app.id`) or [channel `name`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Channel#field-name) - and one of the valid values. | - `online_store_channel`
- - `published`
- `unpublished`
- `visible`
- `unavailable`
- - `hidden`
- `intended`
- `visible` | | - - `publishable_status:published`
- - `publishable_status:189769876:visible`
- - `publishable_status:pos:hidden` | + (`Channel.app.id`) and one of the valid status values. | - `* + {channel_app_id}-unset`
- `* {channel_app_id}-pending`
- `* + {channel_app_id}-approved`
- `* {channel_app_id}-not_approved` | | - + `publishable_status:580111-unset`
- `publishable_status:580111-pending` | | published_at | time | Filter by the date and time when the product was published to the online store and other sales channels. | | | - `published_at:>2020-10-21T23:39:20Z`
- `published_at: - `published_at:<=2024` | - | published_status | string | Filter by the published status of the resource - on a channel, such as the online store. | - `unset`
- `pending`
- - `approved`
- `not approved` | | - `published_status:approved` | + | published_status | string | Filter resources by their visibility and + publication state on a channel. Online store channel filtering: - + `online_store_channel`: Returns all resources in the online store channel, + regardless of publication status. - `published`/`visible`: Returns resources + that are published to the online store. - `unpublished`: Returns resources + that are not published to the online store. Channel-specific filtering using + a channel ID, channel handle, [channel `app` + ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) + (`Channel.app.id`), or app handle with suffixes: - + `{id_or_handle}-published`: Returns resources published to the specified + channel. - `{id_or_handle}-visible`: Same as `{id_or_handle}-published` + (kept for backwards compatibility). - `{id_or_handle}-intended`: Returns + resources added to the channel but not yet published. - + `{id_or_handle}-hidden`: Returns resources not added to the channel or not + published. Other: - `unavailable`: Returns resources not published to any + channel. | - `online_store_channel`
- `published`
- `visible`
+ - `unpublished`
- `* {channel_id_or_handle}-published`
- `* + {channel_id_or_handle}-visible`
- `* + {channel_id_or_handle}-intended`
- `* + {channel_id_or_handle}-hidden`
- `* + {channel_app_id_or_handle}-published`
- `* + {channel_app_id_or_handle}-visible`
- `* + {channel_app_id_or_handle}-intended`
- `* + {channel_app_id_or_handle}-hidden`
- `unavailable` | | - + `published_status:online_store_channel`
- + `published_status:published`
- `published_status:580111-published`
+ - `published_status:580111-hidden`
- + `published_status:my-channel-handle-published`
- + `published_status:unavailable` | | sku | string | Filter by the product variant [`sku`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-sku) field. [Learn more about SKUs](https://help.shopify.com/manual/products/details/sku). | | | - @@ -66183,8 +76301,8 @@ type Query { | status | string | Filter by a comma-separated list of statuses. You can use statuses to manage inventory. Shopify only displays products with an `ACTIVE` status in online stores, sales channels, and apps. | - - `ACTIVE`
- `ARCHIVED`
- `DRAFT` | `ACTIVE` | - - `status:ACTIVE,DRAFT` | + `active`
- `archived`
- `draft` | `active` | - + `status:active,draft` | | tag | string | Filter objects by the `tag` field. | | | - `tag:my_tag` | | tag_not | string | Filter by objects that don’t have the specified tag. | | | - `tag_not:my_tag` | | title | string | Filter by the product [`title`](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-title) @@ -66213,7 +76331,7 @@ type Query { savedSearchId: ID ): ProductConnection! - """Count of products.""" + """Count of products. Limited to a maximum of 10000 by default.""" productsCount( """ A filter made up of terms, connectives, modifiers, and comparators. @@ -66261,6 +76379,11 @@ type Query { | is_price_reduced | boolean | Filter by products that have a reduced price. For more information, refer to the [`CollectionRule`](https://shopify.dev/api/admin-graphql/latest/objects/CollectionRule) object. | | | - `is_price_reduced:true` | + | metafields.{namespace}.{key} | mixed | Filters resources by metafield + value. Format: `metafields.{namespace}.{key}:{value}`. Learn more about + [querying by metafield value](https://shopify.dev/apps/build/custom-data/metafields/query-by-metafield-value). + | | | - `metafields.custom.on_sale:true`
- + `metafields.product.material:"gid://shopify/Metaobject/43458085"` | | out_of_stock_somewhere | boolean | Filter by products that are out of stock in at least one location. | | | - `out_of_stock_somewhere:true` | | price | bigdecimal | Filter by the product variant [`price`](https://shopify.dev/api/admin-graphql/latest/objects/Productvariant#field-price) @@ -66268,38 +76391,65 @@ type Query { | product_configuration_owner | string | Filter by the app [`id`](https://shopify.dev/api/admin-graphql/latest/objects/App#field-id) field. | | | - `product_configuration_owner:10001` | - | product_publication_status | string | Filter by the publishable status of - the resource on a channel, such as the online store. The value is a - composite of the [channel `app` - ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) - (`Channel.app.id`) and one of the valid values. | - `approved`
- - `rejected`
- `needs_action`
- `awaiting_review`
- - `published`
- `demoted`
- `scheduled`
- - `provisionally_published` | | - `publishable_status:189769876-approved` | + | product_publication_status | string | Filter by channel approval process + status of the resource on a channel, such as the online store. The value is + a composite of the [channel `app` ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#field-Channel.fields.app) + (`Channel.app.id`) and one of the valid values. For simple visibility checks, use [published_status](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-publishable_status) + instead. | - `* {channel_app_id}-approved`
- `* + {channel_app_id}-rejected`
- `* {channel_app_id}-needs_action`
- + `* {channel_app_id}-awaiting_review`
- `* + {channel_app_id}-published`
- `* {channel_app_id}-demoted`
- `* + {channel_app_id}-scheduled`
- `* + {channel_app_id}-provisionally_published` | | - + `product_publication_status:189769876-approved` | | product_type | string | Filter by a comma-separated list of [product types](https://help.shopify.com/manual/products/details/product-type). | | | - `product_type:snowboard` | | publication_ids | string | Filter by a comma-separated list of publication IDs that are associated with the product. | | | - `publication_ids:184111530305,184111694145` | - | publishable_status | string | Filter by the publishable status of the - resource on a channel, such as the online store. The value is a composite of - either the [channel `app` + | publishable_status | string | **Deprecated:** This parameter is deprecated + as of 2025-12 and will be removed in a future API version. Use [published_status](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-publishable_status) + for visibility checks. Filter by the publishable status of the resource on a + channel. The value is a composite of the [channel `app` ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) - (`Channel.app.id`) or [channel `name`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Channel#field-name) - and one of the valid values. | - `online_store_channel`
- - `published`
- `unpublished`
- `visible`
- `unavailable`
- - `hidden`
- `intended`
- `visible` | | - - `publishable_status:published`
- - `publishable_status:189769876:visible`
- - `publishable_status:pos:hidden` | + (`Channel.app.id`) and one of the valid status values. | - `* + {channel_app_id}-unset`
- `* {channel_app_id}-pending`
- `* + {channel_app_id}-approved`
- `* {channel_app_id}-not_approved` | | - + `publishable_status:580111-unset`
- `publishable_status:580111-pending` | | published_at | time | Filter by the date and time when the product was published to the online store and other sales channels. | | | - `published_at:>2020-10-21T23:39:20Z`
- `published_at: - `published_at:<=2024` | - | published_status | string | Filter by the published status of the resource - on a channel, such as the online store. | - `unset`
- `pending`
- - `approved`
- `not approved` | | - `published_status:approved` | + | published_status | string | Filter resources by their visibility and + publication state on a channel. Online store channel filtering: - + `online_store_channel`: Returns all resources in the online store channel, + regardless of publication status. - `published`/`visible`: Returns resources + that are published to the online store. - `unpublished`: Returns resources + that are not published to the online store. Channel-specific filtering using + a channel ID, channel handle, [channel `app` + ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) + (`Channel.app.id`), or app handle with suffixes: - + `{id_or_handle}-published`: Returns resources published to the specified + channel. - `{id_or_handle}-visible`: Same as `{id_or_handle}-published` + (kept for backwards compatibility). - `{id_or_handle}-intended`: Returns + resources added to the channel but not yet published. - + `{id_or_handle}-hidden`: Returns resources not added to the channel or not + published. Other: - `unavailable`: Returns resources not published to any + channel. | - `online_store_channel`
- `published`
- `visible`
+ - `unpublished`
- `* {channel_id_or_handle}-published`
- `* + {channel_id_or_handle}-visible`
- `* + {channel_id_or_handle}-intended`
- `* + {channel_id_or_handle}-hidden`
- `* + {channel_app_id_or_handle}-published`
- `* + {channel_app_id_or_handle}-visible`
- `* + {channel_app_id_or_handle}-intended`
- `* + {channel_app_id_or_handle}-hidden`
- `unavailable` | | - + `published_status:online_store_channel`
- + `published_status:published`
- `published_status:580111-published`
+ - `published_status:580111-hidden`
- + `published_status:my-channel-handle-published`
- + `published_status:unavailable` | | sku | string | Filter by the product variant [`sku`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-sku) field. [Learn more about SKUs](https://help.shopify.com/manual/products/details/sku). | | | - @@ -66307,8 +76457,8 @@ type Query { | status | string | Filter by a comma-separated list of statuses. You can use statuses to manage inventory. Shopify only displays products with an `ACTIVE` status in online stores, sales channels, and apps. | - - `ACTIVE`
- `ARCHIVED`
- `DRAFT` | `ACTIVE` | - - `status:ACTIVE,DRAFT` | + `active`
- `archived`
- `draft` | `active` | - + `status:active,draft` | | tag | string | Filter objects by the `tag` field. | | | - `tag:my_tag` | | tag_not | string | Filter by objects that don’t have the specified tag. | | | - `tag_not:my_tag` | | title | string | Filter by the product [`title`](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-title) @@ -66337,8 +76487,10 @@ type Query { """ savedSearchId: ID - """The upper bound on count value before returning a result.""" - limit: Int + """ + The upper bound on count value before returning a result. Use `null` to have no limit. + """ + limit: Int = 10000 ): Count """ @@ -66347,13 +76499,21 @@ type Query { """ publicApiVersions: [ApiVersion!]! - """Lookup a publication by ID.""" + """ + Retrieves a [`Publication`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication) by [`ID`](https://shopify.dev/docs/api/usage/gids). + + Returns `null` if the publication doesn't exist. + """ publication( """The ID of the Publication to return.""" id: ID! ): Publication - """List of publications.""" + """ + Returns a paginated list of [`Publication`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication). + + Filter publications by [`CatalogType`](https://shopify.dev/docs/api/admin-graphql/latest/enums/CatalogType). + """ publications( """Filter publications by catalog type.""" catalogType: CatalogType @@ -66382,37 +76542,158 @@ type Query { reverse: Boolean = false ): PublicationConnection! - """Count of publications.""" + """Count of publications. Limited to a maximum of 10000 by default.""" publicationsCount( """Filter publications by catalog type.""" catalogType: CatalogType + + """ + The upper bound on count value before returning a result. Use `null` to have no limit. + """ + limit: Int = 10000 ): Count - """Returns a count of published products by publication ID.""" + """ + Returns a count of published products by publication ID. Limited to a maximum of 10000 by default. + """ publishedProductsCount( """The ID of the publication that the products are published to.""" publicationId: ID! + + """The maximum number of products to count.""" + limit: Int = 10000 ): Count - """Returns a Refund resource by ID.""" + """ + Retrieves a [refund](https://shopify.dev/docs/api/admin-graphql/latest/objects/Refund) by its ID. + A refund represents a financial record of money returned to a customer from an order. + It provides a comprehensive view of all refunded amounts, transactions, and restocking + instructions associated with returning products or correcting order issues. + + Use the `refund` query to retrieve information associated with the following workflows: + + - Displaying refund details in order management interfaces + - Building customer service tools for reviewing refund history + - Creating reports on refunded amounts and reasons + - Auditing refund transactions and payment gateway records + - Tracking inventory impacts from refunded items + + A refund is associated with an + [order](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) + and includes [refund line items](https://shopify.dev/docs/api/admin-graphql/latest/objects/RefundLineItem) + that specify which items were refunded. Each refund processes through + [order transactions](https://shopify.dev/docs/api/admin-graphql/latest/objects/OrderTransaction) + that handle the actual money transfer back to the customer. + """ refund( """The ID of the Refund to return.""" id: ID! ): Refund - """Returns a Return resource by ID.""" + """ + Retrieves a return by its ID. A return represents the intent of a buyer to ship one or more items from an + order back to a merchant or a third-party fulfillment location. + + Use the `return` query to retrieve information associated with the following workflows: + + - [Managing returns](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/build-return-management) + - [Processing exchanges](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/manage-exchanges) + - [Tracking reverse fulfillment orders](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/manage-reverse-fulfillment-orders) + + A return is associated with an + [order](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) + and can include multiple return [line items](https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItem). + Each return has a [status](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps#return-statuses), + which indicates the state of the return. + """ return( - """The ID of the Return to return.""" + """ + The [globally-unique ID](https://shopify.dev/docs/api/usage/gids) + of the return to retrieve. + """ id: ID! ): Return - """The calculated monetary value to be exchanged due to the return.""" + """ + Calculates the financial outcome of a + [`Return`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Return) + without creating it. Use this query to preview return costs before initiating + the actual return process. + + The calculation provides detailed breakdowns of refund amounts, taxes, [`RestockingFee`](https://shopify.dev/docs/api/admin-graphql/latest/objects/RestockingFee) + charges, return shipping fees, and order-level discount adjustments based on the [`FulfillmentLineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentLineItem) + objects that customers select for return. + + Learn more about building for [return management](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/build-return-management). + """ returnCalculate( """The input fields for calculating a return.""" input: CalculateReturnInput! ): CalculatedReturn - """Lookup a returnable fulfillment by ID.""" + """ + Returns the full library of available return reason definitions. + + Use this query to retrieve the standardized return reasons available for creating returns. + Filter by IDs or handles to get specific definitions. + + Only non-deleted reasons should be shown to customers when creating new returns. + Deleted reasons have been replaced with better alternatives and are no longer recommended. + However, they remain valid options and may still appear on existing returns. + """ + returnReasonDefinitions( + """A list of return reason definition IDs to filter by.""" + ids: [ID!] + + """A list of return reason definition handles to filter by.""" + handles: [String!] + + """ + The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + first: Int + + """ + The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + after: String + + """ + The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + last: Int + + """ + The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + before: String + + """Reverse the order of the underlying list.""" + reverse: Boolean = false + + """ + Sort the underlying list using a key. If your query is slow or returns an + error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). + """ + sortKey: ReturnReasonDefinitionSortKeys = ID + + """ + A filter made up of terms, connectives, modifiers, and comparators. + | name | type | description | acceptable_values | default_value | example_use | + | ---- | ---- | ---- | ---- | ---- | ---- | + | default | string | Filter by a case-insensitive search of multiple fields + in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | + | deleted | boolean | Filter by whether the return reason has been removed from taxonomy. | + | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | + | name | string | Filter by name. | + You can apply one or more filters to a query. Learn more about [Shopify API + search syntax](https://shopify.dev/api/usage/search-syntax). + + """ + query: String + ): ReturnReasonDefinitionConnection! + + """Returns a `ReturnableFulfillment` resource by ID.""" returnableFulfillment( """The ID of the `ReturnableFulfillment` to return.""" id: ID! @@ -66461,11 +76742,10 @@ type Query { """

Theme app extensions

-

Your app might not pass App Store review if it uses script tags instead of - theme app extensions. All new apps, and apps that integrate with Online Store - 2.0 themes, should use theme app extensions, such as app blocks or app embed - blocks. Script tags are an alternative you can use with only vintage themes. - If your app integrates with a Shopify theme and you plan to submit it to + the Shopify App Store, you must use theme app extensions instead of Script + tags. Script tags can only be used with vintage themes. Learn more.

Script tag deprecation

@@ -66475,7 +76755,7 @@ type Query { work alongside Checkout Extensibility until August 28, 2025.

- Lookup a script tag resource by ID. + Returns a `ScriptTag` resource by ID. """ scriptTag( """The ID of the `ScriptTag` to return.""" @@ -66484,11 +76764,10 @@ type Query { """

Theme app extensions

-

Your app might not pass App Store review if it uses script tags instead of - theme app extensions. All new apps, and apps that integrate with Online Store - 2.0 themes, should use theme app extensions, such as app blocks or app embed - blocks. Script tags are an alternative you can use with only vintage themes. - If your app integrates with a Shopify theme and you plan to submit it to + the Shopify App Store, you must use theme app extensions instead of Script + tags. Script tags can only be used with vintage themes. Learn more.

Script tag deprecation

@@ -66542,7 +76821,17 @@ type Query { src: URL ): ScriptTagConnection! - """The Customer Segment.""" + """ + Retrieves a customer + [`Segment`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Segment) + by ID. Segments are dynamic groups of customers that meet specific criteria + defined through [ShopifyQL queries](https://shopify.dev/docs/api/shopifyql/segment-query-language-reference). + + Use segments for targeted marketing campaigns, analyzing customer behavior, or + creating personalized experiences. Each segment includes its name, creation + date, and the query that defines which [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer) + objects belong to it. + """ segment( """Find a segment by ID.""" id: ID! @@ -66652,7 +76941,19 @@ type Query { before: String ): SegmentValueConnection! - """A list of a shop's segments.""" + """ + Returns a paginated list of + [`Segment`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Segment) + objects for the shop. Segments are dynamic groups of customers that meet + specific criteria defined through [ShopifyQL queries](https://shopify.dev/docs/api/shopifyql/segment-query-language-reference). + You can filter segments by search query and sort them by creation date or + other criteria. + + The query supports standard + [pagination](https://shopify.dev/docs/api/usage/pagination-graphql) arguments and returns a [`SegmentConnection`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SegmentConnection) + containing segment details including names, creation dates, and the query + definitions that determine segment membership. + """ segments( """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). @@ -66695,16 +76996,35 @@ type Query { query: String ): SegmentConnection! - """The number of segments for a shop.""" - segmentsCount: Count + """ + The number of segments for a shop. Limited to a maximum of 10000 by default. + """ + segmentsCount( + """ + The upper bound on count value before returning a result. Use `null` to have no limit. + """ + limit: Int = 10000 + ): Count - """Returns a Selling Plan Group resource by ID.""" + """Returns a `SellingPlanGroup` resource by ID.""" sellingPlanGroup( """The ID of the `SellingPlanGroup` to return.""" id: ID! ): SellingPlanGroup - """List Selling Plan Groups.""" + """ + Retrieves a paginated list of [`SellingPlanGroup`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SellingPlanGroup) + objects that belong to the app making the API call. Selling plan groups are + selling methods like subscriptions, preorders, or other purchase options that + merchants offer to customers. + + Each group has one or more [`SellingPlan`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SellingPlan) + objects that define specific billing and delivery schedules, pricing + adjustments, and policies. Use the [`query`](https://shopify.dev/docs/api/admin-graphql/latest/queries/sellingPlanGroups#arguments-query) + argument to search by name or filter results by other criteria. + + Learn more about [building selling plans](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/selling-plans). + """ sellingPlanGroups( """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). @@ -66765,15 +77085,86 @@ type Query { """ shop: Shop! - """The shop's billing preferences.""" + """ + The shop's billing preferences, including the currency for paying for apps and + services. Use this to create [app charges in the merchant's local billing + currency](https://shopify.dev/docs/apps/launch/billing#supported-currencies), + helping them budget their app spend without exposure to exchange rate fluctuations. + """ shopBillingPreferences: ShopBillingPreferences! - """A list of locales available on a shop.""" + """ + Returns the locales enabled on a shop. Each locale represents a language for + translations and determines how content displays to customers in different markets. + + Use the optional `published` argument to filter for only the locales that are + visible to customers. The response includes the ISO locale code, whether it's + the shop's primary locale, and which [`MarketWebPresence`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MarketWebPresence) + objects use each locale. + """ shopLocales( """Return only published locales.""" published: Boolean = false ): [ShopLocale!]! + """Returns a Shop Pay payment request receipt.""" + shopPayPaymentRequestReceipt( + """Unique identifier of the payment request receipt.""" + token: String! + ): ShopPayPaymentRequestReceipt + + """Returns a list of Shop Pay payment request receipts.""" + shopPayPaymentRequestReceipts( + """ + The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + first: Int + + """ + The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + after: String + + """ + The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + last: Int + + """ + The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + before: String + + """Reverse the order of the underlying list.""" + reverse: Boolean = false + + """ + Sort the underlying list using a key. If your query is slow or returns an + error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). + """ + sortKey: ShopPayPaymentRequestReceiptsSortKeys = ID + + """ + A filter made up of terms, connectives, modifiers, and comparators. + | name | type | description | acceptable_values | default_value | example_use | + | ---- | ---- | ---- | ---- | ---- | ---- | + | created_at | time | Filter by the creation date of the payment request + receipt. | | | - `created_at:2021-01-01`
- + `created_at:2021-01-01..2021-01-02`
- `created_at: - + `created_at:<2024-01-01` | + | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | + | source_identifier | string | Filter by the source identifier of the + payment request receipt. | | | - `source_identifier:1282823` | + | state | string | Filter by the state of the payment request receipt. + Options include: - COMPLETED - FAILED - PENDING - PROCESSING | | | - + `state:COMPLETED` | + You can apply one or more filters to a query. Learn more about [Shopify API + search syntax](https://shopify.dev/api/usage/search-syntax). + + """ + query: String + ): ShopPayPaymentRequestReceiptConnection + """ Returns a Shopify Function by its ID. [Functions](https://shopify.dev/apps/build/functions) @@ -66785,7 +77176,18 @@ type Query { ): ShopifyFunction """ - Returns the Shopify Functions owned by the querying API client installed on the shop. + Returns Shopify Functions owned by the querying API client installed on the + shop. [Functions](https://shopify.dev/docs/apps/build/functions) enable you to customize + Shopify's backend logic at specific points in the commerce loop, such as discounts, + checkout validation, and fulfillment. + + You can filter the results by API type to find specific function implementations, + or by whether they provide a merchant configuration interface in the Shopify Admin. + + The response includes details about each function's configuration, including its + title, description, API version, and the input query used to provide data to the function logic. + + Learn more about [building functions](https://shopify.dev/docs/api/functions). """ shopifyFunctions( """Filter the functions by the API type.""" @@ -66820,10 +77222,52 @@ type Query { reverse: Boolean = false ): ShopifyFunctionConnection! - """Shopify Payments account information, including balances and payouts.""" + """ + Returns the Shopify Payments account information for the shop. Includes + current balances across all currencies, payout schedules, and bank account + configurations. + + The account includes [`ShopifyPaymentsBalanceTransaction`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsBalanceTransaction) + records showing charges, refunds, and adjustments that affect your balance. Also includes [`ShopifyPaymentsDispute`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsDispute) records and [`ShopifyPaymentsPayout`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsPayout) + history between the account and connected [`ShopifyPaymentsBankAccount`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsBankAccount) + configurations. + """ shopifyPaymentsAccount: ShopifyPaymentsAccount - """The StaffMember resource, by ID.""" + """ + Executes a [ShopifyQL query](https://shopify.dev/docs/apps/build/shopifyql) to + analyze store data and returns results in a tabular format. + + The response includes column metadata with names, data types, and display + names, along with the actual data rows. If the query contains syntax errors, + then the response provides parse error messages instead of table data. + + Read the [ShopifyQL reference + documentation](https://shopify.dev/docs/api/shopifyql) for more information on + how to write ShopifyQL queries. + """ + shopifyqlQuery( + """ + A ShopifyQL query string following the [ShopifyQL + syntax](https://shopify.dev/docs/api/shopifyql). Queries must include `FROM` + to specify the data source (such as `sales`, `orders`, or `customers`) and + `SHOW` to select metrics and dimensions. Example: `FROM sales SHOW + total_sales TIMESERIES month SINCE -12m`. + """ + query: String! + ): ShopifyqlQueryResponse + + """ + Retrieves a [staff + member](https://shopify.dev/docs/api/admin-graphql/latest/objects/StaffMember) + by ID. If no ID is provided, the query returns the staff member that's making + the request. A staff member is a user who can access the Shopify admin to + manage store operations. + + Provides staff member details such as email, name, and shop owner status. When + querying the current user (with or without an ID), additional [private data](https://shopify.dev/docs/api/admin-graphql/latest/queries/staffMember#returns-StaffMember.fields.privateData) + becomes available. + """ staffMember( """ The ID of the staff member to return. If no ID is provided, then the staff member making the query (if any) is returned. @@ -66831,7 +77275,16 @@ type Query { id: ID ): StaffMember - """The shop staff members.""" + """ + Returns a paginated list of [`StaffMember`](https://shopify.dev/docs/api/admin-graphql/latest/objects/StaffMember) + objects for the shop. Staff members are users who can access the Shopify admin + to manage store operations. + + Supports filtering by account type, email, and name, with an option to sort + results. The query returns a [`StaffMemberConnection`](https://shopify.dev/docs/api/admin-graphql/latest/connections/StaffMemberConnection) + for [cursor-based + pagination](https://shopify.dev/docs/api/usage/pagination-graphql). + """ staffMembers( """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). @@ -66855,84 +77308,91 @@ type Query { """Reverse the order of the underlying list.""" reverse: Boolean = false - - """ - Sort the underlying list using a key. If your query is slow or returns an - error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). - """ - sortKey: StaffMembersSortKeys = ID - - """ - A filter made up of terms, connectives, modifiers, and comparators. - | name | type | description | acceptable_values | default_value | example_use | - | ---- | ---- | ---- | ---- | ---- | ---- | - | account_type | string | Filter by account type. | - `collaborator`
- - `collaborator_team_member`
- `invited`
- `regular`
- - `requested`
- `restricted`
- `saml` | - | email | string | Filter by email. | - | first_name | string | Filter by first name. | - | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | - | last_name | string | Filter by last name. | - You can apply one or more filters to a query. Learn more about [Shopify API - search syntax](https://shopify.dev/api/usage/search-syntax). - - """ - query: String - ): StaffMemberConnection + + """ + Sort the underlying list using a key. If your query is slow or returns an + error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). + """ + sortKey: StaffMembersSortKeys = ID + + """ + A filter made up of terms, connectives, modifiers, and comparators. + | name | type | description | acceptable_values | default_value | example_use | + | ---- | ---- | ---- | ---- | ---- | ---- | + | account_type | string | Filter by account type. | - `collaborator`
- + `collaborator_team_member`
- `invited`
- `regular`
- + `requested`
- `restricted`
- `saml` | + | email | string | Filter by email. | + | first_name | string | Filter by first name. | + | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | + | last_name | string | Filter by last name. | + You can apply one or more filters to a query. Learn more about [Shopify API + search syntax](https://shopify.dev/api/usage/search-syntax). + + """ + query: String + ): StaffMemberConnection + + """ + Retrieves preset metafield definition templates for common use cases. Each + template provides a reserved namespace and key combination for specific + purposes like product subtitles, care guides, or ISBN numbers. Use these + templates to create standardized metafields across your store. Filter + templates by constraint status or exclude those you've already activated. + + See the [list of standard metafield definitions](https://shopify.dev/docs/apps/build/custom-data/metafields/list-of-standard-definitions) + for available templates. + """ + standardMetafieldDefinitionTemplates( + """ + Filter standard metafield definitions based on whether they apply to a given resource subtype. + """ + constraintSubtype: MetafieldDefinitionConstraintSubtypeIdentifier + + """ + Filter standard metafield definitions based on whether they are constrained. + """ + constraintStatus: MetafieldDefinitionConstraintStatus + + """ + Filter standard metafield definitions that have already been activated. + """ + excludeActivated: Boolean = false + + """ + The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + first: Int + + """ + The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + after: String + + """ + The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + last: Int + + """ + The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + before: String + + """Reverse the order of the underlying list.""" + reverse: Boolean = false + ): StandardMetafieldDefinitionTemplateConnection! """ - Standard metafield definitions are intended for specific, common use cases. - Their namespace and keys reflect these use cases and are reserved. - - Refer to all available [`Standard Metafield Definition Templates`](https://shopify.dev/api/admin-graphql/latest/objects/StandardMetafieldDefinitionTemplate). + Retrieves a [`StoreCreditAccount`](https://shopify.dev/docs/api/admin-graphql/latest/objects/StoreCreditAccount) by ID. Store credit accounts hold monetary balances that account owners can + use at checkout. The owner is either a [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer) or a [`CompanyLocation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CompanyLocation). """ - standardMetafieldDefinitionTemplates( - """ - Filter standard metafield definitions based on whether they apply to a given resource subtype. - """ - constraintSubtype: MetafieldDefinitionConstraintSubtypeIdentifier - - """ - Filter standard metafield definitions based on whether they are constrained. - """ - constraintStatus: MetafieldDefinitionConstraintStatus - - """ - Filter standard metafield definitions that have already been activated. - """ - excludeActivated: Boolean = false - - """ - The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). - """ - first: Int - - """ - The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). - """ - after: String - - """ - The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). - """ - last: Int - - """ - The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). - """ - before: String - - """Reverse the order of the underlying list.""" - reverse: Boolean = false - ): StandardMetafieldDefinitionTemplateConnection! - - """Returns a store credit account resource by ID.""" storeCreditAccount( """The ID of the store credit account to return.""" id: ID! ): StoreCreditAccount - """Returns a SubscriptionBillingAttempt by ID.""" + """Returns a `SubscriptionBillingAttempt` resource by ID.""" subscriptionBillingAttempt( """The ID of the `SubscriptionBillingAttempt` to return.""" id: ID! @@ -67068,13 +77528,28 @@ type Query { sortKey: SubscriptionBillingCyclesSortKeys = CYCLE_INDEX ): SubscriptionBillingCycleConnection! - """Returns a Subscription Contract resource by ID.""" + """ + Retrieves a [`SubscriptionContract`](https://shopify.dev/docs/api/customer/latest/objects/SubscriptionContract) by ID. + + The contract tracks the subscription's lifecycle through various [statuses](https://shopify.dev/docs/api/admin-graphql/latest/queries/subscriptionContract#returns-SubscriptionContract.fields.status), + and links to related billing attempts, generated + [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) + objects, and the customer's [`CustomerPaymentMethod`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CustomerPaymentMethod). + """ subscriptionContract( """The ID of the Subscription Contract to return.""" id: ID! ): SubscriptionContract - """List Subscription Contracts.""" + """ + Returns a [`SubscriptionContractConnection`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SubscriptionContractConnection) containing [subscription contracts](https://shopify.dev/docs/api/customer/latest/objects/SubscriptionContract). + Subscription contracts are agreements between [customers](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer) + and merchants for recurring purchases with defined billing and delivery schedules. + + Filter results with the [`query`](https://shopify.dev/docs/api/admin-graphql/latest/queries/subscriptionContracts#arguments-query) + argument. You can paginate results using standard [cursor-based + pagination](https://shopify.dev/docs/api/usage/pagination-graphql). + """ subscriptionContracts( """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). @@ -67128,11 +77603,28 @@ type Query { ): SubscriptionDraft """ - The Taxonomy resource lets you access the categories, attributes and values of the loaded taxonomy tree. + Access to Shopify's [standardized product taxonomy](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) + for categorizing products. The [`Taxonomy`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Taxonomy) + organizes products into a hierarchical tree structure with categories, + attributes, and values. + + Query categories using search terms, or navigate the hierarchy by requesting + children, siblings, or descendants of specific categories. Each [`TaxonomyCategory`](https://shopify.dev/docs/api/admin-graphql/latest/objects/TaxonomyCategory) + includes its position in the tree, parent-child relationships, and associated + attributes for that product category. """ taxonomy: Taxonomy - """Returns a list of TenderTransactions associated with the shop.""" + """ + Transactions representing a movement of money between customers and the shop. + Each transaction records the amount, payment method, processing details, and the associated + [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order). + + Positive amounts indicate customer payments to the merchant. Negative amounts + represent refunds from the merchant to the customer. Use the [`query`](https://shopify.dev/docs/api/admin-graphql/latest/queries/tenderTransactions#arguments-query) + parameter to filter transactions by attributes such as transaction ID, + processing date, and point-of-sale device ID. + """ tenderTransactions( """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). @@ -67172,13 +77664,24 @@ type Query { query: String ): TenderTransactionConnection! - """Returns a particular theme for the shop.""" + """ + Returns an [`OnlineStoreTheme`](https://shopify.dev/docs/api/admin-graphql/latest/objects/OnlineStoreTheme) by its ID. Use this query to retrieve theme metadata and access the theme's [`files`](https://shopify.dev/docs/api/admin-graphql/latest/queries/theme#returns-OnlineStoreTheme.fields.files), + which include templates, assets, [translations](https://shopify.dev/docs/api/admin-graphql/latest/objects/OnlineStoreTheme#field-published_translations), + and configuration files. + """ theme( """The ID of the theme.""" id: ID! ): OnlineStoreTheme - """Returns a paginated list of themes for the shop.""" + """ + Returns a paginated list of [`OnlineStoreTheme`](https://shopify.dev/docs/api/admin-graphql/latest/objects/OnlineStoreTheme) + objects for the online store. Themes control the appearance and layout of the storefront. + + You can filter themes by [`role`](https://shopify.dev/docs/api/admin-graphql/latest/queries/themes#arguments-roles) + to find specific theme types, such as `MAIN` for the published theme and + `UNPUBLISHED` for draft themes. + """ themes( """The theme roles to filter by.""" roles: [ThemeRole!] @@ -67212,13 +77715,29 @@ type Query { reverse: Boolean = false ): OnlineStoreThemeConnection - """A resource that can have localized values for different languages.""" + """ + Retrieves a resource that has translatable fields. Returns the resource's [`Translation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Translation) + objects for different locales and markets, along with the original [`TranslatableContent`](https://shopify.dev/docs/api/admin-graphql/latest/objects/TranslatableContent) + and digest values needed to register new translations. Provides access to + existing translations, translatable content with digest hashes for translation + registration, and nested translatable resources like [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) objects or [`Metafield`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Metafield) objects. + + Learn more about [managing translated content](https://shopify.dev/docs/apps/build/markets/manage-translated-content). + """ translatableResource( """Find a translatable resource by ID.""" resourceId: ID! ): TranslatableResource - """Resources that can have localized values for different languages.""" + """ + Returns a paginated list of [`TranslatableResource`](https://shopify.dev/docs/api/admin-graphql/latest/objects/TranslatableResource) + objects for a specific resource type. Each resource provides translatable + content and digest values needed for the [`translationsRegister`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/translationsRegister) mutation. + + Learn more about [managing translated content](https://shopify.dev/docs/apps/build/markets/manage-translated-content). + + Learn more about [managing translated content](https://shopify.dev/docs/apps/build/markets/manage-translated-content). + """ translatableResources( """Return only resources of a type.""" resourceType: TranslatableResourceType! @@ -67247,7 +77766,13 @@ type Query { reverse: Boolean = false ): TranslatableResourceConnection! - """Resources that can have localized values for different languages.""" + """ + Returns a paginated list of [`TranslatableResource`](https://shopify.dev/docs/api/admin-graphql/latest/objects/TranslatableResource) + objects for the specified resource IDs. Each resource provides translatable + content and digest values needed for the [`translationsRegister`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/translationsRegister) mutation. + + Learn more about [managing translated content](https://shopify.dev/docs/apps/build/markets/manage-translated-content). + """ translatableResourcesByIds( """Return only resources for given IDs.""" resourceIds: [ID!]! @@ -67276,13 +77801,13 @@ type Query { reverse: Boolean = false ): TranslatableResourceConnection! - """Returns a redirect resource by ID.""" + """Returns a `UrlRedirect` resource by ID.""" urlRedirect( """The ID of the `UrlRedirect` to return.""" id: ID! ): UrlRedirect - """Returns a redirect import resource by ID.""" + """Returns a `UrlRedirectImport` resource by ID.""" urlRedirectImport( """The ID of the `UrlRedirectImport` to return.""" id: ID! @@ -67368,7 +77893,7 @@ type Query { savedSearchId: ID ): UrlRedirectConnection! - """Count of redirects. Limited to a maximum of 10000.""" + """Count of redirects. Limited to a maximum of 10000 by default.""" urlRedirectsCount( """ A filter made up of terms, connectives, modifiers, and comparators. @@ -67392,6 +77917,11 @@ type Query { Refer to the [`SavedSearch`](https://shopify.dev/api/admin-graphql/latest/objects/savedsearch) object. """ savedSearchId: ID + + """ + The upper bound on count value before returning a result. Use `null` to have no limit. + """ + limit: Int = 10000 ): Count """Validation available on the shop.""" @@ -67483,7 +78013,14 @@ type Query { ): WebhookSubscription """ - Returns a list of webhook subscriptions. + Retrieves a paginated list of webhook subscriptions created using the API for the current app and shop. + + > Note: Returns only shop-scoped subscriptions, not app-scoped subscriptions configured in TOML files. + + Subscription details include event topics, endpoint URIs, filtering rules, + field inclusion settings, and metafield namespace permissions. Results support + cursor-based pagination that you can filter by topic, format, or custom search criteria. + Building an app? If you only use app-specific webhooks, you won't need this. App-specific webhook subscriptions specified in your `shopify.app.toml` may be @@ -67534,8 +78071,11 @@ type Query { """ query: String - """Callback URL to filter by.""" - callbackUrl: URL + """ + URI to filter by. Supports an HTTPS URL, a Google Pub/Sub URI + (pubsub://{project-id}:{topic-id}) or an Amazon EventBridge event source ARN. + """ + uri: String """Response format to filter by.""" format: WebhookSubscriptionFormat @@ -67552,7 +78092,7 @@ type Query { easier. They are automatically kept up to date by Shopify & require less maintenance. Please read [About managing webhook subscriptions](https://shopify.dev/docs/apps/build/webhooks/subscribe). - Limited to a maximum of 10000. + Limited to a maximum of 10000 by default. """ webhookSubscriptionsCount( """ @@ -67569,12 +78109,50 @@ type Query { """ query: String + + """ + The upper bound on count value before returning a result. Use `null` to have no limit. + """ + limit: Int = 10000 ): Count } """ -The record of the line items and transactions that were refunded to a customer, -along with restocking instructions for refunded line items. +The `Refund` object represents a financial record of money returned to a customer from an order. +It provides a comprehensive view of all refunded amounts, transactions, and restocking instructions +associated with returning products or correcting order issues. + +The `Refund` object provides information to: + +- Process customer returns and issue payments back to customers +- Handle partial or full refunds for line items with optional inventory restocking +- Refund shipping costs, duties, and additional fees +- Issue store credit refunds as an alternative to original payment method returns +- Track and reconcile all financial transactions related to refunds + +Each `Refund` object maintains detailed records of what was refunded, how much was refunded, +which payment transactions were involved, and any inventory restocking that occurred. The refund +can include multiple components such as product line items, shipping charges, taxes, duties, and +additional fees, all calculated with proper currency handling for international orders. + +Refunds are always associated with an [order](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) +and can optionally be linked to a [return](https://shopify.dev/docs/api/admin-graphql/latest/objects/Return) +if the refund was initiated through the returns process. The refund tracks both the presentment currency +(what the customer sees) and the shop currency for accurate financial reporting. + +> Note: +> The existence of a `Refund` object doesn't guarantee that the money has been returned to the customer. +> The actual financial processing happens through associated +> [`OrderTransaction`](https://shopify.dev/docs/api/admin-graphql/latest/objects/OrderTransaction) +> objects, which can be in various states, such as pending, processing, success, or failure. +> To determine if money has actually been refunded, check the +> [status](https://shopify.dev/docs/api/admin-graphql/latest/objects/OrderTransaction#field-OrderTransaction.fields.status) +> of the associated transactions. + +Learn more about +[managing returns](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/build-return-management), +[refunding duties](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/view-and-refund-duties), and +[processing refunds](https://shopify.dev/docs/api/admin-graphql/latest/mutations/refundCreate). """ type Refund implements LegacyInteroperability & Node { """The date and time when the refund was created.""" @@ -67621,6 +78199,9 @@ type Refund implements LegacyInteroperability & Node { reverse: Boolean = false ): OrderAdjustmentConnection! + """The date and time when the refund was processed.""" + processedAt: DateTime! + """The `RefundLineItem` resources attached to the refund.""" refundLineItems( """ @@ -67862,6 +78443,11 @@ input RefundInput { """The input fields that are required to reimburse shipping costs.""" shipping: ShippingRefundInput + """ + The date and time when the refund is being processed. If not provided, it will be set to the current time. + """ + processedAt: DateTime + """A list of line items to refund.""" refundLineItems: [RefundLineItemInput!] @@ -67871,13 +78457,34 @@ input RefundInput { """A list of transactions involved in the refund.""" transactions: [OrderTransactionInput!] + """A list of instructions to process the financial outcome of the refund.""" + refundMethods: [RefundMethodInput!] = [] + """ An optional reason for a discrepancy between calculated and actual refund amounts. """ discrepancyReason: OrderAdjustmentInputDiscrepancyReason + + """ + Whether to allow the total refunded amount to surpass the amount paid for the order. + """ + allowOverRefunding: Boolean = false } -"""A line item that's included in a refund.""" +""" +A [`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) or [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) +being refunded from an order. Each refund line item tracks the quantity, +pricing, and restocking details for items returned to the merchant. + +The refund line item links to the original +[`LineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItem) from +the [`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) +and includes financial information such as the refunded price, subtotal, and +taxes in both shop and presentment currencies. The [`restockType`](https://shopify.dev/docs/api/admin-graphql/latest/objects/RefundLineItem#field-RefundLineItem.fields.restockType) +field indicates whether and how the merchant restocks the returned items to +inventory, while the [`location`](https://shopify.dev/docs/api/admin-graphql/latest/objects/RefundLineItem#field-RefundLineItem.fields.location) +field specifies where restocking occurs. +""" type RefundLineItem { """A globally-unique ID.""" id: ID @@ -67999,6 +78606,37 @@ enum RefundLineItemRestockType { NO_RESTOCK } +"""The different methods that a refund amount can be allocated to.""" +enum RefundMethodAllocation { + """The refund is to original payment methods.""" + ORIGINAL_PAYMENT_METHODS + + """The refund is to store credit.""" + STORE_CREDIT +} + +"""The input fields for processing the financial outcome of a refund.""" +input RefundMethodInput { + """The details of the refund to store credit.""" + storeCreditRefund: StoreCreditRefundInput +} + +""" +The financial transfer details for a return outcome that results in a refund. +""" +type RefundReturnOutcome { + """ + The total monetary value to be refunded in shop and presentment currencies. + """ + amount: MoneyBag! + + """A list of suggested refund methods.""" + suggestedRefundMethods: [SuggestedRefundMethod!]! + + """A list of suggested order transactions.""" + suggestedTransactions: [SuggestedOrderTransaction!]! +} + """The input fields for the shipping cost to refund.""" input RefundShippingInput { """ @@ -68138,6 +78776,24 @@ input RemoteStripePaymentMethodInput { paymentMethodId: String } +"""Return type for `removeFromReturn` mutation.""" +type RemoveFromReturnPayload { + """The modified return.""" + return: Return + + """The list of errors that occurred from executing the mutation.""" + userErrors: [ReturnUserError!]! +} + +"""The resolved price inclusivity attributes.""" +type ResolvedPriceInclusivity { + """Whether duties are included in the price.""" + dutiesIncluded: Boolean! + + """Whether taxes are included in the price.""" + taxesIncluded: Boolean! +} + """ An alert message that appears in the Shopify admin about a problem with a store resource, with 1 or more actions to take. For example, you could use an alert to @@ -68457,8 +79113,32 @@ type RestrictedForResource { restrictedReason: String! } -"""Represents a return.""" +""" +The `Return` object represents the intent of a buyer to ship one or more items from an order back to a merchant +or a third-party fulfillment location. A return is associated with an +[order](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) +and can include multiple return [line items](https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItem). +Each return has a [status](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps#return-statuses), +which indicates the state of the return. + +Use the `Return` object to capture the financial, logistical, +and business intent of a return. For example, you can identify eligible items for a return and issue customers +a refund for returned items on behalf of the merchant. + +Learn more about providing a +[return management workflow](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/build-return-management) +for merchants. You can also manage [exchanges](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/manage-exchanges), +[reverse fulfillment orders](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/manage-reverse-fulfillment-orders), +and [reverse deliveries](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/manage-reverse-deliveries) +on behalf of merchants. +""" type Return implements Node { + """The date and time when the return was closed.""" + closedAt: DateTime + + """The date and time when the return was created.""" + createdAt: DateTime! + """Additional information about the declined return.""" decline: ReturnDecline @@ -68470,6 +79150,9 @@ type Return implements Node { """ includeRemovedItems: Boolean = false + """Filter exchange line items by processing status.""" + processingStatus: ReturnProcessingStatusFilterInput + """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ @@ -68529,8 +79212,14 @@ type Return implements Node { reverse: Boolean = false ): RefundConnection! + """The date and time when the return was approved.""" + requestApprovedAt: DateTime + """The return line items attached to the return.""" returnLineItems( + """Filter return line items by processing status.""" + processingStatus: ReturnProcessingStatusFilterInput + """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ @@ -68584,9 +79273,35 @@ type Return implements Node { reverse: Boolean = false ): ReverseFulfillmentOrderConnection! + """The staff member that created the return.""" + staffMember: StaffMember + """The status of the return.""" status: ReturnStatus! + """A suggested financial outcome for the return.""" + suggestedFinancialOutcome( + """The line items from the return to include in the outcome.""" + returnLineItems: [SuggestedOutcomeReturnLineItemInput!]! + + """The exchange line items from the return to include in the outcome.""" + exchangeLineItems: [SuggestedOutcomeExchangeLineItemInput!]! + + """The shipping amount from the associated order to include as a refund.""" + refundShipping: RefundShippingInput + + """ID of the tip line item.""" + tipLineId: ID + + """The duties from the associated order to include as a refund.""" + refundDuties: [RefundDutyInput!] + + """ + Specifies which refund methods to allocate the suggested refund amount to. + """ + refundMethodAllocation: RefundMethodAllocation = ORIGINAL_PAYMENT_METHODS + ): SuggestedReturnFinancialOutcome + """A suggested refund for the return.""" suggestedRefund( """The line items from the return to include in the refund.""" @@ -68599,15 +79314,48 @@ type Return implements Node { """The duties from to associated order to include in the refund.""" refundDuties: [RefundDutyInput!] - ): SuggestedReturnRefund + ): SuggestedReturnRefund @deprecated(reason: "Use `suggestedFinancialOutcome` instead.") """The sum of all return line item quantities for the return.""" totalQuantity: Int! + + """The order transactions created from the return.""" + transactions( + """ + The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + first: Int + + """ + The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + after: String + + """ + The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + last: Int + + """ + The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + before: String + + """Reverse the order of the underlying list.""" + reverse: Boolean = false + ): OrderTransactionConnection! } """ -A returnable fulfillment, which is an order that has been delivered -and is eligible to be returned to the merchant. +A delivered order that's eligible to be returned to the merchant. Provides the +items from completed fulfillments that customers can select when initiating a return. + +Use returnable fulfillments to determine which items are eligible for return +before creating a +[`Return`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Return) with the [`returnCreate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/returnCreate) +mutation. The line items show quantities that are available for return. + +Learn more about [building return management workflows](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/build-return-management). """ type ReturnableFulfillment implements Node { """The fulfillment that the returnable fulfillment refers to.""" @@ -68980,6 +79728,9 @@ enum ReturnErrorCode { """A resource was not in the correct state for the operation to succeed.""" INVALID_STATE + """The user does not have permission to perform the operation.""" + MISSING_PERMISSION + """A requested notification could not be sent.""" NOTIFICATION_FAILED @@ -69010,7 +79761,17 @@ input ReturnInput { returnShippingFee: ReturnShippingFeeInput } -"""A return line item.""" +""" +An item that a customer returns from a fulfilled order. Links to the original [`FulfillmentLineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/FulfillmentLineItem) +and tracks quantities through the return process. + +The line item includes the customer's reason for returning the item and any +additional notes. It also tracks processing status with separate quantities for +items that are processable, processed, refundable, and refunded. You can apply +optional restocking fees to cover handling costs. + +Learn more about [creating a return](https://shopify.dev/docs/api/admin-graphql/latest/mutations/returnCreate). +""" type ReturnLineItem implements Node & ReturnLineItemType { """ A note from the customer that describes the item to be returned. Maximum length: 300 characters. @@ -69023,6 +79784,12 @@ type ReturnLineItem implements Node & ReturnLineItemType { """A globally-unique ID.""" id: ID! + """The quantity that can be processed.""" + processableQuantity: Int! + + """The quantity that has been processed.""" + processedQuantity: Int! + """The quantity being returned.""" quantity: Int! @@ -69036,7 +79803,10 @@ type ReturnLineItem implements Node & ReturnLineItemType { restockingFee: RestockingFee """The reason for returning the item.""" - returnReason: ReturnReason! + returnReason: ReturnReason! @deprecated(reason: "Use `returnReasonDefinition` instead. This field will be removed in the future.") + + """The standardized reason for why the item is being returned.""" + returnReasonDefinition: ReturnReasonDefinition """ Additional information about the reason for the return. Maximum length: 255 characters. @@ -69046,6 +79816,9 @@ type ReturnLineItem implements Node & ReturnLineItemType { """The total weight of the item.""" totalWeight: Weight + """The quantity that has't been processed.""" + unprocessedQuantity: Int! + """ The total line price after all discounts on the line item, including both line item level discounts and code-based line item discounts, are applied. @@ -69058,8 +79831,11 @@ input ReturnLineItemInput { """The quantity of the item to be returned.""" quantity: Int! - """The reason for the item to be returned.""" - returnReason: ReturnReason! + """ + The ID of a [`ReturnReasonDefinition`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ReturnReasonDefinition). Accepts any ID from the full library of reasons available via [`returnReasonDefinitions`](https://shopify.dev/docs/api/admin-graphql/latest/queries/returnReasonDefinitions), + not limited to the suggested reasons for the line item. + """ + returnReasonDefinitionId: ID """ A note about the reason that the item is being returned. @@ -69105,6 +79881,12 @@ interface ReturnLineItemType { """A globally-unique ID.""" id: ID! + """The quantity that can be processed.""" + processableQuantity: Int! + + """The quantity that has been processed.""" + processedQuantity: Int! + """The quantity being returned.""" quantity: Int! @@ -69115,12 +79897,18 @@ interface ReturnLineItemType { refundedQuantity: Int! """The reason for returning the item.""" - returnReason: ReturnReason! + returnReason: ReturnReason! @deprecated(reason: "Use `returnReasonDefinition` instead. This field will be removed in the future.") + + """The standardized reason for why the item is being returned.""" + returnReasonDefinition: ReturnReasonDefinition """ Additional information about the reason for the return. Maximum length: 255 characters. """ returnReasonNote: String! + + """The quantity that has't been processed.""" + unprocessedQuantity: Int! } """ @@ -69160,6 +79948,98 @@ type ReturnLineItemTypeEdge { node: ReturnLineItemType! } +"""The financial transfer details for the return outcome.""" +union ReturnOutcomeFinancialTransfer = InvoiceReturnOutcome | RefundReturnOutcome + +"""The input fields for an exchange line item.""" +input ReturnProcessExchangeLineItemInput { + """The ID of the exchange line item.""" + id: ID! + + """The quantity of the exchange line item.""" + quantity: Int! +} + +"""The input fields for the financial transfer for the return.""" +input ReturnProcessFinancialTransferInput { + """Issue a refund for the return.""" + issueRefund: ReturnProcessRefundInput +} + +"""Filter line items based on processing status.""" +enum ReturnProcessingStatusFilterInput { + """Only include line items that have been processed.""" + PROCESSED + + """Only include line items that have some processable quantity.""" + PROCESSABLE +} + +"""The input fields for processing a return.""" +input ReturnProcessInput { + """The ID of the return to be processed.""" + returnId: ID! + + """The return line items list to be handled.""" + returnLineItems: [ReturnProcessReturnLineItemInput!] = [] + + """The exchange line items list to be handled.""" + exchangeLineItems: [ReturnProcessExchangeLineItemInput!] = [] + + """The refund duties list to be handled.""" + refundDuties: [RefundDutyInput!] = [] + + """The shipping cost to refund.""" + refundShipping: RefundShippingInput + + """ID of the tip line item.""" + tipLineId: ID + + """The note for the return.""" + note: String + + """Whether to notify the customer about the return.""" + notifyCustomer: Boolean = false + + """The financial transfer for the return.""" + financialTransfer: ReturnProcessFinancialTransferInput +} + +"""Return type for `returnProcess` mutation.""" +type ReturnProcessPayload { + """The processed return.""" + return: Return + + """The list of errors that occurred from executing the mutation.""" + userErrors: [ReturnUserError!]! +} + +"""The input fields for the refund for the return.""" +input ReturnProcessRefundInput { + """ + Whether to allow the total refunded amount to surpass the amount paid for the order. + """ + allowOverRefunding: Boolean = false + + """The order transactions for the refund.""" + orderTransactions: [ReturnRefundOrderTransactionInput!]! + + """A list of instructions to process the financial outcome of the refund.""" + refundMethods: [RefundMethodInput!] = [] +} + +"""The input fields for a return line item.""" +input ReturnProcessReturnLineItemInput { + """The ID of the return line item.""" + id: ID! + + """The quantity of the return line item.""" + quantity: Int! + + """The dispositions for the return line item.""" + dispositions: [ReverseFulfillmentOrderDisposeInput!] +} + """The reason for returning the return line item.""" enum ReturnReason { """ @@ -69213,6 +80093,94 @@ enum ReturnReason { UNKNOWN } +""" +A standardized reason for returning an item. + +- Shopify offers an expanded library of return reasons available to all merchants +- For each product, Shopify suggests a curated subset of reasons based on the product's category +- Suggested reasons aren't the only valid options. When creating a return via +the API, you can use any reason from the [full library](https://shopify.dev/docs/api/admin-graphql/latest/queries/returnReasonDefinitions). +""" +type ReturnReasonDefinition implements Node { + """ + Whether the return reason has been removed from taxonomy. + + Deleted reasons should not be presented to customers when creating new returns, but may still + appear on existing returns that were created before the reason was deleted. This field enables + graceful deprecation of return reasons without breaking historical data. + """ + deleted: Boolean! + + """ + A unique, human-readable, stable identifier for the return reason. + + Example values include "arrived-late", "comfort", "too-tight", "color-too-bright", and "quality". + The handle remains consistent across API versions and localizations, making it suitable for programmatic use. + """ + handle: String! + + """A globally-unique ID.""" + id: ID! + + """ + The localized, user-facing name of the return reason. + + This field returns the reason name in the requested locale, automatically falling back to + English if no translation is available. Use this field when displaying return reasons to + customers or merchants. + """ + name: String! +} + +""" +An auto-generated type for paginating through multiple ReturnReasonDefinitions. +""" +type ReturnReasonDefinitionConnection { + """ + The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + """ + edges: [ReturnReasonDefinitionEdge!]! + + """ + A list of nodes that are contained in ReturnReasonDefinitionEdge. You can + fetch data about an individual node, or you can follow the edges to fetch data + about a collection of related nodes. At each node, you specify the fields that + you want to retrieve. + """ + nodes: [ReturnReasonDefinition!]! + + """ + An object that’s used to retrieve [cursor + information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + """ + pageInfo: PageInfo! +} + +""" +An auto-generated type which holds one ReturnReasonDefinition and a cursor during pagination. +""" +type ReturnReasonDefinitionEdge { + """ + The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + """ + cursor: String! + + """The item at the end of ReturnReasonDefinitionEdge.""" + node: ReturnReasonDefinition! +} + +"""The set of valid sort keys for the ReturnReasonDefinition query.""" +enum ReturnReasonDefinitionSortKeys { + """Sort by the `handle` value.""" + HANDLE + + """Sort by the `id` value.""" + ID + + """Sort by the `name` value.""" + NAME +} + """The input fields to refund a return.""" input ReturnRefundInput { """The ID of the return.""" @@ -69300,8 +80268,11 @@ input ReturnRequestLineItemInput { """The restocking fee to capture.""" restockingFee: RestockingFeeInput - """The reason why the line item is being returned.""" - returnReason: ReturnReason! + """ + The ID of a [`ReturnReasonDefinition`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ReturnReasonDefinition). Accepts any ID from the full library of reasons available via [`returnReasonDefinitions`](https://shopify.dev/docs/api/admin-graphql/latest/queries/returnReasonDefinitions), + not limited to the suggested reasons for the line item. + """ + returnReasonDefinitionId: ID """ A note from the customer that describes the item to be returned. @@ -69719,6 +80690,9 @@ type ReverseFulfillmentOrderDisposePayload { """The details of the arrangement of an item.""" type ReverseFulfillmentOrderDisposition implements Node { + """The date and time when the disposition was created.""" + createdAt: DateTime! + """A globally-unique ID.""" id: ID! @@ -70177,7 +81151,16 @@ type SaleTax { } """ -A saved search is a representation of a search query saved in the admin. +A representation of a search query in the Shopify admin used on resource index +views. Preserves complex queries with search terms and filters, enabling +merchants to quickly access frequently used data views. For example, a saved +search can be applied to the product index table to filter products. The query +string combines free-text search terms with structured filters to narrow results +based on resource attributes. + +The search applies to a specific resource type such as [`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer), +[`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product), +[`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order), or [`Collection`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection) objects. """ type SavedSearch implements LegacyInteroperability & Node { """The filters of a saved search.""" @@ -70350,10 +81333,9 @@ type ScriptDiscountApplication implements DiscountApplication { """

Theme app extensions

-

Your app might not pass App Store review if it uses script tags instead of -theme app extensions. All new apps, and apps that integrate with Online Store -2.0 themes, should use theme app extensions, such as app blocks or app embed -blocks. Script tags are an alternative you can use with only vintage themes. If your app integrates with a Shopify theme and you plan to submit it to the +Shopify App Store, you must use theme app extensions instead of Script tags. +Script tags can only be used with vintage themes. Learn more.

@@ -70448,7 +81430,7 @@ enum ScriptTagDisplayScope { ALL @deprecated(reason: "`ALL` is deprecated. Use `ONLINE_STORE` instead.\n") """Include the script only on the Order status page.""" - ORDER_STATUS @deprecated(reason: "`ORDER_STATUS` is deprecated and unavailable as a mutation input as of 2025-01.\n") + ORDER_STATUS @deprecated(reason: "`ORDER_STATUS` is deprecated and unavailable as a mutation input.\n") """Include the script only on the web storefront.""" ONLINE_STORE @@ -70526,7 +81508,7 @@ type SearchResult { """Returns the Image resource presented to accompany a search result.""" image: Image - """Returns the ID of the resource returned in the search result.""" + """Returns the resource represented by the search result.""" reference: Node! """Returns the resource title.""" @@ -70600,7 +81582,17 @@ enum SearchResultType { BALANCE_TRANSACTION } -"""A dynamic collection of customers based on specific criteria.""" +""" +A group of [customers](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer) +that meet specific criteria defined through [ShopifyQL +query](https://shopify.dev/docs/api/shopifyql/segment-query-language-reference) +conditions. Common use cases for segments include customer analytics, targeted +marketing campaigns, and automated discount eligibility. + +The segment's [`query`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Segment#field-query) field contains ShopifyQL conditions that determine membership, such as purchase +history, location, or engagement patterns. Tracks when the segment was created with [`creationDate`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Segment#field-creationDate) +and when it was last modified with [`lastEditDate`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Segment#field-lastEditDate). +""" type Segment implements Node { """The date and time when the segment was added to the store.""" creationDate: DateTime! @@ -70722,7 +81714,18 @@ type SegmentEdge { } """ -A filter with a set of possible values that's been added to a segment query. +Categorical filter options for building customer segments using predefined value +sets like countries, subscription statuses, or order frequencies. + +For example, a "Customer Location" enum filter provides options like "United States," "Canada," and "United Kingdom." + +Use this object to: +- Access available categorical filter options +- Understand filter capabilities and constraints +- Build user interfaces for segment creation + +Includes localized display names, indicates whether multiple values can be +selected, and provides technical query names for API operations. """ type SegmentEnumFilter implements SegmentFilter { """The localized name of the filter.""" @@ -70768,6 +81771,12 @@ type SegmentEventFilterParameter { """The localized name of the parameter.""" localizedName: String! + """The parameter maximum value range.""" + maxRange: Float + + """The parameter minimum value range.""" + minRange: Float + """Whether the parameter is optional.""" optional: Boolean! @@ -70832,6 +81841,12 @@ type SegmentFloatFilter implements SegmentFilter { """The localized name of the filter.""" localizedName: String! + """The maximum range a filter can have.""" + maxRange: Float + + """The minimum range a filter can have.""" + minRange: Float + """Whether a file can have multiple values for a single customer.""" multiValue: Boolean! @@ -70844,6 +81859,12 @@ type SegmentIntegerFilter implements SegmentFilter { """The localized name of the filter.""" localizedName: String! + """The maximum range a filter can have.""" + maxRange: Float + + """The minimum range a filter can have.""" + minRange: Float + """Whether a file can have multiple values for a single customer.""" multiValue: Boolean! @@ -71051,12 +82072,25 @@ input SelectedVariantOptionInput { } """ -Represents how a product can be sold and purchased. Selling plans and associated records (selling plan groups -and policies) are deleted 48 hours after a merchant uninstalls their subscriptions app. We recommend backing -up these records if you need to restore them later. +How a product can be sold and purchased through recurring billing or deferred +purchase options. Defines the specific terms for subscriptions, pre-orders, or +try-before-you-buy offers, including when to bill customers, when to fulfill +orders, and what pricing adjustments to apply. + +Each selling plan has billing, delivery, and pricing policies that control the +purchase experience. The plan's [`options`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SellingPlan#field-SellingPlan.fields.options) and [`category`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SellingPlan#field-SellingPlan.fields.category) +help merchants organize and report on different selling strategies. Plans are +grouped within a [`SellingPlanGroup`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SellingPlanGroup) +that associates them with +[`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) and [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) objects. -For more information on selling plans, refer to -[*Creating and managing selling plans*](https://shopify.dev/docs/apps/selling-strategies/subscriptions/selling-plans). +> Caution: +> Selling plans and associated records are automatically deleted 48 hours after +a merchant uninstalls the +[`App`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App) that +created them. Back up these records if you need to restore them later. + +Learn more about [selling plans](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/selling-plans/build-a-selling-plan). """ type SellingPlan implements HasMetafieldDefinitions & HasMetafields & HasPublishedTranslations & Node { """A selling plan policy which describes the recurring billing details.""" @@ -71158,7 +82192,7 @@ type SellingPlan implements HasMetafieldDefinitions & HasMetafields & HasPublish """ query: String - ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use the root `metafieldDefinitions` field instead.") + ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use `Query.metafieldDefinitions` instead.") """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) @@ -71166,7 +82200,7 @@ type SellingPlan implements HasMetafieldDefinitions & HasMetafields & HasPublish """ metafields( """ - The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. + The metafield namespace to filter by. If omitted, all metafields are returned. """ namespace: String @@ -71647,9 +82681,20 @@ enum SellingPlanFulfillmentTrigger { } """ -Represents a selling method (for example, "Subscribe and save" or "Pre-paid"). Selling plan groups -and associated records (selling plans and policies) are deleted 48 hours after a merchant -uninstalls their subscriptions app. We recommend backing up these records if you need to restore them later. +A selling method that defines how products can be sold through purchase options +like subscriptions, pre-orders, or try-before-you-buy. Groups one or more [`SellingPlan`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SellingPlan) +objects that share the same selling method and options. + +The group provides buyer-facing labels and merchant-facing descriptions for the +selling method. Associates +[`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) and [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) +objects with selling plan groups to offer them through these purchase options. + +> Caution: +> Selling plan groups and their associated records are automatically deleted 48 +hours after a merchant uninstalls the +[`App`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App) that +created them. Back up these records if you need to restore them later. """ type SellingPlanGroup implements HasPublishedTranslations & Node { """The ID for app, exposed in Liquid and product JSON.""" @@ -72539,6 +83584,9 @@ enum SellingPlanRemainingBalanceChargeTrigger { After the duration defined by the remaining_balance_charge_time_after_checkout field. """ TIME_AFTER_CHECKOUT + + """When the order is fulfilled.""" + ON_FULFILLMENT } """When to reserve inventory for a selling plan.""" @@ -72620,6 +83668,12 @@ enum ServerPixelStatus { DISCONNECTED_CONFIGURED } +"""The set of valid sort keys for the ShipmentLineItem query.""" +enum ShipmentLineItemSortKeys { + """Sort by the `id` value.""" + ID +} + """ The [discount class](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) that's used to control how discounts can be combined. @@ -72630,7 +83684,8 @@ enum ShippingDiscountClass { } """ -Represents the shipping details that the customer chose for their order. +The shipping method that customers select for an order. Includes pricing +details, carrier information, and any applied discounts or taxes. """ type ShippingLine { """ @@ -72677,10 +83732,18 @@ type ShippingLine { """Whether the shipping line has been removed.""" isRemoved: Boolean! - """The pre-tax shipping price without any discounts applied.""" + """ + The shipping price without any discounts applied. If the parent + order.taxesIncluded field is true, then this price includes taxes. Otherwise, + this field is the pre-tax price. + """ originalPrice: MoneyV2! @deprecated(reason: "Use `originalPriceSet` instead.") - """The pre-tax shipping price without any discounts applied.""" + """ + The shipping price without any discounts applied. If the parent + order.taxesIncluded field is true, then this price includes taxes. Otherwise, + this field is the pre-tax price. + """ originalPriceSet: MoneyBag! """The phone number at the shipping address.""" @@ -72838,7 +83901,7 @@ type ShippingPackageUpdatePayload { } """ -A shipping rate is an additional cost added to the cost of the products that were ordered. +A shipping option associated with order delivery that includes pricing and service information. """ type ShippingRate { """Human-readable unique identifier for this shipping rate.""" @@ -72890,9 +83953,17 @@ input ShippingRefundInput { } """ -Represents a collection of general settings and information about the shop. +The central configuration and settings hub for a Shopify store. Access business +information, operational preferences, feature availability, and store-wide +settings that control how the shop operates. + +Includes core business details like the shop name, contact emails, billing +address, and currency settings. The shop configuration determines customer +account requirements, available sales channels, enabled features, payment +settings, and policy documents. Also provides access to shop-level resources +such as staff members, fulfillment services, navigation settings, and storefront access tokens. """ -type Shop implements HasMetafields & HasPublishedTranslations & Node { +type Shop implements HasMetafieldDefinitions & HasMetafields & HasPublishedTranslations & Node { """Account owner information.""" accountOwner: StaffMember! @@ -72904,7 +83975,7 @@ type Shop implements HasMetafields & HasPublishedTranslations & Node { """ A list of the shop's product categories. Limit: 1000 product categories. """ - allProductCategories: [ProductCategory!]! @deprecated(reason: "Deprecated in API version 2024-07. Use `allProductCategoriesList` instead.") + allProductCategories: [ProductCategory!]! @deprecated(reason: "Use `allProductCategoriesList` instead.") """ A list of the shop's product categories. Limit: 1000 product categories. @@ -73006,7 +84077,7 @@ type Shop implements HasMetafields & HasPublishedTranslations & Node { ): AppConnection! """The shop's billing address information.""" - billingAddress: ShopAddress! + billingAddress: ShopAddress! @deprecated(reason: "Use `shopAddress` instead.") """List of all channel definitions associated with a shop.""" channelDefinitionsForInstalledChannels: [AvailableChannelDefinitionsByChannel!]! @@ -73081,29 +84152,56 @@ type Shop implements HasMetafields & HasPublishedTranslations & Node { | handle | string | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | product_id | id | Filter by collections containing a product by its ID. | - | product_publication_status | string | Filter by the publishable status of - the resource on a channel, such as the online store. The value is a - composite of the [channel `app` - ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) - (`Channel.app.id`) and one of the valid values. | - `approved`
- - `rejected`
- `needs_action`
- `awaiting_review`
- - `published`
- `demoted`
- `scheduled`
- - `provisionally_published` | | - `publishable_status:189769876-approved` | - | publishable_status | string | Filter by the publishable status of the - resource on a channel, such as the online store. The value is a composite of - either the [channel `app` + | product_publication_status | string | Filter by channel approval process + status of the resource on a channel, such as the online store. The value is + a composite of the [channel `app` ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#field-Channel.fields.app) + (`Channel.app.id`) and one of the valid values. For simple visibility checks, use [published_status](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-publishable_status) + instead. | - `* {channel_app_id}-approved`
- `* + {channel_app_id}-rejected`
- `* {channel_app_id}-needs_action`
- + `* {channel_app_id}-awaiting_review`
- `* + {channel_app_id}-published`
- `* {channel_app_id}-demoted`
- `* + {channel_app_id}-scheduled`
- `* + {channel_app_id}-provisionally_published` | | - + `product_publication_status:189769876-approved` | + | publishable_status | string | **Deprecated:** This parameter is deprecated + as of 2025-12 and will be removed in a future API version. Use [published_status](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-publishable_status) + for visibility checks. Filter by the publishable status of the resource on a + channel. The value is a composite of the [channel `app` ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) - (`Channel.app.id`) or [channel `name`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Channel#field-name) - and one of the valid values. | - `online_store_channel`
- - `published`
- `unpublished`
- `visible`
- `unavailable`
- - `hidden`
- `intended`
- `visible` | | - - `publishable_status:published`
- - `publishable_status:189769876:visible`
- - `publishable_status:pos:hidden` | + (`Channel.app.id`) and one of the valid status values. | - `* + {channel_app_id}-unset`
- `* {channel_app_id}-pending`
- `* + {channel_app_id}-approved`
- `* {channel_app_id}-not_approved` | | - + `publishable_status:580111-unset`
- `publishable_status:580111-pending` | | published_at | time | Filter by the date and time when the collection was published to the Online Store. | - | published_status | string | Filter by the published status of the resource - on a channel, such as the online store. | - `unset`
- `pending`
- - `approved`
- `not approved` | | - `published_status:approved` | + | published_status | string | Filter resources by their visibility and + publication state on a channel. Online store channel filtering: - + `online_store_channel`: Returns all resources in the online store channel, + regardless of publication status. - `published`/`visible`: Returns resources + that are published to the online store. - `unpublished`: Returns resources + that are not published to the online store. Channel-specific filtering using + a channel ID, channel handle, [channel `app` + ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) + (`Channel.app.id`), or app handle with suffixes: - + `{id_or_handle}-published`: Returns resources published to the specified + channel. - `{id_or_handle}-visible`: Same as `{id_or_handle}-published` + (kept for backwards compatibility). - `{id_or_handle}-intended`: Returns + resources added to the channel but not yet published. - + `{id_or_handle}-hidden`: Returns resources not added to the channel or not + published. Other: - `unavailable`: Returns resources not published to any + channel. | - `online_store_channel`
- `published`
- `visible`
+ - `unpublished`
- `* {channel_id_or_handle}-published`
- `* + {channel_id_or_handle}-visible`
- `* + {channel_id_or_handle}-intended`
- `* + {channel_id_or_handle}-hidden`
- `* + {channel_app_id_or_handle}-published`
- `* + {channel_app_id_or_handle}-visible`
- `* + {channel_app_id_or_handle}-intended`
- `* + {channel_app_id_or_handle}-hidden`
- `unavailable` | | - + `published_status:online_store_channel`
- + `published_status:published`
- `published_status:580111-published`
+ - `published_status:580111-hidden`
- + `published_status:my-channel-handle-published`
- + `published_status:unavailable` | | title | string | | updated_at | time | You can apply one or more filters to a query. Learn more about [Shopify API @@ -73225,12 +84323,16 @@ type Shop implements HasMetafields & HasPublishedTranslations & Node { `country:Canada`
- `country:JP` | | customer_date | time | Filter by the date and time when the customer record was created. This query parameter filters by the [`createdAt`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer#field-createdAt) - field. | | | - `customer_date:'2024-03-15T14:30:00Z'`
- - `customer_date:'>=2024-01-01'` | + field. | | | - `customer_date:'2024-03-15T14:30:00Z'`
- `customer_date: + >='2024-01-01'` | | email | string | The customer's email address, used to communicate information about orders and for the purposes of email marketing campaigns. You can use a wildcard value to filter the query by customers who have an - email address specified. | | | - `email:bo.wang@example.com`
- `email:*` | + email address specified. Please note that _email_ is a tokenized field: To + retrieve exact matches, quote the email address (_phrase query_) as + described in [Shopify API search + syntax](https://shopify.dev/docs/api/usage/search-syntax). | | | - + `email:gmail.com`
- `email:"bo.wang@example.com"`
- `email:*` | | first_name | string | Filter by the customer's first name. | | | - `first_name:Jane` | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | last_abandoned_order_date | time | Filter by the date and time of the @@ -73238,12 +84340,12 @@ type Shop implements HasMetafields & HasPublishedTranslations & Node { a customer adds items to their cart, begins the checkout process, but leaves the site without completing their purchase. | | | - `last_abandoned_order_date:'2024-04-01T10:00:00Z'`
- - `last_abandoned_order_date:'>=2024-01-01'` | + `last_abandoned_order_date: >='2024-01-01'` | | last_name | string | Filter by the customer's last name. | | | - `last_name:Reeves` | | order_date | time | Filter by the date and time that the order was placed by the customer. Use this query filter to check if a customer has placed at least one order within a specified date range. | | | - - `order_date:'2024-02-20T00:00:00Z'`
- `order_date:'>=2024-01-01'`
+ `order_date:'2024-02-20T00:00:00Z'`
- `order_date: >='2024-01-01'`
- `order_date:'2024-01-01..2024-03-31'` | | orders_count | integer | Filter by the total number of orders a customer has placed. | | | - `orders_count:5` | | phone | string | The phone number of the customer, used to communicate @@ -73289,57 +84391,6 @@ type Shop implements HasMetafields & HasPublishedTranslations & Node { first: Int! ): StringConnection! - """List of saved draft orders on the shop.""" - draftOrders( - """ - The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). - """ - first: Int - - """ - The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). - """ - after: String - - """ - The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). - """ - last: Int - - """ - The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). - """ - before: String - - """Reverse the order of the underlying list.""" - reverse: Boolean = false - - """ - Sort the underlying list using a key. If your query is slow or returns an - error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). - """ - sortKey: DraftOrderSortKeys = ID - - """ - A filter made up of terms, connectives, modifiers, and comparators. - | name | type | description | acceptable_values | default_value | example_use | - | ---- | ---- | ---- | ---- | ---- | ---- | - | default | string | Filter by a case-insensitive search of multiple fields - in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | - | created_at | time | - | customer_id | id | - | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | - | source | string | - | status | string | - | tag | string | - | updated_at | time | - You can apply one or more filters to a query. Learn more about [Shopify API - search syntax](https://shopify.dev/api/usage/search-syntax). - - """ - query: String - ): DraftOrderConnection! @deprecated(reason: "Use `Query.draftOrders` instead.") - """ The shop owner's email address. Shopify will use this email address to communicate with the shop owner. @@ -73553,13 +84604,78 @@ type Shop implements HasMetafields & HasPublishedTranslations & Node { key: String! ): Metafield + """List of metafield definitions.""" + metafieldDefinitions( + """Filter metafield definitions by namespace.""" + namespace: String + + """Filter by the definition's pinned status.""" + pinnedStatus: MetafieldDefinitionPinnedStatus = ANY + + """ + The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + first: Int + + """ + The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + after: String + + """ + The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). + """ + last: Int + + """ + The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). + """ + before: String + + """Reverse the order of the underlying list.""" + reverse: Boolean = false + + """ + Sort the underlying list using a key. If your query is slow or returns an + error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). + """ + sortKey: MetafieldDefinitionSortKeys = ID + + """ + A filter made up of terms, connectives, modifiers, and comparators. + | name | type | description | acceptable_values | default_value | example_use | + | ---- | ---- | ---- | ---- | ---- | ---- | + | default | string | Filter by a case-insensitive search of multiple fields + in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | + | created_at | time | Filter by the date and time when the metafield + definition was created. | | | - `created_at:>2020-10-21T23:39:20Z`
- + `created_at: - `created_at:<=2024` | + | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | + | key | string | Filter by the metafield definition [`key`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-key) + field. | | | - `key:some-key` | + | namespace | string | Filter by the metafield definition [`namespace`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-namespace) + field. | | | - `namespace:some-namespace` | + | owner_type | string | Filter by the metafield definition [`ownerType`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-ownertype) + field. | | | - `owner_type:PRODUCT` | + | type | string | Filter by the metafield definition [`type`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-type) + field. | | | - `type:single_line_text_field` | + | updated_at | time | Filter by the date and time when the metafield + definition was last updated. | | | - `updated_at:>2020-10-21T23:39:20Z`
+ - `updated_at: - `updated_at:<=2024` | + You can apply one or more filters to a query. Learn more about [Shopify API + search syntax](https://shopify.dev/api/usage/search-syntax). + + """ + query: String + ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use `Query.metafieldDefinitions` instead.") + """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. """ metafields( """ - The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. + The metafield namespace to filter by. If omitted, all metafields are returned. """ namespace: String @@ -73659,10 +84775,10 @@ type Shop implements HasMetafields & HasPublishedTranslations & Node { abandoned cart conversions or troubleshoot checkout issues. The token references the cart that's associated with an order. | | | - `cart_token:abc123` | - | channel | string | Filter by the channel information [`handle`](https://shopify.dev/api/admin-graphql/latest/objects/ChannelInformation#field-channeldefinition) + | channel | string | Filter by the channel information [`handle`](https://shopify.dev/api/admin-graphql/latest/objects/ChannelInformation#field-ChannelInformation.fields.channelDefinition.handle) (`ChannelInformation.channelDefinition.handle`) field. | | | - `channel:web`
- `channel:web,pos` | - | channel_id | id | Filter by the channel [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Channel#field-id) + | channel_id | id | Filter by the channel [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Channel#field-Channel.fields.id) field. | | | - `channel_id:123` | | chargeback_status | string | Filter by the order's chargeback status. A chargeback occurs when a customer questions the legitimacy of a charge with @@ -73684,18 +84800,23 @@ type Shop implements HasMetafields & HasPublishedTranslations & Node { card that was used to pay for the order. This filter matches only the last four digits of the card for heightened security. | | | - `credit_card_last4:1234` | - | customer_id | id | Filter orders by the customer [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Customer#field-id) + | current_total_price | float | Filter by the current total price of the + order in the shop currency, including any returns/refunds/removals. This + filter supports both exact values and ranges. | | | - + `current_total_price:10`
- `current_total_price:>=5.00 + current_total_price:<=20.99` | + | customer_id | id | Filter orders by the customer [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Customer#field-Customer.fields.id) field. | | | - `customer_id:123` | - | delivery_method | string | Filter by the delivery [`methodType`](https://shopify.dev/api/admin-graphql/2024-07/objects/DeliveryMethod#field-methodtype) + | delivery_method | string | Filter by the delivery [`methodType`](https://shopify.dev/api/admin-graphql/2024-07/objects/DeliveryMethod#field-DeliveryMethod.fields.methodType) field. | - `shipping`
- `pick-up`
- `retail`
- `local`
- `pickup-point`
- `none` | | - `delivery_method:shipping` | | discount_code | string | Filter by the case-insensitive discount code that - was applied to the order at checkout. Maximum characters: 255. | | | - - `discount_code:ABC123` | + was applied to the order at checkout. Limited to the first discount code + used on an order. Maximum characters: 255. | | | - `discount_code:ABC123` | | email | string | Filter by the email address that's associated with the order to provide customer support or analyze purchasing patterns. | | | - `email:example@shopify.com` | - | financial_status | string | Filter by the order [`displayFinancialStatus`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-displayfinancialstatus) + | financial_status | string | Filter by the order [`displayFinancialStatus`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-Order.fields.displayFinancialStatus) field. | - `paid`
- `pending`
- `authorized`
- `partially_paid`
- `partially_refunded`
- `refunded`
- `voided`
- `expired` | | - `financial_status:authorized` | @@ -73704,23 +84825,28 @@ type Shop implements HasMetafields & HasPublishedTranslations & Node { disputes. | - `fully_protected`
- `partially_protected`
- `not_protected`
- `pending`
- `not_eligible`
- `not_available` | | - `fraud_protection_level:fully_protected` | - | fulfillment_location_id | id | Filter by the fulfillment location [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Fulfillment#field-location) + | fulfillment_location_id | id | Filter by the fulfillment location [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Fulfillment#field-Fulfillment.fields.location.id) (`Fulfillment.location.id`) field. | | | - `fulfillment_location_id:123` | - | fulfillment_status | string | Filter by the [`displayFulfillmentStatus`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-displayfulfillmentstatus) + | fulfillment_status | string | Filter by the [`displayFulfillmentStatus`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-Order.fields.displayFulfillmentStatus) field to prioritize shipments or monitor order processing. | - `unshipped`
- `shipped`
- `fulfilled`
- `partial`
- `scheduled`
- `on_hold`
- `unfulfilled`
- `request_declined` | | - `fulfillment_status:fulfilled` | - | gateway | string | Filter by the [`paymentGatewayNames`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-paymentgatewaynames) + | gateway | string | Filter by the [`paymentGatewayNames`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order#field-Order.fields.paymentGatewayNames) field. Use this filter to find orders that were processed through specific payment providers like Shopify Payments, PayPal, or other custom payment gateways. | | | - `gateway:shopify_payments` | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | - | location_id | id | Filter by the location [`id`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location#field-id) + | location_id | id | Filter by the location [`id`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Location#field-Location.fields.id) that's associated with the order to view and manage orders for specific locations. For POS orders, locations must be defined in the Shopify admin under **Settings** > **Locations**. If no ID is provided, then the primary location of the shop is returned. | | | - `location_id:123` | + | metafields.{namespace}.{key} | mixed | Filters resources by metafield + value. Format: `metafields.{namespace}.{key}:{value}`. Learn more about + [querying by metafield value](https://shopify.dev/apps/build/custom-data/metafields/query-by-metafield-value). + | | | - `metafields.custom.on_sale:true`
- + `metafields.product.material:"gid://shopify/Metaobject/43458085"` | | name | string | Filter by the order [`name`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-name) field. | | | - `name:1001-A` | | payment_id | string | Filter by the payment ID that's associated with the @@ -73729,26 +84855,26 @@ type Shop implements HasMetafields & HasPublishedTranslations & Node { | payment_provider_id | id | Filter by the ID of the payment provider that's associated with the order to manage payment methods or troubleshoot transactions. | | | - `payment_provider_id:123` | - | po_number | string | Filter by the order [`poNumber`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-ponumber) + | po_number | string | Filter by the order [`poNumber`](https://shopify.dev/api/admin-graphql/latest/objects/order#field-Order.fields.poNumber) field. | | | - `po_number:P01001` | - | processed_at | time | Filter by the order [`processedAt`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-processedat) + | processed_at | time | Filter by the order [`processedAt`](https://shopify.dev/api/admin-graphql/latest/objects/order#field-Order.fields.processedAt) field. | | | - `processed_at:2021-01-01T00:00:00Z` | | reference_location_id | id | Filter by the ID of a location that's associated with the order, such as locations from fulfillments, refunds, or the shop's primary location. | | | - `reference_location_id:123` | - | return_status | string | Filter by the return status to monitor returns - processing and track which orders have active returns. | - - `return_requested`
- `in_progress`
- `inspection_complete`
- - `returned`
- `return_failed`
- `no_return` | | - + | return_status | string | Filter by the order's [`returnStatus`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-Order.fields.returnStatus) + to monitor returns processing and track which orders have active returns. | + - `return_requested`
- `in_progress`
- `inspection_complete`
+ - `returned`
- `return_failed`
- `no_return` | | - `return_status:in_progress` | - | risk_level | string | Filter by the order risk assessment [`riskLevel`](https://shopify.dev/api/admin-graphql/latest/objects/OrderRiskAssessment#field-risklevel) + | risk_level | string | Filter by the order risk assessment [`riskLevel`](https://shopify.dev/api/admin-graphql/latest/objects/OrderRiskAssessment#field-OrderRiskAssessment.fields.riskLevel) field. | - `high`
- `medium`
- `low`
- `none`
- `pending` | | - `risk_level:high` | | sales_channel | string | Filter by the [sales channel](https://shopify.dev/docs/apps/build/sales-channels) where the order was made to analyze performance or manage fulfillment processes. | | | - `sales_channel: some_sales_channel` | - | sku | string | Filter by the product variant [`sku`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-sku) + | sku | string | Filter by the product variant [`sku`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-ProductVariant.fields.sku) field. [Learn more about SKUs](https://help.shopify.com/manual/products/details/sku). | | | - `sku:ABC123` | | source_identifier | string | Filter by the ID of the order placed on the @@ -73770,9 +84896,14 @@ type Shop implements HasMetafields & HasPublishedTranslations & Node { `subtotal_line_items_quantity:5..20` | | tag | string | Filter objects by the `tag` field. | | | - `tag:my_tag` | | tag_not | string | Filter by objects that don’t have the specified tag. | | | - `tag_not:my_tag` | - | test | boolean | Filter by test orders. Test orders are made using the [Shopify Bogus - Gateway](https://help.shopify.com/manual/checkout-settings/test-orders) or a - payment provider with test mode enabled. | | | - `test:true` | + | test | boolean | Filter by test orders. Test orders are made using the [Shopify Bogus Gateway](https://help.shopify.com/manual/checkout-settings/test-orders/payments-test-mode#bogus-gateway) + or a payment provider with test mode enabled. | | | - `test:true` | + | total_weight | string | Filter by the order weight. This filter supports + both exact values and ranges, and is to be used to filter orders by the + total weight of all items (excluding packaging). It takes a unit of + measurement as a suffix. It accepts the following units: g, kg, lb, oz. | | + | - `total_weight:10.5kg`
- `total_weight:>=5g total_weight:<=20g`
+ - `total_weight:.5 lb` | | updated_at | time | Filter by the date and time when the order was last updated in Shopify's system. | | | - `updated_at:2020-10-21T23:39:20Z`
- `updated_at: - `updated_at:<=2024` | @@ -73822,7 +84953,7 @@ type Shop implements HasMetafields & HasPublishedTranslations & Node { error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: ProductImageSortKeys = CREATED_AT - ): ImageConnection! @deprecated(reason: "Use `files` instead. See [filesQuery](https://shopify.dev/docs/api/admin-graphql/latest/queries/files) and its [query](https://shopify.dev/docs/api/admin-graphql/2024-01/queries/files#argument-query) argument for more information.") + ): ImageConnection! @deprecated(reason: "Use `files` instead. See [filesQuery](https://shopify.dev/docs/api/admin-graphql/latest/queries/files) and its [query](https://shopify.dev/docs/api/admin-graphql/latest/queries/files#argument-query) argument for more information.") """A list of tags that have been added to products.""" productTags( @@ -73912,32 +85043,59 @@ type Shop implements HasMetafields & HasPublishedTranslations & Node { field. | | | - `product_id:8474977763649` | | product_ids | string | Filter by a comma-separated list of product [IDs](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-id). | | | - `product_ids:8474977763649,8474977796417` | - | product_publication_status | string | Filter by the publishable status of - the resource on a channel, such as the online store. The value is a - composite of the [channel `app` - ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) - (`Channel.app.id`) and one of the valid values. | - `approved`
- - `rejected`
- `needs_action`
- `awaiting_review`
- - `published`
- `demoted`
- `scheduled`
- - `provisionally_published` | | - `publishable_status:189769876-approved` | + | product_publication_status | string | Filter by channel approval process + status of the resource on a channel, such as the online store. The value is + a composite of the [channel `app` ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#field-Channel.fields.app) + (`Channel.app.id`) and one of the valid values. For simple visibility checks, use [published_status](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-publishable_status) + instead. | - `* {channel_app_id}-approved`
- `* + {channel_app_id}-rejected`
- `* {channel_app_id}-needs_action`
- + `* {channel_app_id}-awaiting_review`
- `* + {channel_app_id}-published`
- `* {channel_app_id}-demoted`
- `* + {channel_app_id}-scheduled`
- `* + {channel_app_id}-provisionally_published` | | - + `product_publication_status:189769876-approved` | | product_status | string | Filter by a comma-separated list of product [statuses](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-status). | | | - `product_status:ACTIVE,DRAFT` | | product_type | string | Filter by the product type that's associated with the product variants. | | | - `product_type:snowboard` | - | publishable_status | string | Filter by the publishable status of the - resource on a channel, such as the online store. The value is a composite of - either the [channel `app` + | publishable_status | string | **Deprecated:** This parameter is deprecated + as of 2025-12 and will be removed in a future API version. Use [published_status](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-publishable_status) + for visibility checks. Filter by the publishable status of the resource on a + channel. The value is a composite of the [channel `app` + ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) + (`Channel.app.id`) and one of the valid status values. | - `* + {channel_app_id}-unset`
- `* {channel_app_id}-pending`
- `* + {channel_app_id}-approved`
- `* {channel_app_id}-not_approved` | | - + `publishable_status:580111-unset`
- `publishable_status:580111-pending` | + | published_status | string | Filter resources by their visibility and + publication state on a channel. Online store channel filtering: - + `online_store_channel`: Returns all resources in the online store channel, + regardless of publication status. - `published`/`visible`: Returns resources + that are published to the online store. - `unpublished`: Returns resources + that are not published to the online store. Channel-specific filtering using + a channel ID, channel handle, [channel `app` ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) - (`Channel.app.id`) or [channel `name`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Channel#field-name) - and one of the valid values. | - `online_store_channel`
- - `published`
- `unpublished`
- `visible`
- `unavailable`
- - `hidden`
- `intended`
- `visible` | | - - `publishable_status:published`
- - `publishable_status:189769876:visible`
- - `publishable_status:pos:hidden` | - | published_status | string | Filter by the published status of the resource - on a channel, such as the online store. | - `unset`
- `pending`
- - `approved`
- `not approved` | | - `published_status:approved` | + (`Channel.app.id`), or app handle with suffixes: - + `{id_or_handle}-published`: Returns resources published to the specified + channel. - `{id_or_handle}-visible`: Same as `{id_or_handle}-published` + (kept for backwards compatibility). - `{id_or_handle}-intended`: Returns + resources added to the channel but not yet published. - + `{id_or_handle}-hidden`: Returns resources not added to the channel or not + published. Other: - `unavailable`: Returns resources not published to any + channel. | - `online_store_channel`
- `published`
- `visible`
+ - `unpublished`
- `* {channel_id_or_handle}-published`
- `* + {channel_id_or_handle}-visible`
- `* + {channel_id_or_handle}-intended`
- `* + {channel_id_or_handle}-hidden`
- `* + {channel_app_id_or_handle}-published`
- `* + {channel_app_id_or_handle}-visible`
- `* + {channel_app_id_or_handle}-intended`
- `* + {channel_app_id_or_handle}-hidden`
- `unavailable` | | - + `published_status:online_store_channel`
- + `published_status:published`
- `published_status:580111-published`
+ - `published_status:580111-hidden`
- + `published_status:my-channel-handle-published`
- + `published_status:unavailable` | | requires_components | boolean | Filter by whether the product variant can only be purchased with components. [Learn more](https://shopify.dev/apps/build/product-merchandising/bundles#store-eligibility). | | | - `requires_components:true` | @@ -74050,6 +85208,11 @@ type Shop implements HasMetafields & HasPublishedTranslations & Node { | is_price_reduced | boolean | Filter by products that have a reduced price. For more information, refer to the [`CollectionRule`](https://shopify.dev/api/admin-graphql/latest/objects/CollectionRule) object. | | | - `is_price_reduced:true` | + | metafields.{namespace}.{key} | mixed | Filters resources by metafield + value. Format: `metafields.{namespace}.{key}:{value}`. Learn more about + [querying by metafield value](https://shopify.dev/apps/build/custom-data/metafields/query-by-metafield-value). + | | | - `metafields.custom.on_sale:true`
- + `metafields.product.material:"gid://shopify/Metaobject/43458085"` | | out_of_stock_somewhere | boolean | Filter by products that are out of stock in at least one location. | | | - `out_of_stock_somewhere:true` | | price | bigdecimal | Filter by the product variant [`price`](https://shopify.dev/api/admin-graphql/latest/objects/Productvariant#field-price) @@ -74057,38 +85220,65 @@ type Shop implements HasMetafields & HasPublishedTranslations & Node { | product_configuration_owner | string | Filter by the app [`id`](https://shopify.dev/api/admin-graphql/latest/objects/App#field-id) field. | | | - `product_configuration_owner:10001` | - | product_publication_status | string | Filter by the publishable status of - the resource on a channel, such as the online store. The value is a - composite of the [channel `app` - ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) - (`Channel.app.id`) and one of the valid values. | - `approved`
- - `rejected`
- `needs_action`
- `awaiting_review`
- - `published`
- `demoted`
- `scheduled`
- - `provisionally_published` | | - `publishable_status:189769876-approved` | + | product_publication_status | string | Filter by channel approval process + status of the resource on a channel, such as the online store. The value is + a composite of the [channel `app` ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#field-Channel.fields.app) + (`Channel.app.id`) and one of the valid values. For simple visibility checks, use [published_status](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-publishable_status) + instead. | - `* {channel_app_id}-approved`
- `* + {channel_app_id}-rejected`
- `* {channel_app_id}-needs_action`
- + `* {channel_app_id}-awaiting_review`
- `* + {channel_app_id}-published`
- `* {channel_app_id}-demoted`
- `* + {channel_app_id}-scheduled`
- `* + {channel_app_id}-provisionally_published` | | - + `product_publication_status:189769876-approved` | | product_type | string | Filter by a comma-separated list of [product types](https://help.shopify.com/manual/products/details/product-type). | | | - `product_type:snowboard` | | publication_ids | string | Filter by a comma-separated list of publication IDs that are associated with the product. | | | - `publication_ids:184111530305,184111694145` | - | publishable_status | string | Filter by the publishable status of the - resource on a channel, such as the online store. The value is a composite of - either the [channel `app` + | publishable_status | string | **Deprecated:** This parameter is deprecated + as of 2025-12 and will be removed in a future API version. Use [published_status](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-publishable_status) + for visibility checks. Filter by the publishable status of the resource on a + channel. The value is a composite of the [channel `app` ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) - (`Channel.app.id`) or [channel `name`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Channel#field-name) - and one of the valid values. | - `online_store_channel`
- - `published`
- `unpublished`
- `visible`
- `unavailable`
- - `hidden`
- `intended`
- `visible` | | - - `publishable_status:published`
- - `publishable_status:189769876:visible`
- - `publishable_status:pos:hidden` | + (`Channel.app.id`) and one of the valid status values. | - `* + {channel_app_id}-unset`
- `* {channel_app_id}-pending`
- `* + {channel_app_id}-approved`
- `* {channel_app_id}-not_approved` | | - + `publishable_status:580111-unset`
- `publishable_status:580111-pending` | | published_at | time | Filter by the date and time when the product was published to the online store and other sales channels. | | | - `published_at:>2020-10-21T23:39:20Z`
- `published_at: - `published_at:<=2024` | - | published_status | string | Filter by the published status of the resource - on a channel, such as the online store. | - `unset`
- `pending`
- - `approved`
- `not approved` | | - `published_status:approved` | + | published_status | string | Filter resources by their visibility and + publication state on a channel. Online store channel filtering: - + `online_store_channel`: Returns all resources in the online store channel, + regardless of publication status. - `published`/`visible`: Returns resources + that are published to the online store. - `unpublished`: Returns resources + that are not published to the online store. Channel-specific filtering using + a channel ID, channel handle, [channel `app` + ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) + (`Channel.app.id`), or app handle with suffixes: - + `{id_or_handle}-published`: Returns resources published to the specified + channel. - `{id_or_handle}-visible`: Same as `{id_or_handle}-published` + (kept for backwards compatibility). - `{id_or_handle}-intended`: Returns + resources added to the channel but not yet published. - + `{id_or_handle}-hidden`: Returns resources not added to the channel or not + published. Other: - `unavailable`: Returns resources not published to any + channel. | - `online_store_channel`
- `published`
- `visible`
+ - `unpublished`
- `* {channel_id_or_handle}-published`
- `* + {channel_id_or_handle}-visible`
- `* + {channel_id_or_handle}-intended`
- `* + {channel_id_or_handle}-hidden`
- `* + {channel_app_id_or_handle}-published`
- `* + {channel_app_id_or_handle}-visible`
- `* + {channel_app_id_or_handle}-intended`
- `* + {channel_app_id_or_handle}-hidden`
- `unavailable` | | - + `published_status:online_store_channel`
- + `published_status:published`
- `published_status:580111-published`
+ - `published_status:580111-hidden`
- + `published_status:my-channel-handle-published`
- + `published_status:unavailable` | | sku | string | Filter by the product variant [`sku`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-sku) field. [Learn more about SKUs](https://help.shopify.com/manual/products/details/sku). | | | - @@ -74096,8 +85286,8 @@ type Shop implements HasMetafields & HasPublishedTranslations & Node { | status | string | Filter by a comma-separated list of statuses. You can use statuses to manage inventory. Shopify only displays products with an `ACTIVE` status in online stores, sales channels, and apps. | - - `ACTIVE`
- `ARCHIVED`
- `DRAFT` | `ACTIVE` | - - `status:ACTIVE,DRAFT` | + `active`
- `archived`
- `draft` | `active` | - + `status:active,draft` | | tag | string | Filter objects by the `tag` field. | | | - `tag:my_tag` | | tag_not | string | Filter by objects that don’t have the specified tag. | | | - `tag_not:my_tag` | | title | string | Filter by the product [`title`](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-title) @@ -74168,6 +85358,9 @@ type Shop implements HasMetafields & HasPublishedTranslations & Node { """The list of countries that the shop ships to.""" shipsToCountries: [CountryCode!]! + """The shop's address information as it will appear to buyers.""" + shopAddress: ShopAddress! + """The name of the shop owner.""" shopOwnerName: String! @@ -74475,10 +85668,10 @@ type ShopFeatures { internationalDomains: Boolean! @deprecated(reason: "All shops have international domains through Shopify Markets.") """Whether a shop can enable international price overrides.""" - internationalPriceOverrides: Boolean! + internationalPriceOverrides: Boolean! @deprecated(reason: "Use the `markets` field on `EntitlementsType`.\nEach market entitlement has a `catalogs` field that indicates\nwhether the shop's markets have access to catalogs and price overrides.\n") """Whether a shop can enable international price rules.""" - internationalPriceRules: Boolean! + internationalPriceRules: Boolean! @deprecated(reason: "Use the `markets` field on `EntitlementsType`.\nEach market entitlement has a `catalogs` field that indicates\nwhether the shop's markets have access to catalogs and price overrides.\n") """ Whether a shop has enabled a legacy subscription gateway to handle older subscriptions. @@ -74543,6 +85736,9 @@ type ShopifyFunction { """The description of the Shopify Function.""" description: String + """The handle of the Shopify Function.""" + handle: String! + """The ID of the Shopify Function.""" id: String! @@ -74594,10 +85790,16 @@ type ShopifyFunctionEdge { } """ -Balance and payout information for a -[Shopify Payments](https://help.shopify.com/manual/payments/shopify-payments/getting-paid-with-shopify-payments) -account. Balance includes all balances for the currencies supported by the shop. -You can also query for a list of payouts, where each payout includes the corresponding currencyCode field. +Financial account information for merchants using Shopify Payments. Tracks +current balances across all supported currencies, payout schedules, and [`ShopifyPaymentsBalanceTransaction`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsBalanceTransaction) records. + +The account includes configuration details such as [`ShopifyPaymentsBankAccount`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsBankAccount) +objects for receiving [`ShopifyPaymentsPayout`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsPayout) +transfers, statement descriptors that appear on customer credit card statements, and the [`ShopifyPaymentsPayoutSchedule`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsPayoutSchedule) +that determines when funds transfer to your bank. Access balance transactions to +review individual charges, refunds, and adjustments that affect your account +balance. Query payouts to track money movement between your Shopify Payments +balance and bank accounts. """ type ShopifyPaymentsAccount implements Node { """The name of the account opener.""" @@ -74891,7 +86093,15 @@ type ShopifyPaymentsAssociatedOrder { name: String! } -"""A transaction that contributes to a Shopify Payments account balance.""" +""" +A transaction that contributes to a Shopify Payments account balance. Records +money movement from charges, refunds, payouts, adjustments, or other payment +activities. Includes the gross amount, processing fees, and resulting net amount +that affects the account balance. Links to the source of the transaction and associated [`ShopifyPaymentsPayout`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsPayout) +details, with optional references to +[`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order) +objects or adjustment reasons when applicable. +""" type ShopifyPaymentsBalanceTransaction implements Node { """ The reason for the adjustment that's associated with the transaction. @@ -75221,6 +86431,15 @@ enum ShopifyPaymentsBusinessType { """The business type is a public partnership.""" PUBLIC_PARTNERSHIP + """The business type is a free zone establishment.""" + FREE_ZONE_ESTABLISHMENT + + """The business type is a free zone LLC.""" + FREE_ZONE_LLC + + """The business type is a sole establishment.""" + SOLE_ESTABLISHMENT + """ The business type is not set. This is usually because onboarding is incomplete. """ @@ -75252,6 +86471,9 @@ type ShopifyPaymentsDispute implements LegacyInteroperability & Node { """The total amount disputed by the cardholder.""" amount: MoneyV2! + """The evidence associated with the dispute.""" + disputeEvidence: ShopifyPaymentsDisputeEvidence! + """The deadline for evidence submission.""" evidenceDueBy: Date @@ -75422,6 +86644,9 @@ enum ShopifyPaymentsDisputeEvidenceFileType { """Service Documentation File.""" SERVICE_DOCUMENTATION_FILE + + """Response Summary File.""" + RESPONSE_SUMMARY_FILE } """The input fields required to update a dispute evidence object.""" @@ -75583,6 +86808,13 @@ enum ShopifyPaymentsDisputeReason { The customer initiated the dispute. Contact the customer for additional details on why the payment was disputed. """ CUSTOMER_INITIATED + + """ + The card issuer believes the disputed transaction doesn't conform to the + network rules. These disputes occur when transactions don't meet card network + requirements and may incur additional network fees if escalated for resolution. + """ + NONCOMPLIANT } """Details regarding a dispute reason.""" @@ -75613,10 +86845,10 @@ type ShopifyPaymentsJpChargeStatementDescriptor implements ShopifyPaymentsCharge default: String """The charge statement descriptor in kana.""" - kana: String + kana: String @deprecated(reason: "This field is deprecated and will be removed in a future release.") """The charge statement descriptor in kanji.""" - kanji: String + kanji: String @deprecated(reason: "This field is deprecated and will be removed in a future release.") """The prefix of the statement descriptor.""" prefix: String! @@ -75645,8 +86877,14 @@ type ShopifyPaymentsMerchantCategoryCode { } """ -Payouts represent the movement of money between a merchant's Shopify -Payments balance and their bank account. +A transfer of funds between a merchant's Shopify Payments balance and their [`ShopifyPaymentsBankAccount`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsBankAccount). +Provides the [net amount](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsPayout#field-ShopifyPaymentsPayout.fields.net), [issue date](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsPayout#field-ShopifyPaymentsPayout.fields.issuedAt), and current [`ShopifyPaymentsPayoutStatus`](https://shopify.dev/docs/api/admin-graphql/latest/enums/ShopifyPaymentsPayoutStatus). + +The payout includes a [`ShopifyPaymentsPayoutSummary`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShopifyPaymentsPayoutSummary) +that breaks down fees and gross amounts by transaction type, such as charges, +refunds, and adjustments. The [`ShopifyPaymentsPayoutTransactionType`](https://shopify.dev/docs/api/admin-graphql/latest/enums/ShopifyPaymentsPayoutTransactionType) +indicates whether funds move into the bank account (deposit) or back to Shopify +Payments (withdrawal). """ type ShopifyPaymentsPayout implements LegacyInteroperability & Node { """The bank account for the payout.""" @@ -75655,6 +86893,11 @@ type ShopifyPaymentsPayout implements LegacyInteroperability & Node { """The business entity associated with the payout.""" businessEntity: BusinessEntity! + """ + A unique trace ID from the financial institution. Use this reference number to track the payout with your provider. + """ + externalTraceId: String + """The total amount and currency of the payout.""" gross: MoneyV2! @deprecated(reason: "Use `net` instead.") @@ -75866,6 +87109,9 @@ type ShopifyPaymentsPayoutSummary { """Total gross amount for all retried payouts.""" retriedPayoutsGross: MoneyV2! + + """Total amount for all usdc rebate credit balance adjustments.""" + usdcRebateCreditAmount: MoneyV2! } """The possible transaction types for a payout.""" @@ -75965,6 +87211,18 @@ type ShopifyPaymentsTransactionSet { """The possible types of transactions.""" enum ShopifyPaymentsTransactionType { + """The ach_bank_failure_debit_fee transaction type.""" + ACH_BANK_FAILURE_DEBIT_FEE + + """The ach_bank_failure_debit_reversal_fee transaction type.""" + ACH_BANK_FAILURE_DEBIT_REVERSAL_FEE + + """The ads_publisher_credit transaction type.""" + ADS_PUBLISHER_CREDIT + + """The ads_publisher_credit_reversal transaction type.""" + ADS_PUBLISHER_CREDIT_REVERSAL + """The chargeback_protection_credit transaction type.""" CHARGEBACK_PROTECTION_CREDIT @@ -76055,6 +87313,18 @@ enum ShopifyPaymentsTransactionType { """The tax_adjustment_credit_reversal transaction type.""" TAX_ADJUSTMENT_CREDIT_REVERSAL + """The agentic_fee_tax_debit transaction type.""" + AGENTIC_FEE_TAX_DEBIT + + """The agentic_fee_tax_debit_reversal transaction type.""" + AGENTIC_FEE_TAX_DEBIT_REVERSAL + + """The agentic_fee_tax_credit transaction type.""" + AGENTIC_FEE_TAX_CREDIT + + """The agentic_fee_tax_credit_reversal transaction type.""" + AGENTIC_FEE_TAX_CREDIT_REVERSAL + """The billing_debit transaction type.""" BILLING_DEBIT @@ -76109,6 +87379,42 @@ enum ShopifyPaymentsTransactionType { """The shopify_collective_credit_reversal transaction type.""" SHOPIFY_COLLECTIVE_CREDIT_REVERSAL + """The lending_debit transaction type.""" + LENDING_DEBIT + + """The lending_debit_reversal transaction type.""" + LENDING_DEBIT_REVERSAL + + """The lending_credit transaction type.""" + LENDING_CREDIT + + """The lending_credit_reversal transaction type.""" + LENDING_CREDIT_REVERSAL + + """The lending_capital_remittance transaction type.""" + LENDING_CAPITAL_REMITTANCE + + """The lending_capital_remittance_reversal transaction type.""" + LENDING_CAPITAL_REMITTANCE_REVERSAL + + """The lending_credit_remittance transaction type.""" + LENDING_CREDIT_REMITTANCE + + """The lending_credit_remittance_reversal transaction type.""" + LENDING_CREDIT_REMITTANCE_REVERSAL + + """The lending_capital_refund transaction type.""" + LENDING_CAPITAL_REFUND + + """The lending_capital_refund_reversal transaction type.""" + LENDING_CAPITAL_REFUND_REVERSAL + + """The lending_credit_refund transaction type.""" + LENDING_CREDIT_REFUND + + """The lending_credit_refund_reversal transaction type.""" + LENDING_CREDIT_REFUND_REVERSAL + """The balance_transfer_inbound transaction type.""" BALANCE_TRANSFER_INBOUND @@ -76169,6 +87475,12 @@ enum ShopifyPaymentsTransactionType { """The risk_withdrawal transaction type.""" RISK_WITHDRAWAL + """The referral_fee transaction type.""" + REFERRAL_FEE + + """The referral_fee_tax transaction type.""" + REFERRAL_FEE_TAX + """The merchant_to_merchant_debit transaction type.""" MERCHANT_TO_MERCHANT_DEBIT @@ -76248,46 +87560,6 @@ enum ShopifyPaymentsTransactionType { IMPORT_TAX_REFUND } -""" -Each subject (individual) of an account has a verification object giving - information about the verification state. -""" -type ShopifyPaymentsVerification implements Node { - """A globally-unique ID.""" - id: ID! - - """The status of the verification.""" - status: ShopifyPaymentsVerificationStatus! - - """The subject/individual who has to be verified.""" - subject: ShopifyPaymentsVerificationSubject! -} - -"""The status of a verification.""" -enum ShopifyPaymentsVerificationStatus { - """The verification has been verified.""" - VERIFIED - - """The verification has not yet been verified.""" - UNVERIFIED - - """ - The verification request has been submitted but a response has not yet been given. - """ - PENDING -} - -""" -The verification subject represents an individual that has to be verified. -""" -type ShopifyPaymentsVerificationSubject { - """The family name of the individual to verify.""" - familyName: String! - - """The given name of the individual to verify.""" - givenName: String! -} - """ The status of an order's eligibility for protection against fraudulent chargebacks by Shopify Protect. """ @@ -76357,6 +87629,39 @@ enum ShopifyProtectStatus { NOT_PROTECTED } +"""A response to a ShopifyQL query.""" +type ShopifyqlQueryResponse { + """A list of parse errors, if parsing fails.""" + parseErrors: [String!]! + + """The result in a tabular format with column and row data.""" + tableData: ShopifyqlTableData +} + +"""The result of a ShopifyQL query.""" +type ShopifyqlTableData { + """The columns of the table.""" + columns: [ShopifyqlTableDataColumn!]! + + """The rows of the table.""" + rows: JSON! +} + +"""Represents a column in a ShopifyQL query response.""" +type ShopifyqlTableDataColumn { + """The data type of the column.""" + dataType: ColumnDataType! + + """The human-readable display name of the column.""" + displayName: String! + + """The name of the column.""" + name: String! + + """The sub type of an array column.""" + subType: ColumnDataType +} + """A locale that's been enabled on a shop.""" type ShopLocale { """The locale ISO code.""" @@ -76422,7 +87727,351 @@ type ShopPayInstallmentsPaymentDetails implements BasePaymentDetails { paymentMethodName: String } -"""The billing plan of the shop.""" +"""Represents a Shop Pay payment request.""" +type ShopPayPaymentRequest { + """The discounts for the payment request order.""" + discounts: [ShopPayPaymentRequestDiscount!] + + """The line items for the payment request.""" + lineItems: [ShopPayPaymentRequestLineItem!]! + + """The presentment currency for the payment request.""" + presentmentCurrency: CurrencyCode! + + """The delivery method type for the payment request.""" + selectedDeliveryMethodType: ShopPayPaymentRequestDeliveryMethodType! + + """The shipping address for the payment request.""" + shippingAddress: ShopPayPaymentRequestContactField + + """The shipping lines for the payment request.""" + shippingLines: [ShopPayPaymentRequestShippingLine!]! + + """The subtotal amount for the payment request.""" + subtotal: MoneyV2! + + """The total amount for the payment request.""" + total: MoneyV2! + + """The total shipping price for the payment request.""" + totalShippingPrice: ShopPayPaymentRequestTotalShippingPrice + + """The total tax for the payment request.""" + totalTax: MoneyV2 +} + +"""Represents a contact field for a Shop Pay payment request.""" +type ShopPayPaymentRequestContactField { + """The first address line of the contact field.""" + address1: String! + + """The second address line of the contact field.""" + address2: String + + """The city of the contact field.""" + city: String! + + """The company name of the contact field.""" + companyName: String + + """The country of the contact field.""" + countryCode: String! + + """The email of the contact field.""" + email: String + + """The first name of the contact field.""" + firstName: String! + + """The last name of the contact field.""" + lastName: String! + + """The phone number of the contact field.""" + phone: String + + """The postal code of the contact field.""" + postalCode: String + + """The province of the contact field.""" + provinceCode: String +} + +"""Represents the delivery method type for a Shop Pay payment request.""" +enum ShopPayPaymentRequestDeliveryMethodType { + """The delivery method type is shipping.""" + SHIPPING + + """The delivery method type is pickup.""" + PICKUP +} + +"""Represents a discount for a Shop Pay payment request.""" +type ShopPayPaymentRequestDiscount { + """The amount of the discount.""" + amount: MoneyV2! + + """The label of the discount.""" + label: String! +} + +"""Represents an image for a Shop Pay payment request line item.""" +type ShopPayPaymentRequestImage { + """The alt text of the image.""" + alt: String + + """The source URL of the image.""" + url: String! +} + +"""Represents a line item for a Shop Pay payment request.""" +type ShopPayPaymentRequestLineItem { + """The final item price for the line item.""" + finalItemPrice: MoneyV2! + + """The final line price for the line item.""" + finalLinePrice: MoneyV2! + + """The image of the line item.""" + image: ShopPayPaymentRequestImage + + """The item discounts for the line item.""" + itemDiscounts: [ShopPayPaymentRequestDiscount!] + + """The label of the line item.""" + label: String! + + """The line discounts for the line item.""" + lineDiscounts: [ShopPayPaymentRequestDiscount!] + + """The original item price for the line item.""" + originalItemPrice: MoneyV2 + + """The original line price for the line item.""" + originalLinePrice: MoneyV2 + + """The quantity of the line item.""" + quantity: Int! + + """Whether the line item requires shipping.""" + requiresShipping: Boolean + + """The SKU of the line item.""" + sku: String +} + +"""The receipt of Shop Pay payment request session submission.""" +type ShopPayPaymentRequestReceipt { + """The date and time when the payment request receipt was created.""" + createdAt: DateTime! + + """The order that's associated with the payment request receipt.""" + order: Order + + """The shop pay payment request object.""" + paymentRequest: ShopPayPaymentRequest! + + """The status of the payment request session submission.""" + processingStatus: ShopPayPaymentRequestReceiptProcessingStatus! + + """ + The source identifier provided in the `ShopPayPaymentRequestSessionCreate` mutation. + """ + sourceIdentifier: String! + + """ + The token of the receipt, initially returned by an `ShopPayPaymentRequestSessionSubmit` mutation. + """ + token: String! +} + +""" +An auto-generated type for paginating through multiple ShopPayPaymentRequestReceipts. +""" +type ShopPayPaymentRequestReceiptConnection { + """ + The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. + """ + edges: [ShopPayPaymentRequestReceiptEdge!]! + + """ + A list of nodes that are contained in ShopPayPaymentRequestReceiptEdge. You + can fetch data about an individual node, or you can follow the edges to fetch + data about a collection of related nodes. At each node, you specify the fields + that you want to retrieve. + """ + nodes: [ShopPayPaymentRequestReceipt!]! + + """ + An object that’s used to retrieve [cursor + information](https://shopify.dev/api/usage/pagination-graphql) about the current page. + """ + pageInfo: PageInfo! +} + +""" +An auto-generated type which holds one ShopPayPaymentRequestReceipt and a cursor during pagination. +""" +type ShopPayPaymentRequestReceiptEdge { + """ + The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). + """ + cursor: String! + + """The item at the end of ShopPayPaymentRequestReceiptEdge.""" + node: ShopPayPaymentRequestReceipt! +} + +""" +The processing status of a Shop Pay payment request. +Represents the different states a payment request can be in during its lifecycle, +from initial creation through to completion or failure. +""" +type ShopPayPaymentRequestReceiptProcessingStatus { + """A standardized error code, independent of the payment provider.""" + errorCode: ShopPayPaymentRequestReceiptProcessingStatusErrorCode + + """The message of the payment request receipt.""" + message: String + + """The state of the payment request receipt.""" + state: ShopPayPaymentRequestReceiptProcessingStatusState! +} + +"""A standardized error code, independent of the payment provider.""" +enum ShopPayPaymentRequestReceiptProcessingStatusErrorCode { + """The card number is incorrect.""" + INCORRECT_NUMBER + + """The format of the card number is incorrect.""" + INVALID_NUMBER + + """The format of the expiry date is incorrect.""" + INVALID_EXPIRY_DATE + + """The format of the CVC is incorrect.""" + INVALID_CVC + + """The card is expired.""" + EXPIRED_CARD + + """The CVC does not match the card number.""" + INCORRECT_CVC + + """The ZIP or postal code does not match the card number.""" + INCORRECT_ZIP + + """The address does not match the card number.""" + INCORRECT_ADDRESS + + """The entered PIN is incorrect.""" + INCORRECT_PIN + + """The amount is too small.""" + AMOUNT_TOO_SMALL + + """The card was declined.""" + CARD_DECLINED + + """There was an error while processing the payment.""" + PROCESSING_ERROR + + """Call the card issuer.""" + CALL_ISSUER + + """The 3D Secure check failed.""" + THREE_D_SECURE_FAILED + + """The card issuer has flagged the transaction as potentially fraudulent.""" + FRAUD_SUSPECTED + + """ + The card has been reported as lost or stolen, and the card issuer has + requested that the merchant keep the card and call the number on the back. + """ + PICK_UP_CARD + + """There is an error in the gateway or merchant configuration.""" + CONFIG_ERROR + + """A real card was used but the gateway was in test mode.""" + TEST_MODE_LIVE_CARD + + """ + The gateway or merchant configuration doesn't support a feature, such as network tokenization. + """ + UNSUPPORTED_FEATURE + + """There was an unknown error with processing the payment.""" + GENERIC_ERROR + + """The payment method is not available in the customer's country.""" + INVALID_COUNTRY + + """The amount is either too high or too low for the provider.""" + INVALID_AMOUNT + + """The payment method is momentarily unavailable.""" + PAYMENT_METHOD_UNAVAILABLE +} + +"""The state of the payment request receipt.""" +enum ShopPayPaymentRequestReceiptProcessingStatusState { + """The payment request is ready and queued to be processed.""" + READY + + """The payment request currently being processed.""" + PROCESSING + + """The payment request processing failed.""" + FAILED + + """The payment request processing completed successfully.""" + COMPLETED + + """The payment request requires action from the buyer.""" + ACTION_REQUIRED +} + +""" +The set of valid sort keys for the ShopPayPaymentRequestReceipts query. +""" +enum ShopPayPaymentRequestReceiptsSortKeys { + """Sort by the `created_at` value.""" + CREATED_AT + + """Sort by the `id` value.""" + ID +} + +"""Represents a shipping line for a Shop Pay payment request.""" +type ShopPayPaymentRequestShippingLine { + """The amount for the shipping line.""" + amount: MoneyV2! + + """The code of the shipping line.""" + code: String! + + """The label of the shipping line.""" + label: String! +} + +"""Represents a shipping total for a Shop Pay payment request.""" +type ShopPayPaymentRequestTotalShippingPrice { + """The discounts for the shipping total.""" + discounts: [ShopPayPaymentRequestDiscount!]! + + """The final total for the shipping line.""" + finalTotal: MoneyV2! + + """The original total for the shipping line.""" + originalTotal: MoneyV2 +} + +""" +The shop's billing plan and subscription details. Indicates the plan tier (such +as Basic, Advanced, or Plus), whether the shop has a Shopify Plus subscription, +and if it's a dev store for testing. +""" type ShopPlan { """The name of the shop's billing plan.""" displayName: String! @deprecated(reason: "Use `publicDisplayName` instead.") @@ -76430,6 +88079,14 @@ type ShopPlan { """Whether the shop is a partner development shop for testing purposes.""" partnerDevelopment: Boolean! + """ + The public display name of the shop's billing plan. Possible values are: + Advanced, Agentic, Agentic Enterprise, Basic, Development, Grow, Inactive, + Lite, Other, Paused, Plus, Plus Trial, Retail, Shop Component, Shopify + Finance, Staff Business, Starter, and Trial. + """ + publicDisplayName: String! + """Whether the shop has a Shopify Plus subscription.""" shopifyPlus: Boolean! } @@ -76581,6 +88238,9 @@ enum ShopResourceFeedbackCreateUserErrorCode { """The input value needs to be blank.""" PRESENT + + """The record with the ID used as the input value couldn't be found.""" + NOT_FOUND } """Resource limits of a shop.""" @@ -76610,8 +88270,12 @@ enum ShopTagSort { } """ -Represents the data about a staff member's Shopify account. Merchants can use -staff member data to get more information about the staff members in their store. +A user account that can access the Shopify admin to manage store operations. +Includes personal information and account status. + +You can assign staff members to [`CompanyLocation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/CompanyLocation) +objects for [B2B operations](https://shopify.dev/docs/apps/build/b2b), limiting +their actions to those locations. """ type StaffMember implements Node { """The type of account the staff member has.""" @@ -77060,7 +88724,7 @@ enum StagedUploadTargetGenerateUploadResource { For example, after uploading the image, you can add the image to a product using the [productCreateMedia mutation](https://shopify.dev/api/admin-graphql/latest/mutations/productCreateMedia). """ - PRODUCT_IMAGE + PRODUCT_IMAGE @deprecated(reason: "Use IMAGE instead. This resource type will be removed in a future version.") """ An image. @@ -77106,6 +88770,14 @@ enum StagedUploadTargetGenerateUploadResource { [urlRedirectImportCreate mutation](https://shopify.dev/api/admin-graphql/latest/mutations/urlRedirectImportCreate). """ URL_REDIRECT_IMPORT + + """ + Represents a file associated with a dispute. + + For example, after uploading the file, you can add the file to a dispute using the + [disputeEvidenceUpdate mutation](https://shopify.dev/api/admin-graphql/latest/mutations/disputeEvidenceUpdate). + """ + DISPUTE_FILE_UPLOAD } """Return type for `stagedUploadTargetsGenerate` mutation.""" @@ -77222,6 +88894,11 @@ enum StandardMetafieldDefinitionEnableUserErrorCode { """The metafield definition capability cannot be disabled.""" CAPABILITY_CANNOT_BE_DISABLED + """ + You have reached the maximum allowed definitions to be used as admin filters. + """ + OWNER_TYPE_LIMIT_EXCEEDED_FOR_USE_AS_ADMIN_FILTERS + """The metafield definition does not support pinning.""" UNSUPPORTED_PINNING @@ -77491,6 +89168,12 @@ input StoreCreditAccountCreditInput { """The date and time when the credit expires.""" expiresAt: DateTime + + """ + Whether to send a notification to the account owner when the store credit is issued. + Defaults to `false`. + """ + notify: Boolean = false } """Return type for `storeCreditAccountCredit` mutation.""" @@ -77793,6 +89476,15 @@ type StoreCreditAccountTransactionEdge { """The origin of a store credit account transaction.""" union StoreCreditAccountTransactionOrigin = OrderTransaction +"""The input fields to process a refund to store credit.""" +input StoreCreditRefundInput { + """The amount to be issued as store credit.""" + amount: MoneyInput! + + """An optional expiration date for the store credit being issued.""" + expiresAt: DateTime +} + """The event that caused the store credit account transaction.""" enum StoreCreditSystemEvent { """An adjustment was made to the store credit account.""" @@ -77822,13 +89514,19 @@ enum StoreCreditSystemEvent { } """ -A token that's used to delegate unauthenticated access scopes to clients that need to access -the unauthenticated [Storefront API](https://shopify.dev/docs/api/storefront). +A token that delegates unauthenticated access scopes to clients that need to +access the [Storefront API](https://shopify.dev/docs/api/storefront). Storefront +access tokens enable headless storefronts and custom applications to interact +with a store on behalf of customers without requiring authentication. -An app can have a maximum of 100 active storefront access -tokens for each shop. +The token provides specific permissions, such as reading +[`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) +data, managing carts, or creating +[`Customer`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Customer) +accounts. An app can have a maximum of 100 active storefront access tokens for +each [`Shop`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Shop). -[Get started with the Storefront API](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/getting-started). +Learn more about [building with the Storefront API](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/getting-started). """ type StorefrontAccessToken implements Node { """List of permissions associated with the token.""" @@ -78001,9 +89699,14 @@ input SubscriptionAtomicManualDiscountInput { } """ -A record of an execution of the subscription billing process. Billing attempts use -idempotency keys to avoid duplicate order creation. A successful billing attempt -will create an order. +A record of an execution of the subscription billing process. Billing attempts +use idempotency keys to avoid duplicate order creation. + +When a billing attempt completes successfully, it creates an +[`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order). The +attempt includes associated payment transactions and any errors that occur +during billing. If 3D Secure authentication is required, the `nextActionUrl` +field provides the redirect URL for customer verification. """ type SubscriptionBillingAttempt implements Node { """The date and time when the billing attempt was completed.""" @@ -78013,10 +89716,10 @@ type SubscriptionBillingAttempt implements Node { createdAt: DateTime! """A code corresponding to a payment error during processing.""" - errorCode: SubscriptionBillingAttemptErrorCode @deprecated(reason: "As of API version 2025-01, use `processingError.code` instead to get the errorCode") + errorCode: SubscriptionBillingAttemptErrorCode @deprecated(reason: "Use `state` instead.") """A message describing a payment error during processing.""" - errorMessage: String @deprecated(reason: "As of API version 2025-01, use `processingError.message` instead to get the errorMessage") + errorMessage: String @deprecated(reason: "Use `state` instead.") """A globally-unique ID.""" id: ID! @@ -78027,10 +89730,10 @@ type SubscriptionBillingAttempt implements Node { """ The URL where the customer needs to be redirected so they can complete the 3D Secure payment flow. """ - nextActionUrl: URL + nextActionUrl: URL @deprecated(reason: "Use `state` instead.") """The result of this billing attempt if completed successfully.""" - order: Order + order: Order @deprecated(reason: "Use `state` instead.") """ The date and time used to calculate fulfillment intervals for a billing attempt that @@ -78048,10 +89751,10 @@ type SubscriptionBillingAttempt implements Node { paymentSessionId: String """Error information from processing the billing attempt.""" - processingError: SubscriptionBillingAttemptProcessingError + processingError: SubscriptionBillingAttemptProcessingError @deprecated(reason: "Use `state` instead.") """Whether the billing attempt is still processing.""" - ready: Boolean! + ready: Boolean! @deprecated(reason: "Use `state` instead.") """Whether the billing attempt respects the merchant's inventory policy.""" respectInventoryPolicy: Boolean! @@ -78157,7 +89860,7 @@ enum SubscriptionBillingAttemptErrorCode { """Payment method was declined by processor.""" PAYMENT_METHOD_DECLINED - """There was an error during the authentication.""" + """There was an error during the payment authentication.""" AUTHENTICATION_ERROR """Gateway is in test mode and attempted to bill a live payment method.""" @@ -78219,6 +89922,12 @@ enum SubscriptionBillingAttemptErrorCode { Non-test order limit reached. Use a test payment gateway to place another order. """ NON_TEST_ORDER_LIMIT_REACHED + + """Gift cards must have a price greater than zero.""" + FREE_GIFT_CARD_NOT_ALLOWED + + """The billing address is invalid.""" + INVALID_BILLING_ADDRESS } """A base error type that applies to all uncategorized error classes.""" @@ -78887,6 +90596,7 @@ input SubscriptionBillingCyclesDateRangeSelector { """ The input fields to select SubscriptionBillingCycle by either date or index. +Both past and future billing cycles can be selected. """ input SubscriptionBillingCycleSelector { """Returns a billing cycle by index.""" @@ -79040,7 +90750,23 @@ input SubscriptionBillingPolicyInput { anchors: [SellingPlanAnchorInput!] = [] } -"""Represents a Subscription Contract.""" +""" +A subscription contract that defines recurring purchases for a customer. Each +contract specifies what products to deliver, when to bill and ship them, and at what price. + +The contract includes [`SubscriptionBillingPolicy`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SubscriptionBillingPolicy) and [`SubscriptionDeliveryPolicy`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SubscriptionDeliveryPolicy) +that control the frequency of charges and fulfillments. [`SubscriptionLine`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SubscriptionLine) +items define the products, quantities, and pricing for each recurring +[`Order`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Order). The +contract tracks [`SubscriptionBillingAttempt`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SubscriptionBillingAttempt) +records, payment status, and generated orders throughout its lifecycle. +[`App`](https://shopify.dev/docs/api/admin-graphql/latest/objects/App) instances +manage contracts through various status transitions including active, paused, +failed, cancelled, or expired states. + +Learn more about [building subscription contracts](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/contracts/build-a-subscription-contract) +and [updating subscription contracts](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/contracts/update-a-subscription-contract). +""" type SubscriptionContract implements Node & SubscriptionContractBase { """The subscription app that the subscription contract is registered to.""" app: App @@ -79682,7 +91408,7 @@ The other subscription delivery methods can be found in the `SubscriptionDeliver """ type SubscriptionDeliveryMethodLocalDelivery { """The address to deliver to.""" - address: SubscriptionMailingAddress! + address: MailingAddress! """The details of the local delivery method to use.""" localDeliveryOption: SubscriptionDeliveryMethodLocalDeliveryOption! @@ -79816,7 +91542,7 @@ Represents a shipping delivery method: a mailing address and a shipping option. """ type SubscriptionDeliveryMethodShipping { """The address to ship to.""" - address: SubscriptionMailingAddress! + address: MailingAddress! """The details of the shipping method to use.""" shippingOption: SubscriptionDeliveryMethodShippingOption! @@ -80068,7 +91794,36 @@ enum SubscriptionDiscountRejectionReason { """The value of the discount and how it will be applied.""" union SubscriptionDiscountValue = SubscriptionDiscountFixedAmountValue | SubscriptionDiscountPercentageValue -"""Represents a Subscription Draft.""" +""" +The `SubscriptionDraft` object represents a draft version of a +[subscription contract](https://shopify.dev/docs/api/admin-graphql/latest/objects/SubscriptionContract) +before it's committed. It serves as a staging area for making changes to an existing subscription or creating +a new one. The draft allows you to preview and modify various aspects of a subscription before applying the changes. + +Use the `SubscriptionDraft` object to: + +- Add, remove, or modify subscription lines and their quantities +- Manage discounts (add, remove, or update manual and code-based discounts) +- Configure delivery options and shipping methods +- Set up billing and delivery policies +- Manage customer payment methods +- Add custom attributes and notes to generated orders +- Configure billing cycles and next billing dates +- Preview the projected state of the subscription + +Each `SubscriptionDraft` object maintains a projected state that shows how the subscription will look after the changes +are committed. This allows you to preview the impact of your modifications before applying them. The draft can be +associated with an existing subscription contract (for modifications) or used to create a new subscription. + +The draft remains in a draft state until it's committed, at which point the changes are applied to the subscription +contract and the draft is no longer accessible. + +Learn more about +[how subscription contracts work](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/contracts) +and how to [build](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/contracts/build-a-subscription-contract), +[update](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/contracts/update-a-subscription-contract), and +[combine](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/contracts/combine-subscription-contracts) subscription contracts. +""" type SubscriptionDraft implements Node { """ The billing cycle that the subscription contract will be associated with. @@ -80716,7 +92471,18 @@ input SubscriptionFreeShippingDiscountInput { recurringCycleLimit: Int } -"""Represents a Subscription Line.""" +""" +A product line item within a [`SubscriptionContract`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SubscriptionContract). +Each line represents a specific product variant that the customer subscribes to, +including its quantity, pricing, and whether shipping is required. + +The line maintains references to the [`ProductVariant`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant), [`SellingPlan`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SellingPlan), and custom [`Attribute`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Attribute) +objects. It tracks the current price and any scheduled price changes through its [`pricingPolicy`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SubscriptionPricingPolicy). +You can modify lines through [`SubscriptionDraft`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SubscriptionDraft) +objects without affecting the original contract until you commit changes. + +Learn more about [subscription contracts](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/contracts) and [selling plans](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/selling-plans). +""" type SubscriptionLine { """ The origin contract of the line if it was concatenated from another contract. @@ -80909,62 +92675,6 @@ type SubscriptionLocalDeliveryOption { title: String! } -"""Represents a Mailing Address on a Subscription.""" -type SubscriptionMailingAddress { - """ - The first line of the address. Typically the street address or PO Box number. - """ - address1: String - - """ - The second line of the address. Typically the number of the apartment, suite, or unit. - """ - address2: String - - """The name of the city, district, village, or town.""" - city: String - - """The name of the customer's company or organization.""" - company: String - - """The name of the country.""" - country: String - - """ - The two-letter code for the country of the address. - - For example, US. - """ - countryCode: CountryCode - - """The first name of the customer.""" - firstName: String - - """The last name of the customer.""" - lastName: String - - """The full name of the customer, based on firstName and lastName.""" - name: String - - """ - A unique phone number for the customer. Formatted using E.164 standard. For example, _+16135551111_. - """ - phone: String - - """The region of the address, such as the province, state, or district.""" - province: String - - """ - The alphanumeric code for the region. - - For example, ON. - """ - provinceCode: String - - """The zip or postal code of the address.""" - zip: String -} - """Custom subscription discount.""" type SubscriptionManualDiscount { """Entitled line items used to apply the subscription discount on.""" @@ -81262,9 +92972,37 @@ enum SuggestedOrderTransactionKind { SUGGESTED_REFUND } +"""The input fields for an exchange line item.""" +input SuggestedOutcomeExchangeLineItemInput { + """The ID of the exchange line item.""" + id: ID! + + """The quantity of the exchange line item.""" + quantity: Int! +} + +"""The input fields for a return line item.""" +input SuggestedOutcomeReturnLineItemInput { + """The ID of the return line item.""" + id: ID! + + """The quantity of the return line item.""" + quantity: Int! +} + """ -Represents a refund suggested by Shopify based on the items being reimbursed. -You can then use the suggested refund object to generate an actual refund. +A refund amount that Shopify suggests based on the items, duties, and shipping +costs that customers return. Provides a breakdown of all monetary values +including subtotals, taxes, discounts, and the maximum refundable amount. + +The suggested refund includes [`RefundLineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/RefundLineItem) +objects to refund with their quantities and restock instructions, [`RefundDuty`](https://shopify.dev/docs/api/admin-graphql/latest/objects/RefundDuty) +objects for duty reimbursements, and [`ShippingRefund`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShippingRefund) +for shipping cost refunds. Provides [`SuggestedOrderTransaction`](https://shopify.dev/docs/api/admin-graphql/latest/objects/SuggestedOrderTransaction) +objects and the [`SuggestedRefundMethod`](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/SuggestedRefundMethod) +interface to process the refund through the appropriate gateways. + +Learn more about [previewing and refunding duties](https://shopify.dev/docs/apps/build/orders-fulfillment/returns-apps/view-and-refund-duties#step-3-preview-a-refund-that-includes-duties). """ type SuggestedRefund { """The total monetary value to be refunded.""" @@ -81303,6 +93041,9 @@ type SuggestedRefund { """ subtotalSet: MoneyBag! + """A list of suggested refund methods.""" + suggestedRefundMethods: [SuggestedRefundMethod!]! + """A list of suggested order transactions.""" suggestedTransactions: [SuggestedOrderTransaction!]! @@ -81327,6 +93068,61 @@ type SuggestedRefund { totalTaxes: Money! @deprecated(reason: "Use `totalTaxSet` instead.") } +"""Generic attributes of a suggested refund method.""" +interface SuggestedRefundMethod { + """The suggested amount to refund in shop and presentment currencies.""" + amount: MoneyBag! + + """ + The maximum available amount to refund in shop and presentment currencies. + """ + maximumRefundable: MoneyBag! +} + +""" +Represents a return financial outcome suggested by Shopify based on the items +being reimbursed. You can then use the suggested outcome object to generate an +actual refund or invoice for the return. +""" +type SuggestedReturnFinancialOutcome { + """The sum of all the discounted prices of the line items being refunded.""" + discountedSubtotal: MoneyBag! + + """The financial transfer details for the return outcome.""" + financialTransfer: ReturnOutcomeFinancialTransfer + + """ + The total monetary value available to refund in shop and presentment currencies. + """ + maximumRefundable: MoneyBag! + + """A list of duties to be refunded from the order.""" + refundDuties: [RefundDuty!]! + + """The shipping costs to be refunded from the order.""" + shipping: ShippingRefund! + + """ + The sum of all the additional fees being refunded in shop and presentment currencies. The value must be positive. + """ + totalAdditionalFees: MoneyBag! + + """ + The total cart discount amount that was applied to all line items in this refund. + """ + totalCartDiscountAmount: MoneyBag! + + """ + The sum of all the duties being refunded from the order in shop and presentment currencies. The value must be positive. + """ + totalDuties: MoneyBag! + + """ + The sum of the taxes being refunded in shop and presentment currencies. The value must be positive. + """ + totalTax: MoneyBag! +} + """ Represents a return refund suggested by Shopify based on the items being reimbursed. You can then use the suggested refund object to generate an actual @@ -81376,6 +93172,20 @@ type SuggestedReturnRefund { totalTax: MoneyBag! } +"""The suggested values for a refund to store credit.""" +type SuggestedStoreCreditRefund implements SuggestedRefundMethod { + """The suggested amount to refund in shop and presentment currencies.""" + amount: MoneyBag! + + """The suggested expiration date for the store credit.""" + expiresAt: DateTime + + """ + The maximum available amount to refund in shop and presentment currencies. + """ + maximumRefundable: MoneyBag! +} + """Return type for `tagsAdd` mutation.""" type TagsAddPayload { """The object that was updated.""" @@ -81799,7 +93609,16 @@ enum TaxExemption { US_DC_RESELLER_EXEMPTION } -"""Represents a single tax applied to the associated line item.""" +""" +A tax applied to a +[`LineItem`](https://shopify.dev/docs/api/admin-graphql/latest/objects/LineItem) or [`ShippingLine`](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShippingLine). +Includes the tax amount, rate, title, and whether the channel that submitted the +tax is liable for remitting it. + +The tax amount in both shop and presentment currencies after applying discounts. +Includes information about the tax rate, whether the channel is liable for +remitting the tax, and other tax-related details. +""" type TaxLine { """ Whether the channel that submitted the tax line is liable for remitting. A @@ -81835,7 +93654,12 @@ type TaxLine { } """ -The Taxonomy resource lets you access the categories, attributes and values of a taxonomy tree. +Represents Shopify's [standardized product taxonomy](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) +tree. Provides categories that you can filter by search criteria or hierarchical relationships. + +You can search categories globally, retrieve children of a specific category, +find siblings, or get descendants. When you specify no filter arguments, you get +all top-level categories in the taxonomy. """ type Taxonomy { """ @@ -81892,7 +93716,13 @@ type TaxonomyAttribute implements Node { } """ -The details of a specific product category within the [Shopify product taxonomy](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17). +A product category within Shopify's [standardized product taxonomy](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17). +Provides hierarchical organization through parent-child relationships, with each +category tracking its ancestors, children, and level in the taxonomy tree. + +Categories include attributes specific to their product type and navigation +properties like whether they're root, leaf, or archived categories. The taxonomy +enables consistent product classification across Shopify and integrated marketplaces. """ type TaxonomyCategory implements Node { """The IDs of the category's ancestor categories.""" @@ -82143,6 +93973,42 @@ enum TaxPartnerState { ACTIVE } +"""Return type for `taxSummaryCreate` mutation.""" +type TaxSummaryCreatePayload { + """ + A list of orders that were successfully enqueued to create a tax summary. + """ + enqueuedOrders: [Order!] + + """The list of errors that occurred from executing the mutation.""" + userErrors: [TaxSummaryCreateUserError!]! +} + +"""An error that occurs during the execution of `TaxSummaryCreate`.""" +type TaxSummaryCreateUserError implements DisplayableError { + """The error code.""" + code: TaxSummaryCreateUserErrorCode + + """The path to the input field that caused the error.""" + field: [String!] + + """The error message.""" + message: String! +} + +""" +Possible error codes that can be returned by `TaxSummaryCreateUserError`. +""" +enum TaxSummaryCreateUserErrorCode { + """No order was not found.""" + ORDER_NOT_FOUND + + """ + There was an error during enqueueing of the tax summary creation job(s). + """ + GENERAL_ERROR +} + """ A TenderTransaction represents a transaction with financial impact on a shop's balance sheet. A tender transaction always represents actual money movement between a buyer and a shop. TenderTransactions can be used instead of OrderTransactions @@ -82301,6 +94167,35 @@ enum ThemeDeleteUserErrorCode { NOT_FOUND } +"""Return type for `themeDuplicate` mutation.""" +type ThemeDuplicatePayload { + """The newly duplicated theme.""" + newTheme: OnlineStoreTheme + + """The list of errors that occurred from executing the mutation.""" + userErrors: [ThemeDuplicateUserError!]! +} + +"""An error that occurs during the execution of `ThemeDuplicate`.""" +type ThemeDuplicateUserError implements DisplayableError { + """The error code.""" + code: ThemeDuplicateUserErrorCode + + """The path to the input field that caused the error.""" + field: [String!] + + """The error message.""" + message: String! +} + +""" +Possible error codes that can be returned by `ThemeDuplicateUserError`. +""" +enum ThemeDuplicateUserErrorCode { + """The record with the ID used as the input value couldn't be found.""" + NOT_FOUND +} + """The input fields for the file copy.""" input ThemeFilesCopyFileInput { """The new file where the content is copied to.""" @@ -82556,6 +94451,33 @@ enum TransactionVoidUserErrorCode { GENERIC_ERROR } +"""The set of valid sort keys for the Transfer query.""" +enum TransferSortKeys { + """Sort by the `created_at` value.""" + CREATED_AT + + """Sort by the `destination_name` value.""" + DESTINATION_NAME + + """Sort by the `expected_shipment_arrival` value.""" + EXPECTED_SHIPMENT_ARRIVAL + + """Sort by the `id` value.""" + ID + + """Sort by the `name` value.""" + NAME + + """Sort by the `origin_name` value.""" + ORIGIN_NAME + + """Sort by the `source_name` value.""" + SOURCE_NAME + + """Sort by the `status` value.""" + STATUS +} + """Translatable content of a resource's field.""" type TranslatableContent { """Hash digest representation of the content value.""" @@ -82574,7 +94496,21 @@ type TranslatableContent { value: String } -"""A resource that has translatable fields.""" +""" +A resource in Shopify that contains fields available for translation into +different languages. Accesses the resource's translatable content, existing [`Translation`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Translation) +objects, and any nested resources that can also be translated. + +The [`TranslatableContent`](https://shopify.dev/docs/api/admin-graphql/latest/objects/TranslatableContent) includes field keys, values, and digest hashes needed when [registering translations](https://shopify.dev/docs/api/admin-graphql/latest/mutations/translationsRegister). + +You can retrieve translations for specific +[`Locale`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Locale) and +[`Market`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Market) +configurations. Each translation includes an `outdated` flag indicating whether +the original content has changed since that translation was last updated. + +Learn more about [managing translated content](https://shopify.dev/docs/apps/build/markets/manage-translated-content). +""" type TranslatableResource { """Nested translatable resources under the current resource.""" nestedTranslatableResources( @@ -82675,6 +94611,9 @@ enum TranslatableResourceType { """ ARTICLE + """An article image. Translatable fields: `alt`.""" + ARTICLE_IMAGE + """ A blog. Translatable fields: `title`, `handle`, `meta_title`, `meta_description`. """ @@ -82685,8 +94624,11 @@ enum TranslatableResourceType { """ COLLECTION + """A collection image. Translatable fields: `alt`.""" + COLLECTION_IMAGE + """ - The delivery method definition. For example, "Standard", or "Expedited". Translatable fields: `name`. + The delivery method definition. For example, "Standard", or "Expedited". Translatable fields: `name`, `description`. """ DELIVERY_METHOD_DEFINITION @@ -82699,6 +94641,9 @@ enum TranslatableResourceType { """A link to direct users. Translatable fields: `title`.""" LINK + """An image. Translatable fields: `alt`.""" + MEDIA_IMAGE + """A category of links. Translatable fields: `title`.""" MENU @@ -82792,7 +94737,22 @@ enum TranslatableResourceType { SHOP_POLICY } -"""Translation of a field of a resource.""" +""" +A localized version of a field on a resource. Translations enable merchants to +provide content in multiple languages for +[`Product`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Product) objects, [`Collection`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection) +objects, and other store resources. + +Each translation specifies the locale, the field being translated (identified by +its key), and the translated value. Translations can be market-specific, +allowing different content for the same language across different markets, or +available globally when no +[`Market`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Market) is +specified. The `outdated` flag indicates whether the original content has +changed since this translation was last updated. + +Learn more about [managing translated content](https://shopify.dev/docs/apps/build/markets/manage-translated-content). +""" type Translation { """ On the resource that this translation belongs to, the reference to the value being translated. @@ -82978,6 +94938,23 @@ type UnitPriceMeasurement { referenceValue: Int! } +""" +The input fields for the measurement used to calculate a unit price for a product variant (e.g. $9.99 / 100ml). +""" +input UnitPriceMeasurementInput { + """The quantity value for the unit price measurement.""" + quantityValue: Float + + """The quantity unit for the unit price measurement.""" + quantityUnit: UnitPriceMeasurementMeasuredUnit + + """The reference value for the unit price measurement.""" + referenceValue: Int + + """The reference unit for the unit price measurement.""" + referenceUnit: UnitPriceMeasurementMeasuredUnit +} + """The accepted types of unit of measurement.""" enum UnitPriceMeasurementMeasuredType { """Unit of measurements representing volumes.""" @@ -82991,6 +94968,14 @@ enum UnitPriceMeasurementMeasuredType { """Unit of measurements representing areas.""" AREA + + """Unit of measurements representing counts.""" + COUNT + + """ + The type of measurement is unknown. Upgrade to the latest version of the API to resolve this type. + """ + UNKNOWN } """The valid units of measurement for a unit price measurement.""" @@ -83007,6 +94992,18 @@ enum UnitPriceMeasurementMeasuredUnit { """1 cubic meter equals 1000 liters.""" M3 + """Imperial system unit of volume (U.S. customary unit).""" + FLOZ + + """1 pint equals 16 fluid ounces (U.S. customary unit).""" + PT + + """1 quart equals 32 fluid ounces (U.S. customary unit).""" + QT + + """1 gallon equals 128 fluid ounces (U.S. customary unit).""" + GAL + """1000 milligrams equals 1 gram.""" MG @@ -83016,6 +95013,12 @@ enum UnitPriceMeasurementMeasuredUnit { """1 kilogram equals 1000 grams.""" KG + """16 ounces equals 1 pound.""" + OZ + + """Imperial system unit of weight.""" + LB + """1000 millimeters equals 1 meter.""" MM @@ -83025,8 +95028,28 @@ enum UnitPriceMeasurementMeasuredUnit { """Metric system unit of length.""" M + """Imperial system unit of length.""" + IN + + """1 foot equals 12 inches.""" + FT + + """1 yard equals 36 inches.""" + YD + """Metric system unit of area.""" M2 + + """Imperial system unit of area.""" + FT2 + + """1 item, a unit of count.""" + ITEM + + """ + The unit of measurement is unknown. Upgrade to the latest version of the API to resolve this unit. + """ + UNKNOWN } """Systems of weights and measures.""" @@ -83089,6 +95112,12 @@ type UnverifiedReturnLineItem implements Node & ReturnLineItemType { """A globally-unique ID.""" id: ID! + """The quantity that can be processed.""" + processableQuantity: Int! + + """The quantity that has been processed.""" + processedQuantity: Int! + """The quantity being returned.""" quantity: Int! @@ -83099,7 +95128,10 @@ type UnverifiedReturnLineItem implements Node & ReturnLineItemType { refundedQuantity: Int! """The reason for returning the item.""" - returnReason: ReturnReason! + returnReason: ReturnReason! @deprecated(reason: "Use `returnReasonDefinition` instead. This field will be removed in the future.") + + """The standardized reason for why the item is being returned.""" + returnReasonDefinition: ReturnReasonDefinition """ Additional information about the reason for the return. Maximum length: 255 characters. @@ -83108,6 +95140,9 @@ type UnverifiedReturnLineItem implements Node & ReturnLineItemType { """The unit price of the unverified return line item.""" unitPrice: MoneyV2! + + """The quantity that has't been processed.""" + unprocessedQuantity: Int! } """The input fields required to update a media object.""" @@ -83466,7 +95501,11 @@ type UrlRedirectUserError implements DisplayableError { message: String! } -"""Represents an error in the input of a mutation.""" +""" +An error in the input of a mutation. Mutations return `UserError` objects to +indicate validation failures, such as invalid field values or business logic +violations, that prevent the operation from completing. +""" type UserError implements DisplayableError { """The path to the input field that caused the error.""" field: [String!] @@ -83525,7 +95564,17 @@ type UTMParameters { term: String } -"""A checkout server side validation installed on the shop.""" +""" +A server-side validation that enforces business rules before customers complete +their purchases. Each validation links to a [`ShopifyFunction`](https://shopify.dev/docs/api/functions/latest/cart-and-checkout-validation) +that implements the validation logic. + +Validations run on Shopify's servers and are enforced throughout the checkout +process. Validation errors always block checkout progress. The `blockOnFailure` +setting determines whether runtime exceptions, like timeouts, also block +checkout. Tracks runtime exception history for the validation function and +supports custom data through [`Metafield`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Metafield) objects. +""" type Validation implements HasMetafieldDefinitions & HasMetafields & Node { """ Whether the validation should block on failures other than expected violations. @@ -83621,7 +95670,7 @@ type Validation implements HasMetafieldDefinitions & HasMetafields & Node { """ query: String - ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use the root `metafieldDefinitions` field instead.") + ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use `Query.metafieldDefinitions` instead.") """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) @@ -83629,7 +95678,7 @@ type Validation implements HasMetafieldDefinitions & HasMetafields & Node { """ metafields( """ - The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. + The metafield namespace to filter by. If omitted, all metafields are returned. """ namespace: String @@ -83693,8 +95742,8 @@ type ValidationConnection { """The input fields required to install a validation.""" input ValidationCreateInput { - """The function ID representing the extension to install.""" - functionId: String! + """The function handle representing the extension to install.""" + functionHandle: String """Whether the validation should be live on the merchant checkout.""" enable: Boolean = false @@ -83810,9 +95859,15 @@ enum ValidationUserErrorCode { """Function is pending deletion.""" FUNCTION_PENDING_DELETION - """Cannot have more than 5 active validation functions.""" + """Cannot have more than 25 active validation functions.""" MAX_VALIDATIONS_ACTIVATED + """Either function_id or function_handle must be provided.""" + MISSING_FUNCTION_IDENTIFIER + + """Only one of function_id or function_handle can be provided, not both.""" + MULTIPLE_FUNCTION_IDENTIFIERS + """The type is invalid.""" INVALID_TYPE @@ -83850,6 +95905,9 @@ enum ValidationUserErrorCode { """The input value is too short.""" TOO_SHORT + """The input value is invalid.""" + INVALID + """The metafield violates a capability restriction.""" CAPABILITY_VIOLATION @@ -84020,21 +96078,61 @@ type VideoSource { } """ -An Amazon EventBridge partner event source to which webhook subscriptions publish events. +Connects your app to Amazon EventBridge so you can receive Shopify webhook +events and process them through AWS's event-driven architecture. This gives you +enterprise-grade scalability and lets you tap into the full AWS ecosystem for +handling webhook traffic. + +For example, when a customer places an order, Shopify can publish the order +creation event directly to your EventBridge partner source, allowing your AWS +infrastructure to process the event through Lambda functions, SQS queues, or +other AWS services. + +EventBridge endpoints provide enterprise-grade event routing and processing +capabilities, making them ideal for apps that need to handle high-volume webhook +traffic or integrate deeply with AWS services. + +Learn more about [webhook endpoints](https://shopify.dev/docs/apps/build/webhooks/subscribe/get-started). """ type WebhookEventBridgeEndpoint { """The ARN of this EventBridge partner event source.""" arn: ARN! } -"""An HTTPS endpoint to which webhook subscriptions send POST requests.""" +""" +An HTTPS endpoint that receives webhook events as POST requests, letting your +app respond to Shopify events in real-time. This is the most common webhook +endpoint type, allowing apps to process Shopify events through standard HTTP callbacks. + +For example, when setting up order notifications, your app would provide an +HTTPS URL like `https://yourapp.com/webhooks/orders/create` to receive order +creation events as JSON payloads. + +HTTP endpoints offer straightforward webhook integration with immediate event +delivery, making them suitable for apps that need real-time notifications +without complex infrastructure requirements. + +Learn more about [HTTP webhook configuration](https://shopify.dev/docs/apps/build/webhooks/subscribe/https). +""" type WebhookHttpEndpoint { """The URL to which the webhooks events are sent.""" callbackUrl: URL! } """ -A Google Cloud Pub/Sub topic to which webhook subscriptions publish events. +Individual Google Cloud Pub/Sub topics that receive webhook events for reliable, +asynchronous processing. This endpoint type lets your app tap into Google +Cloud's messaging infrastructure to handle events at scale. + +For example, when inventory levels change, Shopify can publish these events to +your Pub/Sub topic `projects/your-project/topics/inventory-updates`, allowing +your Google Cloud functions or services to process inventory changes at their own pace. + +Pub/Sub endpoints provide reliable message delivery to Google Cloud Pub/Sub, +making them excellent for apps that need to handle variable webhook volumes or +integrate with Google Cloud Platform services. + +Learn more about [Pub/Sub webhook configuration](https://shopify.dev/docs/apps/build/webhooks/subscribe/get-started). """ type WebhookPubSubEndpoint { """The Google Cloud Pub/Sub project ID.""" @@ -84061,13 +96159,13 @@ type WebhookSubscription implements LegacyInteroperability & Node { """ The destination URI to which the webhook subscription will send a message when an event occurs. """ - callbackUrl: URL! @deprecated(reason: "Use `endpoint` instead.") + callbackUrl: URL! @deprecated(reason: "Use `uri` instead.") """The date and time when the webhook subscription was created.""" createdAt: DateTime! """The endpoint to which the webhook subscription will send events.""" - endpoint: WebhookSubscriptionEndpoint! + endpoint: WebhookSubscriptionEndpoint! @deprecated(reason: "Use `uri` instead.") """ A constraint specified using search syntax that ensures only webhooks that @@ -84083,8 +96181,9 @@ type WebhookSubscription implements LegacyInteroperability & Node { id: ID! """ - An optional array of top-level resource fields that should be serialized and - sent in the webhook message. If null, then all fields will be sent. + The list of fields to be included in the webhook subscription. Only the fields + specified will be included in the webhook payload. If null, then all fields + will be included. Learn more about [modifying webhook payloads](https://shopify.dev/docs/apps/build/webhooks/customize/modify-payloads). """ includeFields: [String!]! @@ -84110,6 +96209,9 @@ type WebhookSubscription implements LegacyInteroperability & Node { """The date and time when the webhook subscription was updated.""" updatedAt: DateTime! + + """The URI to which the webhook subscription will send events.""" + uri: String! } """ @@ -84178,15 +96280,14 @@ enum WebhookSubscriptionFormat { """The input fields for a webhook subscription.""" input WebhookSubscriptionInput { - """ - URL where the webhook subscription should send the POST request when the event occurs. - """ - callbackUrl: URL - """The format in which the webhook subscription should send the data.""" format: WebhookSubscriptionFormat - """The list of fields to be included in the webhook subscription.""" + """ + The list of fields to be included in the webhook subscription. Only the fields + specified will be included in the webhook payload. If null, then all fields + will be included. Learn more about [modifying webhook payloads](https://shopify.dev/docs/apps/build/webhooks/customize/modify_payloads). + """ includeFields: [String!] """ @@ -84205,9 +96306,48 @@ input WebhookSubscriptionInput { A list of identifiers specifying metafields to include in the webhook payload. """ metafields: [HasMetafieldsMetafieldIdentifierInput!] + + """ + The URI where the webhook subscription should send events. Supports an HTTPS + URL, a Google Pub/Sub URI (pubsub://{project-id}:{topic-id}) or an Amazon + EventBridge event source ARN. + """ + uri: String } -"""Identifies metafields by their namespace, and key.""" +""" +Webhook subscriptions let you receive instant notifications when important +events happen in a merchant's store, so you can automate workflows and keep your +systems in sync without constantly polling for updates. + +For example, a subscription might monitor `orders/create` events and send JSON +payloads to `https://yourapp.com/webhooks/orders` whenever customers place new +orders, enabling immediate order processing workflows. + +Use the `WebhookSubscription` object to: +- Monitor active webhook configurations +- Access subscription details like topics, endpoints, and filtering rules +- Retrieve creation and update timestamps for audit purposes +- Review API versions and format settings +- Examine metafield namespace configurations for extended data access + +Each subscription includes comprehensive configuration details such as the +specific Shopify events being monitored, the destination endpoint (HTTP, +EventBridge, or Pub/Sub), event filtering criteria, and payload customization +settings. The subscription tracks its creation and modification history. + +Subscriptions can include advanced features like Shopify search syntax for event filtering to control +which events trigger notifications, specific field inclusion rules to control which fields are included +in the webhook payload, and metafield namespace access to capture custom store data. The API version +is inherited from the app that created the webhook subscription. + +The endpoint configuration varies by type - HTTP subscriptions include callback +URLs, EventBridge subscriptions reference AWS ARNs, and Pub/Sub subscriptions +specify Google Cloud project and topic details. This flexibility allows apps to +integrate webhooks with their preferred infrastructure and event processing systems. + +Learn more about [webhook subscription management](https://shopify.dev/docs/apps/webhooks). +""" type WebhookSubscriptionMetafieldIdentifier { """ The unique identifier for the metafield definition within its namespace. @@ -84243,6 +96383,13 @@ or by updating the [app configuration file](https://shopify.dev/apps/tools/cli/c names](https://shopify.dev/docs/api/webhooks?reference=graphql). """ enum WebhookSubscriptionTopic { + """ + The webhook topic for `tax_summaries/create` events. Occurs when a tax summary + is created. Consumed by tax partners. Requires at least one of the following + scopes: read_fulfillments, read_marketplace_orders, read_orders. + """ + TAX_SUMMARIES_CREATE + """ The webhook topic for `app/uninstalled` events. Occurs whenever a shop has uninstalled the app. """ @@ -84363,9 +96510,11 @@ enum WebhookSubscriptionTopic { """ The webhook topic for `collections/update` events. Occurs whenever a - collection is updated, including whenever products are added or removed from - the collection. Occurs once if multiple products are added or removed from a - collection at the same time. Requires the `read_products` scope. + collection is updated, including when a product is manually added or removed + from the collection or when the collection rules change. Occurs once if + multiple products are manually added or removed from a collection at the same + time. Not fired when attribute changes affect whether a product matches a + collection's rules. Requires the `read_products` scope. """ COLLECTIONS_UPDATE @@ -84582,6 +96731,14 @@ enum WebhookSubscriptionTopic { """ ORDERS_UPDATED + """ + The webhook topic for `orders/link_requested` events. Occurs whenever a + customer requests a new order link from the expired order status page. + Requires at least one of the following scopes: read_orders, + read_marketplace_orders, read_buyer_membership_orders. + """ + ORDERS_LINK_REQUESTED + """ The webhook topic for `fulfillment_orders/moved` events. Occurs whenever the location which is assigned to fulfill one or more fulfillment order line items is changed. @@ -85058,6 +97215,12 @@ enum WebhookSubscriptionTopic { """ LOCALES_UPDATE + """ + The webhook topic for `locales/destroy` events. Occurs whenever a shop locale + is destroyed Requires the `read_locales` scope. + """ + LOCALES_DESTROY + """ The webhook topic for `domains/create` events. Occurs whenever a domain is created. """ @@ -85198,6 +97361,13 @@ enum WebhookSubscriptionTopic { """ RETURNS_UPDATE + """ + The webhook topic for `returns/process` events. Occurs whenever a return is + processed. Requires at least one of the following scopes: read_returns, + read_marketplace_returns, read_buyer_membership_orders. + """ + RETURNS_PROCESS + """ The webhook topic for `returns/decline` events. Occurs whenever a return is declined. This means `Return.status` is `DECLINED`. Requires at least one of @@ -85447,6 +97617,98 @@ enum WebhookSubscriptionTopic { """ CUSTOMERS_MERGE + """ + The webhook topic for `inventory_transfers/add_items` events. Occurs any time + items are added to a transfer. Requires the `read_inventory_transfers` scope. + """ + INVENTORY_TRANSFERS_ADD_ITEMS + + """ + The webhook topic for `inventory_transfers/update_item_quantities` events. + Occurs whenever the quantity of transfer line items changes. Requires the + `read_inventory_transfers` scope. + """ + INVENTORY_TRANSFERS_UPDATE_ITEM_QUANTITIES + + """ + The webhook topic for `inventory_transfers/remove_items` events. Occurs any + time items are removed from a transfer. Requires the + `read_inventory_transfers` scope. + """ + INVENTORY_TRANSFERS_REMOVE_ITEMS + + """ + The webhook topic for `inventory_transfers/ready_to_ship` events. Triggers + when a transfer is marked as ready to ship. Requires the + `read_inventory_transfers` scope. + """ + INVENTORY_TRANSFERS_READY_TO_SHIP + + """ + The webhook topic for `inventory_transfers/cancel` events. Triggers when a + transfer is canceled. Requires the `read_inventory_transfers` scope. + """ + INVENTORY_TRANSFERS_CANCEL + + """ + The webhook topic for `inventory_transfers/complete` events. Triggers when a + transfer is completed. Requires the `read_inventory_transfers` scope. + """ + INVENTORY_TRANSFERS_COMPLETE + + """ + The webhook topic for `inventory_shipments/delete` events. Triggers when a + shipment is deleted. Requires the `read_inventory_shipments` scope. + """ + INVENTORY_SHIPMENTS_DELETE + + """ + The webhook topic for `inventory_shipments/create` events. Triggers when a + shipment is created. Requires the `read_inventory_shipments` scope. + """ + INVENTORY_SHIPMENTS_CREATE + + """ + The webhook topic for `inventory_shipments/mark_in_transit` events. Triggers + when a shipment is marked as in transit. Requires the + `read_inventory_shipments` scope. + """ + INVENTORY_SHIPMENTS_MARK_IN_TRANSIT + + """ + The webhook topic for `inventory_shipments/update_tracking` events. Triggers + when tracking info on a shipment is updated. Requires the + `read_inventory_shipments` scope. + """ + INVENTORY_SHIPMENTS_UPDATE_TRACKING + + """ + The webhook topic for `inventory_shipments/add_items` events. Occurs whenever + items are added to a shipment. Requires the `read_inventory_shipments` scope. + """ + INVENTORY_SHIPMENTS_ADD_ITEMS + + """ + The webhook topic for `inventory_shipments/update_item_quantities` events. + Occurs whenever quantities change on a shipment. Requires the + `read_inventory_shipments` scope. + """ + INVENTORY_SHIPMENTS_UPDATE_ITEM_QUANTITIES + + """ + The webhook topic for `inventory_shipments/remove_items` events. Occurs + whenever items are removed from a shipment. Requires the + `read_inventory_shipments` scope. + """ + INVENTORY_SHIPMENTS_REMOVE_ITEMS + + """ + The webhook topic for `inventory_shipments/receive_items` events. Triggers + when items on a shipment are received. Requires the + `read_inventory_shipments_received_items` scope. + """ + INVENTORY_SHIPMENTS_RECEIVE_ITEMS + """ The webhook topic for `customer_account_settings/update` events. Triggers when merchants change customer account setting. """ @@ -85710,78 +97972,6 @@ type WebPixelUpdatePayload { webPixel: WebPixel } -""" -This can be a domain (e.g. `example.ca`), subdomain (e.g. `ca.example.com`), or subfolders of the primary -domain (e.g. `example.com/en-ca`). Each web presence comprises one or more language -variants. - -Note: while the domain/subfolders defined by a web presence are not applicable to -custom storefronts, which must manage their own domains and routing, the languages chosen -here do govern [the languages available on the Storefront -API](https://shopify.dev/custom-storefronts/internationalization/multiple-languages) for the countries -using this web presence. -""" -type WebPresence implements Node { - """ - The ShopLocale object for the alternate locales. When a domain is used, these locales will be - available as language-specific subfolders. For example, if English is an - alternate locale, and `example.ca` is the domain, then - `example.ca/en` will load in English. - """ - alternateLocales: [ShopLocale!]! - - """ - The ShopLocale object 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 domain, then `example.ca` will load in French. - """ - defaultLocale: ShopLocale! - - """ - The web presence’s domain. This field will be null if `subfolderSuffix` is present. - """ - domain: Domain - - """A globally-unique ID.""" - id: ID! - - """The associated markets for this web presence.""" - markets( - """ - The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). - """ - first: Int - - """ - The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). - """ - after: String - - """ - The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). - """ - last: Int - - """ - The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). - """ - before: String - - """Reverse the order of the underlying list.""" - reverse: Boolean = false - ): MarketConnection - - """The list of root URLs for each of the web presence’s locales.""" - rootUrls: [WebPresenceRootUrl!]! - - """ - The suffix of the subfolders defined by the web presence. - Example: in `/en-us` the subfolder suffix is `us`. - This field will be null if `domain` isn't null. - """ - subfolderSuffix: String -} - """The input fields used to create a web presence.""" input WebPresenceCreateInput { """ @@ -85821,18 +98011,6 @@ type WebPresenceDeletePayload { userErrors: [MarketUserError!]! } -""" -The URL for the homepage of the online store in the context of the web presence and a -particular locale. -""" -type WebPresenceRootUrl { - """The locale that the storefront loads in.""" - locale: String! - - """The URL.""" - url: URL! -} - """The input fields used to update a web presence.""" input WebPresenceUpdateInput { """The default locale for the web presence.""" @@ -85859,7 +98037,14 @@ type WebPresenceUpdatePayload { webPresence: MarketWebPresence } -"""A weight, which includes a numeric value and a unit of measurement.""" +""" +A weight measurement with its numeric value and unit. Used throughout the API, +for example in shipping calculations, delivery conditions, order line items, and +inventory measurements. + +The weight combines a decimal value with a standard unit of measurement to +ensure consistent weight handling across different regional systems. +""" type Weight { """The unit of measurement for `value`.""" unit: WeightUnit! diff --git a/mvn/java-shopify-graphql-admin/src/test/java/com/shopify/admin/AppTest.java b/mvn/java-shopify-graphql-admin/src/test/java/com/shopify/admin/AppTest.java index 4c7a83c1..8ae21e86 100644 --- a/mvn/java-shopify-graphql-admin/src/test/java/com/shopify/admin/AppTest.java +++ b/mvn/java-shopify-graphql-admin/src/test/java/com/shopify/admin/AppTest.java @@ -76,7 +76,7 @@ private void setInventory() { InventorySetQuantitiesGraphQLQuery.Builder builder = InventorySetQuantitiesGraphQLQuery.newRequest(); InventorySetQuantitiesInput input = new InventorySetQuantitiesInput(); input.setName("available"); - input.setIgnoreCompareQuantity(true); + // input.setIgnoreCompareQuantity(true); input.setReason("quality_control"); java.util.List quantities = new java.util.ArrayList<>(); InventoryQuantityInput quantity = new InventoryQuantityInput(); diff --git a/mvn/java-shopify-graphql-storefront/pom.xml b/mvn/java-shopify-graphql-storefront/pom.xml index d42c7b72..347f59f7 100644 --- a/mvn/java-shopify-graphql-storefront/pom.xml +++ b/mvn/java-shopify-graphql-storefront/pom.xml @@ -6,12 +6,13 @@ io.github.mores java-shopify-graphql - 2025.04.001 + 2026.01.001 4.0.0 + io.github.mores java-shopify-graphql-storefront - 2025.04.001 + 2026.01.001 jar java-shopify-graphql-storefront diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/DgsConstants.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/DgsConstants.java index c6c5e4e5..7a2cfc18 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/DgsConstants.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/DgsConstants.java @@ -425,6 +425,16 @@ public static class CARTBUYERIDENTITYUPDATEPAYLOAD { public static final String Warnings = "warnings"; } + public static class CARTCLONEPAYLOAD { + public static final String TYPE_NAME = "CartClonePayload"; + + public static final String Cart = "cart"; + + public static final String UserErrors = "userErrors"; + + public static final String Warnings = "warnings"; + } + public static class CARTCODEDISCOUNTALLOCATION { public static final String TYPE_NAME = "CartCodeDiscountAllocation"; @@ -587,6 +597,16 @@ public static class CARTDELIVERYADDRESSESREMOVEPAYLOAD { public static final String Warnings = "warnings"; } + public static class CARTDELIVERYADDRESSESREPLACEPAYLOAD { + public static final String TYPE_NAME = "CartDeliveryAddressesReplacePayload"; + + public static final String Cart = "cart"; + + public static final String UserErrors = "userErrors"; + + public static final String Warnings = "warnings"; + } + public static class CARTDELIVERYADDRESSESUPDATEPAYLOAD { public static final String TYPE_NAME = "CartDeliveryAddressesUpdatePayload"; @@ -723,6 +743,16 @@ public static class CARTESTIMATEDCOST { public static final String TotalTaxAmount = "totalTaxAmount"; } + public static class CARTGIFTCARDCODESADDPAYLOAD { + public static final String TYPE_NAME = "CartGiftCardCodesAddPayload"; + + public static final String Cart = "cart"; + + public static final String UserErrors = "userErrors"; + + public static final String Warnings = "warnings"; + } + public static class CARTGIFTCARDCODESREMOVEPAYLOAD { public static final String TYPE_NAME = "CartGiftCardCodesRemovePayload"; @@ -758,8 +788,12 @@ public static class CARTLINE { public static final String Id = "id"; + public static final String Instructions = "instructions"; + public static final String Merchandise = "merchandise"; + public static final String ParentRelationship = "parentRelationship"; + public static final String Quantity = "quantity"; public static final String SellingPlanAllocation = "sellingPlanAllocation"; @@ -793,6 +827,20 @@ public static class CARTLINEESTIMATEDCOST { public static final String TotalAmount = "totalAmount"; } + public static class CARTLINEINSTRUCTIONS { + public static final String TYPE_NAME = "CartLineInstructions"; + + public static final String CanRemove = "canRemove"; + + public static final String CanUpdateQuantity = "canUpdateQuantity"; + } + + public static class CARTLINEPARENTRELATIONSHIP { + public static final String TYPE_NAME = "CartLineParentRelationship"; + + public static final String Parent = "parent"; + } + public static class CARTLINESADDPAYLOAD { public static final String TYPE_NAME = "CartLinesAddPayload"; @@ -883,6 +931,16 @@ public static class CARTPREPAREFORCOMPLETIONPAYLOAD { public static final String UserErrors = "userErrors"; } + public static class CARTREMOVEPERSONALDATAPAYLOAD { + public static final String TYPE_NAME = "CartRemovePersonalDataPayload"; + + public static final String Cart = "cart"; + + public static final String UserErrors = "userErrors"; + + public static final String Warnings = "warnings"; + } + public static class CARTSELECTABLEADDRESS { public static final String TYPE_NAME = "CartSelectableAddress"; @@ -1234,6 +1292,8 @@ public static class CUSTOMER { public static final String Addresses = "addresses"; + public static final String AvatarUrl = "avatarUrl"; + public static final String CreatedAt = "createdAt"; public static final String DefaultAddress = "defaultAddress"; @@ -1258,6 +1318,8 @@ public static class CUSTOMER { public static final String Phone = "phone"; + public static final String SocialLoginProvider = "socialLoginProvider"; + public static final String Tags = "tags"; public static final String UpdatedAt = "updatedAt"; @@ -1664,6 +1726,8 @@ public static class IMAGE { public static final String Src = "src"; + public static final String Thumbhash = "thumbhash"; + public static final String TransformedSrc = "transformedSrc"; public static final String Url = "url"; @@ -2194,16 +2258,22 @@ public static class MUTATION { public static final String CartBuyerIdentityUpdate = "cartBuyerIdentityUpdate"; + public static final String CartClone = "cartClone"; + public static final String CartCreate = "cartCreate"; public static final String CartDeliveryAddressesAdd = "cartDeliveryAddressesAdd"; public static final String CartDeliveryAddressesRemove = "cartDeliveryAddressesRemove"; + public static final String CartDeliveryAddressesReplace = "cartDeliveryAddressesReplace"; + public static final String CartDeliveryAddressesUpdate = "cartDeliveryAddressesUpdate"; public static final String CartDiscountCodesUpdate = "cartDiscountCodesUpdate"; + public static final String CartGiftCardCodesAdd = "cartGiftCardCodesAdd"; + public static final String CartGiftCardCodesRemove = "cartGiftCardCodesRemove"; public static final String CartGiftCardCodesUpdate = "cartGiftCardCodesUpdate"; @@ -2224,6 +2294,8 @@ public static class MUTATION { public static final String CartPrepareForCompletion = "cartPrepareForCompletion"; + public static final String CartRemovePersonalData = "cartRemovePersonalData"; + public static final String CartSelectedDeliveryOptionsUpdate = "cartSelectedDeliveryOptionsUpdate"; public static final String CartSubmitForCompletion = "cartSubmitForCompletion"; @@ -2280,6 +2352,10 @@ public static class CARTBUYERIDENTITYUPDATE_INPUT_ARGUMENT { public static final String BuyerIdentity = "buyerIdentity"; } + public static class CARTCLONE_INPUT_ARGUMENT { + public static final String CartId = "cartId"; + } + public static class CARTCREATE_INPUT_ARGUMENT { public static final String Input = "input"; } @@ -2296,6 +2372,12 @@ public static class CARTDELIVERYADDRESSESREMOVE_INPUT_ARGUMENT { public static final String AddressIds = "addressIds"; } + public static class CARTDELIVERYADDRESSESREPLACE_INPUT_ARGUMENT { + public static final String CartId = "cartId"; + + public static final String Addresses = "addresses"; + } + public static class CARTDELIVERYADDRESSESUPDATE_INPUT_ARGUMENT { public static final String CartId = "cartId"; @@ -2308,6 +2390,12 @@ public static class CARTDISCOUNTCODESUPDATE_INPUT_ARGUMENT { public static final String DiscountCodes = "discountCodes"; } + public static class CARTGIFTCARDCODESADD_INPUT_ARGUMENT { + public static final String CartId = "cartId"; + + public static final String GiftCardCodes = "giftCardCodes"; + } + public static class CARTGIFTCARDCODESREMOVE_INPUT_ARGUMENT { public static final String CartId = "cartId"; @@ -2362,6 +2450,10 @@ public static class CARTPREPAREFORCOMPLETION_INPUT_ARGUMENT { public static final String CartId = "cartId"; } + public static class CARTREMOVEPERSONALDATA_INPUT_ARGUMENT { + public static final String CartId = "cartId"; + } + public static class CARTSELECTEDDELIVERYOPTIONSUPDATE_INPUT_ARGUMENT { public static final String CartId = "cartId"; @@ -3838,6 +3930,10 @@ public static class SHOP { public static final String Brand = "brand"; + public static final String CustomerAccountTranslations = "customerAccountTranslations"; + + public static final String CustomerAccountUrl = "customerAccountUrl"; + public static final String Description = "description"; public static final String Id = "id"; @@ -3864,6 +3960,8 @@ public static class SHOP { public static final String ShopPayInstallmentsPricing = "shopPayInstallmentsPricing"; + public static final String SocialLoginProviders = "socialLoginProviders"; + public static final String SubscriptionPolicy = "subscriptionPolicy"; public static final String TermsOfService = "termsOfService"; @@ -4179,6 +4277,12 @@ public static class SITEMAPRESOURCEMETAOBJECT { public static final String UpdatedAt = "updatedAt"; } + public static class SOCIALLOGINPROVIDER { + public static final String TYPE_NAME = "SocialLoginProvider"; + + public static final String Handle = "handle"; + } + public static class STOREAVAILABILITY { public static final String TYPE_NAME = "StoreAvailability"; @@ -4281,6 +4385,14 @@ public static class TAXONOMYCATEGORY { public static final String Name = "name"; } + public static class TRANSLATION { + public static final String TYPE_NAME = "Translation"; + + public static final String Key = "key"; + + public static final String Value = "value"; + } + public static class UNITPRICEMEASUREMENT { public static final String TYPE_NAME = "UnitPriceMeasurement"; @@ -4547,6 +4659,16 @@ public static class CARTLINEINPUT { public static final String MerchandiseId = "merchandiseId"; public static final String SellingPlanId = "sellingPlanId"; + + public static final String Parent = "parent"; + } + + public static class CARTLINEPARENTINPUT { + public static final String TYPE_NAME = "CartLineParentInput"; + + public static final String LineId = "lineId"; + + public static final String MerchandiseId = "merchandiseId"; } public static class CARTLINEUPDATEINPUT { @@ -4977,6 +5099,18 @@ public static class VARIANTOPTIONFILTER { public static final String Value = "value"; } + public static class VISITORCONSENT { + public static final String TYPE_NAME = "VisitorConsent"; + + public static final String Preferences = "preferences"; + + public static final String Analytics = "analytics"; + + public static final String Marketing = "marketing"; + + public static final String SaleOfData = "saleOfData"; + } + public static class BASECARTLINE { public static final String TYPE_NAME = "BaseCartLine"; diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ArticleGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ArticleGraphQLQuery.java index d5c40a96..ceb2f084 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ArticleGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ArticleGraphQLQuery.java @@ -7,7 +7,13 @@ import java.util.Set; /** - * Fetch a specific Article by its ID. + * Returns an [`Article`](https://shopify.dev/docs/api/storefront/current/objects/Article) + * by its ID. Each article belongs to a + * [`Blog`](https://shopify.dev/docs/api/storefront/current/objects/Blog) and + * includes content in both plain text and HTML formats, [`ArticleAuthor`](https://shopify.dev/docs/api/storefront/current/objects/ArticleAuthor) information, + * [`Comment`](https://shopify.dev/docs/api/storefront/current/objects/Comment) + * objects, tags, and + * [`SEO`](https://shopify.dev/docs/api/storefront/current/objects/SEO) data. */ public class ArticleGraphQLQuery extends GraphQLQuery { public ArticleGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ArticlesGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ArticlesGraphQLQuery.java index 0909e6e1..ce99863d 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ArticlesGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ArticlesGraphQLQuery.java @@ -10,7 +10,16 @@ import java.util.Set; /** - * List of the shop's articles. + * Returns a paginated list of + * [`Article`](https://shopify.dev/docs/api/storefront/current/objects/Article) + * objects from the shop's + * [`Blog`](https://shopify.dev/docs/api/storefront/current/objects/Blog) + * objects. Each article is a blog post containing content, author information, + * tags, and optional images. + * + * Use the `query` argument to filter results by author, blog title, tags, or + * date fields. Sort results using the `sortKey` argument and reverse them with + * the `reverse` argument. */ public class ArticlesGraphQLQuery extends GraphQLQuery { public ArticlesGraphQLQuery(Integer first, String after, Integer last, String before, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/BlogByHandleGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/BlogByHandleGraphQLQuery.java index a3e3b4ca..5057536e 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/BlogByHandleGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/BlogByHandleGraphQLQuery.java @@ -7,7 +7,11 @@ import java.util.Set; /** - * Find a blog by its handle. + * Retrieves a [`Blog`](https://shopify.dev/docs/api/storefront/current/objects/Blog) by + * its handle. A blog organizes + * [`Article`](https://shopify.dev/docs/api/storefront/current/objects/Article) + * objects for the online store and includes author information, + * [`SEO`](https://shopify.dev/docs/api/storefront/current/objects/SEO) settings, and custom [`Metafield`](https://shopify.dev/docs/api/storefront/current/objects/Metafield) objects. */ public class BlogByHandleGraphQLQuery extends GraphQLQuery { public BlogByHandleGraphQLQuery(String handle, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/BlogGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/BlogGraphQLQuery.java index 04e6fd69..2e2dd13c 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/BlogGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/BlogGraphQLQuery.java @@ -7,7 +7,11 @@ import java.util.Set; /** - * Fetch a specific `Blog` by one of its unique attributes. + * Retrieves a [`Blog`](https://shopify.dev/docs/api/storefront/current/objects/Blog) by + * its handle or ID. A blog organizes + * [`Article`](https://shopify.dev/docs/api/storefront/current/objects/Article) + * objects for the online store and includes author information, + * [`SEO`](https://shopify.dev/docs/api/storefront/current/objects/SEO) settings, and custom [`Metafield`](https://shopify.dev/docs/api/storefront/current/objects/Metafield) objects. */ public class BlogGraphQLQuery extends GraphQLQuery { public BlogGraphQLQuery(String handle, String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/BlogsGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/BlogsGraphQLQuery.java index a9ce2ae7..7c4ce22f 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/BlogsGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/BlogsGraphQLQuery.java @@ -10,7 +10,10 @@ import java.util.Set; /** - * List of the shop's blogs. + * Returns a paginated list of the shop's + * [`Blog`](https://shopify.dev/docs/api/storefront/current/objects/Blog) + * objects. Each blog serves as a container for + * [`Article`](https://shopify.dev/docs/api/storefront/current/objects/Article) objects. */ public class BlogsGraphQLQuery extends GraphQLQuery { public BlogsGraphQLQuery(Integer first, String after, Integer last, String before, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartAttributesUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartAttributesUpdateGraphQLQuery.java index a6ec2805..271d6fd6 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartAttributesUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartAttributesUpdateGraphQLQuery.java @@ -9,7 +9,10 @@ import java.util.Set; /** - * Updates the attributes on a cart. + * Updates the attributes on a + * [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart). + * Attributes are custom key-value pairs that store additional information, such + * as gift messages, special instructions, or order notes. */ public class CartAttributesUpdateGraphQLQuery extends GraphQLQuery { public CartAttributesUpdateGraphQLQuery(List attributes, String cartId, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartBuyerIdentityUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartBuyerIdentityUpdateGraphQLQuery.java index 8a7d3a39..503a12b3 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartBuyerIdentityUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartBuyerIdentityUpdateGraphQLQuery.java @@ -8,10 +8,16 @@ import java.util.Set; /** - * Updates customer information associated with a cart. - * Buyer identity is used to determine - * [international pricing](https://shopify.dev/custom-storefronts/internationalization/international-pricing) - * and should match the customer's shipping address. + * Updates the buyer identity on a + * [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart), + * including contact information, location, and checkout preferences. The buyer's + * country determines [international pricing](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/markets/international-pricing) + * and should match their shipping address. + * + * Use this mutation to associate a logged-in customer via access token, set a + * B2B company location, or configure checkout preferences like delivery method. + * Preferences prefill checkout fields but don't sync back to the cart if + * overwritten at checkout. */ public class CartBuyerIdentityUpdateGraphQLQuery extends GraphQLQuery { public CartBuyerIdentityUpdateGraphQLQuery(String cartId, CartBuyerIdentityInput buyerIdentity, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartCloneGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartCloneGraphQLQuery.java new file mode 100644 index 00000000..7609e35f --- /dev/null +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartCloneGraphQLQuery.java @@ -0,0 +1,59 @@ +package com.shopify.storefront.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import java.lang.Override; +import java.lang.String; +import java.util.HashSet; +import java.util.Set; + +/** + * Creates a clone of the specified cart with all personally identifiable information removed. + */ +public class CartCloneGraphQLQuery extends GraphQLQuery { + public CartCloneGraphQLQuery(String cartId, String queryName, Set fieldsSet) { + super("mutation", queryName); + if (cartId != null || fieldsSet.contains("cartId")) { + getInput().put("cartId", cartId); + } + } + + public CartCloneGraphQLQuery() { + super("mutation"); + } + + @Override + public String getOperationName() { + return "cartClone"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private String cartId; + + private String queryName; + + public CartCloneGraphQLQuery build() { + return new CartCloneGraphQLQuery(cartId, queryName, fieldsSet); + + } + + /** + * The ID of the cart to clone. + */ + public Builder cartId(String cartId) { + this.cartId = cartId; + this.fieldsSet.add("cartId"); + return this; + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartCloneProjectionRoot.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartCloneProjectionRoot.java new file mode 100644 index 00000000..0dac7a03 --- /dev/null +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartCloneProjectionRoot.java @@ -0,0 +1,35 @@ +package com.shopify.storefront.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class CartCloneProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public CartCloneProjectionRoot() { + super(null, null, java.util.Optional.of("CartClonePayload")); + } + + public CartCloneProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public CartProjection, CartCloneProjectionRoot> cart( + ) { + CartProjection, CartCloneProjectionRoot> projection = new CartProjection<>(this, this); + getFields().put("cart", projection); + return projection; + } + + public CartUserErrorProjection, CartCloneProjectionRoot> userErrors( + ) { + CartUserErrorProjection, CartCloneProjectionRoot> projection = new CartUserErrorProjection<>(this, this); + getFields().put("userErrors", projection); + return projection; + } + + public CartWarningProjection, CartCloneProjectionRoot> warnings( + ) { + CartWarningProjection, CartCloneProjectionRoot> projection = new CartWarningProjection<>(this, this); + getFields().put("warnings", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartCreateGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartCreateGraphQLQuery.java index efbd1d14..bf154fc6 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartCreateGraphQLQuery.java @@ -8,7 +8,12 @@ import java.util.Set; /** - * Creates a new cart. + * Creates a new [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart) + * for a buyer session. You can optionally initialize the cart with merchandise + * lines, discount codes, gift card codes, buyer identity for international + * pricing, and custom attributes. + * + * The returned cart includes a `checkoutUrl` that directs the buyer to complete their purchase. */ public class CartCreateGraphQLQuery extends GraphQLQuery { public CartCreateGraphQLQuery(CartInput input, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartDeliveryAddressesAddGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartDeliveryAddressesAddGraphQLQuery.java index 1fc10854..6b8bd178 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartDeliveryAddressesAddGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartDeliveryAddressesAddGraphQLQuery.java @@ -9,7 +9,11 @@ import java.util.Set; /** - * Adds delivery addresses to the cart. + * Adds delivery addresses to a + * [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart). A cart + * can have up to 20 delivery addresses. One address can be marked as selected + * for checkout, and addresses can optionally be marked as one-time use so they + * aren't saved to the customer's account. */ public class CartDeliveryAddressesAddGraphQLQuery extends GraphQLQuery { public CartDeliveryAddressesAddGraphQLQuery(String cartId, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartDeliveryAddressesRemoveGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartDeliveryAddressesRemoveGraphQLQuery.java index d558daa5..a4671390 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartDeliveryAddressesRemoveGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartDeliveryAddressesRemoveGraphQLQuery.java @@ -8,7 +8,9 @@ import java.util.Set; /** - * Removes delivery addresses from the cart. + * Removes delivery addresses from a + * [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart) by + * their IDs, allowing batch removal in a single request. */ public class CartDeliveryAddressesRemoveGraphQLQuery extends GraphQLQuery { public CartDeliveryAddressesRemoveGraphQLQuery(String cartId, List addressIds, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartDeliveryAddressesReplaceGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartDeliveryAddressesReplaceGraphQLQuery.java new file mode 100644 index 00000000..d82dee36 --- /dev/null +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartDeliveryAddressesReplaceGraphQLQuery.java @@ -0,0 +1,84 @@ +package com.shopify.storefront.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import com.shopify.storefront.types.CartSelectableAddressInput; +import java.lang.Override; +import java.lang.String; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +/** + * Replaces all delivery addresses on a + * [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart) with a + * new set of addresses in a single operation. Unlike [`cartDeliveryAddressesUpdate`](https://shopify.dev/docs/api/storefront/current/mutations/cartDeliveryAddressesUpdate), + * which modifies existing addresses, this mutation removes all current addresses + * and sets the provided list as the new delivery addresses. + * + * One address can be marked as selected, and each address can be flagged for + * one-time use or configured with a specific validation strategy. + */ +public class CartDeliveryAddressesReplaceGraphQLQuery extends GraphQLQuery { + public CartDeliveryAddressesReplaceGraphQLQuery(String cartId, + List addresses, String queryName, Set fieldsSet) { + super("mutation", queryName); + if (cartId != null || fieldsSet.contains("cartId")) { + getInput().put("cartId", cartId); + }if (addresses != null || fieldsSet.contains("addresses")) { + getInput().put("addresses", addresses); + } + } + + public CartDeliveryAddressesReplaceGraphQLQuery() { + super("mutation"); + } + + @Override + public String getOperationName() { + return "cartDeliveryAddressesReplace"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private String cartId; + + private List addresses; + + private String queryName; + + public CartDeliveryAddressesReplaceGraphQLQuery build() { + return new CartDeliveryAddressesReplaceGraphQLQuery(cartId, addresses, queryName, fieldsSet); + + } + + /** + * The ID of the cart. + */ + public Builder cartId(String cartId) { + this.cartId = cartId; + this.fieldsSet.add("cartId"); + return this; + } + + /** + * A list of delivery addresses to replace on the cart. + * + * The input must not contain more than `250` values. + */ + public Builder addresses(List addresses) { + this.addresses = addresses; + this.fieldsSet.add("addresses"); + return this; + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartDeliveryAddressesReplaceProjectionRoot.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartDeliveryAddressesReplaceProjectionRoot.java new file mode 100644 index 00000000..e6f4a7b9 --- /dev/null +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartDeliveryAddressesReplaceProjectionRoot.java @@ -0,0 +1,35 @@ +package com.shopify.storefront.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class CartDeliveryAddressesReplaceProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public CartDeliveryAddressesReplaceProjectionRoot() { + super(null, null, java.util.Optional.of("CartDeliveryAddressesReplacePayload")); + } + + public CartDeliveryAddressesReplaceProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public CartProjection, CartDeliveryAddressesReplaceProjectionRoot> cart( + ) { + CartProjection, CartDeliveryAddressesReplaceProjectionRoot> projection = new CartProjection<>(this, this); + getFields().put("cart", projection); + return projection; + } + + public CartUserErrorProjection, CartDeliveryAddressesReplaceProjectionRoot> userErrors( + ) { + CartUserErrorProjection, CartDeliveryAddressesReplaceProjectionRoot> projection = new CartUserErrorProjection<>(this, this); + getFields().put("userErrors", projection); + return projection; + } + + public CartWarningProjection, CartDeliveryAddressesReplaceProjectionRoot> warnings( + ) { + CartWarningProjection, CartDeliveryAddressesReplaceProjectionRoot> projection = new CartWarningProjection<>(this, this); + getFields().put("warnings", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartDeliveryAddressesUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartDeliveryAddressesUpdateGraphQLQuery.java index 8d868bea..5f17cb0d 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartDeliveryAddressesUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartDeliveryAddressesUpdateGraphQLQuery.java @@ -9,7 +9,11 @@ import java.util.Set; /** - * Updates one or more delivery addresses on a cart. + * Updates one or more delivery addresses on a + * [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart). Each + * address can be modified to change its details, set it as the pre-selected + * address for checkout, or mark it for one-time use so it isn't saved to the + * customer's account. */ public class CartDeliveryAddressesUpdateGraphQLQuery extends GraphQLQuery { public CartDeliveryAddressesUpdateGraphQLQuery(String cartId, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartDiscountCodesUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartDiscountCodesUpdateGraphQLQuery.java index 760eacd1..adc726ed 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartDiscountCodesUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartDiscountCodesUpdateGraphQLQuery.java @@ -8,7 +8,13 @@ import java.util.Set; /** - * Updates the discount codes applied to the cart. + * Updates the discount codes applied to a + * [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart). This + * mutation replaces all existing discount codes with the provided list, so pass + * an empty array to remove all codes. Discount codes are case-insensitive. + * + * After updating, check each [`CartDiscountCode`](https://shopify.dev/docs/api/storefront/current/objects/CartDiscountCode) in the cart's [`discountCodes`](https://shopify.dev/docs/api/storefront/current/objects/Cart#field-Cart.fields.discountCodes) + * field to see whether the code is applicable to the cart's current contents. */ public class CartDiscountCodesUpdateGraphQLQuery extends GraphQLQuery { public CartDiscountCodesUpdateGraphQLQuery(String cartId, List discountCodes, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartGiftCardCodesAddGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartGiftCardCodesAddGraphQLQuery.java new file mode 100644 index 00000000..346e9af7 --- /dev/null +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartGiftCardCodesAddGraphQLQuery.java @@ -0,0 +1,80 @@ +package com.shopify.storefront.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import java.lang.Override; +import java.lang.String; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +/** + * Adds gift card codes to a + * [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart) without + * replacing any codes already applied. Gift card codes are case-insensitive. + * + * To replace all gift card codes instead of adding to them, use [`cartGiftCardCodesUpdate`](https://shopify.dev/docs/api/storefront/current/mutations/cartGiftCardCodesUpdate). + */ +public class CartGiftCardCodesAddGraphQLQuery extends GraphQLQuery { + public CartGiftCardCodesAddGraphQLQuery(String cartId, List giftCardCodes, + String queryName, Set fieldsSet) { + super("mutation", queryName); + if (cartId != null || fieldsSet.contains("cartId")) { + getInput().put("cartId", cartId); + }if (giftCardCodes != null || fieldsSet.contains("giftCardCodes")) { + getInput().put("giftCardCodes", giftCardCodes); + } + } + + public CartGiftCardCodesAddGraphQLQuery() { + super("mutation"); + } + + @Override + public String getOperationName() { + return "cartGiftCardCodesAdd"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private String cartId; + + private List giftCardCodes; + + private String queryName; + + public CartGiftCardCodesAddGraphQLQuery build() { + return new CartGiftCardCodesAddGraphQLQuery(cartId, giftCardCodes, queryName, fieldsSet); + + } + + /** + * The ID of the cart. + */ + public Builder cartId(String cartId) { + this.cartId = cartId; + this.fieldsSet.add("cartId"); + return this; + } + + /** + * The case-insensitive gift card codes to add. + * + * The input must not contain more than `250` values. + */ + public Builder giftCardCodes(List giftCardCodes) { + this.giftCardCodes = giftCardCodes; + this.fieldsSet.add("giftCardCodes"); + return this; + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartGiftCardCodesAddProjectionRoot.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartGiftCardCodesAddProjectionRoot.java new file mode 100644 index 00000000..6fa10033 --- /dev/null +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartGiftCardCodesAddProjectionRoot.java @@ -0,0 +1,35 @@ +package com.shopify.storefront.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class CartGiftCardCodesAddProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public CartGiftCardCodesAddProjectionRoot() { + super(null, null, java.util.Optional.of("CartGiftCardCodesAddPayload")); + } + + public CartGiftCardCodesAddProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public CartProjection, CartGiftCardCodesAddProjectionRoot> cart( + ) { + CartProjection, CartGiftCardCodesAddProjectionRoot> projection = new CartProjection<>(this, this); + getFields().put("cart", projection); + return projection; + } + + public CartUserErrorProjection, CartGiftCardCodesAddProjectionRoot> userErrors( + ) { + CartUserErrorProjection, CartGiftCardCodesAddProjectionRoot> projection = new CartUserErrorProjection<>(this, this); + getFields().put("userErrors", projection); + return projection; + } + + public CartWarningProjection, CartGiftCardCodesAddProjectionRoot> warnings( + ) { + CartWarningProjection, CartGiftCardCodesAddProjectionRoot> projection = new CartWarningProjection<>(this, this); + getFields().put("warnings", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartGiftCardCodesRemoveGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartGiftCardCodesRemoveGraphQLQuery.java index 9bd5723d..12c8b424 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartGiftCardCodesRemoveGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartGiftCardCodesRemoveGraphQLQuery.java @@ -8,7 +8,9 @@ import java.util.Set; /** - * Removes the gift card codes applied to the cart. + * Removes gift cards from a + * [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart) using + * their IDs. You can retrieve the IDs of applied gift cards from the cart's [`appliedGiftCards`](https://shopify.dev/docs/api/storefront/current/objects/Cart#field-Cart.fields.appliedGiftCards) field. */ public class CartGiftCardCodesRemoveGraphQLQuery extends GraphQLQuery { public CartGiftCardCodesRemoveGraphQLQuery(String cartId, List appliedGiftCardIds, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartGiftCardCodesUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartGiftCardCodesUpdateGraphQLQuery.java index 99c7014c..ad8ca939 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartGiftCardCodesUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartGiftCardCodesUpdateGraphQLQuery.java @@ -8,7 +8,9 @@ import java.util.Set; /** - * Updates the gift card codes applied to the cart. + * Updates the gift card codes applied to the cart. Unlike [`cartGiftCardCodesAdd`](https://shopify.dev/docs/api/storefront/current/mutations/cartGiftCardCodesAdd), + * which adds codes without replacing existing ones, this mutation sets the gift + * card codes for the cart. Gift card codes are case-insensitive. */ public class CartGiftCardCodesUpdateGraphQLQuery extends GraphQLQuery { public CartGiftCardCodesUpdateGraphQLQuery(String cartId, List giftCardCodes, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartGraphQLQuery.java index 5b1971a2..379199b2 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartGraphQLQuery.java @@ -7,8 +7,12 @@ import java.util.Set; /** - * Retrieve a cart by its ID. For more information, refer to - * [Manage a cart with the Storefront API](https://shopify.dev/custom-storefronts/cart/manage). + * Returns a [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart) by + * its ID. The cart contains the merchandise lines a buyer intends to purchase, + * along with estimated costs, applied discounts, gift cards, and delivery options. + * + * Use the [`checkoutUrl`](https://shopify.dev/docs/api/storefront/latest/queries/cart#returns-Cart.fields.checkoutUrl) field to redirect buyers to Shopify's web checkout when they're ready to + * complete their purchase. For more information, refer to [Manage a cart with the Storefront API](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/cart/manage). */ public class CartGraphQLQuery extends GraphQLQuery { public CartGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartLineFragmentProjection.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartLineFragmentProjection.java index 104ce040..f768f39c 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartLineFragmentProjection.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartLineFragmentProjection.java @@ -60,12 +60,26 @@ public CartLineEstimatedCostProjection, return projection; } + public CartLineInstructionsProjection, ROOT> instructions( + ) { + CartLineInstructionsProjection, ROOT> projection = new CartLineInstructionsProjection<>(this, getRoot()); + getFields().put("instructions", projection); + return projection; + } + public MerchandiseProjection, ROOT> merchandise() { MerchandiseProjection, ROOT> projection = new MerchandiseProjection<>(this, getRoot()); getFields().put("merchandise", projection); return projection; } + public CartLineParentRelationshipProjection, ROOT> parentRelationship( + ) { + CartLineParentRelationshipProjection, ROOT> projection = new CartLineParentRelationshipProjection<>(this, getRoot()); + getFields().put("parentRelationship", projection); + return projection; + } + public SellingPlanAllocationProjection, ROOT> sellingPlanAllocation( ) { SellingPlanAllocationProjection, ROOT> projection = new SellingPlanAllocationProjection<>(this, getRoot()); diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartLineInstructionsProjection.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartLineInstructionsProjection.java new file mode 100644 index 00000000..34bb9d79 --- /dev/null +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartLineInstructionsProjection.java @@ -0,0 +1,24 @@ +package com.shopify.storefront.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class CartLineInstructionsProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public CartLineInstructionsProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("CartLineInstructions")); + } + + public CartLineInstructionsProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public CartLineInstructionsProjection canRemove() { + getFields().put("canRemove", null); + return this; + } + + public CartLineInstructionsProjection canUpdateQuantity() { + getFields().put("canUpdateQuantity", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartLineParentRelationshipProjection.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartLineParentRelationshipProjection.java new file mode 100644 index 00000000..8dec5018 --- /dev/null +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartLineParentRelationshipProjection.java @@ -0,0 +1,20 @@ +package com.shopify.storefront.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class CartLineParentRelationshipProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public CartLineParentRelationshipProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("CartLineParentRelationship")); + } + + public CartLineParentRelationshipProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public CartLineProjection, ROOT> _parent() { + CartLineProjection, ROOT> projection = new CartLineProjection<>(this, getRoot()); + getFields().put("parent", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartLineProjection.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartLineProjection.java index a1fba1c7..99e67223 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartLineProjection.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartLineProjection.java @@ -54,12 +54,25 @@ public CartLineEstimatedCostProjection, ROOT> e return projection; } + public CartLineInstructionsProjection, ROOT> instructions() { + CartLineInstructionsProjection, ROOT> projection = new CartLineInstructionsProjection<>(this, getRoot()); + getFields().put("instructions", projection); + return projection; + } + public MerchandiseProjection, ROOT> merchandise() { MerchandiseProjection, ROOT> projection = new MerchandiseProjection<>(this, getRoot()); getFields().put("merchandise", projection); return projection; } + public CartLineParentRelationshipProjection, ROOT> parentRelationship( + ) { + CartLineParentRelationshipProjection, ROOT> projection = new CartLineParentRelationshipProjection<>(this, getRoot()); + getFields().put("parentRelationship", projection); + return projection; + } + public SellingPlanAllocationProjection, ROOT> sellingPlanAllocation( ) { SellingPlanAllocationProjection, ROOT> projection = new SellingPlanAllocationProjection<>(this, getRoot()); diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartLinesAddGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartLinesAddGraphQLQuery.java index 6424b251..e0b1fc1d 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartLinesAddGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartLinesAddGraphQLQuery.java @@ -9,7 +9,15 @@ import java.util.Set; /** - * Adds a merchandise line to the cart. + * Adds one or more merchandise lines to an existing + * [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart). Each + * line specifies the [product variant](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant) + * to purchase. Quantity defaults to `1` if not provided. + * + * You can add up to 250 lines in a single request. Use [`CartLineInput`](https://shopify.dev/docs/api/storefront/current/input-objects/CartLineInput) + * to configure each line's merchandise, quantity, selling plan, custom + * attributes, and any parent relationships for nested line items such as + * warranties or add-ons. */ public class CartLinesAddGraphQLQuery extends GraphQLQuery { public CartLinesAddGraphQLQuery(String cartId, List lines, String queryName, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartLinesRemoveGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartLinesRemoveGraphQLQuery.java index 3bee407c..343ca619 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartLinesRemoveGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartLinesRemoveGraphQLQuery.java @@ -8,7 +8,10 @@ import java.util.Set; /** - * Removes one or more merchandise lines from the cart. + * Removes one or more merchandise lines from a + * [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart). + * Accepts up to 250 line IDs per request. Returns the updated cart along with + * any errors or warnings. */ public class CartLinesRemoveGraphQLQuery extends GraphQLQuery { public CartLinesRemoveGraphQLQuery(String cartId, List lineIds, String queryName, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartLinesUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartLinesUpdateGraphQLQuery.java index 723d98e4..a3a03b90 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartLinesUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartLinesUpdateGraphQLQuery.java @@ -9,7 +9,13 @@ import java.util.Set; /** - * Updates one or more merchandise lines on a cart. + * Updates one or more merchandise lines on a + * [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart). You + * can modify the quantity, swap the merchandise, change custom attributes, or + * update the selling plan for each line. You can update a maximum of 250 lines per request. + * + * Omitting the [`attributes`](https://shopify.dev/docs/api/storefront/current/mutations/cartLinesUpdate#arguments-lines.fields.attributes) field or setting it to null preserves existing line attributes. Pass an empty + * array to clear all attributes from a line. */ public class CartLinesUpdateGraphQLQuery extends GraphQLQuery { public CartLinesUpdateGraphQLQuery(String cartId, List lines, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartMetafieldDeleteGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartMetafieldDeleteGraphQLQuery.java index 32817f49..22964ea1 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartMetafieldDeleteGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartMetafieldDeleteGraphQLQuery.java @@ -9,6 +9,12 @@ /** * Deletes a cart metafield. + * + * > Note: + * > This mutation won't trigger [Shopify + * Functions](https://shopify.dev/docs/api/functions). The changes won't be + * available to Shopify Functions until the buyer goes to checkout or performs + * another cart interaction that triggers the functions. */ public class CartMetafieldDeleteGraphQLQuery extends GraphQLQuery { public CartMetafieldDeleteGraphQLQuery(CartMetafieldDeleteInput input, String queryName, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartMetafieldsSetGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartMetafieldsSetGraphQLQuery.java index 680351b8..939d615b 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartMetafieldsSetGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartMetafieldsSetGraphQLQuery.java @@ -9,9 +9,18 @@ import java.util.Set; /** - * Sets cart metafield values. Cart metafield values will be set regardless if they were previously created or not. + * Sets [`Metafield`](https://shopify.dev/docs/api/storefront/current/objects/Metafield) values on a cart, creating new metafields or updating existing ones. Accepts + * up to 25 metafields per request. * - * Allows a maximum of 25 cart metafields to be set at a time. + * Cart metafields can automatically copy to order metafields when an order is + * created, if there's a matching order metafield definition with the [cart to order copyable](https://shopify.dev/docs/apps/build/metafields/use-metafield-capabilities#cart-to-order-copyable) + * capability enabled. + * + * > Note: + * > This mutation doesn't trigger [Shopify + * Functions](https://shopify.dev/docs/api/functions). Changes aren't available + * to Shopify Functions until the buyer goes to checkout or performs another cart + * interaction that triggers the functions. */ public class CartMetafieldsSetGraphQLQuery extends GraphQLQuery { public CartMetafieldsSetGraphQLQuery(List metafields, String queryName, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartNoteUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartNoteUpdateGraphQLQuery.java index 456c6e60..af99ff82 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartNoteUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartNoteUpdateGraphQLQuery.java @@ -7,7 +7,10 @@ import java.util.Set; /** - * Updates the note on the cart. + * Updates the note on a + * [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart). The + * note is a text field that stores additional information, such as a + * personalized message from the buyer or special instructions for the order. */ public class CartNoteUpdateGraphQLQuery extends GraphQLQuery { public CartNoteUpdateGraphQLQuery(String cartId, String note, String queryName, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartRemovePersonalDataGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartRemovePersonalDataGraphQLQuery.java new file mode 100644 index 00000000..3e456965 --- /dev/null +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartRemovePersonalDataGraphQLQuery.java @@ -0,0 +1,60 @@ +package com.shopify.storefront.client; + +import com.netflix.graphql.dgs.client.codegen.GraphQLQuery; +import java.lang.Override; +import java.lang.String; +import java.util.HashSet; +import java.util.Set; + +/** + * Removes personally identifiable information from the cart. + */ +public class CartRemovePersonalDataGraphQLQuery extends GraphQLQuery { + public CartRemovePersonalDataGraphQLQuery(String cartId, String queryName, + Set fieldsSet) { + super("mutation", queryName); + if (cartId != null || fieldsSet.contains("cartId")) { + getInput().put("cartId", cartId); + } + } + + public CartRemovePersonalDataGraphQLQuery() { + super("mutation"); + } + + @Override + public String getOperationName() { + return "cartRemovePersonalData"; + } + + public static Builder newRequest() { + return new Builder(); + } + + public static class Builder { + private Set fieldsSet = new HashSet<>(); + + private String cartId; + + private String queryName; + + public CartRemovePersonalDataGraphQLQuery build() { + return new CartRemovePersonalDataGraphQLQuery(cartId, queryName, fieldsSet); + + } + + /** + * The ID of the cart. + */ + public Builder cartId(String cartId) { + this.cartId = cartId; + this.fieldsSet.add("cartId"); + return this; + } + + public Builder queryName(String queryName) { + this.queryName = queryName; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartRemovePersonalDataProjectionRoot.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartRemovePersonalDataProjectionRoot.java new file mode 100644 index 00000000..c01b97dd --- /dev/null +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartRemovePersonalDataProjectionRoot.java @@ -0,0 +1,35 @@ +package com.shopify.storefront.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class CartRemovePersonalDataProjectionRoot, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public CartRemovePersonalDataProjectionRoot() { + super(null, null, java.util.Optional.of("CartRemovePersonalDataPayload")); + } + + public CartRemovePersonalDataProjectionRoot __typename() { + getFields().put("__typename", null); + return this; + } + + public CartProjection, CartRemovePersonalDataProjectionRoot> cart( + ) { + CartProjection, CartRemovePersonalDataProjectionRoot> projection = new CartProjection<>(this, this); + getFields().put("cart", projection); + return projection; + } + + public CartUserErrorProjection, CartRemovePersonalDataProjectionRoot> userErrors( + ) { + CartUserErrorProjection, CartRemovePersonalDataProjectionRoot> projection = new CartUserErrorProjection<>(this, this); + getFields().put("userErrors", projection); + return projection; + } + + public CartWarningProjection, CartRemovePersonalDataProjectionRoot> warnings( + ) { + CartWarningProjection, CartRemovePersonalDataProjectionRoot> projection = new CartWarningProjection<>(this, this); + getFields().put("warnings", projection); + return projection; + } +} diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartSelectedDeliveryOptionsUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartSelectedDeliveryOptionsUpdateGraphQLQuery.java index 468e58ed..da24d86d 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartSelectedDeliveryOptionsUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CartSelectedDeliveryOptionsUpdateGraphQLQuery.java @@ -9,7 +9,14 @@ import java.util.Set; /** - * Update the selected delivery options for a delivery group. + * Updates the selected delivery option for one or more [`CartDeliveryGroup`](https://shopify.dev/docs/api/storefront/current/objects/CartDeliveryGroup) + * objects in a cart. Each delivery group represents items shipping to a specific + * address and offers multiple delivery options with different costs and methods. + * + * Use this mutation when a customer chooses their preferred shipping method + * during checkout. The [`deliveryOptionHandle`](https://shopify.dev/docs/api/storefront/current/input-objects/CartSelectedDeliveryOptionInput#field-CartSelectedDeliveryOptionInput.fields.deliveryOptionHandle) + * identifies which [`CartDeliveryOption`](https://shopify.dev/docs/api/storefront/current/objects/CartDeliveryOption) + * to select for each delivery group. */ public class CartSelectedDeliveryOptionsUpdateGraphQLQuery extends GraphQLQuery { public CartSelectedDeliveryOptionsUpdateGraphQLQuery(String cartId, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CollectionByHandleGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CollectionByHandleGraphQLQuery.java index 15d437f6..f6effe6a 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CollectionByHandleGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CollectionByHandleGraphQLQuery.java @@ -7,7 +7,8 @@ import java.util.Set; /** - * Find a collection by its handle. + * Retrieves a [`Collection`](https://shopify.dev/docs/api/storefront/current/objects/Collection) by its URL-friendly handle. Handles are automatically generated from + * collection titles but merchants can customize them. */ public class CollectionByHandleGraphQLQuery extends GraphQLQuery { public CollectionByHandleGraphQLQuery(String handle, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CollectionGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CollectionGraphQLQuery.java index f863fb18..5be56586 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CollectionGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CollectionGraphQLQuery.java @@ -7,7 +7,9 @@ import java.util.Set; /** - * Fetch a specific `Collection` by one of its unique attributes. + * Retrieves a single [`Collection`](https://shopify.dev/docs/api/storefront/current/objects/Collection) + * by its ID or handle. Use the [`products`](https://shopify.dev/docs/api/storefront/current/objects/Collection#field-Collection.fields.products) + * field to access items in the collection. */ public class CollectionGraphQLQuery extends GraphQLQuery { public CollectionGraphQLQuery(String id, String handle, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CollectionsGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CollectionsGraphQLQuery.java index bb0d7fcc..18fe2966 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CollectionsGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CollectionsGraphQLQuery.java @@ -10,7 +10,8 @@ import java.util.Set; /** - * List of the shop’s collections. + * Returns a paginated list of the shop's [collections](https://shopify.dev/docs/api/storefront/current/objects/Collection). + * Each `Collection` object includes a nested connection to its [products](https://shopify.dev/docs/api/storefront/current/objects/Collection#field-Collection.fields.products). */ public class CollectionsGraphQLQuery extends GraphQLQuery { public CollectionsGraphQLQuery(Integer first, String after, Integer last, String before, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerAccessTokenCreateGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerAccessTokenCreateGraphQLQuery.java index 9c7bfb5a..0ddf36a2 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerAccessTokenCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerAccessTokenCreateGraphQLQuery.java @@ -8,8 +8,17 @@ import java.util.Set; /** - * Creates a customer access token. - * The customer access token is required to modify the customer object in any way. + * For legacy customer accounts only. + * + * Creates a [`CustomerAccessToken`](https://shopify.dev/docs/api/storefront/current/objects/CustomerAccessToken) using the customer's email and password. The access token is required to read or modify the + * [`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer) + * object, such as updating account information or managing addresses. + * + * The token has an expiration time. Use [`customerAccessTokenRenew`](https://shopify.dev/docs/api/storefront/current/mutations/customerAccessTokenRenew) + * to extend the token before it expires, or create a new token if it's already expired. + * + * > Caution: + * > This mutation handles customer credentials. Always transmit requests over HTTPS and never log or expose the password. */ public class CustomerAccessTokenCreateGraphQLQuery extends GraphQLQuery { public CustomerAccessTokenCreateGraphQLQuery(CustomerAccessTokenCreateInput input, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerAccessTokenCreateWithMultipassGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerAccessTokenCreateWithMultipassGraphQLQuery.java index 7d63b4f3..c017ef00 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerAccessTokenCreateWithMultipassGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerAccessTokenCreateWithMultipassGraphQLQuery.java @@ -7,10 +7,17 @@ import java.util.Set; /** - * Creates a customer access token using a - * [multipass token](https://shopify.dev/api/multipass) instead of email and - * password. A customer record is created if the customer doesn't exist. If a customer - * record already exists but the record is disabled, then the customer record is enabled. + * Creates a [`CustomerAccessToken`](https://shopify.dev/docs/api/storefront/current/objects/CustomerAccessToken) using a [multipass token](https://shopify.dev/docs/api/multipass) instead of + * email and password. This enables single sign-on for customers who authenticate + * through an external system. + * + * If the customer doesn't exist in Shopify, then a new customer record is + * created automatically. If the customer exists but the record is disabled, then + * the customer record is re-enabled. + * + * > Caution: + * > Multipass tokens are only valid for 15 minutes and can only be used once. + * Generate tokens on-the-fly when needed rather than in advance. */ public class CustomerAccessTokenCreateWithMultipassGraphQLQuery extends GraphQLQuery { public CustomerAccessTokenCreateWithMultipassGraphQLQuery(String multipassToken, String queryName, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerAccessTokenDeleteGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerAccessTokenDeleteGraphQLQuery.java index c4a8eb99..f8bf4abc 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerAccessTokenDeleteGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerAccessTokenDeleteGraphQLQuery.java @@ -7,7 +7,13 @@ import java.util.Set; /** - * Permanently destroys a customer access token. + * Permanently destroys a [`CustomerAccessToken`](https://shopify.dev/docs/api/storefront/current/objects/CustomerAccessToken). + * Use this mutation when a customer explicitly signs out or when you need to + * revoke the token. Use [`customerAccessTokenCreate`](https://shopify.dev/docs/api/storefront/current/mutations/customerAccessTokenCreate) + * to generate a new token with the customer's credentials. + * + * > Caution: + * > This action is irreversible. The customer needs to sign in again to obtain a new access token. */ public class CustomerAccessTokenDeleteGraphQLQuery extends GraphQLQuery { public CustomerAccessTokenDeleteGraphQLQuery(String customerAccessToken, String queryName, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerAccessTokenRenewGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerAccessTokenRenewGraphQLQuery.java index 34c03dbd..fdc84b6b 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerAccessTokenRenewGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerAccessTokenRenewGraphQLQuery.java @@ -7,10 +7,17 @@ import java.util.Set; /** - * Renews a customer access token. + * Extends the validity of a [`CustomerAccessToken`](https://shopify.dev/docs/api/storefront/current/objects/CustomerAccessToken) + * before it expires. The renewed token maintains authenticated access to + * customer operations. * - * Access token renewal must happen *before* a token expires. - * If a token has already expired, a new one should be created instead via `customerAccessTokenCreate`. + * Renewal must happen before the token's [`expiresAt`](https://shopify.dev/docs/api/storefront/current/objects/CustomerAccessToken#field-CustomerAccessToken.fields.expiresAt) + * time. If a token has already expired, then use [`customerAccessTokenCreate`](https://shopify.dev/docs/api/storefront/current/mutations/customerAccessTokenCreate) + * to generate a new token with the customer's credentials. + * + * > Caution: + * > Store access tokens securely. Never store tokens in plain text or insecure + * locations, and avoid exposing them in URLs or logs. */ public class CustomerAccessTokenRenewGraphQLQuery extends GraphQLQuery { public CustomerAccessTokenRenewGraphQLQuery(String customerAccessToken, String queryName, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerActivateByUrlGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerActivateByUrlGraphQLQuery.java index 73578e23..d2c3dc0c 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerActivateByUrlGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerActivateByUrlGraphQLQuery.java @@ -7,7 +7,14 @@ import java.util.Set; /** - * Activates a customer with the activation url received from `customerCreate`. + * Activates a customer account using the full activation URL from the [`customerCreate`](https://shopify.dev/docs/api/storefront/current/mutations/customerCreate) + * mutation. This approach simplifies activation by accepting the complete URL + * directly, eliminating the need to parse it for the customer ID and activation + * token. Returns a [`CustomerAccessToken`](https://shopify.dev/docs/api/storefront/current/objects/CustomerAccessToken) + * for authenticating subsequent requests. + * + * > Caution: + * > Store the returned access token securely. It grants access to the customer's account data. */ public class CustomerActivateByUrlGraphQLQuery extends GraphQLQuery { public CustomerActivateByUrlGraphQLQuery(String activationUrl, String password, String queryName, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerActivateGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerActivateGraphQLQuery.java index 8a2a01bf..2887c831 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerActivateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerActivateGraphQLQuery.java @@ -8,7 +8,14 @@ import java.util.Set; /** - * Activates a customer. + * Activates a customer account using an activation token received from the [`customerCreate`](https://shopify.dev/docs/api/storefront/current/mutations/customerCreate) + * mutation. The customer sets their password during activation and receives a [`CustomerAccessToken`](https://shopify.dev/docs/api/storefront/current/objects/CustomerAccessToken) + * for authenticated access. + * + * For a simpler approach that doesn't require parsing the activation URL, use [`customerActivateByUrl`](https://shopify.dev/docs/api/storefront/current/mutations/customerActivateByUrl) instead. + * + * > Caution: + * > This mutation handles customer credentials. Always use HTTPS and never log or expose the password or access token. */ public class CustomerActivateGraphQLQuery extends GraphQLQuery { public CustomerActivateGraphQLQuery(String id, CustomerActivateInput input, String queryName, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerAddressCreateGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerAddressCreateGraphQLQuery.java index 33c7b134..b700919a 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerAddressCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerAddressCreateGraphQLQuery.java @@ -8,7 +8,10 @@ import java.util.Set; /** - * Creates a new address for a customer. + * Creates a new [`MailingAddress`](https://shopify.dev/docs/api/storefront/current/objects/MailingAddress) for a [`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer). Use the customer's [access token](https://shopify.dev/docs/api/storefront/current/mutations/customerAddressCreate#arguments-customerAccessToken) + * to identify them. Successful creation returns the new address. + * + * Each customer can have multiple addresses. */ public class CustomerAddressCreateGraphQLQuery extends GraphQLQuery { public CustomerAddressCreateGraphQLQuery(String customerAccessToken, MailingAddressInput address, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerAddressDeleteGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerAddressDeleteGraphQLQuery.java index f4a8449d..157f2757 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerAddressDeleteGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerAddressDeleteGraphQLQuery.java @@ -7,7 +7,12 @@ import java.util.Set; /** - * Permanently deletes the address of an existing customer. + * Permanently deletes a specific [`MailingAddress`](https://shopify.dev/docs/api/storefront/current/objects/MailingAddress) for a [`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer). + * Requires a valid [customer access token](https://shopify.dev/docs/api/storefront/current/mutations/customerAddressDelete#arguments-customerAccessToken) + * to authenticate the request. + * + * > Caution: + * > This action is irreversible. You can't recover the deleted address. */ public class CustomerAddressDeleteGraphQLQuery extends GraphQLQuery { public CustomerAddressDeleteGraphQLQuery(String id, String customerAccessToken, String queryName, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerAddressUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerAddressUpdateGraphQLQuery.java index e74c7e86..6784a27d 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerAddressUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerAddressUpdateGraphQLQuery.java @@ -8,7 +8,12 @@ import java.util.Set; /** - * Updates the address of an existing customer. + * Updates an existing [`MailingAddress`](https://shopify.dev/docs/api/storefront/current/objects/MailingAddress) for a [`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer). + * Requires a [customer access token](https://shopify.dev/docs/api/storefront/current/mutations/customerAddressUpdate#arguments-customerAccessToken) + * to identify the customer, an ID to specify which address to modify, and an [`address`](https://shopify.dev/docs/api/storefront/current/input-objects/MailingAddressInput) + * with the updated fields. + * + * Successful update returns the updated [`MailingAddress`](https://shopify.dev/docs/api/storefront/current/objects/MailingAddress). */ public class CustomerAddressUpdateGraphQLQuery extends GraphQLQuery { public CustomerAddressUpdateGraphQLQuery(String customerAccessToken, String id, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerCreateGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerCreateGraphQLQuery.java index afac69ca..6e49f4ef 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerCreateGraphQLQuery.java @@ -8,7 +8,14 @@ import java.util.Set; /** - * Creates a new customer. + * Creates a new [`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer) + * account with the provided contact information and login credentials. The + * customer can then sign in for things such as accessing their account, viewing + * order history, and managing saved addresses. + * + * > Caution: + * > This mutation creates customer credentials. Ensure passwords are collected + * securely and never logged or exposed in client-side code. */ public class CustomerCreateGraphQLQuery extends GraphQLQuery { public CustomerCreateGraphQLQuery(CustomerCreateInput input, String queryName, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerDefaultAddressUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerDefaultAddressUpdateGraphQLQuery.java index 23cdc8ed..5ed7bf56 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerDefaultAddressUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerDefaultAddressUpdateGraphQLQuery.java @@ -7,7 +7,10 @@ import java.util.Set; /** - * Updates the default address of an existing customer. + * Updates the default address of an existing [`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer). + * Requires a [customer access token](https://shopify.dev/docs/api/storefront/current/mutations/customerDefaultAddressUpdate#arguments-customerAccessToken) + * to identify the customer and an address ID to specify which address to set as + * the new default. */ public class CustomerDefaultAddressUpdateGraphQLQuery extends GraphQLQuery { public CustomerDefaultAddressUpdateGraphQLQuery(String customerAccessToken, String addressId, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerFragmentProjection.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerFragmentProjection.java index 11e52324..9f88f683 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerFragmentProjection.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerFragmentProjection.java @@ -118,11 +118,23 @@ public OrderConnectionProjection, ROOT> return projection; } + public SocialLoginProviderProjection, ROOT> socialLoginProvider( + ) { + SocialLoginProviderProjection, ROOT> projection = new SocialLoginProviderProjection<>(this, getRoot()); + getFields().put("socialLoginProvider", projection); + return projection; + } + public CustomerFragmentProjection acceptsMarketing() { getFields().put("acceptsMarketing", null); return this; } + public CustomerFragmentProjection avatarUrl() { + getFields().put("avatarUrl", null); + return this; + } + public CustomerFragmentProjection createdAt() { getFields().put("createdAt", null); return this; diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerGraphQLQuery.java index 8fd9f9f6..163f50e5 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerGraphQLQuery.java @@ -7,8 +7,14 @@ import java.util.Set; /** - * The customer associated with the given access token. Tokens are obtained by using the - * [`customerAccessTokenCreate` mutation](https://shopify.dev/docs/api/storefront/latest/mutations/customerAccessTokenCreate). + * Retrieves the [`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer) + * associated with the provided access token. Use the [`customerAccessTokenCreate`](https://shopify.dev/docs/api/storefront/current/mutations/customerAccessTokenCreate) + * mutation to obtain an access token using legacy customer account + * authentication (email and password). + * + * The returned customer includes data such as contact information, [addresses](https://shopify.dev/docs/api/storefront/current/objects/MailingAddress), + * [orders](https://shopify.dev/docs/api/storefront/current/objects/Order), and + * [custom data](https://shopify.dev/docs/apps/build/custom-data) associated with the customer. */ public class CustomerGraphQLQuery extends GraphQLQuery { public CustomerGraphQLQuery(String customerAccessToken, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerProjection.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerProjection.java index 402cc004..907d1cbb 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerProjection.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerProjection.java @@ -112,11 +112,23 @@ public OrderConnectionProjection, ROOT> orders( return projection; } + public SocialLoginProviderProjection, ROOT> socialLoginProvider( + ) { + SocialLoginProviderProjection, ROOT> projection = new SocialLoginProviderProjection<>(this, getRoot()); + getFields().put("socialLoginProvider", projection); + return projection; + } + public CustomerProjection acceptsMarketing() { getFields().put("acceptsMarketing", null); return this; } + public CustomerProjection avatarUrl() { + getFields().put("avatarUrl", null); + return this; + } + public CustomerProjection createdAt() { getFields().put("createdAt", null); return this; diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerProjectionRoot.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerProjectionRoot.java index 332e64a2..44cf4123 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerProjectionRoot.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerProjectionRoot.java @@ -117,11 +117,23 @@ public OrderConnectionProjection, CustomerP return projection; } + public SocialLoginProviderProjection, CustomerProjectionRoot> socialLoginProvider( + ) { + SocialLoginProviderProjection, CustomerProjectionRoot> projection = new SocialLoginProviderProjection<>(this, this); + getFields().put("socialLoginProvider", projection); + return projection; + } + public CustomerProjectionRoot acceptsMarketing() { getFields().put("acceptsMarketing", null); return this; } + public CustomerProjectionRoot avatarUrl() { + getFields().put("avatarUrl", null); + return this; + } + public CustomerProjectionRoot createdAt() { getFields().put("createdAt", null); return this; diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerRecoverGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerRecoverGraphQLQuery.java index 8470cc4f..369f3123 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerRecoverGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerRecoverGraphQLQuery.java @@ -7,19 +7,18 @@ import java.util.Set; /** - * Sends a reset password email to the customer. The reset password - * email contains a reset password URL and token that you can pass to - * the [`customerResetByUrl`](https://shopify.dev/api/storefront/latest/mutations/customerResetByUrl) or - * [`customerReset`](https://shopify.dev/api/storefront/latest/mutations/customerReset) mutation to reset the - * customer password. + * Sends a reset password email to the customer. The email contains a reset + * password URL and token that you can pass to the [`customerResetByUrl`](https://shopify.dev/docs/api/storefront/current/mutations/customerResetByUrl) or [`customerReset`](https://shopify.dev/docs/api/storefront/current/mutations/customerReset) + * mutation to reset the customer's password. * - * This mutation is throttled by IP. With private access, - * you can provide a [`Shopify-Storefront-Buyer-IP`](https://shopify.dev/api/usage/authentication#optional-ip-header) - * instead of the request IP. - * The header is case-sensitive and must be sent as `Shopify-Storefront-Buyer-IP`. + * This mutation is throttled by IP. With private access, you can provide a + * [`Shopify-Storefront-Buyer-IP` + * header](https://shopify.dev/docs/api/usage/authentication#optional-ip-header) + * instead of the request IP. The header is case-sensitive. * - * Make sure that the value provided to `Shopify-Storefront-Buyer-IP` is trusted. Unthrottled access to this - * mutation presents a security risk. + * > Caution: + * > Ensure the value provided to `Shopify-Storefront-Buyer-IP` is trusted. + * Unthrottled access to this mutation presents a security risk. */ public class CustomerRecoverGraphQLQuery extends GraphQLQuery { public CustomerRecoverGraphQLQuery(String email, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerResetByUrlGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerResetByUrlGraphQLQuery.java index c8fd8254..08798c04 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerResetByUrlGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerResetByUrlGraphQLQuery.java @@ -7,8 +7,16 @@ import java.util.Set; /** - * "Resets a customer’s password with the reset password URL received from a - * reset password email. You can send a reset password email with the [`customerRecover`](https://shopify.dev/api/storefront/latest/mutations/customerRecover) mutation." + * Resets a customer's password using the reset URL from a password recovery + * email. The reset URL is generated by the [`customerRecover`](https://shopify.dev/docs/api/storefront/current/mutations/customerRecover) mutation. + * + * On success, returns the updated + * [`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer) and a new [`CustomerAccessToken`](https://shopify.dev/docs/api/storefront/current/objects/CustomerAccessToken) + * for immediate authentication. + * + * > Caution: + * > This mutation handles customer credentials. Ensure the new password is + * transmitted securely and never logged or exposed in client-side code. */ public class CustomerResetByUrlGraphQLQuery extends GraphQLQuery { public CustomerResetByUrlGraphQLQuery(String resetUrl, String password, String queryName, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerResetGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerResetGraphQLQuery.java index 5ea268a9..5719cb3e 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerResetGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerResetGraphQLQuery.java @@ -8,8 +8,17 @@ import java.util.Set; /** - * "Resets a customer’s password with the token received from a reset password - * email. You can send a reset password email with the [`customerRecover`](https://shopify.dev/api/storefront/latest/mutations/customerRecover) mutation." + * Resets a customer's password using the reset token from a password recovery + * email. On success, returns the updated + * [`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer) and a new [`CustomerAccessToken`](https://shopify.dev/docs/api/storefront/current/objects/CustomerAccessToken) + * for immediate authentication. + * + * Use the [`customerRecover`](https://shopify.dev/docs/api/storefront/current/mutations/customerRecover) mutation to send the password recovery email that provides the reset token. + * Alternatively, use [`customerResetByUrl`](https://shopify.dev/docs/api/storefront/current/mutations/customerResetByUrl) + * if you have the full reset URL instead of the customer ID and token. + * + * > Caution: + * > This mutation handles sensitive customer credentials. Validate password requirements on the client before submission. */ public class CustomerResetGraphQLQuery extends GraphQLQuery { public CustomerResetGraphQLQuery(String id, CustomerResetInput input, String queryName, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerUpdateGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerUpdateGraphQLQuery.java index 58dba593..2f41e118 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerUpdateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/CustomerUpdateGraphQLQuery.java @@ -8,7 +8,18 @@ import java.util.Set; /** - * Updates an existing customer. + * Updates a [customer's](https://shopify.dev/docs/api/storefront/current/objects/Customer) + * personal information such as name, password, and marketing preferences. + * Requires a valid [`CustomerAccessToken`](https://shopify.dev/docs/api/storefront/current/objects/CustomerAccessToken) + * to authenticate the customer making the update. + * + * If the customer's password is updated, then all previous access tokens become + * invalid. The mutation returns a new access token in the payload to maintain + * the customer's session. + * + * > Caution: + * > Password changes invalidate all existing access tokens. Ensure your app + * handles the new token returned in the response to avoid logging the customer out. */ public class CustomerUpdateGraphQLQuery extends GraphQLQuery { public CustomerUpdateGraphQLQuery(String customerAccessToken, CustomerUpdateInput customer, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ImageProjection.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ImageProjection.java index b66a0993..6639a8aa 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ImageProjection.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ImageProjection.java @@ -42,6 +42,11 @@ public ImageProjection src() { return this; } + public ImageProjection thumbhash() { + getFields().put("thumbhash", null); + return this; + } + public ImageProjection transformedSrc() { getFields().put("transformedSrc", null); return this; diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/LocalizationGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/LocalizationGraphQLQuery.java index 01418131..6cd113b3 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/LocalizationGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/LocalizationGraphQLQuery.java @@ -7,7 +7,12 @@ import java.util.Set; /** - * Returns the localized experiences configured for the shop. + * Returns the shop's localization settings. Use this query to build [country and language selectors](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/markets) + * for your storefront. + * + * The [`country`](https://shopify.dev/docs/api/storefront/latest/queries/localization#returns-Localization.fields.country) and [`language`](https://shopify.dev/docs/api/storefront/latest/queries/localization#returns-Localization.fields.language) fields reflect the active localized experience. To change the context, use the + * [`@inContext`](https://shopify.dev/docs/api/storefront#directives) directive + * with your desired country or language code. */ public class LocalizationGraphQLQuery extends GraphQLQuery { public LocalizationGraphQLQuery(String queryName) { diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/LocationsGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/LocationsGraphQLQuery.java index 6d18a06d..9440a46a 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/LocationsGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/LocationsGraphQLQuery.java @@ -11,9 +11,13 @@ import java.util.Set; /** - * List of the shop's locations that support in-store pickup. + * Returns shop locations that support in-store pickup. Use the `near` argument with [`GeoCoordinateInput`](https://shopify.dev/docs/api/storefront/current/input-objects/GeoCoordinateInput) + * to sort results by proximity to the customer's location. * - * When sorting by distance, you must specify a location via the `near` argument. + * When sorting by distance, set `sortKey` to [`DISTANCE`](https://shopify.dev/docs/api/storefront/current/queries/locations#arguments-sortKey.enums.DISTANCE) + * and provide coordinates using the [`near`](https://shopify.dev/docs/api/storefront/current/queries/locations#arguments-near) argument. + * + * Learn more about [supporting local pickup on storefronts](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/products-collections/local-pickup). */ public class LocationsGraphQLQuery extends GraphQLQuery { public LocationsGraphQLQuery(Integer first, String after, Integer last, String before, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/MenuGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/MenuGraphQLQuery.java index 69c3a942..1213aaeb 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/MenuGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/MenuGraphQLQuery.java @@ -7,7 +7,17 @@ import java.util.Set; /** - * Retrieve a [navigation menu](https://help.shopify.com/manual/online-store/menus-and-links) by its handle. + * Retrieves a [`Menu`](https://shopify.dev/docs/api/storefront/current/objects/Menu) by + * its handle. Menus are [hierarchical navigation + * structures](https://help.shopify.com/manual/online-store/menus-and-links) that + * merchants configure for their storefront, such as header and footer navigation. + * + * Each menu contains + * [`MenuItem`](https://shopify.dev/docs/api/storefront/current/objects/MenuItem) + * objects that can nest up to three levels deep, with each item linking to [collections](https://shopify.dev/docs/api/storefront/current/objects/Collection), + * [products](https://shopify.dev/docs/api/storefront/current/objects/Product), + * [pages](https://shopify.dev/docs/api/storefront/current/objects/Page), + * [blogs](https://shopify.dev/docs/api/storefront/current/objects/Blog), or external URLs. */ public class MenuGraphQLQuery extends GraphQLQuery { public MenuGraphQLQuery(String handle, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/MetafieldReferenceProjection.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/MetafieldReferenceProjection.java index 39edda06..9759855c 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/MetafieldReferenceProjection.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/MetafieldReferenceProjection.java @@ -12,6 +12,12 @@ public MetafieldReferenceProjection __typename() { return this; } + public ArticleFragmentProjection, ROOT> onArticle() { + ArticleFragmentProjection, ROOT> fragment = new ArticleFragmentProjection<>(this, getRoot()); + getFragments().add(fragment); + return fragment; + } + public CollectionFragmentProjection, ROOT> onCollection( ) { CollectionFragmentProjection, ROOT> fragment = new CollectionFragmentProjection<>(this, getRoot()); diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/MetaobjectGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/MetaobjectGraphQLQuery.java index 32bddcca..e6dc02d4 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/MetaobjectGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/MetaobjectGraphQLQuery.java @@ -8,7 +8,11 @@ import java.util.Set; /** - * Fetch a specific Metaobject by one of its unique identifiers. + * Retrieves a single [`Metaobject`](https://shopify.dev/docs/api/storefront/current/objects/Metaobject) + * by either its [`global ID`](https://shopify.dev/docs/api/storefront/current/queries/metaobject#arguments-id) or its [`handle`](https://shopify.dev/docs/api/storefront/current/queries/metaobject#arguments-handle). + * + * > Note: + * > When using the handle, you must also provide the metaobject type because handles are only unique within a type. */ public class MetaobjectGraphQLQuery extends GraphQLQuery { public MetaobjectGraphQLQuery(String id, MetaobjectHandleInput handle, String queryName, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/MetaobjectsGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/MetaobjectsGraphQLQuery.java index 36809dae..d0e6d4b1 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/MetaobjectsGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/MetaobjectsGraphQLQuery.java @@ -9,7 +9,14 @@ import java.util.Set; /** - * All active metaobjects for the shop. + * Returns a paginated list of [`Metaobject`](https://shopify.dev/docs/api/storefront/current/objects/Metaobject) + * entries for a specific type. Metaobjects are [custom data + * structures](https://shopify.dev/docs/apps/build/metaobjects) that extend + * Shopify's data model with merchant-defined or app-defined content like size + * charts, product highlights, or custom sections. + * + * The required `type` argument specifies which metaobject type to retrieve. You + * can sort results by `id` or `updated_at` using the `sortKey` argument. */ public class MetaobjectsGraphQLQuery extends GraphQLQuery { public MetaobjectsGraphQLQuery(String type, String sortKey, Integer first, String after, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/NodeGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/NodeGraphQLQuery.java index 4575f789..206f1bcf 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/NodeGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/NodeGraphQLQuery.java @@ -7,7 +7,13 @@ import java.util.Set; /** - * Returns a specific node by ID. + * Retrieves any object that implements the + * [`Node`](https://shopify.dev/docs/api/storefront/current/interfaces/Node) + * interface by its globally-unique ID. Use inline fragments to access + * type-specific fields on the returned object. + * + * This query follows the [Relay specification](https://relay.dev/graphql/objectidentification.htm#sec-Node-Interface) + * and is commonly used for refetching objects when you have their ID but need updated data. */ public class NodeGraphQLQuery extends GraphQLQuery { public NodeGraphQLQuery(String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/NodesGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/NodesGraphQLQuery.java index e8861f3d..6219249d 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/NodesGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/NodesGraphQLQuery.java @@ -8,7 +8,14 @@ import java.util.Set; /** - * Returns the list of nodes with the given IDs. + * Retrieves multiple objects by their global IDs in a single request. Any object + * that implements the + * [`Node`](https://shopify.dev/docs/api/storefront/current/interfaces/Node) + * interface can be fetched, including + * [products](https://shopify.dev/docs/api/storefront/current/objects/Product), [collections](https://shopify.dev/docs/api/storefront/current/objects/Collection), + * and [pages](https://shopify.dev/docs/api/storefront/current/objects/Page). + * + * Use inline fragments to access type-specific fields on the returned objects. The input accepts up to 250 IDs. */ public class NodesGraphQLQuery extends GraphQLQuery { public NodesGraphQLQuery(List ids, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/PageByHandleGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/PageByHandleGraphQLQuery.java index 6c79fc76..56d44cc1 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/PageByHandleGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/PageByHandleGraphQLQuery.java @@ -7,7 +7,7 @@ import java.util.Set; /** - * Find a page by its handle. + * Retrieves a [`Page`](https://shopify.dev/docs/api/storefront/current/objects/Page) by its handle. */ public class PageByHandleGraphQLQuery extends GraphQLQuery { public PageByHandleGraphQLQuery(String handle, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/PageGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/PageGraphQLQuery.java index e6eb1856..12b11b0b 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/PageGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/PageGraphQLQuery.java @@ -7,7 +7,13 @@ import java.util.Set; /** - * Fetch a specific `Page` by one of its unique attributes. + * Retrieves a [`Page`](https://shopify.dev/docs/api/storefront/current/objects/Page) by its [`handle`](https://shopify.dev/docs/api/storefront/current/queries/page#arguments-handle) or [`id`](https://shopify.dev/docs/api/storefront/current/queries/page#arguments-id). + * Pages are static content pages that merchants display outside their product + * catalog, such as "About Us," "Contact," or policy pages. + * + * The returned page includes information such as the [HTML body content](https://shopify.dev/docs/api/storefront/current/queries/page#returns-Page.fields.body), + * [`SEO`](https://shopify.dev/docs/api/storefront/current/objects/SEO) + * information, and any associated [`Metafield`](https://shopify.dev/docs/api/storefront/current/objects/Metafield) objects. */ public class PageGraphQLQuery extends GraphQLQuery { public PageGraphQLQuery(String handle, String id, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/PagesGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/PagesGraphQLQuery.java index 3bbfeb30..08e1bc80 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/PagesGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/PagesGraphQLQuery.java @@ -10,7 +10,10 @@ import java.util.Set; /** - * List of the shop's pages. + * Returns a paginated list of the shop's content + * [pages](https://shopify.dev/docs/api/storefront/current/objects/Page). Pages + * are custom HTML content like "About Us", "Contact", or policy information that + * merchants display outside their product catalog. */ public class PagesGraphQLQuery extends GraphQLQuery { public PagesGraphQLQuery(Integer first, String after, Integer last, String before, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/PredictiveSearchGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/PredictiveSearchGraphQLQuery.java index df48e65f..e77fdac4 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/PredictiveSearchGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/PredictiveSearchGraphQLQuery.java @@ -13,7 +13,17 @@ import java.util.Set; /** - * List of the predictive search results. + * Returns suggested results as customers type in a search field, enabling + * type-ahead search experiences. The query matches + * [products](https://shopify.dev/docs/api/storefront/current/objects/Product), [collections](https://shopify.dev/docs/api/storefront/current/objects/Collection), + * [pages](https://shopify.dev/docs/api/storefront/current/objects/Page), and + * [articles](https://shopify.dev/docs/api/storefront/current/objects/Article) + * based on partial search terms, and also provides [search query suggestions](https://shopify.dev/docs/api/storefront/current/objects/SearchQuerySuggestion) + * to help customers refine their search. + * + * You can filter results by resource type and limit the quantity. The [`limitScope`](https://shopify.dev/docs/api/storefront/current/queries/predictiveSearch#arguments-limitScope) + * argument controls whether limits apply across all result types or per type. Use [`unavailableProducts`](https://shopify.dev/docs/api/storefront/current/queries/predictiveSearch#arguments-unavailableProducts) + * to control how out-of-stock products appear in results. */ public class PredictiveSearchGraphQLQuery extends GraphQLQuery { public PredictiveSearchGraphQLQuery(Integer limit, PredictiveSearchLimitScope limitScope, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ProductByHandleGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ProductByHandleGraphQLQuery.java index b04b8646..3c953e32 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ProductByHandleGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ProductByHandleGraphQLQuery.java @@ -7,7 +7,10 @@ import java.util.Set; /** - * Find a product by its handle. + * Retrieves a [`Product`](https://shopify.dev/docs/api/storefront/current/objects/Product) + * by its handle. The handle is a URL-friendly identifier that's automatically + * generated from the product's title. If no product exists with the specified + * handle, returns `null`. */ public class ProductByHandleGraphQLQuery extends GraphQLQuery { public ProductByHandleGraphQLQuery(String handle, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ProductGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ProductGraphQLQuery.java index 8cea3e57..21023730 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ProductGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ProductGraphQLQuery.java @@ -7,7 +7,11 @@ import java.util.Set; /** - * Fetch a specific `Product` by one of its unique attributes. + * Retrieves a single + * [`Product`](https://shopify.dev/docs/api/storefront/current/objects/Product) + * by its ID or handle. Use this query to build product detail pages, access + * variant and pricing information, or fetch product media and [metafields](https://shopify.dev/docs/api/storefront/current/objects/Metafield). + * See some [examples of querying products](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/products-collections/getting-started). */ public class ProductGraphQLQuery extends GraphQLQuery { public ProductGraphQLQuery(String id, String handle, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ProductRecommendationsGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ProductRecommendationsGraphQLQuery.java index 9878426c..59a87ba2 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ProductRecommendationsGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ProductRecommendationsGraphQLQuery.java @@ -8,9 +8,15 @@ import java.util.Set; /** - * Find recommended products related to a given `product_id`. - * To learn more about how recommendations are generated, see - * [*Showing product recommendations on product pages*](https://help.shopify.com/themes/development/recommended-products). + * Returns recommended products for a given product, identified by either ID or + * handle. Use the [`intent`](https://shopify.dev/docs/api/storefront/current/enums/ProductRecommendationIntent) + * argument to control the recommendation strategy. + * + * Shopify [auto-generates related recommendations](https://shopify.dev/docs/storefronts/themes/product-merchandising/recommendations) + * based on sales data, product descriptions, and collection relationships. + * Complementary recommendations require [manual configuration](https://help.shopify.com/manual/online-store/storefront-search/search-and-discovery-recommendations) + * through the Shopify Search & Discovery app. Returns up to ten + * [`Product`](https://shopify.dev/docs/api/storefront/current/objects/Product) objects. */ public class ProductRecommendationsGraphQLQuery extends GraphQLQuery { public ProductRecommendationsGraphQLQuery(String productId, String productHandle, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ProductTagsGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ProductTagsGraphQLQuery.java index 2c98287f..5193175c 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ProductTagsGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ProductTagsGraphQLQuery.java @@ -7,8 +7,9 @@ import java.util.Set; /** - * Tags added to products. - * Additional access scope required: unauthenticated_read_product_tags. + * Returns a paginated list of all tags that have been added to + * [products](https://shopify.dev/docs/api/storefront/current/objects/Product) in + * the shop. Useful for building tag-based product filtering or navigation in a storefront. */ public class ProductTagsGraphQLQuery extends GraphQLQuery { public ProductTagsGraphQLQuery(int first, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ProductTypesGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ProductTypesGraphQLQuery.java index 4393983a..8b40edd9 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ProductTypesGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ProductTypesGraphQLQuery.java @@ -7,7 +7,10 @@ import java.util.Set; /** - * List of product types for the shop's products that are published to your app. + * Returns a list of product types from the shop's + * [`Product`](https://shopify.dev/docs/api/storefront/current/objects/Product) + * objects that are published to your app. Use this query to build [filtering interfaces](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/products-collections/filter-products) + * or navigation menus based on product categorization. */ public class ProductTypesGraphQLQuery extends GraphQLQuery { public ProductTypesGraphQLQuery(int first, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ProductsGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ProductsGraphQLQuery.java index 2aee6165..d2178d9f 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ProductsGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ProductsGraphQLQuery.java @@ -10,8 +10,10 @@ import java.util.Set; /** - * Returns a list of the shop's products. For storefront search, use the - * [`search`](https://shopify.dev/docs/api/storefront/latest/queries/search) query. + * Returns a paginated list of the shop's [products](https://shopify.dev/docs/api/storefront/current/objects/Product). + * + * For full-text storefront search, use the + * [`search`](https://shopify.dev/docs/api/storefront/current/queries/search) query instead. */ public class ProductsGraphQLQuery extends GraphQLQuery { public ProductsGraphQLQuery(Integer first, String after, Integer last, String before, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/PublicApiVersionsGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/PublicApiVersionsGraphQLQuery.java index 66e74576..4f1c3032 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/PublicApiVersionsGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/PublicApiVersionsGraphQLQuery.java @@ -7,7 +7,9 @@ import java.util.Set; /** - * The list of public Storefront API versions, including supported, release candidate and unstable versions. + * Returns all public Storefront [API + * versions](https://shopify.dev/docs/api/storefront/current/objects/ApiVersion), + * including supported, release candidate, and unstable versions. */ public class PublicApiVersionsGraphQLQuery extends GraphQLQuery { public PublicApiVersionsGraphQLQuery(String queryName) { diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/SearchGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/SearchGraphQLQuery.java index 041c214d..347d8bee 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/SearchGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/SearchGraphQLQuery.java @@ -15,7 +15,16 @@ import java.util.Set; /** - * List of the search results. + * Returns paginated search results for + * [`Product`](https://shopify.dev/docs/api/storefront/current/objects/Product), + * [`Page`](https://shopify.dev/docs/api/storefront/current/objects/Page), and + * [`Article`](https://shopify.dev/docs/api/storefront/current/objects/Article) + * resources based on a query string. Results are sorted by relevance by default. + * + * The response includes the total result count and available product filters for + * building [faceted search interfaces](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/products-collections/filter-products). Use the [`prefix`](https://shopify.dev/docs/api/storefront/current/enums/SearchPrefixQueryType) + * argument to enable partial word matching on the last search term, allowing + * queries like "winter snow" to match "snowboard" or "snowshoe". */ public class SearchGraphQLQuery extends GraphQLQuery { public SearchGraphQLQuery(Integer first, String after, Integer last, String before, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ShopFragmentProjection.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ShopFragmentProjection.java index 4befc768..e5bac1f9 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ShopFragmentProjection.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ShopFragmentProjection.java @@ -27,6 +27,13 @@ public BrandProjection, ROOT> brand() { return projection; } + public TranslationProjection, ROOT> customerAccountTranslations( + ) { + TranslationProjection, ROOT> projection = new TranslationProjection<>(this, getRoot()); + getFields().put("customerAccountTranslations", projection); + return projection; + } + public MetafieldProjection, ROOT> metafield() { MetafieldProjection, ROOT> projection = new MetafieldProjection<>(this, getRoot()); getFields().put("metafield", projection); @@ -104,6 +111,13 @@ public ShopPayInstallmentsPricingProjection return projection; } + public SocialLoginProviderProjection, ROOT> socialLoginProviders( + ) { + SocialLoginProviderProjection, ROOT> projection = new SocialLoginProviderProjection<>(this, getRoot()); + getFields().put("socialLoginProviders", projection); + return projection; + } + public ShopPolicyWithDefaultProjection, ROOT> subscriptionPolicy( ) { ShopPolicyWithDefaultProjection, ROOT> projection = new ShopPolicyWithDefaultProjection<>(this, getRoot()); @@ -117,6 +131,11 @@ public ShopPolicyProjection, ROOT> termsOfS return projection; } + public ShopFragmentProjection customerAccountUrl() { + getFields().put("customerAccountUrl", null); + return this; + } + public ShopFragmentProjection description() { getFields().put("description", null); return this; diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ShopGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ShopGraphQLQuery.java index 27c986b2..4ab229a5 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ShopGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ShopGraphQLQuery.java @@ -7,7 +7,14 @@ import java.util.Set; /** - * The shop associated with the storefront access token. + * Returns the [`Shop`](https://shopify.dev/docs/api/storefront/current/objects/Shop) + * associated with the storefront access token. The `Shop` object provides + * general store information such as the shop name, description, and primary domain. + * + * Use this query to access data like store policies, [`PaymentSettings`](https://shopify.dev/docs/api/storefront/current/objects/PaymentSettings), + * [`Brand`](https://shopify.dev/docs/api/storefront/current/objects/Brand) + * configuration, and shipping destinations. It also exposes [`ShopPayInstallmentsPricing`](https://shopify.dev/docs/api/storefront/current/objects/ShopPayInstallmentsPricing) and [`SocialLoginProvider`](https://shopify.dev/docs/api/storefront/current/objects/SocialLoginProvider) + * options for customer accounts. */ public class ShopGraphQLQuery extends GraphQLQuery { public ShopGraphQLQuery(String queryName) { diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ShopPayPaymentRequestSessionCreateGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ShopPayPaymentRequestSessionCreateGraphQLQuery.java index 37e4a79a..2c021420 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ShopPayPaymentRequestSessionCreateGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ShopPayPaymentRequestSessionCreateGraphQLQuery.java @@ -8,7 +8,17 @@ import java.util.Set; /** - * Create a new Shop Pay payment request session. + * Creates a [Shop Pay payment request session](https://shopify.dev/docs/api/storefront/current/objects/ShopPayPaymentRequestSession) + * for processing payments. The session includes a checkout URL where customers + * complete their purchase and a token for subsequent operations like submitting the payment. + * + * The `sourceIdentifier` must be unique across all orders to ensure accurate reconciliation. + * + * For a complete integration guide including the JavaScript SDK setup and + * checkout flow, refer to the [Shop Component API + * documentation](https://shopify.dev/docs/api/commerce-components/pay). For + * implementation steps, see the [development journey guide](https://shopify.dev/docs/api/commerce-components/pay/development-journey). + * For common error scenarios, see the [troubleshooting guide](https://shopify.dev/docs/api/commerce-components/pay/troubleshooting-guide). */ public class ShopPayPaymentRequestSessionCreateGraphQLQuery extends GraphQLQuery { public ShopPayPaymentRequestSessionCreateGraphQLQuery(String sourceIdentifier, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ShopPayPaymentRequestSessionSubmitGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ShopPayPaymentRequestSessionSubmitGraphQLQuery.java index 871acd41..d96a2863 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ShopPayPaymentRequestSessionSubmitGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ShopPayPaymentRequestSessionSubmitGraphQLQuery.java @@ -8,7 +8,18 @@ import java.util.Set; /** - * Submits a Shop Pay payment request session. + * Finalizes a [Shop Pay payment request session](https://shopify.dev/docs/api/storefront/current/objects/ShopPayPaymentRequestSession). + * Call this mutation after creating a session with [`shopPayPaymentRequestSessionCreate`](https://shopify.dev/docs/api/storefront/current/mutations/shopPayPaymentRequestSessionCreate). + * + * The [`idempotencyKey`](https://shopify.dev/docs/api/storefront/current/mutations/shopPayPaymentRequestSessionSubmit#arguments-idempotencyKey) argument ensures the payment transaction occurs only once, preventing + * duplicate charges. On success, returns a [`ShopPayPaymentRequestReceipt`](https://shopify.dev/docs/api/storefront/current/objects/ShopPayPaymentRequestReceipt) + * with the processing status and a receipt token. + * + * For a complete integration guide including the JavaScript SDK setup and + * checkout flow, refer to the [Shop Component API + * documentation](https://shopify.dev/docs/api/commerce-components/pay). For + * implementation steps, see the [development journey guide](https://shopify.dev/docs/api/commerce-components/pay/development-journey). + * For common error scenarios, see the [troubleshooting guide](https://shopify.dev/docs/api/commerce-components/pay/troubleshooting-guide). */ public class ShopPayPaymentRequestSessionSubmitGraphQLQuery extends GraphQLQuery { public ShopPayPaymentRequestSessionSubmitGraphQLQuery(String token, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ShopProjectionRoot.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ShopProjectionRoot.java index 19c4d76a..4fc7ee0c 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ShopProjectionRoot.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/ShopProjectionRoot.java @@ -23,6 +23,13 @@ public BrandProjection, ShopProjectionRoot, ShopProjectionRoot> customerAccountTranslations( + ) { + TranslationProjection, ShopProjectionRoot> projection = new TranslationProjection<>(this, this); + getFields().put("customerAccountTranslations", projection); + return projection; + } + public MetafieldProjection, ShopProjectionRoot> metafield( ) { MetafieldProjection, ShopProjectionRoot> projection = new MetafieldProjection<>(this, this); @@ -108,6 +115,13 @@ public ShopPayInstallmentsPricingProjection, Sh return projection; } + public SocialLoginProviderProjection, ShopProjectionRoot> socialLoginProviders( + ) { + SocialLoginProviderProjection, ShopProjectionRoot> projection = new SocialLoginProviderProjection<>(this, this); + getFields().put("socialLoginProviders", projection); + return projection; + } + public ShopPolicyWithDefaultProjection, ShopProjectionRoot> subscriptionPolicy( ) { ShopPolicyWithDefaultProjection, ShopProjectionRoot> projection = new ShopPolicyWithDefaultProjection<>(this, this); @@ -122,6 +136,11 @@ public ShopPolicyProjection, ShopProjectionRoot return projection; } + public ShopProjectionRoot customerAccountUrl() { + getFields().put("customerAccountUrl", null); + return this; + } + public ShopProjectionRoot description() { getFields().put("description", null); return this; diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/SitemapGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/SitemapGraphQLQuery.java index b51ecee2..b89d40c8 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/SitemapGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/SitemapGraphQLQuery.java @@ -8,7 +8,16 @@ import java.util.Set; /** - * Contains all fields required to generate sitemaps. + * Returns sitemap data for a specific resource type, enabling headless + * storefronts to generate XML sitemaps for search engine optimization. The query + * provides a page count and paginated access to resources like + * [`Product`](https://shopify.dev/docs/api/storefront/current/objects/Product), [`Collection`](https://shopify.dev/docs/api/storefront/current/objects/Collection), + * [`Page`](https://shopify.dev/docs/api/storefront/current/objects/Page), and + * [`Blog`](https://shopify.dev/docs/api/storefront/current/objects/Blog) objects. + * + * When paginating through resources, the number of items per page varies from 0 + * to 250, and empty pages can occur without indicating the end of results. Always check [`hasNextPage`](https://shopify.dev/docs/api/storefront/current/objects/PaginatedSitemapResources#field-PaginatedSitemapResources.fields.hasNextPage) + * to determine if more pages are available. */ public class SitemapGraphQLQuery extends GraphQLQuery { public SitemapGraphQLQuery(SitemapType type, String queryName, Set fieldsSet) { diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/SocialLoginProviderProjection.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/SocialLoginProviderProjection.java new file mode 100644 index 00000000..261952d6 --- /dev/null +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/SocialLoginProviderProjection.java @@ -0,0 +1,19 @@ +package com.shopify.storefront.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class SocialLoginProviderProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public SocialLoginProviderProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("SocialLoginProvider")); + } + + public SocialLoginProviderProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public SocialLoginProviderProjection handle() { + getFields().put("handle", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/TranslationProjection.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/TranslationProjection.java new file mode 100644 index 00000000..8a793ac2 --- /dev/null +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/TranslationProjection.java @@ -0,0 +1,24 @@ +package com.shopify.storefront.client; + +import com.netflix.graphql.dgs.client.codegen.BaseSubProjectionNode; + +public class TranslationProjection, ROOT extends BaseSubProjectionNode> extends BaseSubProjectionNode { + public TranslationProjection(PARENT parent, ROOT root) { + super(parent, root, java.util.Optional.of("Translation")); + } + + public TranslationProjection __typename() { + getFields().put("__typename", null); + return this; + } + + public TranslationProjection key() { + getFields().put("key", null); + return this; + } + + public TranslationProjection value() { + getFields().put("value", null); + return this; + } +} diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/UrlRedirectsGraphQLQuery.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/UrlRedirectsGraphQLQuery.java index c91010cd..33670e58 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/UrlRedirectsGraphQLQuery.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/client/UrlRedirectsGraphQLQuery.java @@ -9,7 +9,8 @@ import java.util.Set; /** - * A list of redirects for a shop. + * Returns a paginated list of [`UrlRedirect`](https://shopify.dev/docs/api/storefront/current/objects/UrlRedirect) + * objects configured for the shop. Each redirect maps an old path to a target location. */ public class UrlRedirectsGraphQLQuery extends GraphQLQuery { public UrlRedirectsGraphQLQuery(Integer first, String after, Integer last, String before, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ApiVersion.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ApiVersion.java index cd5874e7..759aabca 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ApiVersion.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ApiVersion.java @@ -6,8 +6,13 @@ import java.util.Objects; /** - * A version of the API, as defined by [Shopify API versioning](https://shopify.dev/api/usage/versioning). - * Versions are commonly referred to by their handle (for example, `2021-10`). + * A version of the Shopify API. Each version has a unique handle in date-based + * format (YYYY-MM) or `unstable` for the development version. + * + * Shopify guarantees supported versions are stable. Unsupported versions include + * unstable and release candidate versions. Use the [`publicApiVersions`](https://shopify.dev/docs/api/storefront/current/queries/publicApiVersions) + * query to retrieve all available versions. Learn more about [Shopify API + * versioning](https://shopify.dev/docs/api/usage/versioning). */ public class ApiVersion { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Article.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Article.java index 03e3d8cf..65be87a6 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Article.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Article.java @@ -9,12 +9,21 @@ import java.util.Objects; /** - * An article in an online store blog. + * A post that belongs to a + * [`Blog`](https://shopify.dev/docs/api/storefront/current/objects/Blog). Each + * article includes content with optional HTML formatting, an excerpt for previews, [`ArticleAuthor`](https://shopify.dev/docs/api/storefront/current/objects/ArticleAuthor) + * information, and an associated + * [`Image`](https://shopify.dev/docs/api/storefront/current/objects/Image). + * + * Articles can be organized with tags and include + * [`SEO`](https://shopify.dev/docs/api/storefront/current/objects/SEO) metadata. You can manage + * [comments](https://shopify.dev/docs/api/storefront/current/objects/Comment) when + * the blog's comment policy enables them. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE ) -public class Article implements MenuItemResource, MetafieldParentResource, SearchResultItem, com.shopify.storefront.types.HasMetafields, com.shopify.storefront.types.Node, com.shopify.storefront.types.OnlineStorePublishable, com.shopify.storefront.types.Trackable { +public class Article implements MenuItemResource, MetafieldParentResource, MetafieldReference, SearchResultItem, com.shopify.storefront.types.HasMetafields, com.shopify.storefront.types.Node, com.shopify.storefront.types.OnlineStorePublishable, com.shopify.storefront.types.Trackable { /** * The article's author. */ diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Attribute.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Attribute.java index c3027a72..2fae0c58 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Attribute.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Attribute.java @@ -6,7 +6,17 @@ import java.util.Objects; /** - * Represents a generic custom attribute, such as whether an order is a customer's first. + * A custom key-value pair for storing additional information on + * [carts](https://shopify.dev/docs/api/storefront/current/objects/Cart), [cart + * lines](https://shopify.dev/docs/api/storefront/current/objects/CartLine), + * [orders](https://shopify.dev/docs/api/storefront/current/objects/Order), and [order line + * items](https://shopify.dev/docs/api/storefront/current/objects/OrderLineItem). + * Common uses include gift wrapping requests, customer notes, and tracking whether + * a customer is a first-time buyer. + * + * Attributes set on a cart carry over to the resulting order after checkout. Use the [`cartAttributesUpdate`](https://shopify.dev/docs/api/storefront/current/mutations/cartAttributesUpdate) + * mutation to add or modify cart attributes. For a step-by-step guide, see + * [managing carts with the Storefront API](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/cart/manage). */ public class Attribute { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/AttributeInput.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/AttributeInput.java index 12491f86..7271725d 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/AttributeInput.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/AttributeInput.java @@ -6,7 +6,11 @@ import java.util.Objects; /** - * The input fields for an attribute. + * A custom key-value pair that stores additional information on a + * [cart](https://shopify.dev/docs/api/storefront/current/objects/Cart) or [cart + * line](https://shopify.dev/docs/api/storefront/current/objects/CartLine). + * Attributes capture additional information like gift messages, special + * instructions, or custom order details. Learn more about [managing carts with the Storefront API](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/cart/manage). */ public class AttributeInput { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/AutomaticDiscountApplication.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/AutomaticDiscountApplication.java index 497e3d08..d9d4574c 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/AutomaticDiscountApplication.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/AutomaticDiscountApplication.java @@ -7,7 +7,10 @@ import java.util.Objects; /** - * Automatic discount applications capture the intentions of a discount that was automatically applied. + * An [automatic discount](https://help.shopify.com/manual/discounts/discount-methods/automatic-discounts) applied to a cart or checkout without requiring a discount code. Implements the [`DiscountApplication`](https://shopify.dev/docs/api/storefront/current/interfaces/DiscountApplication) interface. + * + * Includes the discount's title, value, and allocation details that specify how + * the discount amount distributes across entitled line items or shipping lines. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/BaseCartLine.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/BaseCartLine.java index 738c958e..ddad6b94 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/BaseCartLine.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/BaseCartLine.java @@ -6,7 +6,13 @@ import java.util.List; /** - * Represents a cart line common fields. + * Defines the shared fields for items in a shopping cart. Implemented by + * [`CartLine`](https://shopify.dev/docs/api/storefront/current/objects/CartLine) + * for individual merchandise and [`ComponentizableCartLine`](https://shopify.dev/docs/api/storefront/current/objects/ComponentizableCartLine) + * for grouped merchandise like bundles. + * + * Each implementation includes the merchandise being purchased, quantity, cost + * breakdown, applied discounts, custom attributes, and any associated [`SellingPlan`](https://shopify.dev/docs/api/storefront/current/objects/SellingPlan). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NAME, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Blog.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Blog.java index 59aa7a3f..18daa914 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Blog.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Blog.java @@ -8,7 +8,15 @@ import java.util.Objects; /** - * An online store blog. + * A blog container for + * [`Article`](https://shopify.dev/docs/api/storefront/current/objects/Article) + * objects. Stores can have multiple blogs, for example to organize content by + * topic or purpose. + * + * Each blog provides access to its articles, contributing [`ArticleAuthor`](https://shopify.dev/docs/api/storefront/current/objects/ArticleAuthor) objects, + * and [`SEO`](https://shopify.dev/docs/api/storefront/current/objects/SEO) + * information. You can retrieve articles individually [by handle](https://shopify.dev/docs/api/storefront/current/objects/Blog#field-Blog.fields.articleByHandle) + * or as a [paginated list](https://shopify.dev/docs/api/storefront/current/objects/Blog#field-Blog.fields.articles). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Brand.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Brand.java index cc20e4d5..1bb5db0c 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Brand.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Brand.java @@ -6,7 +6,9 @@ import java.util.Objects; /** - * The store's [branding configuration](https://help.shopify.com/en/manual/promoting-marketing/managing-brand-assets). + * The store's [branding configuration](https://help.shopify.com/manual/promoting-marketing/managing-brand-assets), + * such as logos, colors, and slogan. Access this through the [`Shop`](https://shopify.dev/docs/api/storefront/current/objects/Shop#field-Shop.fields.brand) + * object to display consistent brand assets across your storefront. */ public class Brand { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/BuyerInput.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/BuyerInput.java index 76600045..53445642 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/BuyerInput.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/BuyerInput.java @@ -6,7 +6,12 @@ import java.util.Objects; /** - * The input fields for obtaining the buyer's identity. + * Identifies a B2B buyer for the [`@inContext`](https://shopify.dev/docs/storefronts/headless/bring-your-own-stack/b2b) + * directive. Pass this input to contextualize Storefront API queries with data + * like B2B-specific pricing, quantity rules, and quantity price breaks. + * + * For B2B customers with access to multiple company locations, include the [`companyLocationId`](https://shopify.dev/docs/api/storefront/latest/input-objects/BuyerInput#fields-companyLocationId) + * to specify which location they're purchasing for. */ public class BuyerInput { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Cart.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Cart.java index 3dbb8a03..645c9a22 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Cart.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Cart.java @@ -9,10 +9,12 @@ import java.util.Objects; /** - * A cart represents the merchandise that a buyer intends to purchase, - * and the estimated cost associated with the cart. Learn how to - * [interact with a cart](https://shopify.dev/custom-storefronts/internationalization/international-pricing) - * during a customer's session. + * A cart represents the merchandise that a buyer intends to purchase, and the + * estimated cost associated with the cart, throughout a customer's session. + * + * Use the [`checkoutUrl`](https://shopify.dev/docs/api/storefront/current/objects/Cart#field-checkoutUrl) field to direct buyers to Shopify's web checkout to complete their purchase. + * + * Learn more about [interacting with carts](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/cart/manage). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartAddressInput.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartAddressInput.java index 90d3f6f6..29b17275 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartAddressInput.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartAddressInput.java @@ -6,7 +6,9 @@ import java.util.Objects; /** - * The input fields to provide exactly one of a variety of delivery address types. + * Specifies a delivery address for a cart. Provide either a [`deliveryAddress`](https://shopify.dev/docs/api/storefront/current/input-objects/CartAddressInput#fields-deliveryAddress) + * with full address details, or a [`copyFromCustomerAddressId`](https://shopify.dev/docs/api/storefront/current/input-objects/CartAddressInput#fields-copyFromCustomerAddressId) + * to copy from an existing customer address. Used by [`CartSelectableAddressInput`](https://shopify.dev/docs/api/storefront/current/input-objects/CartSelectableAddressInput) and [`CartSelectableAddressUpdateInput`](https://shopify.dev/docs/api/storefront/current/input-objects/CartSelectableAddressUpdateInput). */ public class CartAddressInput { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartAutomaticDiscountAllocation.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartAutomaticDiscountAllocation.java index 391713c5..c3f929b9 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartAutomaticDiscountAllocation.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartAutomaticDiscountAllocation.java @@ -7,7 +7,9 @@ import java.util.Objects; /** - * The discounts automatically applied to the cart line based on prerequisites that have been met. + * A discount allocation [that applies automatically](https://help.shopify.com/manual/discounts/discount-methods/automatic-discounts) + * to a cart line when configured conditions are met. Unlike [`CartCodeDiscountAllocation`](https://shopify.dev/docs/api/storefront/current/objects/CartCodeDiscountAllocation), + * automatic discounts don't require customers to enter a code. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartBuyerIdentity.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartBuyerIdentity.java index f19a2b93..4d186777 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartBuyerIdentity.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartBuyerIdentity.java @@ -7,7 +7,15 @@ import java.util.Objects; /** - * Represents information about the buyer that is interacting with the cart. + * Contact information about the buyer interacting with a + * [cart](https://shopify.dev/docs/api/storefront/current/objects/Cart). The + * buyer's country determines [international pricing](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/markets/international-pricing) + * and should match their shipping address. + * + * For B2B scenarios, the [`purchasingCompany`](https://shopify.dev/docs/api/storefront/current/objects/CartBuyerIdentity#field-CartBuyerIdentity.fields.purchasingCompany) + * field identifies the company and location on whose behalf a business customer purchases. The [`preferences`](https://shopify.dev/docs/api/storefront/current/objects/CartBuyerIdentity#field-CartBuyerIdentity.fields.preferences) + * field stores delivery and wallet settings that prefill checkout fields to + * streamline the buying process. */ public class CartBuyerIdentity { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartBuyerIdentityInput.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartBuyerIdentityInput.java index f8e82cfb..f91a6ae7 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartBuyerIdentityInput.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartBuyerIdentityInput.java @@ -6,10 +6,14 @@ import java.util.Objects; /** - * Specifies the input fields to update the buyer information associated with a cart. - * Buyer identity is used to determine - * [international pricing](https://shopify.dev/custom-storefronts/internationalization/international-pricing) + * The input fields for identifying the buyer associated with a cart. Buyer + * identity determines [international pricing](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/markets/international-pricing) * and should match the customer's shipping address. + * + * Used by [`cartCreate`](https://shopify.dev/docs/api/storefront/current/mutations/cartCreate) and [`cartBuyerIdentityUpdate`](https://shopify.dev/docs/api/storefront/current/mutations/cartBuyerIdentityUpdate) to set contact information, location, and checkout preferences. + * + * > Note: + * > Preferences prefill fields at checkout but don't sync back to the cart if overwritten. */ public class CartBuyerIdentityInput { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartClonePayload.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartClonePayload.java new file mode 100644 index 00000000..8c973253 --- /dev/null +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartClonePayload.java @@ -0,0 +1,136 @@ +package com.shopify.storefront.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * Return type for `cartClone` mutation. + */ +public class CartClonePayload { + /** + * The newly created cart without PII. This is a different cart from the source. + */ + private Cart cart; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + /** + * A list of warnings that occurred during the mutation. + */ + private List warnings; + + public CartClonePayload() { + } + + /** + * The newly created cart without PII. This is a different cart from the source. + */ + public Cart getCart() { + return cart; + } + + public void setCart(Cart cart) { + this.cart = cart; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public List getUserErrors() { + return userErrors; + } + + public void setUserErrors(List userErrors) { + this.userErrors = userErrors; + } + + /** + * A list of warnings that occurred during the mutation. + */ + public List getWarnings() { + return warnings; + } + + public void setWarnings(List warnings) { + this.warnings = warnings; + } + + @Override + public String toString() { + return "CartClonePayload{cart='" + cart + "', userErrors='" + userErrors + "', warnings='" + warnings + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + CartClonePayload that = (CartClonePayload) o; + return Objects.equals(cart, that.cart) && + Objects.equals(userErrors, that.userErrors) && + Objects.equals(warnings, that.warnings); + } + + @Override + public int hashCode() { + return Objects.hash(cart, userErrors, warnings); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The newly created cart without PII. This is a different cart from the source. + */ + private Cart cart; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + /** + * A list of warnings that occurred during the mutation. + */ + private List warnings; + + public CartClonePayload build() { + CartClonePayload result = new CartClonePayload(); + result.cart = this.cart; + result.userErrors = this.userErrors; + result.warnings = this.warnings; + return result; + } + + /** + * The newly created cart without PII. This is a different cart from the source. + */ + public Builder cart(Cart cart) { + this.cart = cart; + return this; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public Builder userErrors(List userErrors) { + this.userErrors = userErrors; + return this; + } + + /** + * A list of warnings that occurred during the mutation. + */ + public Builder warnings(List warnings) { + this.warnings = warnings; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartCodeDiscountAllocation.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartCodeDiscountAllocation.java index 5b0de4fa..85f22462 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartCodeDiscountAllocation.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartCodeDiscountAllocation.java @@ -7,7 +7,7 @@ import java.util.Objects; /** - * The discount that has been applied to the cart line using a discount code. + * A discount allocation applied to a cart line when a customer enters a [discount code](https://help.shopify.com/manual/discounts/discount-methods/discount-codes). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartCost.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartCost.java index 32a061ac..e248288a 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartCost.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartCost.java @@ -6,9 +6,15 @@ import java.util.Objects; /** - * The costs that the buyer will pay at checkout. - * The cart cost uses [`CartBuyerIdentity`](https://shopify.dev/api/storefront/reference/cart/cartbuyeridentity) to determine - * [international pricing](https://shopify.dev/custom-storefronts/internationalization/international-pricing). + * The estimated costs that a buyer will pay at checkout. The `Cart` object's [`cost`](https://shopify.dev/docs/api/storefront/current/objects/Cart#field-Cart.fields.cost) + * field returns this. The costs are subject to change and changes will be + * reflected at checkout. Costs reflect [international pricing](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/markets/international-pricing) + * based on the buyer's context. + * + * Amounts include the subtotal before taxes and cart-level discounts, the checkout + * charge amount excluding deferred payments, and the total. The subtotal and total + * amounts each include a corresponding boolean field indicating whether the value + * is an estimate. */ public class CartCost { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartDeliveryAddressesReplacePayload.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartDeliveryAddressesReplacePayload.java new file mode 100644 index 00000000..a409ddd5 --- /dev/null +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartDeliveryAddressesReplacePayload.java @@ -0,0 +1,136 @@ +package com.shopify.storefront.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * Return type for `cartDeliveryAddressesReplace` mutation. + */ +public class CartDeliveryAddressesReplacePayload { + /** + * The updated cart. + */ + private Cart cart; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + /** + * A list of warnings that occurred during the mutation. + */ + private List warnings; + + public CartDeliveryAddressesReplacePayload() { + } + + /** + * The updated cart. + */ + public Cart getCart() { + return cart; + } + + public void setCart(Cart cart) { + this.cart = cart; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public List getUserErrors() { + return userErrors; + } + + public void setUserErrors(List userErrors) { + this.userErrors = userErrors; + } + + /** + * A list of warnings that occurred during the mutation. + */ + public List getWarnings() { + return warnings; + } + + public void setWarnings(List warnings) { + this.warnings = warnings; + } + + @Override + public String toString() { + return "CartDeliveryAddressesReplacePayload{cart='" + cart + "', userErrors='" + userErrors + "', warnings='" + warnings + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + CartDeliveryAddressesReplacePayload that = (CartDeliveryAddressesReplacePayload) o; + return Objects.equals(cart, that.cart) && + Objects.equals(userErrors, that.userErrors) && + Objects.equals(warnings, that.warnings); + } + + @Override + public int hashCode() { + return Objects.hash(cart, userErrors, warnings); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The updated cart. + */ + private Cart cart; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + /** + * A list of warnings that occurred during the mutation. + */ + private List warnings; + + public CartDeliveryAddressesReplacePayload build() { + CartDeliveryAddressesReplacePayload result = new CartDeliveryAddressesReplacePayload(); + result.cart = this.cart; + result.userErrors = this.userErrors; + result.warnings = this.warnings; + return result; + } + + /** + * The updated cart. + */ + public Builder cart(Cart cart) { + this.cart = cart; + return this; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public Builder userErrors(List userErrors) { + this.userErrors = userErrors; + return this; + } + + /** + * A list of warnings that occurred during the mutation. + */ + public Builder warnings(List warnings) { + this.warnings = warnings; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartDeliveryGroup.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartDeliveryGroup.java index 34b7d567..2f0cc4ae 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartDeliveryGroup.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartDeliveryGroup.java @@ -7,7 +7,14 @@ import java.util.Objects; /** - * Information about the options available for one or more line items to be delivered to a specific address. + * Groups cart line items that share the same delivery destination. Each group + * provides the available [`CartDeliveryOption`](https://shopify.dev/docs/api/storefront/current/objects/CartDeliveryOption) + * choices for that address, along with the customer's selected option. + * + * Access through the + * [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart) object's + * `deliveryGroups` field. Items are grouped by merchandise type (one-time purchase + * vs subscription), allowing different delivery methods for each. */ public class CartDeliveryGroup { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartDeliveryOption.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartDeliveryOption.java index 28f80bd0..7b6f098c 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartDeliveryOption.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartDeliveryOption.java @@ -6,7 +6,11 @@ import java.util.Objects; /** - * Information about a delivery option. + * A shipping or delivery choice available to customers during checkout. Each + * option includes a title, estimated cost, and delivery method type such as + * shipping or local pickup. + * + * Returned by the [`CartDeliveryGroup`](https://shopify.dev/docs/api/storefront/current/objects/CartDeliveryGroup) object's [`deliveryOptions`](https://shopify.dev/docs/api/storefront/current/objects/CartDeliveryGroup#field-CartDeliveryGroup.fields.deliveryOptions) field and [`selectedDeliveryOption`](https://shopify.dev/docs/api/storefront/current/objects/CartDeliveryGroup#field-CartDeliveryGroup.fields.selectedDeliveryOption) field. */ public class CartDeliveryOption { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartDiscountAllocation.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartDiscountAllocation.java index 2c423669..fd779780 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartDiscountAllocation.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartDiscountAllocation.java @@ -4,7 +4,14 @@ import com.fasterxml.jackson.annotation.JsonTypeInfo; /** - * The discounts that have been applied to the cart line. + * A common interface for querying discount allocations regardless of how the + * discount was applied ([automatic](https://help.shopify.com/manual/discounts/discount-methods/automatic-discounts), [code](https://help.shopify.com/manual/discounts/discount-methods/discount-codes), + * or custom). Each implementation represents a different discount source. + * + * Tracks how a discount distributes across [cart + * lines](https://shopify.dev/docs/api/storefront/current/objects/CartLine). Each + * allocation includes the [`CartDiscountApplication`](https://shopify.dev/docs/api/storefront/current/objects/CartDiscountApplication) + * details, the discounted amount, and whether the discount targets line items or shipping. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NAME, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartDiscountApplication.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartDiscountApplication.java index 5036e376..2bdfed9a 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartDiscountApplication.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartDiscountApplication.java @@ -6,8 +6,12 @@ import java.util.Objects; /** - * The discount application capture the intentions of a discount source at - * the time of application. + * Captures the intent of a discount source at the time it was applied to a cart. + * This includes the discount value, how it's allocated across entitled items, and + * which line types it targets. + * + * The actual discounted amounts on specific cart lines are represented by [`CartDiscountAllocation`](https://shopify.dev/docs/api/storefront/current/interfaces/CartDiscountAllocation) + * objects, which reference this application. */ public class CartDiscountApplication { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartDiscountCode.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartDiscountCode.java index ab802a4b..635ed8ae 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartDiscountCode.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartDiscountCode.java @@ -6,7 +6,12 @@ import java.util.Objects; /** - * The discount codes applied to the cart. + * A discount code applied to a + * [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart). Discount + * codes are case-insensitive and can be added using the [`cartDiscountCodesUpdate`](https://shopify.dev/docs/api/storefront/current/mutations/cartDiscountCodesUpdate) mutation. + * + * The [`applicable`](https://shopify.dev/docs/api/storefront/current/objects/CartDiscountCode#field-CartDiscountCode.fields.applicable) field indicates whether the code applies to the cart's current contents, which + * might change as items are added or removed. */ public class CartDiscountCode { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartErrorCode.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartErrorCode.java index fb31e49d..5cad615f 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartErrorCode.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartErrorCode.java @@ -1,7 +1,9 @@ package com.shopify.storefront.types; /** - * Possible error codes that can be returned by `CartUserError`. + * Error codes returned by [`CartUserError`](https://shopify.dev/docs/api/storefront/current/objects/CartUserError) + * during cart mutations. Covers validation failures for addresses, quantities, + * delivery options, merchandise lines, discount codes, and metafields. */ public enum CartErrorCode { INVALID, @@ -10,6 +12,8 @@ public enum CartErrorCode { INVALID_MERCHANDISE_LINE, + MERCHANDISE_NOT_APPLICABLE, + MISSING_DISCOUNT_CODE, MISSING_NOTE, @@ -20,10 +24,16 @@ public enum CartErrorCode { INVALID_DELIVERY_OPTION, + PENDING_DELIVERY_GROUPS, + INVALID_PAYMENT, PAYMENT_METHOD_NOT_SUPPORTED, + PAYMENT_METHOD_NOT_APPLICABLE, + + INVALID_PAYMENT_DEFERRED_PAYMENT_REQUIRED, + INVALID_PAYMENT_EMPTY_CART, VALIDATION_CUSTOM, @@ -46,6 +56,20 @@ public enum CartErrorCode { INVALID_DELIVERY_ADDRESS_ID, + BUYER_CANNOT_PURCHASE_FOR_COMPANY_LOCATION, + + BUNDLES_AND_ADDONS_CANNOT_BE_MIXED, + + PARENT_LINE_INVALID_REFERENCE, + + PARENT_LINE_NOT_FOUND, + + PARENT_LINE_NESTING_TOO_DEEP, + + PARENT_LINE_OPERATION_BLOCKED, + + GIFT_CARD_RECIPIENT_INVALID, + ADDRESS_FIELD_IS_REQUIRED, ADDRESS_FIELD_IS_TOO_LONG, @@ -86,5 +110,13 @@ public enum CartErrorCode { PAYMENTS_CREDIT_CARD_YEAR_EXPIRED, - PAYMENTS_CREDIT_CARD_YEAR_INVALID_EXPIRY_YEAR + PAYMENTS_CREDIT_CARD_YEAR_INVALID_EXPIRY_YEAR, + + VARIANT_REQUIRES_SELLING_PLAN, + + SELLING_PLAN_NOT_APPLICABLE, + + SERVICE_UNAVAILABLE, + + CART_TOO_LARGE } diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartEstimatedCost.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartEstimatedCost.java index e201c847..b00e88c5 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartEstimatedCost.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartEstimatedCost.java @@ -6,8 +6,12 @@ import java.util.Objects; /** - * The estimated costs that the buyer will pay at checkout. The estimated cost uses [`CartBuyerIdentity`](https://shopify.dev/api/storefront/reference/cart/cartbuyeridentity) - * to determine [international pricing](https://shopify.dev/custom-storefronts/internationalization/international-pricing). + * The estimated costs that the buyer pays at checkout. Uses [`CartBuyerIdentity`](https://shopify.dev/docs/api/storefront/current/objects/CartBuyerIdentity) + * to determine [international pricing](https://shopify.dev/docs/custom-storefronts/internationalization/international-pricing). + * + * Includes the subtotal, total amount, duties, and taxes. The [`checkoutChargeAmount`](https://shopify.dev/docs/api/storefront/current/objects/CartEstimatedCost#field-CartEstimatedCost.fields.checkoutChargeAmount) + * field excludes deferred payments that are charged later, making it useful for + * displaying what the customer pays immediately. */ public class CartEstimatedCost { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartGiftCardCodesAddPayload.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartGiftCardCodesAddPayload.java new file mode 100644 index 00000000..55c4d73b --- /dev/null +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartGiftCardCodesAddPayload.java @@ -0,0 +1,136 @@ +package com.shopify.storefront.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * Return type for `cartGiftCardCodesAdd` mutation. + */ +public class CartGiftCardCodesAddPayload { + /** + * The updated cart. + */ + private Cart cart; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + /** + * A list of warnings that occurred during the mutation. + */ + private List warnings; + + public CartGiftCardCodesAddPayload() { + } + + /** + * The updated cart. + */ + public Cart getCart() { + return cart; + } + + public void setCart(Cart cart) { + this.cart = cart; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public List getUserErrors() { + return userErrors; + } + + public void setUserErrors(List userErrors) { + this.userErrors = userErrors; + } + + /** + * A list of warnings that occurred during the mutation. + */ + public List getWarnings() { + return warnings; + } + + public void setWarnings(List warnings) { + this.warnings = warnings; + } + + @Override + public String toString() { + return "CartGiftCardCodesAddPayload{cart='" + cart + "', userErrors='" + userErrors + "', warnings='" + warnings + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + CartGiftCardCodesAddPayload that = (CartGiftCardCodesAddPayload) o; + return Objects.equals(cart, that.cart) && + Objects.equals(userErrors, that.userErrors) && + Objects.equals(warnings, that.warnings); + } + + @Override + public int hashCode() { + return Objects.hash(cart, userErrors, warnings); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The updated cart. + */ + private Cart cart; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + /** + * A list of warnings that occurred during the mutation. + */ + private List warnings; + + public CartGiftCardCodesAddPayload build() { + CartGiftCardCodesAddPayload result = new CartGiftCardCodesAddPayload(); + result.cart = this.cart; + result.userErrors = this.userErrors; + result.warnings = this.warnings; + return result; + } + + /** + * The updated cart. + */ + public Builder cart(Cart cart) { + this.cart = cart; + return this; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public Builder userErrors(List userErrors) { + this.userErrors = userErrors; + return this; + } + + /** + * A list of warnings that occurred during the mutation. + */ + public Builder warnings(List warnings) { + this.warnings = warnings; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartInput.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartInput.java index 15fc2a72..c1c9550f 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartInput.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartInput.java @@ -7,7 +7,12 @@ import java.util.Objects; /** - * The input fields to create a cart. + * The input fields for creating a + * [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart). Used by the [`cartCreate`](https://shopify.dev/docs/api/storefront/current/mutations/cartCreate) mutation. + * + * Accepts merchandise lines, discount codes, gift card codes, and a note. You can + * also set custom attributes, metafields, buyer identity for international + * pricing, and delivery addresses. */ public class CartInput { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartInputMetafieldInput.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartInputMetafieldInput.java index 9fc67408..fb017f5a 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartInputMetafieldInput.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartInputMetafieldInput.java @@ -7,6 +7,10 @@ /** * The input fields for a cart metafield value to set. + * + * Cart metafields will be copied to order metafields at order creation time if + * there is a matching order metafield definition with the [`cart to order copyable`](https://shopify.dev/docs/apps/build/metafields/use-metafield-capabilities#cart-to-order-copyable) + * capability enabled. */ public class CartInputMetafieldInput { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartLine.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartLine.java index 08b7d2c6..92604928 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartLine.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartLine.java @@ -8,7 +8,15 @@ import java.util.Objects; /** - * Represents information about the merchandise in the cart. + * An item in a customer's + * [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart) + * representing a product variant they intend to purchase. Each cart line tracks + * the merchandise, quantity, cost breakdown, and any applied discounts. + * + * Cart lines can include custom attributes for additional information like gift + * wrapping requests, and can be associated with a [`SellingPlanAllocation`](https://shopify.dev/docs/api/storefront/current/objects/SellingPlanAllocation) + * for purchase options like subscriptions, pre-orders, or try-before-you-buy. The [`instructions`](https://shopify.dev/docs/api/storefront/current/objects/CartLine#field-CartLine.fields.instructions) + * field indicates whether the line can be removed or have its quantity updated. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE @@ -46,11 +54,21 @@ public class CartLine implements com.shopify.storefront.types.BaseCartLine, com. */ private String id; + /** + * The instructions for the line item. + */ + private CartLineInstructions instructions; + /** * The merchandise that the buyer intends to purchase. */ private Merchandise merchandise; + /** + * The parent of the line item. + */ + private CartLineParentRelationship parentRelationship; + /** * The quantity of the merchandise that the customer intends to purchase. */ @@ -133,6 +151,17 @@ public void setId(String id) { this.id = id; } + /** + * The instructions for the line item. + */ + public CartLineInstructions getInstructions() { + return instructions; + } + + public void setInstructions(CartLineInstructions instructions) { + this.instructions = instructions; + } + /** * The merchandise that the buyer intends to purchase. */ @@ -144,6 +173,17 @@ public void setMerchandise(Merchandise merchandise) { this.merchandise = merchandise; } + /** + * The parent of the line item. + */ + public CartLineParentRelationship getParentRelationship() { + return parentRelationship; + } + + public void setParentRelationship(CartLineParentRelationship parentRelationship) { + this.parentRelationship = parentRelationship; + } + /** * The quantity of the merchandise that the customer intends to purchase. */ @@ -169,7 +209,7 @@ public void setSellingPlanAllocation(SellingPlanAllocation sellingPlanAllocation @Override public String toString() { - return "CartLine{attribute='" + attribute + "', attributes='" + attributes + "', cost='" + cost + "', discountAllocations='" + discountAllocations + "', estimatedCost='" + estimatedCost + "', id='" + id + "', merchandise='" + merchandise + "', quantity='" + quantity + "', sellingPlanAllocation='" + sellingPlanAllocation + "'}"; + return "CartLine{attribute='" + attribute + "', attributes='" + attributes + "', cost='" + cost + "', discountAllocations='" + discountAllocations + "', estimatedCost='" + estimatedCost + "', id='" + id + "', instructions='" + instructions + "', merchandise='" + merchandise + "', parentRelationship='" + parentRelationship + "', quantity='" + quantity + "', sellingPlanAllocation='" + sellingPlanAllocation + "'}"; } @Override @@ -183,14 +223,16 @@ public boolean equals(Object o) { Objects.equals(discountAllocations, that.discountAllocations) && Objects.equals(estimatedCost, that.estimatedCost) && Objects.equals(id, that.id) && + Objects.equals(instructions, that.instructions) && Objects.equals(merchandise, that.merchandise) && + Objects.equals(parentRelationship, that.parentRelationship) && quantity == that.quantity && Objects.equals(sellingPlanAllocation, that.sellingPlanAllocation); } @Override public int hashCode() { - return Objects.hash(attribute, attributes, cost, discountAllocations, estimatedCost, id, merchandise, quantity, sellingPlanAllocation); + return Objects.hash(attribute, attributes, cost, discountAllocations, estimatedCost, id, instructions, merchandise, parentRelationship, quantity, sellingPlanAllocation); } public static Builder newBuilder() { @@ -230,11 +272,21 @@ public static class Builder { */ private String id; + /** + * The instructions for the line item. + */ + private CartLineInstructions instructions; + /** * The merchandise that the buyer intends to purchase. */ private Merchandise merchandise; + /** + * The parent of the line item. + */ + private CartLineParentRelationship parentRelationship; + /** * The quantity of the merchandise that the customer intends to purchase. */ @@ -254,7 +306,9 @@ public CartLine build() { result.discountAllocations = this.discountAllocations; result.estimatedCost = this.estimatedCost; result.id = this.id; + result.instructions = this.instructions; result.merchandise = this.merchandise; + result.parentRelationship = this.parentRelationship; result.quantity = this.quantity; result.sellingPlanAllocation = this.sellingPlanAllocation; return result; @@ -310,6 +364,14 @@ public Builder id(String id) { return this; } + /** + * The instructions for the line item. + */ + public Builder instructions(CartLineInstructions instructions) { + this.instructions = instructions; + return this; + } + /** * The merchandise that the buyer intends to purchase. */ @@ -318,6 +380,14 @@ public Builder merchandise(Merchandise merchandise) { return this; } + /** + * The parent of the line item. + */ + public Builder parentRelationship(CartLineParentRelationship parentRelationship) { + this.parentRelationship = parentRelationship; + return this; + } + /** * The quantity of the merchandise that the customer intends to purchase. */ diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartLineCost.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartLineCost.java index 5c8e3078..170dcf79 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartLineCost.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartLineCost.java @@ -6,7 +6,13 @@ import java.util.Objects; /** - * The cost of the merchandise line that the buyer will pay at checkout. + * Cost breakdown for a single line item in a + * [cart](https://shopify.dev/docs/api/storefront/current/objects/Cart). Includes + * the per-unit price, the subtotal before line-level discounts, and the final + * total amount the buyer pays. + * + * The [`compareAtAmountPerQuantity`](https://shopify.dev/docs/api/storefront/current/objects/CartLineCost#field-CartLineCost.fields.compareAtAmountPerQuantity) field shows the original price when the item is on sale, enabling the display of + * savings to customers. */ public class CartLineCost { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartLineInput.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartLineInput.java index ab7acd0d..b60b3d05 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartLineInput.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartLineInput.java @@ -8,7 +8,12 @@ import java.util.Objects; /** - * The input fields to create a merchandise line on a cart. + * The input fields for adding a merchandise line to a cart. Each line represents a [`ProductVariant`](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant) + * the buyer intends to purchase, along with the quantity and optional [`SellingPlan`](https://shopify.dev/docs/api/storefront/current/objects/SellingPlan) + * for subscriptions. + * + * Used by the [`cartCreate`](https://shopify.dev/docs/api/storefront/current/mutations/cartCreate) mutation when creating a cart with initial items, and the [`cartLinesAdd`](https://shopify.dev/docs/api/storefront/current/mutations/cartLinesAdd) + * mutation when adding items to an existing cart. */ public class CartLineInput { /** @@ -33,6 +38,11 @@ public class CartLineInput { */ private String sellingPlanId; + /** + * The parent line item of the cart line. + */ + private CartLineParentInput _parent; + public CartLineInput() { } @@ -82,9 +92,20 @@ public void setSellingPlanId(String sellingPlanId) { this.sellingPlanId = sellingPlanId; } + /** + * The parent line item of the cart line. + */ + public CartLineParentInput getParent() { + return _parent; + } + + public void setParent(CartLineParentInput _parent) { + this._parent = _parent; + } + @Override public String toString() { - return "CartLineInput{attributes='" + attributes + "', quantity='" + quantity + "', merchandiseId='" + merchandiseId + "', sellingPlanId='" + sellingPlanId + "'}"; + return "CartLineInput{attributes='" + attributes + "', quantity='" + quantity + "', merchandiseId='" + merchandiseId + "', sellingPlanId='" + sellingPlanId + "', parent='" + _parent + "'}"; } @Override @@ -95,12 +116,13 @@ public boolean equals(Object o) { return Objects.equals(attributes, that.attributes) && Objects.equals(quantity, that.quantity) && Objects.equals(merchandiseId, that.merchandiseId) && - Objects.equals(sellingPlanId, that.sellingPlanId); + Objects.equals(sellingPlanId, that.sellingPlanId) && + Objects.equals(_parent, that._parent); } @Override public int hashCode() { - return Objects.hash(attributes, quantity, merchandiseId, sellingPlanId); + return Objects.hash(attributes, quantity, merchandiseId, sellingPlanId, _parent); } public static Builder newBuilder() { @@ -130,12 +152,18 @@ public static class Builder { */ private String sellingPlanId; + /** + * The parent line item of the cart line. + */ + private CartLineParentInput _parent; + public CartLineInput build() { CartLineInput result = new CartLineInput(); result.attributes = this.attributes; result.quantity = this.quantity; result.merchandiseId = this.merchandiseId; result.sellingPlanId = this.sellingPlanId; + result._parent = this._parent; return result; } @@ -172,5 +200,13 @@ public Builder sellingPlanId(String sellingPlanId) { this.sellingPlanId = sellingPlanId; return this; } + + /** + * The parent line item of the cart line. + */ + public Builder _parent(CartLineParentInput _parent) { + this._parent = _parent; + return this; + } } } diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartLineInstructions.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartLineInstructions.java new file mode 100644 index 00000000..7210c540 --- /dev/null +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartLineInstructions.java @@ -0,0 +1,104 @@ +package com.shopify.storefront.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * Represents instructions for a cart line item. + */ +public class CartLineInstructions { + /** + * Whether the line item can be removed from the cart. + */ + private boolean canRemove; + + /** + * Whether the line item quantity can be updated. + */ + private boolean canUpdateQuantity; + + public CartLineInstructions() { + } + + /** + * Whether the line item can be removed from the cart. + */ + public boolean getCanRemove() { + return canRemove; + } + + public void setCanRemove(boolean canRemove) { + this.canRemove = canRemove; + } + + /** + * Whether the line item quantity can be updated. + */ + public boolean getCanUpdateQuantity() { + return canUpdateQuantity; + } + + public void setCanUpdateQuantity(boolean canUpdateQuantity) { + this.canUpdateQuantity = canUpdateQuantity; + } + + @Override + public String toString() { + return "CartLineInstructions{canRemove='" + canRemove + "', canUpdateQuantity='" + canUpdateQuantity + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + CartLineInstructions that = (CartLineInstructions) o; + return canRemove == that.canRemove && + canUpdateQuantity == that.canUpdateQuantity; + } + + @Override + public int hashCode() { + return Objects.hash(canRemove, canUpdateQuantity); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * Whether the line item can be removed from the cart. + */ + private boolean canRemove; + + /** + * Whether the line item quantity can be updated. + */ + private boolean canUpdateQuantity; + + public CartLineInstructions build() { + CartLineInstructions result = new CartLineInstructions(); + result.canRemove = this.canRemove; + result.canUpdateQuantity = this.canUpdateQuantity; + return result; + } + + /** + * Whether the line item can be removed from the cart. + */ + public Builder canRemove(boolean canRemove) { + this.canRemove = canRemove; + return this; + } + + /** + * Whether the line item quantity can be updated. + */ + public Builder canUpdateQuantity(boolean canUpdateQuantity) { + this.canUpdateQuantity = canUpdateQuantity; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartLineParentInput.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartLineParentInput.java new file mode 100644 index 00000000..76956a85 --- /dev/null +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartLineParentInput.java @@ -0,0 +1,104 @@ +package com.shopify.storefront.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * The parent line item of the cart line. + */ +public class CartLineParentInput { + /** + * The id of the parent line item. + */ + private String lineId; + + /** + * The ID of the parent line merchandise. + */ + private String merchandiseId; + + public CartLineParentInput() { + } + + /** + * The id of the parent line item. + */ + public String getLineId() { + return lineId; + } + + public void setLineId(String lineId) { + this.lineId = lineId; + } + + /** + * The ID of the parent line merchandise. + */ + public String getMerchandiseId() { + return merchandiseId; + } + + public void setMerchandiseId(String merchandiseId) { + this.merchandiseId = merchandiseId; + } + + @Override + public String toString() { + return "CartLineParentInput{lineId='" + lineId + "', merchandiseId='" + merchandiseId + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + CartLineParentInput that = (CartLineParentInput) o; + return Objects.equals(lineId, that.lineId) && + Objects.equals(merchandiseId, that.merchandiseId); + } + + @Override + public int hashCode() { + return Objects.hash(lineId, merchandiseId); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The id of the parent line item. + */ + private String lineId; + + /** + * The ID of the parent line merchandise. + */ + private String merchandiseId; + + public CartLineParentInput build() { + CartLineParentInput result = new CartLineParentInput(); + result.lineId = this.lineId; + result.merchandiseId = this.merchandiseId; + return result; + } + + /** + * The id of the parent line item. + */ + public Builder lineId(String lineId) { + this.lineId = lineId; + return this; + } + + /** + * The ID of the parent line merchandise. + */ + public Builder merchandiseId(String merchandiseId) { + this.merchandiseId = merchandiseId; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartLineParentRelationship.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartLineParentRelationship.java new file mode 100644 index 00000000..6277c3f5 --- /dev/null +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartLineParentRelationship.java @@ -0,0 +1,73 @@ +package com.shopify.storefront.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * Represents the parent relationship of a cart line. + */ +public class CartLineParentRelationship { + /** + * The parent cart line. + */ + private CartLine _parent; + + public CartLineParentRelationship() { + } + + /** + * The parent cart line. + */ + public CartLine getParent() { + return _parent; + } + + public void setParent(CartLine _parent) { + this._parent = _parent; + } + + @Override + public String toString() { + return "CartLineParentRelationship{parent='" + _parent + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + CartLineParentRelationship that = (CartLineParentRelationship) o; + return Objects.equals(_parent, that._parent); + } + + @Override + public int hashCode() { + return Objects.hash(_parent); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The parent cart line. + */ + private CartLine _parent; + + public CartLineParentRelationship build() { + CartLineParentRelationship result = new CartLineParentRelationship(); + result._parent = this._parent; + return result; + } + + /** + * The parent cart line. + */ + public Builder _parent(CartLine _parent) { + this._parent = _parent; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartLineUpdateInput.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartLineUpdateInput.java index d8473b49..b7075214 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartLineUpdateInput.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartLineUpdateInput.java @@ -8,7 +8,11 @@ import java.util.Objects; /** - * The input fields to update a line item on a cart. + * The input fields for updating a merchandise line in a cart. Used by the [`cartLinesUpdate`](https://shopify.dev/docs/api/storefront/current/mutations/cartLinesUpdate) mutation. + * + * Specify the line item's [`id`](https://shopify.dev/docs/api/storefront/current/input-objects/CartLineUpdateInput#fields-id) + * along with any fields to modify. You can change the quantity, swap the + * merchandise, update custom attributes, or associate a different selling plan. */ public class CartLineUpdateInput { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartRemovePersonalDataPayload.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartRemovePersonalDataPayload.java new file mode 100644 index 00000000..997507a0 --- /dev/null +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartRemovePersonalDataPayload.java @@ -0,0 +1,136 @@ +package com.shopify.storefront.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +/** + * Return type for `cartRemovePersonalData` mutation. + */ +public class CartRemovePersonalDataPayload { + /** + * The updated cart. + */ + private Cart cart; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + /** + * A list of warnings that occurred during the mutation. + */ + private List warnings; + + public CartRemovePersonalDataPayload() { + } + + /** + * The updated cart. + */ + public Cart getCart() { + return cart; + } + + public void setCart(Cart cart) { + this.cart = cart; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public List getUserErrors() { + return userErrors; + } + + public void setUserErrors(List userErrors) { + this.userErrors = userErrors; + } + + /** + * A list of warnings that occurred during the mutation. + */ + public List getWarnings() { + return warnings; + } + + public void setWarnings(List warnings) { + this.warnings = warnings; + } + + @Override + public String toString() { + return "CartRemovePersonalDataPayload{cart='" + cart + "', userErrors='" + userErrors + "', warnings='" + warnings + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + CartRemovePersonalDataPayload that = (CartRemovePersonalDataPayload) o; + return Objects.equals(cart, that.cart) && + Objects.equals(userErrors, that.userErrors) && + Objects.equals(warnings, that.warnings); + } + + @Override + public int hashCode() { + return Objects.hash(cart, userErrors, warnings); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The updated cart. + */ + private Cart cart; + + /** + * The list of errors that occurred from executing the mutation. + */ + private List userErrors; + + /** + * A list of warnings that occurred during the mutation. + */ + private List warnings; + + public CartRemovePersonalDataPayload build() { + CartRemovePersonalDataPayload result = new CartRemovePersonalDataPayload(); + result.cart = this.cart; + result.userErrors = this.userErrors; + result.warnings = this.warnings; + return result; + } + + /** + * The updated cart. + */ + public Builder cart(Cart cart) { + this.cart = cart; + return this; + } + + /** + * The list of errors that occurred from executing the mutation. + */ + public Builder userErrors(List userErrors) { + this.userErrors = userErrors; + return this; + } + + /** + * A list of warnings that occurred during the mutation. + */ + public Builder warnings(List warnings) { + this.warnings = warnings; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartSelectableAddressInput.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartSelectableAddressInput.java index f97d5dd7..2693e369 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartSelectableAddressInput.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartSelectableAddressInput.java @@ -7,7 +7,11 @@ import java.util.Objects; /** - * The input fields for a selectable delivery address in a cart. + * The input fields for a selectable delivery address to present to the buyer. Used by [`CartDeliveryInput`](https://shopify.dev/docs/api/storefront/current/input-objects/CartDeliveryInput) + * when creating a cart with the [`cartCreate`](https://shopify.dev/docs/api/storefront/current/mutations/cartCreate) mutation. + * + * You can pre-select an address for the buyer, mark it as one-time use so it isn't + * saved after checkout, and specify how strictly the address should be validated. */ public class CartSelectableAddressInput { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartWarning.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartWarning.java index 02eaa975..27fcfc65 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartWarning.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartWarning.java @@ -6,7 +6,12 @@ import java.util.Objects; /** - * A warning that occurred during a cart mutation. + * A non-blocking issue that occurred during a cart mutation. Unlike errors, + * warnings don't prevent the mutation from completing but indicate potential + * problems that may affect the buyer's experience. + * + * Each warning includes a code identifying the issue type, a human-readable + * message, and a target ID pointing to the affected resource. */ public class CartWarning { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartWarningCode.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartWarningCode.java index d7a7d487..7ce18f4a 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartWarningCode.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CartWarningCode.java @@ -10,5 +10,31 @@ public enum CartWarningCode { PAYMENTS_GIFT_CARDS_UNAVAILABLE, - DUPLICATE_DELIVERY_ADDRESS + DUPLICATE_DELIVERY_ADDRESS, + + DISCOUNT_CODE_NOT_HONOURED, + + DISCOUNT_NOT_FOUND, + + DISCOUNT_CURRENTLY_INACTIVE, + + DISCOUNT_USAGE_LIMIT_REACHED, + + DISCOUNT_CUSTOMER_USAGE_LIMIT_REACHED, + + DISCOUNT_CUSTOMER_NOT_ELIGIBLE, + + DISCOUNT_ELIGIBLE_CUSTOMER_MISSING, + + DISCOUNT_QUANTITY_NOT_IN_RANGE, + + DISCOUNT_PURCHASE_NOT_IN_RANGE, + + DISCOUNT_NO_ENTITLED_LINE_ITEMS, + + DISCOUNT_NO_ENTITLED_SHIPPING_LINES, + + DISCOUNT_INCOMPATIBLE_PURCHASE_TYPE, + + MERCHANDISE_SELLING_PLAN_NOT_APPLICABLE_ON_COMPANY_LOCATION } diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Collection.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Collection.java index 0636be9a..02e9bd93 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Collection.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Collection.java @@ -9,8 +9,17 @@ import java.util.Objects; /** - * A collection represents a grouping of products that a shop owner can create to - * organize them or make their shops easier to browse. + * A group of products [organized by a + * merchant](https://help.shopify.com/manual/products/collections) to make their + * store easier to browse. Collections can help customers discover related products + * by category, season, promotion, or other criteria. + * + * Query a collection's products with [filtering options](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/products-collections/filter-products) + * like availability, price range, vendor, and tags. Each collection includes + * [`SEO`](https://shopify.dev/docs/api/storefront/current/objects/SEO) + * information, an optional + * [`Image`](https://shopify.dev/docs/api/storefront/current/objects/Image), and + * supports custom data through [`metafields`](https://shopify.dev/docs/api/storefront/current/objects/Metafield). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Company.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Company.java index 0d42e01b..82abf1fd 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Company.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Company.java @@ -9,7 +9,11 @@ import java.util.Objects; /** - * Represents information about a company which is also a customer of the shop. + * A B2B organization that purchases from the shop. In the Storefront API, company + * information is accessed through the [`PurchasingCompany`](https://shopify.dev/docs/api/storefront/current/objects/PurchasingCompany) object on [`CartBuyerIdentity`](https://shopify.dev/docs/api/storefront/current/objects/CartBuyerIdentity), + * which provides the associated location and contact for the current purchasing context. + * + * You can store custom data using [metafields](https://shopify.dev/docs/apps/build/metafields). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CompanyLocation.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CompanyLocation.java index a8f7c75b..ff938afd 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CompanyLocation.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CompanyLocation.java @@ -9,7 +9,15 @@ import java.util.Objects; /** - * A company's location. + * A branch or office of a + * [`Company`](https://shopify.dev/docs/api/storefront/current/objects/Company) + * where B2B customers can place orders. When a B2B customer selects a location + * after logging in, the Storefront API contextualizes product queries to return + * location-specific pricing and quantity rules. + * + * Access through the [`PurchasingCompany`](https://shopify.dev/docs/api/storefront/current/objects/PurchasingCompany) + * object, which associates the location with the buyer's + * [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Country.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Country.java index 48b8bc97..b778c0c7 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Country.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Country.java @@ -7,7 +7,13 @@ import java.util.Objects; /** - * A country. + * A country with localization settings for a storefront. Includes the country's + * currency, available languages, default language, and unit system (metric or imperial). + * + * Access countries through the [localization](https://shopify.dev/docs/api/storefront/current/queries/localization) + * query, which returns both the list of available countries and the currently + * active country. Use the [`@inContext`](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/in-context) + * directive to change the active country context. */ public class Country { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Customer.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Customer.java index 3210ef5b..65a13390 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Customer.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Customer.java @@ -9,9 +9,17 @@ import java.util.Objects; /** - * A customer represents a customer account with the shop. Customer accounts store - * contact information for the customer, saving logged-in customers the trouble of - * having to provide it at every checkout. + * A customer account with the shop. Includes data such as contact information, [addresses](https://shopify.dev/docs/api/storefront/current/objects/MailingAddress) + * and marketing preferences for logged-in customers, so they don't have to provide + * these details at every checkout. + * + * Access the customer through the + * [`customer`](https://shopify.dev/docs/api/storefront/current/queries/customer) + * query using a customer access token obtained from the [`customerAccessTokenCreate`](https://shopify.dev/docs/api/storefront/current/mutations/customerAccessTokenCreate) mutation. + * + * The object implements the [`HasMetafields`](https://shopify.dev/docs/api/storefront/current/interfaces/HasMetafields) + * interface, enabling retrieval of [custom + * data](https://shopify.dev/docs/apps/build/custom-data) associated with the customer. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE @@ -27,6 +35,11 @@ public class Customer implements MetafieldParentResource, com.shopify.storefront */ private MailingAddressConnection addresses; + /** + * The URL of the customer's avatar image. + */ + private String avatarUrl; + /** * The date and time when the customer was created. */ @@ -89,6 +102,11 @@ public class Customer implements MetafieldParentResource, com.shopify.storefront */ private String phone; + /** + * The social login provider associated with the customer. + */ + private SocialLoginProvider socialLoginProvider; + /** * A comma separated list of tags that have been added to the customer. * Additional access scope required: unauthenticated_read_customer_tags. @@ -125,6 +143,17 @@ public void setAddresses(MailingAddressConnection addresses) { this.addresses = addresses; } + /** + * The URL of the customer's avatar image. + */ + public String getAvatarUrl() { + return avatarUrl; + } + + public void setAvatarUrl(String avatarUrl) { + this.avatarUrl = avatarUrl; + } + /** * The date and time when the customer was created. */ @@ -259,6 +288,17 @@ public void setPhone(String phone) { this.phone = phone; } + /** + * The social login provider associated with the customer. + */ + public SocialLoginProvider getSocialLoginProvider() { + return socialLoginProvider; + } + + public void setSocialLoginProvider(SocialLoginProvider socialLoginProvider) { + this.socialLoginProvider = socialLoginProvider; + } + /** * A comma separated list of tags that have been added to the customer. * Additional access scope required: unauthenticated_read_customer_tags. @@ -284,7 +324,7 @@ public void setUpdatedAt(OffsetDateTime updatedAt) { @Override public String toString() { - return "Customer{acceptsMarketing='" + acceptsMarketing + "', addresses='" + addresses + "', createdAt='" + createdAt + "', defaultAddress='" + defaultAddress + "', displayName='" + displayName + "', email='" + email + "', firstName='" + firstName + "', id='" + id + "', lastName='" + lastName + "', metafield='" + metafield + "', metafields='" + metafields + "', numberOfOrders='" + numberOfOrders + "', orders='" + orders + "', phone='" + phone + "', tags='" + tags + "', updatedAt='" + updatedAt + "'}"; + return "Customer{acceptsMarketing='" + acceptsMarketing + "', addresses='" + addresses + "', avatarUrl='" + avatarUrl + "', createdAt='" + createdAt + "', defaultAddress='" + defaultAddress + "', displayName='" + displayName + "', email='" + email + "', firstName='" + firstName + "', id='" + id + "', lastName='" + lastName + "', metafield='" + metafield + "', metafields='" + metafields + "', numberOfOrders='" + numberOfOrders + "', orders='" + orders + "', phone='" + phone + "', socialLoginProvider='" + socialLoginProvider + "', tags='" + tags + "', updatedAt='" + updatedAt + "'}"; } @Override @@ -294,6 +334,7 @@ public boolean equals(Object o) { Customer that = (Customer) o; return acceptsMarketing == that.acceptsMarketing && Objects.equals(addresses, that.addresses) && + Objects.equals(avatarUrl, that.avatarUrl) && Objects.equals(createdAt, that.createdAt) && Objects.equals(defaultAddress, that.defaultAddress) && Objects.equals(displayName, that.displayName) && @@ -306,13 +347,14 @@ public boolean equals(Object o) { Objects.equals(numberOfOrders, that.numberOfOrders) && Objects.equals(orders, that.orders) && Objects.equals(phone, that.phone) && + Objects.equals(socialLoginProvider, that.socialLoginProvider) && Objects.equals(tags, that.tags) && Objects.equals(updatedAt, that.updatedAt); } @Override public int hashCode() { - return Objects.hash(acceptsMarketing, addresses, createdAt, defaultAddress, displayName, email, firstName, id, lastName, metafield, metafields, numberOfOrders, orders, phone, tags, updatedAt); + return Objects.hash(acceptsMarketing, addresses, avatarUrl, createdAt, defaultAddress, displayName, email, firstName, id, lastName, metafield, metafields, numberOfOrders, orders, phone, socialLoginProvider, tags, updatedAt); } public static Builder newBuilder() { @@ -330,6 +372,11 @@ public static class Builder { */ private MailingAddressConnection addresses; + /** + * The URL of the customer's avatar image. + */ + private String avatarUrl; + /** * The date and time when the customer was created. */ @@ -392,6 +439,11 @@ public static class Builder { */ private String phone; + /** + * The social login provider associated with the customer. + */ + private SocialLoginProvider socialLoginProvider; + /** * A comma separated list of tags that have been added to the customer. * Additional access scope required: unauthenticated_read_customer_tags. @@ -407,6 +459,7 @@ public Customer build() { Customer result = new Customer(); result.acceptsMarketing = this.acceptsMarketing; result.addresses = this.addresses; + result.avatarUrl = this.avatarUrl; result.createdAt = this.createdAt; result.defaultAddress = this.defaultAddress; result.displayName = this.displayName; @@ -419,6 +472,7 @@ public Customer build() { result.numberOfOrders = this.numberOfOrders; result.orders = this.orders; result.phone = this.phone; + result.socialLoginProvider = this.socialLoginProvider; result.tags = this.tags; result.updatedAt = this.updatedAt; return result; @@ -440,6 +494,14 @@ public Builder addresses(MailingAddressConnection addresses) { return this; } + /** + * The URL of the customer's avatar image. + */ + public Builder avatarUrl(String avatarUrl) { + this.avatarUrl = avatarUrl; + return this; + } + /** * The date and time when the customer was created. */ @@ -538,6 +600,14 @@ public Builder phone(String phone) { return this; } + /** + * The social login provider associated with the customer. + */ + public Builder socialLoginProvider(SocialLoginProvider socialLoginProvider) { + this.socialLoginProvider = socialLoginProvider; + return this; + } + /** * A comma separated list of tags that have been added to the customer. * Additional access scope required: unauthenticated_read_customer_tags. diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CustomerAccessToken.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CustomerAccessToken.java index 8b0769cc..17fec7f0 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CustomerAccessToken.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CustomerAccessToken.java @@ -7,7 +7,16 @@ import java.util.Objects; /** - * A CustomerAccessToken represents the unique token required to make modifications to the customer object. + * A unique authentication token that identifies a logged-in customer and + * authorizes modifications to the + * [`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer) + * object. The token is required for customer-specific operations like updating + * profile information or managing addresses. + * + * Tokens have an expiration date and must be renewed using [`customerAccessTokenRenew`](https://shopify.dev/docs/api/storefront/current/mutations/customerAccessTokenRenew) + * before they expire. Create tokens with [`customerAccessTokenCreate`](https://shopify.dev/docs/api/storefront/current/mutations/customerAccessTokenCreate) + * using legacy customer account authentication (email and password), or with [`customerAccessTokenCreateWithMultipass`](https://shopify.dev/docs/api/storefront/current/mutations/customerAccessTokenCreateWithMultipass) + * for single sign-on flows. */ public class CustomerAccessToken { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CustomerAccessTokenCreateInput.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CustomerAccessTokenCreateInput.java index 14987536..055a721a 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CustomerAccessTokenCreateInput.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CustomerAccessTokenCreateInput.java @@ -6,7 +6,9 @@ import java.util.Objects; /** - * The input fields required to create a customer access token. + * The input fields for authenticating a customer with email and password. Used by the [`customerAccessTokenCreate`](https://shopify.dev/docs/api/storefront/current/mutations/customerAccessTokenCreate) + * mutation to generate a [`CustomerAccessToken`](https://shopify.dev/docs/api/storefront/current/objects/CustomerAccessToken), + * which is required to read or modify customer data. */ public class CustomerAccessTokenCreateInput { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CustomerCreateInput.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CustomerCreateInput.java index b06a177d..660ea05c 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CustomerCreateInput.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CustomerCreateInput.java @@ -7,7 +7,16 @@ import java.util.Objects; /** - * The input fields to create a new customer. + * The input fields for creating a new + * [`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer) + * account. Used by the [`customerCreate`](https://shopify.dev/docs/api/storefront/current/mutations/customerCreate) mutation. + * + * For legacy customer accounts only and requires an email address and password. + * Optionally accepts the customer's name, phone number, and email marketing consent. + * + * > Caution: + * > The password is used for customer authentication. Ensure it's transmitted + * securely and never logged or stored in plain text. */ public class CustomerCreateInput { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CustomerErrorCode.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CustomerErrorCode.java index 7d4778c3..b55eb8b3 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CustomerErrorCode.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CustomerErrorCode.java @@ -1,7 +1,10 @@ package com.shopify.storefront.types; /** - * Possible error codes that can be returned by `CustomerUserError`. + * Error codes returned by the [`CustomerUserError`](https://shopify.dev/docs/api/storefront/current/objects/CustomerUserError) + * object. These codes identify specific validation and processing failures for + * customer-related mutations, including account creation, updates, password + * resets, and address management. */ public enum CustomerErrorCode { BLANK, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CustomerUpdateInput.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CustomerUpdateInput.java index b113b7aa..e910befc 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CustomerUpdateInput.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/CustomerUpdateInput.java @@ -7,7 +7,14 @@ import java.util.Objects; /** - * The input fields to update the Customer information. + * The input fields for updating a + * [`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer). Used by the [`customerUpdate`](https://shopify.dev/docs/api/storefront/current/mutations/customerUpdate) mutation. + * + * > Caution: + * > Updating the password invalidates all existing access tokens, including the + * one used to perform the mutation. The response returns a new access token. + * Ensure your app handles the new token returned in the response to avoid logging + * the customer out. */ public class CustomerUpdateInput { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/DeliveryAddressValidationStrategy.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/DeliveryAddressValidationStrategy.java index 139cda59..5b5d1cb2 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/DeliveryAddressValidationStrategy.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/DeliveryAddressValidationStrategy.java @@ -1,7 +1,12 @@ package com.shopify.storefront.types; /** - * Defines the types of available validation strategies for delivery addresses. + * Controls how delivery addresses are validated during cart operations. The + * default validation checks only the country code, while strict validation + * verifies all address fields against Shopify's checkout rules and rejects invalid addresses. + * + * Used by [`DeliveryAddressInput`](https://shopify.dev/docs/api/storefront/current/input-objects/DeliveryAddressInput) when setting buyer identity preferences, and by [`CartSelectableAddressInput`](https://shopify.dev/docs/api/storefront/current/input-objects/CartSelectableAddressInput) and [`CartSelectableAddressUpdateInput`](https://shopify.dev/docs/api/storefront/current/input-objects/CartSelectableAddressUpdateInput) + * when managing cart delivery addresses. */ public enum DeliveryAddressValidationStrategy { COUNTRY_CODE_ONLY, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/DiscountAllocation.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/DiscountAllocation.java index 38417f3f..98e139e8 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/DiscountAllocation.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/DiscountAllocation.java @@ -6,7 +6,11 @@ import java.util.Objects; /** - * An amount discounting the line that has been allocated by a discount. + * The calculated discount amount applied to a line item or shipping line. While a [`DiscountApplication`](https://shopify.dev/docs/api/storefront/current/interfaces/DiscountApplication) + * captures the discount's rules and intentions, the allocation shows how much was + * actually deducted. + * + * Each allocation includes the discounted amount and a reference to the originating discount application. */ public class DiscountAllocation { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/DiscountApplication.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/DiscountApplication.java index 4998fa1e..f164019d 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/DiscountApplication.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/DiscountApplication.java @@ -4,8 +4,12 @@ import com.fasterxml.jackson.annotation.JsonTypeInfo; /** - * Discount applications capture the intentions of a discount source at - * the time of application. + * Captures the intent of a discount at the time it was applied. Each + * implementation represents a different discount source, such as [automatic discounts](https://help.shopify.com/manual/discounts/discount-methods/automatic-discounts), [discount codes](https://help.shopify.com/manual/discounts/discount-methods/discount-codes), + * and manual discounts. + * + * The actual discounted amount on a line item or shipping line is represented by the [`DiscountAllocation`](https://shopify.dev/docs/api/storefront/current/objects/DiscountAllocation) + * object, which references the discount application it originated from. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NAME, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/DiscountApplicationAllocationMethod.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/DiscountApplicationAllocationMethod.java index 2de11e3b..3bcb77ae 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/DiscountApplicationAllocationMethod.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/DiscountApplicationAllocationMethod.java @@ -1,7 +1,12 @@ package com.shopify.storefront.types; /** - * The method by which the discount's value is allocated onto its entitled lines. + * Controls how a discount's value is distributed across entitled lines. A discount + * can either spread its value across all entitled lines or apply the full value to + * each line individually. + * + * Used by the [`DiscountApplication`](https://shopify.dev/docs/api/storefront/current/interfaces/DiscountApplication) interface and its implementations to capture the intentions of a discount source + * at the time of application. */ public enum DiscountApplicationAllocationMethod { ACROSS, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/DiscountCodeApplication.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/DiscountCodeApplication.java index c19b7702..8113a542 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/DiscountCodeApplication.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/DiscountCodeApplication.java @@ -7,8 +7,15 @@ import java.util.Objects; /** - * Discount code applications capture the intentions of a discount code at - * the time that it is applied. + * Records the configuration and intent of a [discount + * code](https://help.shopify.com/manual/discounts/discount-methods/discount-codes) + * when a customer applies it. This includes the code string, allocation method, + * target type, and discount value at the time of application. The [`applicable`](https://shopify.dev/docs/api/storefront/latest/objects/DiscountCodeApplication#field-DiscountCodeApplication.fields.applicable) + * field indicates whether the code was successfully applied. + * + * > Note: + * > To see the actual amounts discounted on specific line items or shipping lines, use the [`DiscountAllocation`](https://shopify.dev/docs/api/storefront/current/objects/DiscountAllocation) + * object instead. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Domain.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Domain.java index e39b8a78..005523b1 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Domain.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Domain.java @@ -6,7 +6,9 @@ import java.util.Objects; /** - * Represents a web address. + * A web address associated with a shop. The + * [`Shop`](https://shopify.dev/docs/api/storefront/current/objects/Shop) object's [`primaryDomain`](https://shopify.dev/docs/api/storefront/current/objects/Shop#field-Shop.fields.primaryDomain) + * field returns this to identify the shop's online store URL. */ public class Domain { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Filter.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Filter.java index 09c266b0..a25fc73a 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Filter.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Filter.java @@ -7,7 +7,14 @@ import java.util.Objects; /** - * A filter that is supported on the parent field. + * A filter option available on collection and search results pages. Each filter + * includes a type, display label, and selectable values that customers can use to + * narrow down products. + * + * The [`FilterValue`](https://shopify.dev/docs/api/storefront/current/objects/FilterValue) objects contain an [`input`](https://shopify.dev/docs/api/storefront/current/objects/FilterValue#field-FilterValue.fields.input) + * field that you can combine to [build dynamic filtering queries](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/products-collections/filter-products). + * Merchants [configure available filters](https://help.shopify.com/manual/online-store/search-and-discovery/filters) + * using the Shopify Search & Discovery app. */ public class Filter { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/FilterValue.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/FilterValue.java index cc7531fc..6e187850 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/FilterValue.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/FilterValue.java @@ -6,7 +6,15 @@ import java.util.Objects; /** - * A selectable value within a filter. + * A selectable option within a + * [`Filter`](https://shopify.dev/docs/api/storefront/current/objects/Filter), such + * as a specific color, size, or product type. Each value includes a count of + * matching results and a human-readable label for display. + * + * The [`input`](https://shopify.dev/docs/api/storefront/current/objects/FilterValue#field-FilterValue.fields.input) field provides ready-to-use JSON for building dynamic filtering interfaces. You + * can combine the `input` values from multiple selected [`FilterValue`](https://shopify.dev/docs/api/storefront/current/objects/FilterValue) + * objects to construct filter queries. Visual representations are available through the [`image`](https://shopify.dev/docs/api/storefront/current/objects/FilterValue#field-FilterValue.fields.image) or [`swatch`](https://shopify.dev/docs/api/storefront/current/objects/FilterValue#field-FilterValue.fields.swatch) + * fields when the parent filter's presentation type supports them. */ public class FilterValue { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Fulfillment.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Fulfillment.java index b11a76f3..60f35556 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Fulfillment.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Fulfillment.java @@ -7,7 +7,12 @@ import java.util.Objects; /** - * Represents a single fulfillment in an order. + * A shipment of one or more items in an order. Accessed through the + * [`Order`](https://shopify.dev/docs/api/storefront/current/objects/Order) object's [`successfulFulfillments`](https://shopify.dev/docs/api/storefront/current/objects/Order#field-Order.fields.successfulFulfillments) field. + * + * Each fulfillment includes the line items that shipped, the tracking company + * name, and tracking details like numbers and URLs. An order can have multiple + * fulfillments when items ship separately or from different locations. */ public class Fulfillment { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/FulfillmentLineItem.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/FulfillmentLineItem.java index 552c033a..5227e435 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/FulfillmentLineItem.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/FulfillmentLineItem.java @@ -6,7 +6,9 @@ import java.util.Objects; /** - * Represents a single line item in a fulfillment. There is at most one fulfillment line item for each order line item. + * Records how many units of an [`OrderLineItem`](https://shopify.dev/docs/api/storefront/current/objects/OrderLineItem) + * were included in a [`Fulfillment`](https://shopify.dev/docs/api/storefront/current/objects/Fulfillment). + * Each order line item has at most one fulfillment line item per fulfillment. */ public class FulfillmentLineItem { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/GenericFile.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/GenericFile.java index 60b18b42..be97c4b7 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/GenericFile.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/GenericFile.java @@ -8,9 +8,14 @@ import java.util.Objects; /** - * The generic file resource lets you manage files in a merchant’s store. Generic - * files include any file that doesn’t fit into a designated type such as image or - * video. Example: PDF, JSON. + * Any file that doesn't fit into a designated type like image or video. For + * example, a PDF or JSON document. Use this object to manage files in a merchant's store. + * + * Generic files are commonly referenced through [file reference + * metafields](https://shopify.dev/docs/apps/build/metafields/list-of-data-types) + * and returned as part of the [`MetafieldReference`](https://shopify.dev/docs/api/storefront/current/unions/MetafieldReference) union. + * + * Includes the file's URL, MIME type, size in bytes, and an optional preview image. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/HasMetafields.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/HasMetafields.java index 80dbb359..102f3bc6 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/HasMetafields.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/HasMetafields.java @@ -5,7 +5,18 @@ import java.util.List; /** - * Represents information about the metafields associated to the specified resource. + * Implemented by resources that support custom metadata through + * [`Metafield`](https://shopify.dev/docs/api/storefront/current/objects/Metafield) + * objects. Types like + * [`Product`](https://shopify.dev/docs/api/storefront/current/objects/Product), [`Collection`](https://shopify.dev/docs/api/storefront/current/objects/Collection), and + * [`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer) + * implement this interface to provide consistent access to metafields. + * + * You can retrieve a [single metafield](https://shopify.dev/docs/api/storefront/current/interfaces/HasMetafields#fields-metafield) + * by namespace and key, or fetch [multiple metafields](https://shopify.dev/docs/api/storefront/current/interfaces/HasMetafields#fields-metafields) + * in a single request. If you omit the namespace, then the [app-reserved + * namespace](https://shopify.dev/docs/apps/build/metafields#app-owned-metafields) + * is used by default. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NAME, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/HasMetafieldsIdentifier.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/HasMetafieldsIdentifier.java index 9fd5413c..dc455f7c 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/HasMetafieldsIdentifier.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/HasMetafieldsIdentifier.java @@ -6,7 +6,15 @@ import java.util.Objects; /** - * The input fields to identify a metafield on an owner resource by namespace and key. + * The input fields to identify a + * [`Metafield`](https://shopify.dev/docs/api/storefront/current/objects/Metafield) + * on an owner resource by namespace and key. Used as an argument to the [`metafields`](https://shopify.dev/docs/api/storefront/current/interfaces/HasMetafields#fields-metafields) + * field of the `HasMetafields` interface to retrieve multiple metafields in a + * single request. + * + * If you omit the namespace, then the [app-reserved + * namespace](https://shopify.dev/docs/apps/build/metafields#app-owned-metafields) + * is used by default. */ public class HasMetafieldsIdentifier { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Image.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Image.java index 0a5bf524..3f543d97 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Image.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Image.java @@ -7,7 +7,14 @@ import java.util.Objects; /** - * Represents an image resource. + * An image resource with URL, dimensions, and transformation options. Used for + * product images, collection images, media previews, and other visual content + * throughout the storefront. + * + * The [`url`](https://shopify.dev/docs/api/storefront/current/objects/Image#field-Image.fields.url) field accepts an [`ImageTransformInput`](https://shopify.dev/docs/api/storefront/current/input-objects/ImageTransformInput) + * argument for resizing, cropping, scaling for retina displays, and converting + * between image formats. Use the [`thumbhash`](https://shopify.dev/docs/api/storefront/current/objects/Image#field-Image.fields.thumbhash) + * field to display lightweight placeholders while images load. */ public class Image { /** @@ -37,6 +44,15 @@ public class Image { */ private String src; + /** + * The ThumbHash of the image. + * + * Useful to display placeholder images while the original image is loading. + * + * See https://evanw.github.io/thumbhash/ for details on how to use it. + */ + private String thumbhash; + /** * The location of the transformed image as a URL. * @@ -123,6 +139,21 @@ public void setSrc(String src) { this.src = src; } + /** + * The ThumbHash of the image. + * + * Useful to display placeholder images while the original image is loading. + * + * See https://evanw.github.io/thumbhash/ for details on how to use it. + */ + public String getThumbhash() { + return thumbhash; + } + + public void setThumbhash(String thumbhash) { + this.thumbhash = thumbhash; + } + /** * The location of the transformed image as a URL. * @@ -169,7 +200,7 @@ public void setWidth(Integer width) { @Override public String toString() { - return "Image{altText='" + altText + "', height='" + height + "', id='" + id + "', originalSrc='" + originalSrc + "', src='" + src + "', transformedSrc='" + transformedSrc + "', url='" + url + "', width='" + width + "'}"; + return "Image{altText='" + altText + "', height='" + height + "', id='" + id + "', originalSrc='" + originalSrc + "', src='" + src + "', thumbhash='" + thumbhash + "', transformedSrc='" + transformedSrc + "', url='" + url + "', width='" + width + "'}"; } @Override @@ -182,6 +213,7 @@ public boolean equals(Object o) { Objects.equals(id, that.id) && Objects.equals(originalSrc, that.originalSrc) && Objects.equals(src, that.src) && + Objects.equals(thumbhash, that.thumbhash) && Objects.equals(transformedSrc, that.transformedSrc) && Objects.equals(url, that.url) && Objects.equals(width, that.width); @@ -189,7 +221,7 @@ public boolean equals(Object o) { @Override public int hashCode() { - return Objects.hash(altText, height, id, originalSrc, src, transformedSrc, url, width); + return Objects.hash(altText, height, id, originalSrc, src, thumbhash, transformedSrc, url, width); } public static Builder newBuilder() { @@ -224,6 +256,15 @@ public static class Builder { */ private String src; + /** + * The ThumbHash of the image. + * + * Useful to display placeholder images while the original image is loading. + * + * See https://evanw.github.io/thumbhash/ for details on how to use it. + */ + private String thumbhash; + /** * The location of the transformed image as a URL. * @@ -257,6 +298,7 @@ public Image build() { result.id = this.id; result.originalSrc = this.originalSrc; result.src = this.src; + result.thumbhash = this.thumbhash; result.transformedSrc = this.transformedSrc; result.url = this.url; result.width = this.width; @@ -305,6 +347,18 @@ public Builder src(String src) { return this; } + /** + * The ThumbHash of the image. + * + * Useful to display placeholder images while the original image is loading. + * + * See https://evanw.github.io/thumbhash/ for details on how to use it. + */ + public Builder thumbhash(String thumbhash) { + this.thumbhash = thumbhash; + return this; + } + /** * The location of the transformed image as a URL. * diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Language.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Language.java index f4b949b6..7ffd9ab8 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Language.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Language.java @@ -6,7 +6,14 @@ import java.util.Objects; /** - * A language. + * A language available for a localized storefront experience. Provides the + * language name in both its native form (endonym) and translated into the current + * language, along with its [`LanguageCode`](https://shopify.dev/docs/api/storefront/current/enums/LanguageCode). + * + * Returned by the [`Localization`](https://shopify.dev/docs/api/storefront/current/objects/Localization) + * and [`Country`](https://shopify.dev/docs/api/storefront/current/objects/Country) + * objects to indicate available and active languages. Pass the `isoCode` to the [`@inContext`](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/in-context) + * directive to retrieve translated content in that language. */ public class Language { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/LanguageCode.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/LanguageCode.java index 32c641b3..b97d79ce 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/LanguageCode.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/LanguageCode.java @@ -1,7 +1,14 @@ package com.shopify.storefront.types; /** - * Language codes supported by Shopify. + * Supported languages for retrieving translated storefront content. Pass a + * language code to the [`@inContext`](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/in-context) + * directive to return product titles, descriptions, and other translatable fields + * in that language. + * + * The [`Localization`](https://shopify.dev/docs/api/storefront/current/objects/Localization) object provides the list of available languages for the active country, and each + * [`Country`](https://shopify.dev/docs/api/storefront/current/objects/Country) in [`availableCountries`](https://shopify.dev/docs/api/storefront/current/objects/Localization#field-Localization.fields.availableCountries) + * includes its own available languages. */ public enum LanguageCode { AF, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Localization.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Localization.java index 5230c1f7..b5f61bca 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Localization.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Localization.java @@ -7,7 +7,15 @@ import java.util.Objects; /** - * Information about the localized experiences configured for the shop. + * Information about the shop's configured localized experiences, including + * available countries and languages. The [`country`](https://shopify.dev/docs/api/storefront/current/objects/Localization#field-Localization.fields.country) and [`language`](https://shopify.dev/docs/api/storefront/current/objects/Localization#field-Localization.fields.language) + * fields reflect the active localization context, which you can change using the + * `@inContext` directive on queries. + * + * Use [`availableCountries`](https://shopify.dev/docs/api/storefront/current/objects/Localization#field-Localization.fields.availableCountries) to list all countries with enabled localized experiences, and [`availableLanguages`](https://shopify.dev/docs/api/storefront/current/objects/Localization#field-Localization.fields.availableLanguages) + * to get languages available for the currently active country. Each + * [`Country`](https://shopify.dev/docs/api/storefront/current/objects/Country) + * includes its own currency, unit system, and available languages. */ public class Localization { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Location.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Location.java index e6784714..5a55602f 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Location.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Location.java @@ -8,7 +8,13 @@ import java.util.Objects; /** - * Represents a location where product inventory is held. + * A physical store location where product inventory is held and that supports + * in-store pickup. Provides the location's name, address, and geographic + * coordinates for proximity-based sorting. Use with [`StoreAvailability`](https://shopify.dev/docs/api/storefront/current/objects/StoreAvailability) + * to show customers where a [`ProductVariant`](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant) + * is available for pickup. + * + * Learn more about [supporting local pickup on storefronts](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/products-collections/local-pickup). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/MailingAddress.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/MailingAddress.java index 51ce8852..1d78b437 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/MailingAddress.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/MailingAddress.java @@ -9,7 +9,14 @@ import java.util.Objects; /** - * Represents a mailing address for customers and shipping. + * A physical mailing address associated with a + * [`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer) + * or [`Order`](https://shopify.dev/docs/api/storefront/current/objects/Order). + * Stores standard address components including street address, city, province, + * country, and postal code, along with customer name and company information. + * + * The address includes geographic coordinates and provides pre-formatted output through the [`formatted`](https://shopify.dev/docs/api/storefront/current/objects/MailingAddress#field-MailingAddress.fields.formatted) + * field, which can optionally include or exclude name and company details. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/MailingAddressInput.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/MailingAddressInput.java index 5f303f10..c2f87b47 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/MailingAddressInput.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/MailingAddressInput.java @@ -6,7 +6,12 @@ import java.util.Objects; /** - * The input fields to create or update a mailing address. + * The input fields for creating or updating a [`MailingAddress`](https://shopify.dev/docs/api/storefront/current/objects/MailingAddress). + * Accepts standard address components including street address, city, province, + * country, and postal code, along with customer name and contact information. + * + * Used by the [`customerAddressCreate`](https://shopify.dev/docs/api/storefront/current/mutations/customerAddressCreate) and [`customerAddressUpdate`](https://shopify.dev/docs/api/storefront/current/mutations/customerAddressUpdate) mutations, and as part of [`DeliveryAddressInput`](https://shopify.dev/docs/api/storefront/current/input-objects/DeliveryAddressInput) + * for cart delivery preferences. */ public class MailingAddressInput { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ManualDiscountApplication.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ManualDiscountApplication.java index 6df984ce..4031964a 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ManualDiscountApplication.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ManualDiscountApplication.java @@ -7,7 +7,9 @@ import java.util.Objects; /** - * Manual discount applications capture the intentions of a discount that was manually created. + * A discount created manually by a merchant, as opposed to [automatic discounts](https://help.shopify.com/manual/discounts/discount-methods/automatic-discounts) or [discount codes](https://help.shopify.com/manual/discounts/discount-methods/discount-codes). Implements the [`DiscountApplication`](https://shopify.dev/docs/api/storefront/current/interfaces/DiscountApplication) + * interface and includes a title, optional description, and the discount value as + * either a fixed amount or percentage. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Market.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Market.java index 9fa1152b..3120cf42 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Market.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Market.java @@ -8,9 +8,13 @@ import java.util.Objects; /** - * A group of one or more regions of the world that a merchant is targeting for - * sales. To learn more about markets, refer to [the Shopify Markets conceptual - * overview](/docs/apps/markets). + * An audience of buyers that a merchant targets for sales. Audiences can include + * geographic regions, company locations, and retail locations. Markets enable + * localized shopping experiences with region-specific languages, currencies, and pricing. + * + * Each market has a unique [`handle`](https://shopify.dev/docs/api/storefront/current/objects/Market#field-Market.fields.handle) + * for identification and supports custom data through [`metafields`](https://shopify.dev/docs/api/storefront/current/objects/Metafield). + * Learn more about [building localized experiences with Shopify Markets](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/markets). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Media.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Media.java index 0fd67757..7d6d7da3 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Media.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Media.java @@ -5,7 +5,18 @@ import java.lang.String; /** - * Represents a media interface. + * A common set of fields for media content associated with + * [products](https://shopify.dev/docs/api/storefront/current/objects/Product). + * Implementations include [`MediaImage`](https://shopify.dev/docs/api/storefront/current/objects/MediaImage) + * for Shopify-hosted images, + * [`Video`](https://shopify.dev/docs/api/storefront/current/objects/Video) for + * Shopify-hosted videos, [`ExternalVideo`](https://shopify.dev/docs/api/storefront/current/objects/ExternalVideo) + * for videos hosted on platforms like YouTube or Vimeo, and + * [`Model3d`](https://shopify.dev/docs/api/storefront/current/objects/Model3d) for 3D models. + * + * Each implementation shares fields for alt text, content type, and preview + * images, while adding type-specific fields like embed URLs for external videos or + * source files for 3D models. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NAME, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/MediaImage.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/MediaImage.java index 50f943e0..2c15513d 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/MediaImage.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/MediaImage.java @@ -7,7 +7,14 @@ import java.util.Objects; /** - * Represents a Shopify hosted image. + * An image hosted on Shopify's content delivery network (CDN). Used for product + * images, brand logos, and other visual content across the storefront. + * + * The [`image`](https://shopify.dev/docs/api/storefront/current/objects/MediaImage#field-MediaImage.fields.image) field provides the actual image data with transformation options. Implements the + * [`Media`](https://shopify.dev/docs/api/storefront/current/interfaces/Media) + * interface alongside other media types like + * [`Video`](https://shopify.dev/docs/api/storefront/current/objects/Video) and + * [`Model3d`](https://shopify.dev/docs/api/storefront/current/objects/Model3d). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Menu.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Menu.java index 4162a863..fef1bcae 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Menu.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Menu.java @@ -8,8 +8,18 @@ import java.util.Objects; /** - * A [navigation menu](https://help.shopify.com/manual/online-store/menus-and-links) representing a hierarchy - * of hyperlinks (items). + * A navigation structure for building store + * [menus](https://help.shopify.com/manual/online-store/menus-and-links). Each menu contains + * [`MenuItem`](https://shopify.dev/docs/api/storefront/current/objects/MenuItem) + * objects that can be nested to create multi-level navigation hierarchies. + * + * Menu items can link to [collections](https://shopify.dev/docs/api/storefront/current/objects/Collection), + * [products](https://shopify.dev/docs/api/storefront/current/objects/Product), + * [pages](https://shopify.dev/docs/api/storefront/current/objects/Page), + * [blogs](https://shopify.dev/docs/api/storefront/current/objects/Blog), or + * external URLs. Use the + * [`menu`](https://shopify.dev/docs/api/storefront/current/queries/menu) query to + * retrieve a menu by its handle. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/MenuItem.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/MenuItem.java index d7b74e60..ee11e89d 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/MenuItem.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/MenuItem.java @@ -8,7 +8,16 @@ import java.util.Objects; /** - * A menu item within a parent menu. + * A navigation link within a + * [`Menu`](https://shopify.dev/docs/api/storefront/current/objects/Menu). Each + * item has a title, URL, and can link to store resources like + * [products](https://shopify.dev/docs/api/storefront/current/objects/Product), [collections](https://shopify.dev/docs/api/storefront/current/objects/Collection), + * [pages](https://shopify.dev/docs/api/storefront/current/objects/Page), + * [blogs](https://shopify.dev/docs/api/storefront/current/objects/Blog), or external URLs. + * + * Menu items support nested hierarchies through the [`items`](https://shopify.dev/docs/api/storefront/current/objects/MenuItem#field-MenuItem.fields.items) + * field, enabling dropdown or multi-level navigation structures. The [`tags`](https://shopify.dev/docs/api/storefront/current/objects/MenuItem#field-MenuItem.fields.tags) + * field filters results when the item links to a collection specifically. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Metafield.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Metafield.java index 48d8dd66..8516531a 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Metafield.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Metafield.java @@ -8,8 +8,17 @@ import java.util.Objects; /** - * Metafields represent custom metadata attached to a resource. Metafields can be sorted into namespaces and are - * comprised of keys, values, and value types. + * [Custom metadata](https://shopify.dev/docs/apps/build/metafields) attached to a + * Shopify resource such as a + * [`Product`](https://shopify.dev/docs/api/storefront/current/objects/Product), [`Collection`](https://shopify.dev/docs/api/storefront/current/objects/Collection), or + * [`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer). + * Each metafield is identified by a namespace and key, and stores a value with an + * associated type. + * + * Values are always stored as strings, but the [`type`](https://shopify.dev/docs/api/storefront/current/objects/Metafield#field-Metafield.fields.type) + * field indicates how to interpret the data. When a metafield's type is a resource + * reference, use the [`reference`](https://shopify.dev/docs/api/storefront/current/objects/Metafield#field-Metafield.fields.reference) or [`references`](https://shopify.dev/docs/api/storefront/current/objects/Metafield#field-Metafield.fields.references) + * fields to retrieve the linked objects. Access metafields on any resource that implements the [`HasMetafields`](https://shopify.dev/docs/api/storefront/current/interfaces/HasMetafields) interface. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/MetafieldDeleteErrorCode.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/MetafieldDeleteErrorCode.java index 2a17b2a1..240bd4f7 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/MetafieldDeleteErrorCode.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/MetafieldDeleteErrorCode.java @@ -6,5 +6,7 @@ public enum MetafieldDeleteErrorCode { INVALID_OWNER, - METAFIELD_DOES_NOT_EXIST + METAFIELD_DOES_NOT_EXIST, + + APP_NOT_AUTHORIZED } diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/MetafieldFilter.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/MetafieldFilter.java index 1ea3f81b..33b0187d 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/MetafieldFilter.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/MetafieldFilter.java @@ -6,13 +6,10 @@ import java.util.Objects; /** - * A filter used to view a subset of products in a collection matching a specific metafield value. + * Filters products in a collection by matching a specific metafield value. Used by the [`ProductFilter`](https://shopify.dev/docs/api/storefront/current/input-objects/ProductFilter) + * input's `productMetafield` and `variantMetafield` fields. * - * Only the following metafield types are currently supported: - * - `number_integer` - * - `number_decimal` - * - `single_line_text_field` - * - `boolean` as of 2022-04. + * Supports the following metafield types: `number_integer`, `number_decimal`, `single_line_text_field`, and `boolean`. */ public class MetafieldFilter { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/MetafieldReference.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/MetafieldReference.java index 3802dc10..5ac1f8d1 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/MetafieldReference.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/MetafieldReference.java @@ -9,6 +9,7 @@ property = "__typename" ) @JsonSubTypes({ + @JsonSubTypes.Type(value = Article.class, name = "Article"), @JsonSubTypes.Type(value = Collection.class, name = "Collection"), @JsonSubTypes.Type(value = GenericFile.class, name = "GenericFile"), @JsonSubTypes.Type(value = MediaImage.class, name = "MediaImage"), diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/MetafieldsSetUserErrorCode.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/MetafieldsSetUserErrorCode.java index be325302..611831f5 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/MetafieldsSetUserErrorCode.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/MetafieldsSetUserErrorCode.java @@ -20,5 +20,7 @@ public enum MetafieldsSetUserErrorCode { INVALID_VALUE, - INVALID_TYPE + INVALID_TYPE, + + APP_NOT_AUTHORIZED } diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Metaobject.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Metaobject.java index 43baf167..fa8f36c1 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Metaobject.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Metaobject.java @@ -9,7 +9,19 @@ import java.util.Objects; /** - * An instance of a user-defined model based on a MetaobjectDefinition. + * An instance of [custom structured + * data](https://shopify.dev/docs/apps/build/metaobjects) defined by a metaobject + * definition. Metaobjects store reusable content that extends beyond standard + * Shopify resources, such as size charts, author profiles, or custom content sections. + * + * Each metaobject contains fields that match the types and validation rules + * specified in its definition. + * [`Metafield`](https://shopify.dev/docs/api/storefront/current/objects/Metafield) + * references can point to metaobjects, connecting custom data with products, + * collections, and other resources. If the definition has the `renderable` + * capability, then the [`seo`](https://shopify.dev/docs/api/storefront/current/objects/Metaobject#field-Metaobject.fields.seo) + * field provides SEO metadata. If it has the `online_store` capability, then the [`onlineStoreUrl`](https://shopify.dev/docs/api/storefront/current/objects/Metaobject#field-Metaobject.fields.onlineStoreUrl) + * field returns the public URL. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE @@ -49,7 +61,7 @@ public class Metaobject implements MenuItemResource, MetafieldReference, com.sho private MetaobjectSEO seo; /** - * The type of the metaobject. Defines the namespace of its associated metafields. + * The type of the metaobject. */ private String type; @@ -131,7 +143,7 @@ public void setSeo(MetaobjectSEO seo) { } /** - * The type of the metaobject. Defines the namespace of its associated metafields. + * The type of the metaobject. */ public String getType() { return type; @@ -216,7 +228,7 @@ public static class Builder { private MetaobjectSEO seo; /** - * The type of the metaobject. Defines the namespace of its associated metafields. + * The type of the metaobject. */ private String type; @@ -290,7 +302,7 @@ public Builder seo(MetaobjectSEO seo) { } /** - * The type of the metaobject. Defines the namespace of its associated metafields. + * The type of the metaobject. */ public Builder type(String type) { this.type = type; diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/MetaobjectField.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/MetaobjectField.java index d6b7ed2f..e8a0f32f 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/MetaobjectField.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/MetaobjectField.java @@ -6,7 +6,9 @@ import java.util.Objects; /** - * Provides the value of a Metaobject field. + * The value of a field within a [`Metaobject`](https://shopify.dev/docs/api/storefront/current/objects/Metaobject). + * For fields that reference other resources, use the [`reference`](https://shopify.dev/docs/api/storefront/current/objects/MetaobjectField#field-MetaobjectField.fields.reference) + * field for single references or [`references`](https://shopify.dev/docs/api/storefront/current/objects/MetaobjectField#field-MetaobjectField.fields.references) for lists. */ public class MetaobjectField { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/MoneyV2.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/MoneyV2.java index a64eb58e..1611a435 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/MoneyV2.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/MoneyV2.java @@ -7,7 +7,9 @@ import java.util.Objects; /** - * A monetary value with currency. + * A precise monetary value with its associated currency. Combines a decimal amount + * with a three-letter [`CurrencyCode`](https://shopify.dev/docs/api/storefront/current/enums/CurrencyCode) + * to express prices, costs, and other financial values. For example, 12.99 USD. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Node.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Node.java index 8acdbbcc..74ff56f9 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Node.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Node.java @@ -5,10 +5,11 @@ import java.lang.String; /** - * An object with an ID field to support global identification, in accordance with the - * [Relay specification](https://relay.dev/graphql/objectidentification.htm#sec-Node-Interface). - * This interface is used by the [node](/docs/api/storefront/latest/queries/node) - * and [nodes](/docs/api/storefront/latest/queries/nodes) queries. + * Enables global object identification following the [Relay specification](https://relay.dev/graphql/objectidentification.htm#sec-Node-Interface). + * Any type implementing this interface has a globally-unique `id` field and can be + * fetched directly using the + * [`node`](https://shopify.dev/docs/api/storefront/current/queries/node) or + * [`nodes`](https://shopify.dev/docs/api/storefront/current/queries/nodes) queries. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NAME, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/OrderFulfillmentStatus.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/OrderFulfillmentStatus.java index c5412681..79360de6 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/OrderFulfillmentStatus.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/OrderFulfillmentStatus.java @@ -1,7 +1,13 @@ package com.shopify.storefront.types; /** - * Represents the order's aggregated fulfillment status for display purposes. + * The aggregated fulfillment status of an + * [`Order`](https://shopify.dev/docs/api/storefront/current/objects/Order), + * summarizing the state of all line items. Used for display purposes. + * + * Statuses range from unfulfilled to fully fulfilled, with intermediate states such as in progress and on hold. + * + * Learn more about [order statuses](https://help.shopify.com/manual/fulfillment/managing-orders/order-status). */ public enum OrderFulfillmentStatus { UNFULFILLED, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Page.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Page.java index 1145d0c6..202cc8a9 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Page.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Page.java @@ -9,8 +9,17 @@ import java.util.Objects; /** - * Shopify merchants can create pages to hold static HTML content. Each Page object - * represents a custom page on the online store. + * A [custom content + * page](https://help.shopify.com/manual/online-store/add-edit-pages) on a + * merchant's store. Pages display HTML-formatted content, such as "About Us", + * contact details, or store policies. + * + * Each page has a unique [`handle`](https://shopify.dev/docs/api/storefront/current/objects/Page#field-Page.fields.handle) + * for URL routing and includes + * [`SEO`](https://shopify.dev/docs/api/storefront/current/objects/SEO) information + * for search engine optimization. Pages support + * [`Metafield`](https://shopify.dev/docs/api/storefront/current/objects/Metafield) + * attachments for storing additional custom data. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/PredictiveSearchResult.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/PredictiveSearchResult.java index d3962535..569bd6dd 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/PredictiveSearchResult.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/PredictiveSearchResult.java @@ -7,8 +7,12 @@ import java.util.Objects; /** - * A predictive search result represents a list of products, collections, pages, articles, and query suggestions - * that matches the predictive search query. + * Returned by the [`predictiveSearch`](https://shopify.dev/docs/api/storefront/current/queries/predictiveSearch) + * query to power type-ahead search experiences. Includes matching + * [`Product`](https://shopify.dev/docs/api/storefront/current/objects/Product), [`Collection`](https://shopify.dev/docs/api/storefront/current/objects/Collection), + * [`Page`](https://shopify.dev/docs/api/storefront/current/objects/Page), and + * [`Article`](https://shopify.dev/docs/api/storefront/current/objects/Article) + * objects, along with query suggestions that help customers refine their search. */ public class PredictiveSearchResult { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/PriceRangeFilter.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/PriceRangeFilter.java index 08dd6a39..417fd001 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/PriceRangeFilter.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/PriceRangeFilter.java @@ -7,7 +7,10 @@ import java.util.Objects; /** - * The input fields for a filter used to view a subset of products in a collection matching a specific price range. + * A price range for filtering products in a collection. Used by the [`ProductFilter`](https://shopify.dev/docs/api/storefront/current/input-objects/ProductFilter) input's [`price`](https://shopify.dev/docs/api/storefront/current/input-objects/ProductFilter#fields-price) field. + * + * > Note: Omitting the [maximum](https://shopify.dev/docs/api/storefront/currents/input-objects/PriceRangeFilter#fields-max) + * returns all products above the [minimum](https://shopify.dev/docs/api/storefront/current/input-objects/PriceRangeFilter#fields-min). */ public class PriceRangeFilter { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/PricingPercentageValue.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/PricingPercentageValue.java index ce60b5cf..3ece6086 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/PricingPercentageValue.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/PricingPercentageValue.java @@ -7,7 +7,10 @@ import java.util.Objects; /** - * The value of the percentage pricing object. + * A percentage discount value applied to cart items or orders. Returned as part of the [`PricingValue`](https://shopify.dev/docs/api/storefront/current/unions/PricingValue) + * union on [discount applications](https://shopify.dev/docs/api/storefront/current/interfaces/DiscountApplication), + * where it represents discounts calculated as a percentage off rather than a + * [fixed amount](https://shopify.dev/docs/api/storefront/current/objects/MoneyV2). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Product.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Product.java index b7aa9532..3959e5df 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Product.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Product.java @@ -10,16 +10,20 @@ import java.util.Objects; /** - * The `Product` object lets you manage products in a merchant’s store. + * Represents an item listed in a shop's catalog. * - * Products are the goods and services that merchants offer to customers. - * They can include various details such as title, description, price, images, and options such as size or color. - * You can use [product variants](/docs/api/storefront/latest/objects/ProductVariant) - * to create or update different versions of the same product. - * You can also add or update product [media](/docs/api/storefront/latest/interfaces/Media). - * Products can be organized by grouping them into a [collection](/docs/api/storefront/latest/objects/Collection). + * Products support multiple [product variants](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant), + * representing different versions of the same product, and can include various + * [media](https://shopify.dev/docs/api/storefront/current/interfaces/Media) types. Use the [`selectedOrFirstAvailableVariant`](https://shopify.dev/docs/api/storefront/current/objects/Product#field-Product.fields.selectedOrFirstAvailableVariant) or [`variantBySelectedOptions`](https://shopify.dev/docs/api/storefront/current/objects/Product#field-Product.fields.variantBySelectedOptions) + * fields to help customers find the right variant based on their selections. * - * Learn more about working with [products and collections](/docs/storefronts/headless/building-with-the-storefront-api/products-collections). + * Products can be organized into [collections](https://shopify.dev/docs/api/storefront/current/objects/Collection), + * associated with [selling + * plans](https://shopify.dev/docs/api/storefront/current/objects/SellingPlanGroup) + * for subscriptions, and extended with custom data through + * [metafields](https://shopify.dev/docs/api/storefront/current/objects/Metafield). + * + * Learn more about working with [products and collections](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/products-collections). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ProductCollectionSortKeys.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ProductCollectionSortKeys.java index 3aafbd42..d2e78895 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ProductCollectionSortKeys.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ProductCollectionSortKeys.java @@ -1,7 +1,11 @@ package com.shopify.storefront.types; /** - * The set of valid sort keys for the ProductCollection query. + * Sort options for products within a [`Collection`](https://shopify.dev/docs/api/storefront/current/objects/Collection). Used by the [`products`](https://shopify.dev/docs/api/storefront/current/objects/Collection#field-Collection.fields.products) + * connection to order results by best-selling, price, title, creation date, or the + * collection's default and manual ordering. + * + * > Note: The [`RELEVANCE`](https://shopify.dev/docs/api/storefront/current/enums/ProductCollectionSortKeys#enums-RELEVANCE) key applies only when you specify a search query. */ public enum ProductCollectionSortKeys { TITLE, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ProductOption.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ProductOption.java index f9671eef..de6fd207 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ProductOption.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ProductOption.java @@ -8,9 +8,15 @@ import java.util.Objects; /** - * Product property names like "Size", "Color", and "Material" that the customers can select. - * Variants are selected based on permutations of these options. - * 255 characters limit each. + * A customizable product attribute that customers select when purchasing, such as + * "Size", "Color", or "Material". Each option has a name and a set of [`ProductOptionValue`](https://shopify.dev/docs/api/storefront/current/objects/ProductOptionValue) + * objects representing the available choices. + * + * Different combinations of option values create distinct [`ProductVariant`](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant) + * objects. Option values can include visual swatches that display colors or images + * to help customers make selections. Option names have a 255-character limit. + * + * Learn more about [Shopify's product model](https://shopify.dev/docs/apps/build/product-merchandising/products-and-collections). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ProductOptionValue.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ProductOptionValue.java index be9f183d..504f04a1 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ProductOptionValue.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ProductOptionValue.java @@ -7,7 +7,16 @@ import java.util.Objects; /** - * The product option value names. For example, "Red", "Blue", and "Green" for a "Color" option. + * A specific value for a [`ProductOption`](https://shopify.dev/docs/api/storefront/current/objects/ProductOption), + * such as "Red" or "Blue" for a "Color" option. Option values combine across + * different options to create [`ProductVariant`](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant) objects. + * + * Each value can include a visual swatch that displays a color or image. The [`firstSelectableVariant`](https://shopify.dev/docs/api/storefront/current/objects/ProductOptionValue#field-ProductOptionValue.fields.firstSelectableVariant) + * field returns the variant that combines this option value with the + * lowest-position values for all other options. This is useful for building + * product selection interfaces. + * + * Learn more about [Shopify's product model](https://shopify.dev/docs/apps/build/product-merchandising/products-and-collections). */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ProductOptionValueSwatch.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ProductOptionValueSwatch.java index 4b76ef5c..510b628c 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ProductOptionValueSwatch.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ProductOptionValueSwatch.java @@ -6,7 +6,9 @@ import java.util.Objects; /** - * The product option value swatch. + * A visual representation for a [`ProductOptionValue`](https://shopify.dev/docs/api/storefront/current/objects/ProductOptionValue), + * such as a color or image. Swatches help customers visualize options like "Red" + * or "Blue" without relying solely on text labels. */ public class ProductOptionValueSwatch { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ProductPriceRange.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ProductPriceRange.java index af8ac0ec..07e29afc 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ProductPriceRange.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ProductPriceRange.java @@ -6,7 +6,8 @@ import java.util.Objects; /** - * The price range of the product. + * The minimum and maximum prices across all variants of a + * [`Product`](https://shopify.dev/docs/api/storefront/current/objects/Product). */ public class ProductPriceRange { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ProductSortKeys.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ProductSortKeys.java index 14673231..5fae299d 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ProductSortKeys.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ProductSortKeys.java @@ -1,7 +1,13 @@ package com.shopify.storefront.types; /** - * The set of valid sort keys for the Product query. + * Sorting options for the + * [`products`](https://shopify.dev/docs/api/storefront/current/queries/products) + * query. Supports sorting products by criteria such as best-selling and price, and + * by product attributes such as type, and vendor. + * + * > Note: Use the [`RELEVANCE`](https://shopify.dev/docs/api/storefront/current/enums/ProductSortKeys#enums-RELEVANCE) + * key only when a search query is specified. */ public enum ProductSortKeys { TITLE, diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ProductVariant.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ProductVariant.java index 938783f1..83e581d7 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ProductVariant.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ProductVariant.java @@ -10,7 +10,18 @@ import java.util.Objects; /** - * A product variant represents a different version of a product, such as differing sizes or differing colors. + * A specific version of a + * [product](https://shopify.dev/docs/api/storefront/current/objects/Product) + * available for sale, differentiated by options like size or color. For example, a + * small blue t-shirt and a large blue t-shirt are separate variants of the same + * product. For more information, see the docs on [Shopify's product model](https://shopify.dev/docs/apps/build/product-merchandising/products-and-collections). + * + * For products with quantity rules, variants enforce minimum, maximum, and increment constraints on purchases. + * + * Variants also support subscriptions and pre-orders through [selling plan allocations](https://shopify.dev/docs/api/storefront/current/objects/SellingPlanAllocation) + * objects, bundle configurations through [product variant components](https://shopify.dev/docs/api/storefront/current/objects/ProductVariantComponent) + * objects, and [shop pay installments pricing](https://shopify.dev/docs/api/storefront/current/objects/ShopPayInstallmentsPricing) + * for flexible payment options. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ProductVariantComponent.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ProductVariantComponent.java index af9b2948..b2308bbe 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ProductVariantComponent.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ProductVariantComponent.java @@ -6,7 +6,12 @@ import java.util.Objects; /** - * Represents a component of a bundle variant. + * An individual product variant included in a [fixed + * bundle](https://shopify.dev/docs/apps/build/product-merchandising/bundles). + * Fixed bundles group multiple products together and sell them as a single unit, + * with the bundle's inventory determined by its components. + * + * Access components through the `ProductVariant` object's [`components`](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant#field-ProductVariant.fields.components) field. */ public class ProductVariantComponent { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/SEO.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/SEO.java index 7a9d5c3c..b7f72912 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/SEO.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/SEO.java @@ -6,7 +6,8 @@ import java.util.Objects; /** - * SEO information. + * Search engine optimization metadata for a resource. The title and description + * appear in search engine results and browser tabs. */ public class SEO { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ScriptDiscountApplication.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ScriptDiscountApplication.java index bf69adb3..83d701a2 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ScriptDiscountApplication.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/ScriptDiscountApplication.java @@ -7,8 +7,9 @@ import java.util.Objects; /** - * Script discount applications capture the intentions of a discount that - * was created by a Shopify Script. + * A discount application created by a Shopify Script. Implements the [`DiscountApplication`](https://shopify.dev/docs/api/storefront/current/interfaces/DiscountApplication) + * interface and captures the discount's value, allocation method, and targeting + * rules at the time the script applied it. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/SearchQuerySuggestion.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/SearchQuerySuggestion.java index aed0f876..3c1165ea 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/SearchQuerySuggestion.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/SearchQuerySuggestion.java @@ -7,7 +7,13 @@ import java.util.Objects; /** - * A search query suggestion. + * A suggested search term returned by the [`predictiveSearch`](https://shopify.dev/docs/api/storefront/current/queries/predictiveSearch) + * query. Query suggestions help customers refine their searches by showing + * relevant terms as they type. + * + * The [`text`](https://shopify.dev/docs/api/storefront/current/objects/SearchQuerySuggestion#field-SearchQuerySuggestion.fields.text) field provides the plain suggestion, while [`styledText`](https://shopify.dev/docs/api/storefront/current/objects/SearchQuerySuggestion#field-SearchQuerySuggestion.fields.styledText) + * includes HTML tags to highlight matching portions. Implements [`Trackable`](https://shopify.dev/docs/api/storefront/current/interfaces/Trackable) + * for analytics reporting on search traffic origins. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/SelectedOption.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/SelectedOption.java index 618f921a..4d52d2d3 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/SelectedOption.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/SelectedOption.java @@ -6,8 +6,9 @@ import java.util.Objects; /** - * Properties used by customers to select a product variant. - * Products can have multiple options, like different sizes or colors. + * A name/value pair representing a product option selection on a variant. The [`ProductVariant`](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant) object's [`selectedOptions`](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant#field-ProductVariant.fields.selectedOptions) + * field returns this to indicate which options define that variant, such as "Size: + * Large" or "Color: Red". */ public class SelectedOption { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/SellingPlan.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/SellingPlan.java index f35e4318..d336a1a0 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/SellingPlan.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/SellingPlan.java @@ -8,7 +8,10 @@ import java.util.Objects; /** - * Represents how products and variants can be sold and purchased. + * Represents deferred or recurring purchase options for + * [products](https://shopify.dev/docs/api/storefront/current/objects/Product) and [product variants](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant), + * such as subscriptions, pre-orders, or try-before-you-buy. Each selling plan belongs to a [`SellingPlanGroup`](https://shopify.dev/docs/api/storefront/current/objects/SellingPlanGroup) + * and defines billing, pricing, inventory, and delivery policies. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/SellingPlanAllocation.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/SellingPlanAllocation.java index 2aa5c9b2..84ea8d94 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/SellingPlanAllocation.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/SellingPlanAllocation.java @@ -7,9 +7,15 @@ import java.util.Objects; /** - * Represents an association between a variant and a selling plan. Selling plan - * allocations describe the options offered for each variant, and the price of the - * variant when purchased with a selling plan. + * Links a [`ProductVariant`](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant) to a [`SellingPlan`](https://shopify.dev/docs/api/storefront/current/objects/SellingPlan), providing the pricing details for that specific combination. Each allocation + * includes the checkout charge amount, any remaining balance due for the purchase, + * and up to two price adjustments that show how the selling plan affects the + * variant's price. + * + * Selling plan allocations are available on product variants and [cart + * lines](https://shopify.dev/docs/api/storefront/current/objects/CartLine), + * enabling storefronts to display information such as subscription or purchase + * option pricing before and during checkout. */ public class SellingPlanAllocation { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/SellingPlanGroup.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/SellingPlanGroup.java index 5164e8bf..f6ac77cc 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/SellingPlanGroup.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/SellingPlanGroup.java @@ -7,9 +7,13 @@ import java.util.Objects; /** - * Represents a selling method. For example, 'Subscribe and save' is a selling - * method where customers pay for goods or services per delivery. A selling plan - * group contains individual selling plans. + * A selling method that defines how products can be sold through purchase options + * like subscriptions, pre-orders, or try-before-you-buy. Groups one or more [`SellingPlan`](https://shopify.dev/docs/api/storefront/current/objects/SellingPlan) + * objects that share the same selling method and options. + * + * The `SellingPlanGroup` acts as a container for one or more individual + * `SellingPlan` objects, enabling merchants to offer multiple options (like weekly + * or monthly deliveries) under one, unified category on a product page. */ public class SellingPlanGroup { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Shop.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Shop.java index 09114a98..36bf9200 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Shop.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Shop.java @@ -8,7 +8,18 @@ import java.util.Objects; /** - * Shop represents a collection of the general settings and information about the shop. + * The central hub for store-wide settings and information accessible through the + * Storefront API. Provides the shop's name, description, and branding + * configuration including logos and colors through the + * [`Brand`](https://shopify.dev/docs/api/storefront/current/objects/Brand) object. + * + * Access store policies such as privacy, refund, shipping, and terms of service via [`ShopPolicy`](https://shopify.dev/docs/api/storefront/current/objects/ShopPolicy), + * and the subscription policy via [`ShopPolicyWithDefault`](https://shopify.dev/docs/api/storefront/current/objects/ShopPolicyWithDefault). [`PaymentSettings`](https://shopify.dev/docs/api/storefront/current/objects/PaymentSettings) + * expose accepted card brands, supported digital wallets, and enabled presentment + * currencies. The object also includes the primary + * [`Domain`](https://shopify.dev/docs/api/storefront/current/objects/Domain), + * countries the shop ships to, [`ShopPayInstallmentsPricing`](https://shopify.dev/docs/api/storefront/current/objects/ShopPayInstallmentsPricing), and [`SocialLoginProvider`](https://shopify.dev/docs/api/storefront/current/objects/SocialLoginProvider) + * options for customer accounts. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE @@ -19,6 +30,16 @@ public class Shop implements MetafieldParentResource, com.shopify.storefront.typ */ private Brand brand; + /** + * Translations for customer accounts. + */ + private List customerAccountTranslations; + + /** + * The URL for the customer account (only present if shop has a customer account vanity domain). + */ + private String customerAccountUrl; + /** * A description of the shop. */ @@ -86,6 +107,11 @@ public class Shop implements MetafieldParentResource, com.shopify.storefront.typ */ private ShopPayInstallmentsPricing shopPayInstallmentsPricing; + /** + * The social login providers for customer accounts. + */ + private List socialLoginProviders; + /** * The shop’s subscription policy. */ @@ -110,6 +136,28 @@ public void setBrand(Brand brand) { this.brand = brand; } + /** + * Translations for customer accounts. + */ + public List getCustomerAccountTranslations() { + return customerAccountTranslations; + } + + public void setCustomerAccountTranslations(List customerAccountTranslations) { + this.customerAccountTranslations = customerAccountTranslations; + } + + /** + * The URL for the customer account (only present if shop has a customer account vanity domain). + */ + public String getCustomerAccountUrl() { + return customerAccountUrl; + } + + public void setCustomerAccountUrl(String customerAccountUrl) { + this.customerAccountUrl = customerAccountUrl; + } + /** * A description of the shop. */ @@ -255,6 +303,17 @@ public void setShopPayInstallmentsPricing(ShopPayInstallmentsPricing shopPayInst this.shopPayInstallmentsPricing = shopPayInstallmentsPricing; } + /** + * The social login providers for customer accounts. + */ + public List getSocialLoginProviders() { + return socialLoginProviders; + } + + public void setSocialLoginProviders(List socialLoginProviders) { + this.socialLoginProviders = socialLoginProviders; + } + /** * The shop’s subscription policy. */ @@ -279,7 +338,7 @@ public void setTermsOfService(ShopPolicy termsOfService) { @Override public String toString() { - return "Shop{brand='" + brand + "', description='" + description + "', id='" + id + "', metafield='" + metafield + "', metafields='" + metafields + "', moneyFormat='" + moneyFormat + "', name='" + name + "', paymentSettings='" + paymentSettings + "', primaryDomain='" + primaryDomain + "', privacyPolicy='" + privacyPolicy + "', refundPolicy='" + refundPolicy + "', shippingPolicy='" + shippingPolicy + "', shipsToCountries='" + shipsToCountries + "', shopPayInstallmentsPricing='" + shopPayInstallmentsPricing + "', subscriptionPolicy='" + subscriptionPolicy + "', termsOfService='" + termsOfService + "'}"; + return "Shop{brand='" + brand + "', customerAccountTranslations='" + customerAccountTranslations + "', customerAccountUrl='" + customerAccountUrl + "', description='" + description + "', id='" + id + "', metafield='" + metafield + "', metafields='" + metafields + "', moneyFormat='" + moneyFormat + "', name='" + name + "', paymentSettings='" + paymentSettings + "', primaryDomain='" + primaryDomain + "', privacyPolicy='" + privacyPolicy + "', refundPolicy='" + refundPolicy + "', shippingPolicy='" + shippingPolicy + "', shipsToCountries='" + shipsToCountries + "', shopPayInstallmentsPricing='" + shopPayInstallmentsPricing + "', socialLoginProviders='" + socialLoginProviders + "', subscriptionPolicy='" + subscriptionPolicy + "', termsOfService='" + termsOfService + "'}"; } @Override @@ -288,6 +347,8 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) return false; Shop that = (Shop) o; return Objects.equals(brand, that.brand) && + Objects.equals(customerAccountTranslations, that.customerAccountTranslations) && + Objects.equals(customerAccountUrl, that.customerAccountUrl) && Objects.equals(description, that.description) && Objects.equals(id, that.id) && Objects.equals(metafield, that.metafield) && @@ -301,13 +362,14 @@ public boolean equals(Object o) { Objects.equals(shippingPolicy, that.shippingPolicy) && Objects.equals(shipsToCountries, that.shipsToCountries) && Objects.equals(shopPayInstallmentsPricing, that.shopPayInstallmentsPricing) && + Objects.equals(socialLoginProviders, that.socialLoginProviders) && Objects.equals(subscriptionPolicy, that.subscriptionPolicy) && Objects.equals(termsOfService, that.termsOfService); } @Override public int hashCode() { - return Objects.hash(brand, description, id, metafield, metafields, moneyFormat, name, paymentSettings, primaryDomain, privacyPolicy, refundPolicy, shippingPolicy, shipsToCountries, shopPayInstallmentsPricing, subscriptionPolicy, termsOfService); + return Objects.hash(brand, customerAccountTranslations, customerAccountUrl, description, id, metafield, metafields, moneyFormat, name, paymentSettings, primaryDomain, privacyPolicy, refundPolicy, shippingPolicy, shipsToCountries, shopPayInstallmentsPricing, socialLoginProviders, subscriptionPolicy, termsOfService); } public static Builder newBuilder() { @@ -320,6 +382,16 @@ public static class Builder { */ private Brand brand; + /** + * Translations for customer accounts. + */ + private List customerAccountTranslations; + + /** + * The URL for the customer account (only present if shop has a customer account vanity domain). + */ + private String customerAccountUrl; + /** * A description of the shop. */ @@ -387,6 +459,11 @@ public static class Builder { */ private ShopPayInstallmentsPricing shopPayInstallmentsPricing; + /** + * The social login providers for customer accounts. + */ + private List socialLoginProviders; + /** * The shop’s subscription policy. */ @@ -400,6 +477,8 @@ public static class Builder { public Shop build() { Shop result = new Shop(); result.brand = this.brand; + result.customerAccountTranslations = this.customerAccountTranslations; + result.customerAccountUrl = this.customerAccountUrl; result.description = this.description; result.id = this.id; result.metafield = this.metafield; @@ -413,6 +492,7 @@ public Shop build() { result.shippingPolicy = this.shippingPolicy; result.shipsToCountries = this.shipsToCountries; result.shopPayInstallmentsPricing = this.shopPayInstallmentsPricing; + result.socialLoginProviders = this.socialLoginProviders; result.subscriptionPolicy = this.subscriptionPolicy; result.termsOfService = this.termsOfService; return result; @@ -426,6 +506,22 @@ public Builder brand(Brand brand) { return this; } + /** + * Translations for customer accounts. + */ + public Builder customerAccountTranslations(List customerAccountTranslations) { + this.customerAccountTranslations = customerAccountTranslations; + return this; + } + + /** + * The URL for the customer account (only present if shop has a customer account vanity domain). + */ + public Builder customerAccountUrl(String customerAccountUrl) { + this.customerAccountUrl = customerAccountUrl; + return this; + } + /** * A description of the shop. */ @@ -533,6 +629,14 @@ public Builder shopPayInstallmentsPricing( return this; } + /** + * The social login providers for customer accounts. + */ + public Builder socialLoginProviders(List socialLoginProviders) { + this.socialLoginProviders = socialLoginProviders; + return this; + } + /** * The shop’s subscription policy. */ diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/SitemapResourceMetaobject.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/SitemapResourceMetaobject.java index 95941632..cc17ae0e 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/SitemapResourceMetaobject.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/SitemapResourceMetaobject.java @@ -26,7 +26,7 @@ public class SitemapResourceMetaobject implements com.shopify.storefront.types.S private String onlineStoreUrlHandle; /** - * The type of the metaobject. Defines the namespace of its associated metafields. + * The type of the metaobject. */ private String type; @@ -61,7 +61,7 @@ public void setOnlineStoreUrlHandle(String onlineStoreUrlHandle) { } /** - * The type of the metaobject. Defines the namespace of its associated metafields. + * The type of the metaobject. */ public String getType() { return type; @@ -119,7 +119,7 @@ public static class Builder { private String onlineStoreUrlHandle; /** - * The type of the metaobject. Defines the namespace of its associated metafields. + * The type of the metaobject. */ private String type; @@ -154,7 +154,7 @@ public Builder onlineStoreUrlHandle(String onlineStoreUrlHandle) { } /** - * The type of the metaobject. Defines the namespace of its associated metafields. + * The type of the metaobject. */ public Builder type(String type) { this.type = type; diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/SocialLoginProvider.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/SocialLoginProvider.java new file mode 100644 index 00000000..1505f9a1 --- /dev/null +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/SocialLoginProvider.java @@ -0,0 +1,73 @@ +package com.shopify.storefront.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * A social login provider for customer accounts. + */ +public class SocialLoginProvider { + /** + * The handle of the social login provider. + */ + private String handle; + + public SocialLoginProvider() { + } + + /** + * The handle of the social login provider. + */ + public String getHandle() { + return handle; + } + + public void setHandle(String handle) { + this.handle = handle; + } + + @Override + public String toString() { + return "SocialLoginProvider{handle='" + handle + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + SocialLoginProvider that = (SocialLoginProvider) o; + return Objects.equals(handle, that.handle); + } + + @Override + public int hashCode() { + return Objects.hash(handle); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The handle of the social login provider. + */ + private String handle; + + public SocialLoginProvider build() { + SocialLoginProvider result = new SocialLoginProvider(); + result.handle = this.handle; + return result; + } + + /** + * The handle of the social login provider. + */ + public Builder handle(String handle) { + this.handle = handle; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/StoreAvailability.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/StoreAvailability.java index cb6f6a6f..9bdc4304 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/StoreAvailability.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/StoreAvailability.java @@ -6,8 +6,15 @@ import java.util.Objects; /** - * The availability of a product variant at a particular location. - * Local pick-up must be enabled in the store's shipping settings, otherwise this will return an empty result. + * Inventory information for a product variant at a physical store location that + * offers local pickup. Includes stock availability, quantity on hand, and + * estimated pickup readiness time. + * + * Local pickup must be [enabled in the store's shipping settings](https://help.shopify.com/manual/shipping/setting-up-and-managing-your-shipping/local-methods/local-pickup) + * for this data to be returned. Results can be sorted by proximity to a customer's + * location using the `near` argument on the [`ProductVariant.storeAvailability`](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant#field-ProductVariant.fields.storeAvailability) connection. + * + * Learn more about [supporting local pickup on storefronts](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/products-collections/local-pickup). */ public class StoreAvailability { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Swatch.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Swatch.java index b657d5db..0209d586 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Swatch.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Swatch.java @@ -6,7 +6,8 @@ import java.util.Objects; /** - * Color and image for visual representation. + * A visual representation for filter values, containing a color, an image, or both. The [`FilterValue`](https://shopify.dev/docs/api/storefront/current/objects/FilterValue) object's [`swatch`](https://shopify.dev/docs/api/storefront/current/objects/FilterValue#field-FilterValue.fields.swatch) + * field returns this when the filter's presentation is set to `SWATCH`. */ public class Swatch { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/TaxonomyCategory.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/TaxonomyCategory.java index 5808a86b..ba604a03 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/TaxonomyCategory.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/TaxonomyCategory.java @@ -8,7 +8,16 @@ import java.util.Objects; /** - * The taxonomy category for the product. + * A category from Shopify's [Standard Product Taxonomy](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) assigned to + * a [`Product`](https://shopify.dev/docs/api/storefront/current/objects/Product). + * Categories provide hierarchical classification through the `ancestors` field. + * + * The [`ancestors`](https://shopify.dev/docs/api/storefront/current/objects/TaxonomyCategory#field-TaxonomyCategory.fields.ancestors) field returns the parent chain from the immediate parent up to the root. Each + * ancestor category also includes its own `ancestors`. + * + * The [`name`](https://shopify.dev/docs/api/storefront/latest/objects/TaxonomyCategory#field-TaxonomyCategory.fields.name) field returns the localized category name based on the storefront's request + * language with shop locale fallbacks. If a translation isn't available for the + * resolved locale, the English taxonomy name is returned. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Translation.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Translation.java new file mode 100644 index 00000000..dbf818fc --- /dev/null +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Translation.java @@ -0,0 +1,104 @@ +package com.shopify.storefront.types; + +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * Translation represents a translation of a key-value pair. + */ +public class Translation { + /** + * The key of the translation. + */ + private String key; + + /** + * The value of the translation. + */ + private String value; + + public Translation() { + } + + /** + * The key of the translation. + */ + public String getKey() { + return key; + } + + public void setKey(String key) { + this.key = key; + } + + /** + * The value of the translation. + */ + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + @Override + public String toString() { + return "Translation{key='" + key + "', value='" + value + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Translation that = (Translation) o; + return Objects.equals(key, that.key) && + Objects.equals(value, that.value); + } + + @Override + public int hashCode() { + return Objects.hash(key, value); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The key of the translation. + */ + private String key; + + /** + * The value of the translation. + */ + private String value; + + public Translation build() { + Translation result = new Translation(); + result.key = this.key; + result.value = this.value; + return result; + } + + /** + * The key of the translation. + */ + public Builder key(String key) { + this.key = key; + return this; + } + + /** + * The value of the translation. + */ + public Builder value(String value) { + this.value = value; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/UnitPriceMeasurement.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/UnitPriceMeasurement.java index 93119bc0..3595a58e 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/UnitPriceMeasurement.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/UnitPriceMeasurement.java @@ -6,7 +6,13 @@ import java.util.Objects; /** - * The measurement used to calculate a unit price for a product variant (e.g. $9.99 / 100ml). + * The measurement data used to calculate unit prices for a [`ProductVariant`](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant). + * Unit pricing helps customers compare costs across different package sizes by + * showing a standardized price, such as "$9.99 / 100ml". + * + * The object includes the quantity being sold (value and unit) and the reference + * measurement used for price comparison. Use this alongside the variant's [`unitPrice`](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant#field-ProductVariant.fields.unitPrice) + * field to display complete unit pricing information. */ public class UnitPriceMeasurement { /** diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/UnitPriceMeasurementMeasuredType.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/UnitPriceMeasurementMeasuredType.java index a6feb10b..4f0a20c4 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/UnitPriceMeasurementMeasuredType.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/UnitPriceMeasurementMeasuredType.java @@ -10,5 +10,9 @@ public enum UnitPriceMeasurementMeasuredType { LENGTH, - AREA + AREA, + + COUNT, + + UNKNOWN } diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/UnitPriceMeasurementMeasuredUnit.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/UnitPriceMeasurementMeasuredUnit.java index 6158e3f1..d9268128 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/UnitPriceMeasurementMeasuredUnit.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/UnitPriceMeasurementMeasuredUnit.java @@ -12,17 +12,41 @@ public enum UnitPriceMeasurementMeasuredUnit { M3, + FLOZ, + + PT, + + QT, + + GAL, + MG, G, KG, + LB, + + OZ, + MM, CM, M, - M2 + IN, + + FT, + + YD, + + M2, + + FT2, + + ITEM, + + UNKNOWN } diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Video.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Video.java index 780b2656..dfbc6b0c 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Video.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/Video.java @@ -8,7 +8,14 @@ import java.util.Objects; /** - * Represents a Shopify hosted video. + * A video hosted on Shopify's servers. Implements the + * [`Media`](https://shopify.dev/docs/api/storefront/current/interfaces/Media) + * interface and provides multiple video sources through the [`sources`](https://shopify.dev/docs/api/storefront/current/objects/Video#field-Video.fields.sources) + * field, each with [format](https://shopify.dev/docs/api/storefront/current/objects/Video#field-Video.fields.sources.format), + * dimensions, and [URL information](https://shopify.dev/docs/api/storefront/current/objects/Video#field-Video.fields.sources.url) + * for adaptive playback. + * + * For videos hosted on external platforms like YouTube or Vimeo, use [`ExternalVideo`](https://shopify.dev/docs/api/storefront/current/objects/ExternalVideo) instead. */ @JsonTypeInfo( use = JsonTypeInfo.Id.NONE diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/VisitorConsent.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/VisitorConsent.java new file mode 100644 index 00000000..f768b3eb --- /dev/null +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/VisitorConsent.java @@ -0,0 +1,169 @@ +package com.shopify.storefront.types; + +import java.lang.Boolean; +import java.lang.Object; +import java.lang.Override; +import java.lang.String; +import java.util.Objects; + +/** + * The visitor's consent to data processing purposes for the shop. true means + * accepting the purposes, false means declining them, and null means that the + * visitor didn't express a preference. + */ +public class VisitorConsent { + /** + * The visitor accepts or rejects the preferences data processing purpose. + */ + private Boolean preferences; + + /** + * The visitor accepts or rejects the analytics data processing purpose. + */ + private Boolean analytics; + + /** + * The visitor accepts or rejects the first and third party marketing data processing purposes. + */ + private Boolean marketing; + + /** + * The visitor accepts or rejects the sale or sharing of their data with third parties. + */ + private Boolean saleOfData; + + public VisitorConsent() { + } + + /** + * The visitor accepts or rejects the preferences data processing purpose. + */ + public Boolean getPreferences() { + return preferences; + } + + public void setPreferences(Boolean preferences) { + this.preferences = preferences; + } + + /** + * The visitor accepts or rejects the analytics data processing purpose. + */ + public Boolean getAnalytics() { + return analytics; + } + + public void setAnalytics(Boolean analytics) { + this.analytics = analytics; + } + + /** + * The visitor accepts or rejects the first and third party marketing data processing purposes. + */ + public Boolean getMarketing() { + return marketing; + } + + public void setMarketing(Boolean marketing) { + this.marketing = marketing; + } + + /** + * The visitor accepts or rejects the sale or sharing of their data with third parties. + */ + public Boolean getSaleOfData() { + return saleOfData; + } + + public void setSaleOfData(Boolean saleOfData) { + this.saleOfData = saleOfData; + } + + @Override + public String toString() { + return "VisitorConsent{preferences='" + preferences + "', analytics='" + analytics + "', marketing='" + marketing + "', saleOfData='" + saleOfData + "'}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + VisitorConsent that = (VisitorConsent) o; + return Objects.equals(preferences, that.preferences) && + Objects.equals(analytics, that.analytics) && + Objects.equals(marketing, that.marketing) && + Objects.equals(saleOfData, that.saleOfData); + } + + @Override + public int hashCode() { + return Objects.hash(preferences, analytics, marketing, saleOfData); + } + + public static Builder newBuilder() { + return new Builder(); + } + + public static class Builder { + /** + * The visitor accepts or rejects the preferences data processing purpose. + */ + private Boolean preferences; + + /** + * The visitor accepts or rejects the analytics data processing purpose. + */ + private Boolean analytics; + + /** + * The visitor accepts or rejects the first and third party marketing data processing purposes. + */ + private Boolean marketing; + + /** + * The visitor accepts or rejects the sale or sharing of their data with third parties. + */ + private Boolean saleOfData; + + public VisitorConsent build() { + VisitorConsent result = new VisitorConsent(); + result.preferences = this.preferences; + result.analytics = this.analytics; + result.marketing = this.marketing; + result.saleOfData = this.saleOfData; + return result; + } + + /** + * The visitor accepts or rejects the preferences data processing purpose. + */ + public Builder preferences(Boolean preferences) { + this.preferences = preferences; + return this; + } + + /** + * The visitor accepts or rejects the analytics data processing purpose. + */ + public Builder analytics(Boolean analytics) { + this.analytics = analytics; + return this; + } + + /** + * The visitor accepts or rejects the first and third party marketing data processing purposes. + */ + public Builder marketing(Boolean marketing) { + this.marketing = marketing; + return this; + } + + /** + * The visitor accepts or rejects the sale or sharing of their data with third parties. + */ + public Builder saleOfData(Boolean saleOfData) { + this.saleOfData = saleOfData; + return this; + } + } +} diff --git a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/WeightUnit.java b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/WeightUnit.java index 94534071..6d9ab6a6 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/WeightUnit.java +++ b/mvn/java-shopify-graphql-storefront/src/main/java/com/shopify/storefront/types/WeightUnit.java @@ -1,7 +1,8 @@ package com.shopify.storefront.types; /** - * Units of measurement for weight. + * Units of measurement for weight, supporting both metric and imperial systems. Used by [`ProductVariant`](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant) + * to specify the unit for the variant's weight value. */ public enum WeightUnit { KILOGRAMS, diff --git a/mvn/java-shopify-graphql-storefront/src/main/resources/schema/schema.graphql b/mvn/java-shopify-graphql-storefront/src/main/resources/schema/schema.graphql index 825bf128..f3985bb9 100644 --- a/mvn/java-shopify-graphql-storefront/src/main/resources/schema/schema.graphql +++ b/mvn/java-shopify-graphql-storefront/src/main/resources/schema/schema.graphql @@ -1,40 +1,9 @@ -""" -Requires that exactly one field must be supplied and that field must not be `null`. -""" -directive @oneOf on INPUT_OBJECT - -"""Exposes a URL that specifies the behavior of this scalar.""" -directive @specifiedBy( - """The URL that specifies the behavior of this scalar.""" - url: String! -) on SCALAR - """Marks an element of a GraphQL schema as having restricted access.""" directive @accessRestricted( """Explains the reason around this restriction""" reason: String = null ) on FIELD_DEFINITION | OBJECT -""" -Contextualizes data based on the additional information provided by the -directive. For example, you can use the `@inContext(country: CA)` directive to -[query a product's price](https://shopify.dev/custom-storefronts/internationalization/international-pricing) -in a storefront within the context of Canada. -""" -directive @inContext( - """The country code for context. For example, `CA`.""" - country: CountryCode - - """The language code for context. For example, `EN`.""" - language: LanguageCode - - """The identifier of the customer's preferred location.""" - preferredLocationId: ID - - """The buyer's identity.""" - buyer: BuyerInput -) on QUERY | MUTATION - """ Informs the server to delay the execution of the current fragment, potentially resulting in multiple responses from the server. Non-deferred data is delivered @@ -60,8 +29,47 @@ directive @defer( ) on FRAGMENT_SPREAD | INLINE_FRAGMENT """ -A version of the API, as defined by [Shopify API versioning](https://shopify.dev/api/usage/versioning). -Versions are commonly referred to by their handle (for example, `2021-10`). +Contextualizes data based on the additional information provided by the +directive. For example, you can use the `@inContext(country: CA)` directive to +[query a product's price](https://shopify.dev/custom-storefronts/internationalization/international-pricing) +in a storefront within the context of Canada. +""" +directive @inContext( + """The country code for context. For example, `CA`.""" + country: CountryCode + + """The language code for context. For example, `EN`.""" + language: LanguageCode + + """The identifier of the customer's preferred location.""" + preferredLocationId: ID + + """The buyer's identity.""" + buyer: BuyerInput + + """The visitor's consent preferences for data processing purposes.""" + visitorConsent: VisitorConsent +) on QUERY | MUTATION + +""" +Requires that exactly one field must be supplied and that field must not be `null`. +""" +directive @oneOf on INPUT_OBJECT + +"""Exposes a URL that specifies the behavior of this scalar.""" +directive @specifiedBy( + """The URL that specifies the behavior of this scalar.""" + url: String! +) on SCALAR + +""" +A version of the Shopify API. Each version has a unique handle in date-based +format (YYYY-MM) or `unstable` for the development version. + +Shopify guarantees supported versions are stable. Unsupported versions include +unstable and release candidate versions. Use the [`publicApiVersions`](https://shopify.dev/docs/api/storefront/current/queries/publicApiVersions) +query to retrieve all available versions. Learn more about [Shopify API +versioning](https://shopify.dev/docs/api/usage/versioning). """ type ApiVersion { @@ -149,7 +157,19 @@ type AppliedGiftCard implements Node { presentmentAmountUsed: MoneyV2! } -"""An article in an online store blog.""" +""" +A post that belongs to a +[`Blog`](https://shopify.dev/docs/api/storefront/current/objects/Blog). Each +article includes content with optional HTML formatting, an excerpt for previews, [`ArticleAuthor`](https://shopify.dev/docs/api/storefront/current/objects/ArticleAuthor) +information, and an associated +[`Image`](https://shopify.dev/docs/api/storefront/current/objects/Image). + +Articles can be organized with tags and include +[`SEO`](https://shopify.dev/docs/api/storefront/current/objects/SEO) metadata. You can manage +[comments](https://shopify.dev/docs/api/storefront/current/objects/Comment) when +the blog's comment policy enables them. + +""" type Article implements HasMetafields & Node & OnlineStorePublishable & Trackable { """The article's author.""" author: ArticleAuthor! @deprecated(reason: "Use `authorV2` instead.") @@ -339,7 +359,18 @@ enum ArticleSortKeys { } """ -Represents a generic custom attribute, such as whether an order is a customer's first. +A custom key-value pair for storing additional information on +[carts](https://shopify.dev/docs/api/storefront/current/objects/Cart), [cart +lines](https://shopify.dev/docs/api/storefront/current/objects/CartLine), +[orders](https://shopify.dev/docs/api/storefront/current/objects/Order), and [order line +items](https://shopify.dev/docs/api/storefront/current/objects/OrderLineItem). +Common uses include gift wrapping requests, customer notes, and tracking whether +a customer is a first-time buyer. + +Attributes set on a cart carry over to the resulting order after checkout. Use the [`cartAttributesUpdate`](https://shopify.dev/docs/api/storefront/current/mutations/cartAttributesUpdate) +mutation to add or modify cart attributes. For a step-by-step guide, see +[managing carts with the Storefront API](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/cart/manage). + """ type Attribute { """ @@ -355,7 +386,14 @@ type Attribute { value: String } -"""The input fields for an attribute.""" +""" +A custom key-value pair that stores additional information on a +[cart](https://shopify.dev/docs/api/storefront/current/objects/Cart) or [cart +line](https://shopify.dev/docs/api/storefront/current/objects/CartLine). +Attributes capture additional information like gift messages, special +instructions, or custom order details. Learn more about [managing carts with the Storefront API](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/cart/manage). + +""" input AttributeInput { """Key or name of the attribute.""" key: String! @@ -365,7 +403,10 @@ input AttributeInput { } """ -Automatic discount applications capture the intentions of a discount that was automatically applied. +An [automatic discount](https://help.shopify.com/manual/discounts/discount-methods/automatic-discounts) applied to a cart or checkout without requiring a discount code. Implements the [`DiscountApplication`](https://shopify.dev/docs/api/storefront/current/interfaces/DiscountApplication) interface. + +Includes the discount's title, value, and allocation details that specify how +the discount amount distributes across entitled line items or shipping lines. """ type AutomaticDiscountApplication implements DiscountApplication { @@ -387,7 +428,16 @@ type AutomaticDiscountApplication implements DiscountApplication { value: PricingValue! } -"""Represents a cart line common fields.""" +""" +Defines the shared fields for items in a shopping cart. Implemented by +[`CartLine`](https://shopify.dev/docs/api/storefront/current/objects/CartLine) +for individual merchandise and [`ComponentizableCartLine`](https://shopify.dev/docs/api/storefront/current/objects/ComponentizableCartLine) +for grouped merchandise like bundles. + +Each implementation includes the merchandise being purchased, quantity, cost +breakdown, applied discounts, custom attributes, and any associated [`SellingPlan`](https://shopify.dev/docs/api/storefront/current/objects/SellingPlan). + +""" interface BaseCartLine { """An attribute associated with the cart line.""" attribute( @@ -458,7 +508,18 @@ type BaseCartLineEdge { node: BaseCartLine! } -"""An online store blog.""" +""" +A blog container for +[`Article`](https://shopify.dev/docs/api/storefront/current/objects/Article) +objects. Stores can have multiple blogs, for example to organize content by +topic or purpose. + +Each blog provides access to its articles, contributing [`ArticleAuthor`](https://shopify.dev/docs/api/storefront/current/objects/ArticleAuthor) objects, +and [`SEO`](https://shopify.dev/docs/api/storefront/current/objects/SEO) +information. You can retrieve articles individually [by handle](https://shopify.dev/docs/api/storefront/current/objects/Blog#field-Blog.fields.articleByHandle) +or as a [paginated list](https://shopify.dev/docs/api/storefront/current/objects/Blog#field-Blog.fields.articles). + +""" type Blog implements HasMetafields & Node & OnlineStorePublishable { """Find an article by its handle.""" articleByHandle( @@ -603,7 +664,9 @@ enum BlogSortKeys { } """ -The store's [branding configuration](https://help.shopify.com/en/manual/promoting-marketing/managing-brand-assets). +The store's [branding configuration](https://help.shopify.com/manual/promoting-marketing/managing-brand-assets), +such as logos, colors, and slogan. Access this through the [`Shop`](https://shopify.dev/docs/api/storefront/current/objects/Shop#field-Shop.fields.brand) +object to display consistent brand assets across your storefront. """ type Brand { @@ -651,7 +714,12 @@ type BrandColors { } """ -The input fields for obtaining the buyer's identity. +Identifies a B2B buyer for the [`@inContext`](https://shopify.dev/docs/storefronts/headless/bring-your-own-stack/b2b) +directive. Pass this input to contextualize Storefront API queries with data +like B2B-specific pricing, quantity rules, and quantity price breaks. + +For B2B customers with access to multiple company locations, include the [`companyLocationId`](https://shopify.dev/docs/api/storefront/latest/input-objects/BuyerInput#fields-companyLocationId) +to specify which location they're purchasing for. """ input BuyerInput { @@ -689,10 +757,12 @@ enum CardBrand { } """ -A cart represents the merchandise that a buyer intends to purchase, -and the estimated cost associated with the cart. Learn how to -[interact with a cart](https://shopify.dev/custom-storefronts/internationalization/international-pricing) -during a customer's session. +A cart represents the merchandise that a buyer intends to purchase, and the +estimated cost associated with the cart, throughout a customer's session. + +Use the [`checkoutUrl`](https://shopify.dev/docs/api/storefront/current/objects/Cart#field-checkoutUrl) field to direct buyers to Shopify's web checkout to complete their purchase. + +Learn more about [interacting with carts](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/cart/manage). """ type Cart implements HasMetafields & Node { @@ -845,7 +915,10 @@ type Cart implements HasMetafields & Node { union CartAddress = CartDeliveryAddress """ -The input fields to provide exactly one of a variety of delivery address types. +Specifies a delivery address for a cart. Provide either a [`deliveryAddress`](https://shopify.dev/docs/api/storefront/current/input-objects/CartAddressInput#fields-deliveryAddress) +with full address details, or a [`copyFromCustomerAddressId`](https://shopify.dev/docs/api/storefront/current/input-objects/CartAddressInput#fields-copyFromCustomerAddressId) +to copy from an existing customer address. Used by [`CartSelectableAddressInput`](https://shopify.dev/docs/api/storefront/current/input-objects/CartSelectableAddressInput) and [`CartSelectableAddressUpdateInput`](https://shopify.dev/docs/api/storefront/current/input-objects/CartSelectableAddressUpdateInput). + """ input CartAddressInput { """A delivery address stored on this cart.""" @@ -868,7 +941,10 @@ type CartAttributesUpdatePayload { } """ -The discounts automatically applied to the cart line based on prerequisites that have been met. +A discount allocation [that applies automatically](https://help.shopify.com/manual/discounts/discount-methods/automatic-discounts) +to a cart line when configured conditions are met. Unlike [`CartCodeDiscountAllocation`](https://shopify.dev/docs/api/storefront/current/objects/CartCodeDiscountAllocation), +automatic discounts don't require customers to enter a code. + """ type CartAutomaticDiscountAllocation implements CartDiscountAllocation { """The discount that have been applied on the cart line.""" @@ -897,7 +973,16 @@ type CartBillingAddressUpdatePayload { } """ -Represents information about the buyer that is interacting with the cart. +Contact information about the buyer interacting with a +[cart](https://shopify.dev/docs/api/storefront/current/objects/Cart). The +buyer's country determines [international pricing](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/markets/international-pricing) +and should match their shipping address. + +For B2B scenarios, the [`purchasingCompany`](https://shopify.dev/docs/api/storefront/current/objects/CartBuyerIdentity#field-CartBuyerIdentity.fields.purchasingCompany) +field identifies the company and location on whose behalf a business customer purchases. The [`preferences`](https://shopify.dev/docs/api/storefront/current/objects/CartBuyerIdentity#field-CartBuyerIdentity.fields.preferences) +field stores delivery and wallet settings that prefill checkout fields to +streamline the buying process. + """ type CartBuyerIdentity { """The country where the buyer is located.""" @@ -939,11 +1024,15 @@ type CartBuyerIdentity { } """ -Specifies the input fields to update the buyer information associated with a cart. -Buyer identity is used to determine -[international pricing](https://shopify.dev/custom-storefronts/internationalization/international-pricing) +The input fields for identifying the buyer associated with a cart. Buyer +identity determines [international pricing](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/markets/international-pricing) and should match the customer's shipping address. +Used by [`cartCreate`](https://shopify.dev/docs/api/storefront/current/mutations/cartCreate) and [`cartBuyerIdentityUpdate`](https://shopify.dev/docs/api/storefront/current/mutations/cartBuyerIdentityUpdate) to set contact information, location, and checkout preferences. + +> Note: +> Preferences prefill fields at checkout but don't sync back to the cart if overwritten. + """ input CartBuyerIdentityInput { """The email address of the buyer that is interacting with the cart.""" @@ -997,8 +1086,23 @@ enum CartCardSource { SAVED_CREDIT_CARD } +"""Return type for `cartClone` mutation.""" +type CartClonePayload { + """ + The newly created cart without PII. This is a different cart from the source. + """ + cart: Cart + + """The list of errors that occurred from executing the mutation.""" + userErrors: [CartUserError!]! + + """A list of warnings that occurred during the mutation.""" + warnings: [CartWarning!]! +} + """ -The discount that has been applied to the cart line using a discount code. +A discount allocation applied to a cart line when a customer enters a [discount code](https://help.shopify.com/manual/discounts/discount-methods/discount-codes). + """ type CartCodeDiscountAllocation implements CartDiscountAllocation { """The code used to apply the discount.""" @@ -1063,9 +1167,15 @@ type CartCompletionSuccess { } """ -The costs that the buyer will pay at checkout. -The cart cost uses [`CartBuyerIdentity`](https://shopify.dev/api/storefront/reference/cart/cartbuyeridentity) to determine -[international pricing](https://shopify.dev/custom-storefronts/internationalization/international-pricing). +The estimated costs that a buyer will pay at checkout. The `Cart` object's [`cost`](https://shopify.dev/docs/api/storefront/current/objects/Cart#field-Cart.fields.cost) +field returns this. The costs are subject to change and changes will be +reflected at checkout. Costs reflect [international pricing](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/markets/international-pricing) +based on the buyer's context. + +Amounts include the subtotal before taxes and cart-level discounts, the checkout +charge amount excluding deferred payments, and the total. The subtotal and total +amounts each include a corresponding boolean field indicating whether the value +is an estimate. """ type CartCost { @@ -1245,6 +1355,18 @@ type CartDeliveryAddressesRemovePayload { warnings: [CartWarning!]! } +"""Return type for `cartDeliveryAddressesReplace` mutation.""" +type CartDeliveryAddressesReplacePayload { + """The updated cart.""" + cart: Cart + + """The list of errors that occurred from executing the mutation.""" + userErrors: [CartUserError!]! + + """A list of warnings that occurred during the mutation.""" + warnings: [CartWarning!]! +} + """Return type for `cartDeliveryAddressesUpdate` mutation.""" type CartDeliveryAddressesUpdatePayload { """The updated cart.""" @@ -1354,7 +1476,15 @@ input CartDeliveryCoordinatesPreferenceInput { } """ -Information about the options available for one or more line items to be delivered to a specific address. +Groups cart line items that share the same delivery destination. Each group +provides the available [`CartDeliveryOption`](https://shopify.dev/docs/api/storefront/current/objects/CartDeliveryOption) +choices for that address, along with the customer's selected option. + +Access through the +[`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart) object's +`deliveryGroups` field. Items are grouped by merchandise type (one-time purchase +vs subscription), allowing different delivery methods for each. + """ type CartDeliveryGroup { """A list of cart lines for the delivery group.""" @@ -1444,7 +1574,14 @@ input CartDeliveryInput { addresses: [CartSelectableAddressInput!] } -"""Information about a delivery option.""" +""" +A shipping or delivery choice available to customers during checkout. Each +option includes a title, estimated cost, and delivery method type such as +shipping or local pickup. + +Returned by the [`CartDeliveryGroup`](https://shopify.dev/docs/api/storefront/current/objects/CartDeliveryGroup) object's [`deliveryOptions`](https://shopify.dev/docs/api/storefront/current/objects/CartDeliveryGroup#field-CartDeliveryGroup.fields.deliveryOptions) field and [`selectedDeliveryOption`](https://shopify.dev/docs/api/storefront/current/objects/CartDeliveryGroup#field-CartDeliveryGroup.fields.selectedDeliveryOption) field. + +""" type CartDeliveryOption { """The code of the delivery option.""" code: String @@ -1535,7 +1672,17 @@ input CartDirectPaymentMethodInput { acceptedSubscriptionTerms: Boolean = false } -"""The discounts that have been applied to the cart line.""" +""" +A common interface for querying discount allocations regardless of how the +discount was applied ([automatic](https://help.shopify.com/manual/discounts/discount-methods/automatic-discounts), [code](https://help.shopify.com/manual/discounts/discount-methods/discount-codes), +or custom). Each implementation represents a different discount source. + +Tracks how a discount distributes across [cart +lines](https://shopify.dev/docs/api/storefront/current/objects/CartLine). Each +allocation includes the [`CartDiscountApplication`](https://shopify.dev/docs/api/storefront/current/objects/CartDiscountApplication) +details, the discounted amount, and whether the discount targets line items or shipping. + +""" interface CartDiscountAllocation { """The discount that have been applied on the cart line.""" discountApplication: CartDiscountApplication! @@ -1548,8 +1695,13 @@ interface CartDiscountAllocation { } """ -The discount application capture the intentions of a discount source at - the time of application. +Captures the intent of a discount source at the time it was applied to a cart. +This includes the discount value, how it's allocated across entitled items, and +which line types it targets. + +The actual discounted amounts on specific cart lines are represented by [`CartDiscountAllocation`](https://shopify.dev/docs/api/storefront/current/interfaces/CartDiscountAllocation) +objects, which reference this application. + """ type CartDiscountApplication { """ @@ -1567,7 +1719,15 @@ type CartDiscountApplication { value: PricingValue! } -"""The discount codes applied to the cart.""" +""" +A discount code applied to a +[`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart). Discount +codes are case-insensitive and can be added using the [`cartDiscountCodesUpdate`](https://shopify.dev/docs/api/storefront/current/mutations/cartDiscountCodesUpdate) mutation. + +The [`applicable`](https://shopify.dev/docs/api/storefront/current/objects/CartDiscountCode#field-CartDiscountCode.fields.applicable) field indicates whether the code applies to the cart's current contents, which +might change as items are added or removed. + +""" type CartDiscountCode { """ Whether the discount code is applicable to the cart's current contents. @@ -1590,7 +1750,12 @@ type CartDiscountCodesUpdatePayload { warnings: [CartWarning!]! } -"""Possible error codes that can be returned by `CartUserError`.""" +""" +Error codes returned by [`CartUserError`](https://shopify.dev/docs/api/storefront/current/objects/CartUserError) +during cart mutations. Covers validation failures for addresses, quantities, +delivery options, merchandise lines, discount codes, and metafields. + +""" enum CartErrorCode { """The input value is invalid.""" INVALID @@ -1601,6 +1766,9 @@ enum CartErrorCode { """Merchandise line was not found in cart.""" INVALID_MERCHANDISE_LINE + """Item cannot be purchased as configured.""" + MERCHANDISE_NOT_APPLICABLE + """Missing discount code.""" MISSING_DISCOUNT_CODE @@ -1616,12 +1784,21 @@ enum CartErrorCode { """Delivery option was not valid.""" INVALID_DELIVERY_OPTION + """The delivery group is in a pending state.""" + PENDING_DELIVERY_GROUPS + """The payment wasn't valid.""" INVALID_PAYMENT """The payment method is not supported.""" PAYMENT_METHOD_NOT_SUPPORTED + """The payment method is not applicable.""" + PAYMENT_METHOD_NOT_APPLICABLE + + """The payment is invalid. Deferred payment is required.""" + INVALID_PAYMENT_DEFERRED_PAYMENT_REQUIRED + """Cannot update payment on an empty cart""" INVALID_PAYMENT_EMPTY_CART @@ -1655,6 +1832,27 @@ enum CartErrorCode { """The delivery address was not found.""" INVALID_DELIVERY_ADDRESS_ID + """Buyer cannot purchase for company location.""" + BUYER_CANNOT_PURCHASE_FOR_COMPANY_LOCATION + + """Bundles and addons cannot be mixed.""" + BUNDLES_AND_ADDONS_CANNOT_BE_MIXED + + """Cannot reference existing parent lines by variant_id.""" + PARENT_LINE_INVALID_REFERENCE + + """Parent line not found.""" + PARENT_LINE_NOT_FOUND + + """Parent line nesting is too deep or circular.""" + PARENT_LINE_NESTING_TOO_DEEP + + """Nested cartlines are blocked due to an incompatibility.""" + PARENT_LINE_OPERATION_BLOCKED + + """The specified gift card recipient is invalid.""" + GIFT_CARD_RECIPIENT_INVALID + """The specified address field is required.""" ADDRESS_FIELD_IS_REQUIRED @@ -1717,11 +1915,28 @@ enum CartErrorCode { """Credit card expiry year is invalid.""" PAYMENTS_CREDIT_CARD_YEAR_INVALID_EXPIRY_YEAR + + """Variant can only be purchased with a selling plan.""" + VARIANT_REQUIRES_SELLING_PLAN + + """Selling plan is not applicable.""" + SELLING_PLAN_NOT_APPLICABLE + + """An error occurred while saving the cart.""" + SERVICE_UNAVAILABLE + + """The cart is too large to save.""" + CART_TOO_LARGE } """ -The estimated costs that the buyer will pay at checkout. The estimated cost uses [`CartBuyerIdentity`](https://shopify.dev/api/storefront/reference/cart/cartbuyeridentity) -to determine [international pricing](https://shopify.dev/custom-storefronts/internationalization/international-pricing). +The estimated costs that the buyer pays at checkout. Uses [`CartBuyerIdentity`](https://shopify.dev/docs/api/storefront/current/objects/CartBuyerIdentity) +to determine [international pricing](https://shopify.dev/docs/custom-storefronts/internationalization/international-pricing). + +Includes the subtotal, total amount, duties, and taxes. The [`checkoutChargeAmount`](https://shopify.dev/docs/api/storefront/current/objects/CartEstimatedCost#field-CartEstimatedCost.fields.checkoutChargeAmount) +field excludes deferred payments that are charged later, making it useful for +displaying what the customer pays immediately. + """ type CartEstimatedCost { """ @@ -1756,6 +1971,18 @@ input CartFreePaymentMethodInput { billingAddress: MailingAddressInput! } +"""Return type for `cartGiftCardCodesAdd` mutation.""" +type CartGiftCardCodesAddPayload { + """The updated cart.""" + cart: Cart + + """The list of errors that occurred from executing the mutation.""" + userErrors: [CartUserError!]! + + """A list of warnings that occurred during the mutation.""" + warnings: [CartWarning!]! +} + """Return type for `cartGiftCardCodesRemove` mutation.""" type CartGiftCardCodesRemovePayload { """The updated cart.""" @@ -1780,7 +2007,15 @@ type CartGiftCardCodesUpdatePayload { warnings: [CartWarning!]! } -"""The input fields to create a cart.""" +""" +The input fields for creating a +[`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart). Used by the [`cartCreate`](https://shopify.dev/docs/api/storefront/current/mutations/cartCreate) mutation. + +Accepts merchandise lines, discount codes, gift card codes, and a note. You can +also set custom attributes, metafields, buyer identity for international +pricing, and delivery addresses. + +""" input CartInput { """ An array of key-value pairs that contains additional information about the cart. @@ -1835,7 +2070,14 @@ input CartInput { metafields: [CartInputMetafieldInput!] } -"""The input fields for a cart metafield value to set.""" +""" +The input fields for a cart metafield value to set. + +Cart metafields will be copied to order metafields at order creation time if +there is a matching order metafield definition with the [`cart to order copyable`](https://shopify.dev/docs/apps/build/metafields/use-metafield-capabilities#cart-to-order-copyable) +capability enabled. + +""" input CartInputMetafieldInput { """The key name of the metafield.""" key: String! @@ -1854,7 +2096,18 @@ input CartInputMetafieldInput { type: String! } -"""Represents information about the merchandise in the cart.""" +""" +An item in a customer's +[`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart) +representing a product variant they intend to purchase. Each cart line tracks +the merchandise, quantity, cost breakdown, and any applied discounts. + +Cart lines can include custom attributes for additional information like gift +wrapping requests, and can be associated with a [`SellingPlanAllocation`](https://shopify.dev/docs/api/storefront/current/objects/SellingPlanAllocation) +for purchase options like subscriptions, pre-orders, or try-before-you-buy. The [`instructions`](https://shopify.dev/docs/api/storefront/current/objects/CartLine#field-CartLine.fields.instructions) +field indicates whether the line can be removed or have its quantity updated. + +""" type CartLine implements BaseCartLine & Node { """An attribute associated with the cart line.""" attribute( @@ -1885,9 +2138,15 @@ type CartLine implements BaseCartLine & Node { """A globally-unique ID.""" id: ID! + """The instructions for the line item.""" + instructions: CartLineInstructions! + """The merchandise that the buyer intends to purchase.""" merchandise: Merchandise! + """The parent of the line item.""" + parentRelationship: CartLineParentRelationship + """The quantity of the merchandise that the customer intends to purchase.""" quantity: Int! @@ -1898,7 +2157,16 @@ type CartLine implements BaseCartLine & Node { sellingPlanAllocation: SellingPlanAllocation } -"""The cost of the merchandise line that the buyer will pay at checkout.""" +""" +Cost breakdown for a single line item in a +[cart](https://shopify.dev/docs/api/storefront/current/objects/Cart). Includes +the per-unit price, the subtotal before line-level discounts, and the final +total amount the buyer pays. + +The [`compareAtAmountPerQuantity`](https://shopify.dev/docs/api/storefront/current/objects/CartLineCost#field-CartLineCost.fields.compareAtAmountPerQuantity) field shows the original price when the item is on sale, enabling the display of +savings to customers. + +""" type CartLineCost { """The amount of the merchandise line.""" amountPerQuantity: MoneyV2! @@ -1931,7 +2199,15 @@ type CartLineEstimatedCost { totalAmount: MoneyV2! } -"""The input fields to create a merchandise line on a cart.""" +""" +The input fields for adding a merchandise line to a cart. Each line represents a [`ProductVariant`](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant) +the buyer intends to purchase, along with the quantity and optional [`SellingPlan`](https://shopify.dev/docs/api/storefront/current/objects/SellingPlan) +for subscriptions. + +Used by the [`cartCreate`](https://shopify.dev/docs/api/storefront/current/mutations/cartCreate) mutation when creating a cart with initial items, and the [`cartLinesAdd`](https://shopify.dev/docs/api/storefront/current/mutations/cartLinesAdd) +mutation when adding items to an existing cart. + +""" input CartLineInput { """ An array of key-value pairs that contains additional information about the merchandise line. @@ -1950,6 +2226,33 @@ input CartLineInput { The ID of the selling plan that the merchandise is being purchased with. """ sellingPlanId: ID + + """The parent line item of the cart line.""" + parent: CartLineParentInput +} + +"""Represents instructions for a cart line item.""" +type CartLineInstructions { + """Whether the line item can be removed from the cart.""" + canRemove: Boolean! + + """Whether the line item quantity can be updated.""" + canUpdateQuantity: Boolean! +} + +"""The parent line item of the cart line.""" +input CartLineParentInput { + """The id of the parent line item.""" + lineId: ID + + """The ID of the parent line merchandise.""" + merchandiseId: ID +} + +"""Represents the parent relationship of a cart line.""" +type CartLineParentRelationship { + """The parent cart line.""" + parent: CartLine! } """Return type for `cartLinesAdd` mutation.""" @@ -1988,7 +2291,14 @@ type CartLinesUpdatePayload { warnings: [CartWarning!]! } -"""The input fields to update a line item on a cart.""" +""" +The input fields for updating a merchandise line in a cart. Used by the [`cartLinesUpdate`](https://shopify.dev/docs/api/storefront/current/mutations/cartLinesUpdate) mutation. + +Specify the line item's [`id`](https://shopify.dev/docs/api/storefront/current/input-objects/CartLineUpdateInput#fields-id) +along with any fields to modify. You can change the quantity, swap the +merchandise, update custom attributes, or associate a different selling plan. + +""" input CartLineUpdateInput { """The ID of the merchandise line.""" id: ID! @@ -2183,6 +2493,18 @@ type CartPrepareForCompletionPayload { """The result of cart preparation.""" union CartPrepareForCompletionResult = CartStatusNotReady | CartStatusReady | CartThrottled +"""Return type for `cartRemovePersonalData` mutation.""" +type CartRemovePersonalDataPayload { + """The updated cart.""" + cart: Cart + + """The list of errors that occurred from executing the mutation.""" + userErrors: [CartUserError!]! + + """A list of warnings that occurred during the mutation.""" + warnings: [CartWarning!]! +} + """ A selectable delivery address for a cart. @@ -2203,7 +2525,14 @@ type CartSelectableAddress { selected: Boolean! } -"""The input fields for a selectable delivery address in a cart.""" +""" +The input fields for a selectable delivery address to present to the buyer. Used by [`CartDeliveryInput`](https://shopify.dev/docs/api/storefront/current/input-objects/CartDeliveryInput) +when creating a cart with the [`cartCreate`](https://shopify.dev/docs/api/storefront/current/mutations/cartCreate) mutation. + +You can pre-select an address for the buyer, mark it as one-time use so it isn't +saved after checkout, and specify how strictly the address should be validated. + +""" input CartSelectableAddressInput { """Exactly one kind of delivery address.""" address: CartAddressInput! @@ -2330,7 +2659,15 @@ input CartWalletPaymentMethodInput { shopPayWalletContent: ShopPayWalletContentInput } -"""A warning that occurred during a cart mutation.""" +""" +A non-blocking issue that occurred during a cart mutation. Unlike errors, +warnings don't prevent the mutation from completing but indicate potential +problems that may affect the buyer's experience. + +Each warning includes a code identifying the issue type, a human-readable +message, and a target ID pointing to the affected resource. + +""" type CartWarning { """The code of the warning.""" code: CartWarningCode! @@ -2355,6 +2692,45 @@ enum CartWarningCode { """A delivery address with the same details already exists on this cart.""" DUPLICATE_DELIVERY_ADDRESS + + """The discount code cannot be honored.""" + DISCOUNT_CODE_NOT_HONOURED + + """The discount was not found.""" + DISCOUNT_NOT_FOUND + + """The discount is currently inactive.""" + DISCOUNT_CURRENTLY_INACTIVE + + """The discount usage limit has been reached.""" + DISCOUNT_USAGE_LIMIT_REACHED + + """The customer's discount usage limit has been reached.""" + DISCOUNT_CUSTOMER_USAGE_LIMIT_REACHED + + """The customer is not eligible for this discount.""" + DISCOUNT_CUSTOMER_NOT_ELIGIBLE + + """An eligible customer is missing for this discount.""" + DISCOUNT_ELIGIBLE_CUSTOMER_MISSING + + """The quantity is not in range for this discount.""" + DISCOUNT_QUANTITY_NOT_IN_RANGE + + """The purchase is not in range for this discount.""" + DISCOUNT_PURCHASE_NOT_IN_RANGE + + """There are no entitled line items for this discount.""" + DISCOUNT_NO_ENTITLED_LINE_ITEMS + + """There are no entitled shipping lines for this discount.""" + DISCOUNT_NO_ENTITLED_SHIPPING_LINES + + """The purchase type is incompatible with this discount.""" + DISCOUNT_INCOMPATIBLE_PURCHASE_TYPE + + """Only one-time purchase is available for B2B orders.""" + MERCHANDISE_SELLING_PLAN_NOT_APPLICABLE_ON_COMPANY_LOCATION } """ @@ -2367,8 +2743,17 @@ input CategoryFilter { } """ -A collection represents a grouping of products that a shop owner can create to -organize them or make their shops easier to browse. +A group of products [organized by a +merchant](https://help.shopify.com/manual/products/collections) to make their +store easier to browse. Collections can help customers discover related products +by category, season, promotion, or other criteria. + +Query a collection's products with [filtering options](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/products-collections/filter-products) +like availability, price range, vendor, and tags. Each collection includes +[`SEO`](https://shopify.dev/docs/api/storefront/current/objects/SEO) +information, an optional +[`Image`](https://shopify.dev/docs/api/storefront/current/objects/Image), and +supports custom data through [`metafields`](https://shopify.dev/docs/api/storefront/current/objects/Metafield). """ type Collection implements HasMetafields & Node & OnlineStorePublishable & Trackable { @@ -2588,7 +2973,12 @@ type CommentEdge { } """ -Represents information about a company which is also a customer of the shop. +A B2B organization that purchases from the shop. In the Storefront API, company +information is accessed through the [`PurchasingCompany`](https://shopify.dev/docs/api/storefront/current/objects/PurchasingCompany) object on [`CartBuyerIdentity`](https://shopify.dev/docs/api/storefront/current/objects/CartBuyerIdentity), +which provides the associated location and contact for the current purchasing context. + +You can store custom data using [metafields](https://shopify.dev/docs/apps/build/metafields). + """ type Company implements HasMetafields & Node { """ @@ -2662,7 +3052,18 @@ type CompanyContact implements Node { updatedAt: DateTime! } -"""A company's location.""" +""" +A branch or office of a +[`Company`](https://shopify.dev/docs/api/storefront/current/objects/Company) +where B2B customers can place orders. When a B2B customer selects a location +after logging in, the Storefront API contextualizes product queries to return +location-specific pricing and quantity rules. + +Access through the [`PurchasingCompany`](https://shopify.dev/docs/api/storefront/current/objects/PurchasingCompany) +object, which associates the location with the buyer's +[`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart). + +""" type CompanyLocation implements HasMetafields & Node { """ The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) @@ -2813,7 +3214,16 @@ enum CountPrecision { AT_LEAST } -"""A country.""" +""" +A country with localization settings for a storefront. Includes the country's +currency, available languages, default language, and unit system (metric or imperial). + +Access countries through the [localization](https://shopify.dev/docs/api/storefront/current/queries/localization) +query, which returns both the list of available countries and the currently +active country. Use the [`@inContext`](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/in-context) +directive to change the active country context. + +""" type Country { """The languages available for the country.""" availableLanguages: [Language!]! @@ -4103,9 +4513,18 @@ enum CurrencyCode { } """ -A customer represents a customer account with the shop. Customer accounts store -contact information for the customer, saving logged-in customers the trouble of -having to provide it at every checkout. +A customer account with the shop. Includes data such as contact information, [addresses](https://shopify.dev/docs/api/storefront/current/objects/MailingAddress) +and marketing preferences for logged-in customers, so they don't have to provide +these details at every checkout. + +Access the customer through the +[`customer`](https://shopify.dev/docs/api/storefront/current/queries/customer) +query using a customer access token obtained from the [`customerAccessTokenCreate`](https://shopify.dev/docs/api/storefront/current/mutations/customerAccessTokenCreate) mutation. + +The object implements the [`HasMetafields`](https://shopify.dev/docs/api/storefront/current/interfaces/HasMetafields) +interface, enabling retrieval of [custom +data](https://shopify.dev/docs/apps/build/custom-data) associated with the customer. + """ type Customer implements HasMetafields { """ @@ -4131,6 +4550,9 @@ type Customer implements HasMetafields { reverse: Boolean = false ): MailingAddressConnection! + """The URL of the customer's avatar image.""" + avatarUrl: String + """The date and time when the customer was created.""" createdAt: DateTime! @@ -4220,6 +4642,9 @@ type Customer implements HasMetafields { """The customer’s phone number.""" phone: String + """The social login provider associated with the customer.""" + socialLoginProvider: SocialLoginProvider + """ A comma separated list of tags that have been added to the customer. Additional access scope required: unauthenticated_read_customer_tags. @@ -4232,7 +4657,17 @@ type Customer implements HasMetafields { } """ -A CustomerAccessToken represents the unique token required to make modifications to the customer object. +A unique authentication token that identifies a logged-in customer and +authorizes modifications to the +[`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer) +object. The token is required for customer-specific operations like updating +profile information or managing addresses. + +Tokens have an expiration date and must be renewed using [`customerAccessTokenRenew`](https://shopify.dev/docs/api/storefront/current/mutations/customerAccessTokenRenew) +before they expire. Create tokens with [`customerAccessTokenCreate`](https://shopify.dev/docs/api/storefront/current/mutations/customerAccessTokenCreate) +using legacy customer account authentication (email and password), or with [`customerAccessTokenCreateWithMultipass`](https://shopify.dev/docs/api/storefront/current/mutations/customerAccessTokenCreateWithMultipass) +for single sign-on flows. + """ type CustomerAccessToken { """The customer’s access token.""" @@ -4242,7 +4677,12 @@ type CustomerAccessToken { expiresAt: DateTime! } -"""The input fields required to create a customer access token.""" +""" +The input fields for authenticating a customer with email and password. Used by the [`customerAccessTokenCreate`](https://shopify.dev/docs/api/storefront/current/mutations/customerAccessTokenCreate) +mutation to generate a [`CustomerAccessToken`](https://shopify.dev/docs/api/storefront/current/objects/CustomerAccessToken), +which is required to read or modify customer data. + +""" input CustomerAccessTokenCreateInput { """The email associated to the customer.""" email: String! @@ -4365,7 +4805,19 @@ type CustomerAddressUpdatePayload { userErrors: [UserError!]! @deprecated(reason: "Use `customerUserErrors` instead.") } -"""The input fields to create a new customer.""" +""" +The input fields for creating a new +[`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer) +account. Used by the [`customerCreate`](https://shopify.dev/docs/api/storefront/current/mutations/customerCreate) mutation. + +For legacy customer accounts only and requires an email address and password. +Optionally accepts the customer's name, phone number, and email marketing consent. + +> Caution: +> The password is used for customer authentication. Ensure it's transmitted +securely and never logged or stored in plain text. + +""" input CustomerCreateInput { """The customer’s first name.""" firstName: String @@ -4417,7 +4869,13 @@ type CustomerDefaultAddressUpdatePayload { userErrors: [UserError!]! @deprecated(reason: "Use `customerUserErrors` instead.") } -"""Possible error codes that can be returned by `CustomerUserError`.""" +""" +Error codes returned by the [`CustomerUserError`](https://shopify.dev/docs/api/storefront/current/objects/CustomerUserError) +object. These codes identify specific validation and processing failures for +customer-related mutations, including account creation, updates, password +resets, and address management. + +""" enum CustomerErrorCode { """The input value is blank.""" BLANK @@ -4513,7 +4971,17 @@ type CustomerResetPayload { userErrors: [UserError!]! @deprecated(reason: "Use `customerUserErrors` instead.") } -"""The input fields to update the Customer information.""" +""" +The input fields for updating a +[`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer). Used by the [`customerUpdate`](https://shopify.dev/docs/api/storefront/current/mutations/customerUpdate) mutation. + +> Caution: +> Updating the password invalidates all existing access tokens, including the +one used to perform the mutation. The response returns a new access token. +Ensure your app handles the new token returned in the response to avoid logging +the customer out. + +""" input CustomerUpdateInput { """The customer’s first name.""" firstName: String @@ -4621,7 +5089,12 @@ input DeliveryAddressInput { } """ -Defines the types of available validation strategies for delivery addresses. +Controls how delivery addresses are validated during cart operations. The +default validation checks only the country code, while strict validation +verifies all address fields against Shopify's checkout rules and rejects invalid addresses. + +Used by [`DeliveryAddressInput`](https://shopify.dev/docs/api/storefront/current/input-objects/DeliveryAddressInput) when setting buyer identity preferences, and by [`CartSelectableAddressInput`](https://shopify.dev/docs/api/storefront/current/input-objects/CartSelectableAddressInput) and [`CartSelectableAddressUpdateInput`](https://shopify.dev/docs/api/storefront/current/input-objects/CartSelectableAddressUpdateInput) +when managing cart delivery addresses. """ enum DeliveryAddressValidationStrategy { @@ -4675,7 +5148,11 @@ enum DigitalWallet { } """ -An amount discounting the line that has been allocated by a discount. +The calculated discount amount applied to a line item or shipping line. While a [`DiscountApplication`](https://shopify.dev/docs/api/storefront/current/interfaces/DiscountApplication) +captures the discount's rules and intentions, the allocation shows how much was +actually deducted. + +Each allocation includes the discounted amount and a reference to the originating discount application. """ type DiscountAllocation { @@ -4687,8 +5164,12 @@ type DiscountAllocation { } """ -Discount applications capture the intentions of a discount source at -the time of application. +Captures the intent of a discount at the time it was applied. Each +implementation represents a different discount source, such as [automatic discounts](https://help.shopify.com/manual/discounts/discount-methods/automatic-discounts), [discount codes](https://help.shopify.com/manual/discounts/discount-methods/discount-codes), +and manual discounts. + +The actual discounted amount on a line item or shipping line is represented by the [`DiscountAllocation`](https://shopify.dev/docs/api/storefront/current/objects/DiscountAllocation) +object, which references the discount application it originated from. """ interface DiscountApplication { @@ -4708,7 +5189,13 @@ interface DiscountApplication { } """ -The method by which the discount's value is allocated onto its entitled lines. +Controls how a discount's value is distributed across entitled lines. A discount +can either spread its value across all entitled lines or apply the full value to +each line individually. + +Used by the [`DiscountApplication`](https://shopify.dev/docs/api/storefront/current/interfaces/DiscountApplication) interface and its implementations to capture the intentions of a discount source +at the time of application. + """ enum DiscountApplicationAllocationMethod { """The value is spread across all entitled lines.""" @@ -4779,8 +5266,15 @@ enum DiscountApplicationTargetType { } """ -Discount code applications capture the intentions of a discount code at -the time that it is applied. +Records the configuration and intent of a [discount +code](https://help.shopify.com/manual/discounts/discount-methods/discount-codes) +when a customer applies it. This includes the code string, allocation method, +target type, and discount value at the time of application. The [`applicable`](https://shopify.dev/docs/api/storefront/latest/objects/DiscountCodeApplication#field-DiscountCodeApplication.fields.applicable) +field indicates whether the code was successfully applied. + +> Note: +> To see the actual amounts discounted on specific line items or shipping lines, use the [`DiscountAllocation`](https://shopify.dev/docs/api/storefront/current/objects/DiscountAllocation) +object instead. """ type DiscountCodeApplication implements DiscountApplication { @@ -4816,7 +5310,12 @@ interface DisplayableError { message: String! } -"""Represents a web address.""" +""" +A web address associated with a shop. The +[`Shop`](https://shopify.dev/docs/api/storefront/current/objects/Shop) object's [`primaryDomain`](https://shopify.dev/docs/api/storefront/current/objects/Shop#field-Shop.fields.primaryDomain) +field returns this to identify the shop's online store URL. + +""" type Domain { """The host name of the domain (eg: `example.com`).""" host: String! @@ -4858,7 +5357,17 @@ type ExternalVideo implements Media & Node { previewImage: Image } -"""A filter that is supported on the parent field.""" +""" +A filter option available on collection and search results pages. Each filter +includes a type, display label, and selectable values that customers can use to +narrow down products. + +The [`FilterValue`](https://shopify.dev/docs/api/storefront/current/objects/FilterValue) objects contain an [`input`](https://shopify.dev/docs/api/storefront/current/objects/FilterValue#field-FilterValue.fields.input) +field that you can combine to [build dynamic filtering queries](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/products-collections/filter-products). +Merchants [configure available filters](https://help.shopify.com/manual/online-store/search-and-discovery/filters) +using the Shopify Search & Discovery app. + +""" type Filter { """A unique identifier.""" id: String! @@ -4913,7 +5422,18 @@ enum FilterType { BOOLEAN } -"""A selectable value within a filter.""" +""" +A selectable option within a +[`Filter`](https://shopify.dev/docs/api/storefront/current/objects/Filter), such +as a specific color, size, or product type. Each value includes a count of +matching results and a human-readable label for display. + +The [`input`](https://shopify.dev/docs/api/storefront/current/objects/FilterValue#field-FilterValue.fields.input) field provides ready-to-use JSON for building dynamic filtering interfaces. You +can combine the `input` values from multiple selected [`FilterValue`](https://shopify.dev/docs/api/storefront/current/objects/FilterValue) +objects to construct filter queries. Visual representations are available through the [`image`](https://shopify.dev/docs/api/storefront/current/objects/FilterValue#field-FilterValue.fields.image) or [`swatch`](https://shopify.dev/docs/api/storefront/current/objects/FilterValue#field-FilterValue.fields.swatch) +fields when the parent filter's presentation type supports them. + +""" type FilterValue { """The number of results that match this filter value.""" count: Int! @@ -4941,7 +5461,15 @@ type FilterValue { swatch: Swatch } -"""Represents a single fulfillment in an order.""" +""" +A shipment of one or more items in an order. Accessed through the +[`Order`](https://shopify.dev/docs/api/storefront/current/objects/Order) object's [`successfulFulfillments`](https://shopify.dev/docs/api/storefront/current/objects/Order#field-Order.fields.successfulFulfillments) field. + +Each fulfillment includes the line items that shipped, the tracking company +name, and tracking details like numbers and URLs. An order can have multiple +fulfillments when items ship separately or from different locations. + +""" type Fulfillment { """List of the fulfillment's line items.""" fulfillmentLineItems( @@ -4976,7 +5504,10 @@ type Fulfillment { } """ -Represents a single line item in a fulfillment. There is at most one fulfillment line item for each order line item. +Records how many units of an [`OrderLineItem`](https://shopify.dev/docs/api/storefront/current/objects/OrderLineItem) +were included in a [`Fulfillment`](https://shopify.dev/docs/api/storefront/current/objects/Fulfillment). +Each order line item has at most one fulfillment line item per fulfillment. + """ type FulfillmentLineItem { """The associated order's line item.""" @@ -5023,9 +5554,15 @@ type FulfillmentTrackingInfo { } """ -The generic file resource lets you manage files in a merchant’s store. Generic -files include any file that doesn’t fit into a designated type such as image or -video. Example: PDF, JSON. +Any file that doesn't fit into a designated type like image or video. For +example, a PDF or JSON document. Use this object to manage files in a merchant's store. + +Generic files are commonly referenced through [file reference +metafields](https://shopify.dev/docs/apps/build/metafields/list-of-data-types) +and returned as part of the [`MetafieldReference`](https://shopify.dev/docs/api/storefront/current/unions/MetafieldReference) union. + +Includes the file's URL, MIME type, size in bytes, and an optional preview image. + """ type GenericFile implements Node { """A word or phrase to indicate the contents of a file.""" @@ -5057,7 +5594,19 @@ input GeoCoordinateInput { } """ -Represents information about the metafields associated to the specified resource. +Implemented by resources that support custom metadata through +[`Metafield`](https://shopify.dev/docs/api/storefront/current/objects/Metafield) +objects. Types like +[`Product`](https://shopify.dev/docs/api/storefront/current/objects/Product), [`Collection`](https://shopify.dev/docs/api/storefront/current/objects/Collection), and +[`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer) +implement this interface to provide consistent access to metafields. + +You can retrieve a [single metafield](https://shopify.dev/docs/api/storefront/current/interfaces/HasMetafields#fields-metafield) +by namespace and key, or fetch [multiple metafields](https://shopify.dev/docs/api/storefront/current/interfaces/HasMetafields#fields-metafields) +in a single request. If you omit the namespace, then the [app-reserved +namespace](https://shopify.dev/docs/apps/build/metafields#app-owned-metafields) +is used by default. + """ interface HasMetafields { """ @@ -5089,7 +5638,16 @@ interface HasMetafields { } """ -The input fields to identify a metafield on an owner resource by namespace and key. +The input fields to identify a +[`Metafield`](https://shopify.dev/docs/api/storefront/current/objects/Metafield) +on an owner resource by namespace and key. Used as an argument to the [`metafields`](https://shopify.dev/docs/api/storefront/current/interfaces/HasMetafields#fields-metafields) +field of the `HasMetafields` interface to retrieve multiple metafields in a +single request. + +If you omit the namespace, then the [app-reserved +namespace](https://shopify.dev/docs/apps/build/metafields#app-owned-metafields) +is used by default. + """ input HasMetafieldsIdentifier { """ @@ -5110,7 +5668,17 @@ Example value: `"

Grey cotton knit sweater.

"` """ scalar HTML -"""Represents an image resource.""" +""" +An image resource with URL, dimensions, and transformation options. Used for +product images, collection images, media previews, and other visual content +throughout the storefront. + +The [`url`](https://shopify.dev/docs/api/storefront/current/objects/Image#field-Image.fields.url) field accepts an [`ImageTransformInput`](https://shopify.dev/docs/api/storefront/current/input-objects/ImageTransformInput) +argument for resizing, cropping, scaling for retina displays, and converting +between image formats. Use the [`thumbhash`](https://shopify.dev/docs/api/storefront/current/objects/Image#field-Image.fields.thumbhash) +field to display lightweight placeholders while images load. + +""" type Image { """A word or phrase to share the nature or contents of an image.""" altText: String @@ -5134,6 +5702,16 @@ type Image { """The location of the image as a URL.""" src: URL! @deprecated(reason: "Use `url` instead.") + """ + The ThumbHash of the image. + + Useful to display placeholder images while the original image is loading. + + See https://evanw.github.io/thumbhash/ for details on how to use it. + + """ + thumbhash: String + """ The location of the transformed image as a URL. @@ -5309,7 +5887,17 @@ Example value: """ scalar JSON -"""A language.""" +""" +A language available for a localized storefront experience. Provides the +language name in both its native form (endonym) and translated into the current +language, along with its [`LanguageCode`](https://shopify.dev/docs/api/storefront/current/enums/LanguageCode). + +Returned by the [`Localization`](https://shopify.dev/docs/api/storefront/current/objects/Localization) +and [`Country`](https://shopify.dev/docs/api/storefront/current/objects/Country) +objects to indicate available and active languages. Pass the `isoCode` to the [`@inContext`](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/in-context) +directive to retrieve translated content in that language. + +""" type Language { """ The name of the language in the language itself. If the language uses @@ -5324,7 +5912,17 @@ type Language { name: String! } -"""Language codes supported by Shopify.""" +""" +Supported languages for retrieving translated storefront content. Pass a +language code to the [`@inContext`](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/in-context) +directive to return product titles, descriptions, and other translatable fields +in that language. + +The [`Localization`](https://shopify.dev/docs/api/storefront/current/objects/Localization) object provides the list of available languages for the active country, and each +[`Country`](https://shopify.dev/docs/api/storefront/current/objects/Country) in [`availableCountries`](https://shopify.dev/docs/api/storefront/current/objects/Localization#field-Localization.fields.availableCountries) +includes its own available languages. + +""" enum LanguageCode { """Afrikaans.""" AF @@ -5759,7 +6357,18 @@ enum LanguageCode { MO } -"""Information about the localized experiences configured for the shop.""" +""" +Information about the shop's configured localized experiences, including +available countries and languages. The [`country`](https://shopify.dev/docs/api/storefront/current/objects/Localization#field-Localization.fields.country) and [`language`](https://shopify.dev/docs/api/storefront/current/objects/Localization#field-Localization.fields.language) +fields reflect the active localization context, which you can change using the +`@inContext` directive on queries. + +Use [`availableCountries`](https://shopify.dev/docs/api/storefront/current/objects/Localization#field-Localization.fields.availableCountries) to list all countries with enabled localized experiences, and [`availableLanguages`](https://shopify.dev/docs/api/storefront/current/objects/Localization#field-Localization.fields.availableLanguages) +to get languages available for the currently active country. Each +[`Country`](https://shopify.dev/docs/api/storefront/current/objects/Country) +includes its own currency, unit system, and available languages. + +""" type Localization { """The list of countries with enabled localized experiences.""" availableCountries: [Country!]! @@ -5783,7 +6392,16 @@ type Localization { market: Market! @deprecated(reason: "This `market` field will be removed in a future version of the API.") } -"""Represents a location where product inventory is held.""" +""" +A physical store location where product inventory is held and that supports +in-store pickup. Provides the location's name, address, and geographic +coordinates for proximity-based sorting. Use with [`StoreAvailability`](https://shopify.dev/docs/api/storefront/current/objects/StoreAvailability) +to show customers where a [`ProductVariant`](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant) +is available for pickup. + +Learn more about [supporting local pickup on storefronts](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/products-collections/local-pickup). + +""" type Location implements HasMetafields & Node { """The address of the location.""" address: LocationAddress! @@ -5909,7 +6527,17 @@ enum LocationSortKeys { DISTANCE } -"""Represents a mailing address for customers and shipping.""" +""" +A physical mailing address associated with a +[`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer) +or [`Order`](https://shopify.dev/docs/api/storefront/current/objects/Order). +Stores standard address components including street address, city, province, +country, and postal code, along with customer name and company information. + +The address includes geographic coordinates and provides pre-formatted output through the [`formatted`](https://shopify.dev/docs/api/storefront/current/objects/MailingAddress#field-MailingAddress.fields.formatted) +field, which can optionally include or exclude name and company details. + +""" type MailingAddress implements Node { """ The first line of the address. Typically the street address or PO Box number. @@ -6029,7 +6657,15 @@ type MailingAddressEdge { node: MailingAddress! } -"""The input fields to create or update a mailing address.""" +""" +The input fields for creating or updating a [`MailingAddress`](https://shopify.dev/docs/api/storefront/current/objects/MailingAddress). +Accepts standard address components including street address, city, province, +country, and postal code, along with customer name and contact information. + +Used by the [`customerAddressCreate`](https://shopify.dev/docs/api/storefront/current/mutations/customerAddressCreate) and [`customerAddressUpdate`](https://shopify.dev/docs/api/storefront/current/mutations/customerAddressUpdate) mutations, and as part of [`DeliveryAddressInput`](https://shopify.dev/docs/api/storefront/current/input-objects/DeliveryAddressInput) +for cart delivery preferences. + +""" input MailingAddressInput { """ The first line of the address. Typically the street address or PO Box number. @@ -6080,7 +6716,9 @@ input MailingAddressInput { } """ -Manual discount applications capture the intentions of a discount that was manually created. +A discount created manually by a merchant, as opposed to [automatic discounts](https://help.shopify.com/manual/discounts/discount-methods/automatic-discounts) or [discount codes](https://help.shopify.com/manual/discounts/discount-methods/discount-codes). Implements the [`DiscountApplication`](https://shopify.dev/docs/api/storefront/current/interfaces/DiscountApplication) +interface and includes a title, optional description, and the discount value as +either a fixed amount or percentage. """ type ManualDiscountApplication implements DiscountApplication { @@ -6106,9 +6744,14 @@ type ManualDiscountApplication implements DiscountApplication { } """ -A group of one or more regions of the world that a merchant is targeting for -sales. To learn more about markets, refer to [the Shopify Markets conceptual -overview](/docs/apps/markets). +An audience of buyers that a merchant targets for sales. Audiences can include +geographic regions, company locations, and retail locations. Markets enable +localized shopping experiences with region-specific languages, currencies, and pricing. + +Each market has a unique [`handle`](https://shopify.dev/docs/api/storefront/current/objects/Market#field-Market.fields.handle) +for identification and supports custom data through [`metafields`](https://shopify.dev/docs/api/storefront/current/objects/Metafield). +Learn more about [building localized experiences with Shopify Markets](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/markets). + """ type Market implements HasMetafields & Node { """ @@ -6148,7 +6791,21 @@ type Market implements HasMetafields & Node { ): [Metafield]! } -"""Represents a media interface.""" +""" +A common set of fields for media content associated with +[products](https://shopify.dev/docs/api/storefront/current/objects/Product). +Implementations include [`MediaImage`](https://shopify.dev/docs/api/storefront/current/objects/MediaImage) +for Shopify-hosted images, +[`Video`](https://shopify.dev/docs/api/storefront/current/objects/Video) for +Shopify-hosted videos, [`ExternalVideo`](https://shopify.dev/docs/api/storefront/current/objects/ExternalVideo) +for videos hosted on platforms like YouTube or Vimeo, and +[`Model3d`](https://shopify.dev/docs/api/storefront/current/objects/Model3d) for 3D models. + +Each implementation shares fields for alt text, content type, and preview +images, while adding type-specific fields like embed URLs for external videos or +source files for 3D models. + +""" interface Media { """A word or phrase to share the nature or contents of a media.""" alt: String @@ -6217,7 +6874,17 @@ enum MediaHost { VIMEO } -"""Represents a Shopify hosted image.""" +""" +An image hosted on Shopify's content delivery network (CDN). Used for product +images, brand logos, and other visual content across the storefront. + +The [`image`](https://shopify.dev/docs/api/storefront/current/objects/MediaImage#field-MediaImage.fields.image) field provides the actual image data with transformation options. Implements the +[`Media`](https://shopify.dev/docs/api/storefront/current/interfaces/Media) +interface alongside other media types like +[`Video`](https://shopify.dev/docs/api/storefront/current/objects/Video) and +[`Model3d`](https://shopify.dev/docs/api/storefront/current/objects/Model3d). + +""" type MediaImage implements Media & Node { """A word or phrase to share the nature or contents of a media.""" alt: String @@ -6247,7 +6914,7 @@ type MediaPresentation implements Node { ): JSON """A globally-unique ID.""" - id: ID! + id: ID! @deprecated(reason: "MediaPresentation IDs are being deprecated. Access the data directly via the asJson field on the Media type.") } """The possible formats for a media presentation.""" @@ -6260,8 +6927,18 @@ enum MediaPresentationFormat { } """ -A [navigation menu](https://help.shopify.com/manual/online-store/menus-and-links) representing a hierarchy -of hyperlinks (items). +A navigation structure for building store +[menus](https://help.shopify.com/manual/online-store/menus-and-links). Each menu contains +[`MenuItem`](https://shopify.dev/docs/api/storefront/current/objects/MenuItem) +objects that can be nested to create multi-level navigation hierarchies. + +Menu items can link to [collections](https://shopify.dev/docs/api/storefront/current/objects/Collection), +[products](https://shopify.dev/docs/api/storefront/current/objects/Product), +[pages](https://shopify.dev/docs/api/storefront/current/objects/Page), +[blogs](https://shopify.dev/docs/api/storefront/current/objects/Blog), or +external URLs. Use the +[`menu`](https://shopify.dev/docs/api/storefront/current/queries/menu) query to +retrieve a menu by its handle. """ type Menu implements Node { @@ -6281,7 +6958,19 @@ type Menu implements Node { title: String! } -"""A menu item within a parent menu.""" +""" +A navigation link within a +[`Menu`](https://shopify.dev/docs/api/storefront/current/objects/Menu). Each +item has a title, URL, and can link to store resources like +[products](https://shopify.dev/docs/api/storefront/current/objects/Product), [collections](https://shopify.dev/docs/api/storefront/current/objects/Collection), +[pages](https://shopify.dev/docs/api/storefront/current/objects/Page), +[blogs](https://shopify.dev/docs/api/storefront/current/objects/Blog), or external URLs. + +Menu items support nested hierarchies through the [`items`](https://shopify.dev/docs/api/storefront/current/objects/MenuItem#field-MenuItem.fields.items) +field, enabling dropdown or multi-level navigation structures. The [`tags`](https://shopify.dev/docs/api/storefront/current/objects/MenuItem#field-MenuItem.fields.tags) +field filters results when the item links to a collection specifically. + +""" type MenuItem implements Node { """A globally-unique ID.""" id: ID! @@ -6356,12 +7045,24 @@ enum MenuItemType { CUSTOMER_ACCOUNT_PAGE } -"""The merchandise to be purchased at checkout.""" +""" +A [`ProductVariant`](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant) that a buyer intends to purchase at checkout. + +""" union Merchandise = ProductVariant """ -Metafields represent custom metadata attached to a resource. Metafields can be sorted into namespaces and are -comprised of keys, values, and value types. +[Custom metadata](https://shopify.dev/docs/apps/build/metafields) attached to a +Shopify resource such as a +[`Product`](https://shopify.dev/docs/api/storefront/current/objects/Product), [`Collection`](https://shopify.dev/docs/api/storefront/current/objects/Collection), or +[`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer). +Each metafield is identified by a namespace and key, and stores a value with an +associated type. + +Values are always stored as strings, but the [`type`](https://shopify.dev/docs/api/storefront/current/objects/Metafield#field-Metafield.fields.type) +field indicates how to interpret the data. When a metafield's type is a resource +reference, use the [`reference`](https://shopify.dev/docs/api/storefront/current/objects/Metafield#field-Metafield.fields.reference) or [`references`](https://shopify.dev/docs/api/storefront/current/objects/Metafield#field-Metafield.fields.references) +fields to retrieve the linked objects. Access metafields on any resource that implements the [`HasMetafields`](https://shopify.dev/docs/api/storefront/current/interfaces/HasMetafields) interface. """ type Metafield implements Node { @@ -6432,6 +7133,9 @@ enum MetafieldDeleteErrorCode { """Metafield not found.""" METAFIELD_DOES_NOT_EXIST + + """The current app is not authorized to perform this action.""" + APP_NOT_AUTHORIZED } """An error that occurs during the execution of cart metafield deletion.""" @@ -6447,13 +7151,10 @@ type MetafieldDeleteUserError implements DisplayableError { } """ -A filter used to view a subset of products in a collection matching a specific metafield value. +Filters products in a collection by matching a specific metafield value. Used by the [`ProductFilter`](https://shopify.dev/docs/api/storefront/current/input-objects/ProductFilter) +input's `productMetafield` and `variantMetafield` fields. -Only the following metafield types are currently supported: -- `number_integer` -- `number_decimal` -- `single_line_text_field` -- `boolean` as of 2022-04. +Supports the following metafield types: `number_integer`, `number_decimal`, `single_line_text_field`, and `boolean`. """ input MetafieldFilter { @@ -6467,14 +7168,24 @@ input MetafieldFilter { value: String! } -"""A resource that the metafield belongs to.""" +""" +The Shopify resource that owns a metafield. Returned by the `Metafield` object's [`parentResource`](https://shopify.dev/docs/api/storefront/current/objects/Metafield#field-Metafield.fields.parentResource) +field, enabling traversal from a metafield back to the resource it's attached to. + +""" union MetafieldParentResource = Article | Blog | Cart | Collection | Company | CompanyLocation | Customer | Location | Market | Order | Page | Product | ProductVariant | SellingPlan | Shop """ -Returns the resource which is being referred to by a metafield. +The resource that a metafield points to when its type is a resource reference. +Metafields can store references to other Shopify resources, and this union +provides access to the actual referenced object. + +Returned by the `Metafield` object's [`reference`](https://shopify.dev/docs/api/storefront/current/objects/Metafield#field-Metafield.fields.reference) +field for single references or the [`references`](https://shopify.dev/docs/api/storefront/current/objects/Metafield#field-Metafield.fields.references) +field for lists. """ -union MetafieldReference = Collection | GenericFile | MediaImage | Metaobject | Model3d | Page | Product | ProductVariant | Video +union MetafieldReference = Article | Collection | GenericFile | MediaImage | Metaobject | Model3d | Page | Product | ProductVariant | Video """ An auto-generated type for paginating through multiple MetafieldReferences. @@ -6548,9 +7259,27 @@ enum MetafieldsSetUserErrorCode { """The type is invalid.""" INVALID_TYPE + + """The current app is not authorized to perform this action.""" + APP_NOT_AUTHORIZED } -"""An instance of a user-defined model based on a MetaobjectDefinition.""" +""" +An instance of [custom structured +data](https://shopify.dev/docs/apps/build/metaobjects) defined by a metaobject +definition. Metaobjects store reusable content that extends beyond standard +Shopify resources, such as size charts, author profiles, or custom content sections. + +Each metaobject contains fields that match the types and validation rules +specified in its definition. +[`Metafield`](https://shopify.dev/docs/api/storefront/current/objects/Metafield) +references can point to metaobjects, connecting custom data with products, +collections, and other resources. If the definition has the `renderable` +capability, then the [`seo`](https://shopify.dev/docs/api/storefront/current/objects/Metaobject#field-Metaobject.fields.seo) +field provides SEO metadata. If it has the `online_store` capability, then the [`onlineStoreUrl`](https://shopify.dev/docs/api/storefront/current/objects/Metaobject#field-Metaobject.fields.onlineStoreUrl) +field returns the public URL. + +""" type Metaobject implements Node & OnlineStorePublishable { """Accesses a field of the object by key.""" field( @@ -6584,9 +7313,7 @@ type Metaobject implements Node & OnlineStorePublishable { """ seo: MetaobjectSEO - """ - The type of the metaobject. Defines the namespace of its associated metafields. - """ + """The type of the metaobject.""" type: String! """The date and time when the metaobject was last updated.""" @@ -6620,7 +7347,12 @@ type MetaobjectEdge { node: Metaobject! } -"""Provides the value of a Metaobject field.""" +""" +The value of a field within a [`Metaobject`](https://shopify.dev/docs/api/storefront/current/objects/Metaobject). +For fields that reference other resources, use the [`reference`](https://shopify.dev/docs/api/storefront/current/objects/MetaobjectField#field-MetaobjectField.fields.reference) +field for single references or [`references`](https://shopify.dev/docs/api/storefront/current/objects/MetaobjectField#field-MetaobjectField.fields.references) for lists. + +""" type MetaobjectField { """The field key.""" key: String! @@ -6720,7 +7452,9 @@ input MoneyInput { } """ -A monetary value with currency. +A precise monetary value with its associated currency. Combines a decimal amount +with a three-letter [`CurrencyCode`](https://shopify.dev/docs/api/storefront/current/enums/CurrencyCode) +to express prices, costs, and other financial values. For example, 12.99 USD. """ type MoneyV2 { @@ -6735,7 +7469,13 @@ type MoneyV2 { The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. """ type Mutation { - """Updates the attributes on a cart.""" + """ + Updates the attributes on a + [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart). + Attributes are custom key-value pairs that store additional information, such + as gift messages, special instructions, or order notes. + + """ cartAttributesUpdate( """ An array of key-value pairs that contains additional information about the cart. @@ -6758,10 +7498,16 @@ type Mutation { ): CartBillingAddressUpdatePayload """ - Updates customer information associated with a cart. - Buyer identity is used to determine - [international pricing](https://shopify.dev/custom-storefronts/internationalization/international-pricing) - and should match the customer's shipping address. + Updates the buyer identity on a + [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart), + including contact information, location, and checkout preferences. The buyer's + country determines [international pricing](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/markets/international-pricing) + and should match their shipping address. + + Use this mutation to associate a logged-in customer via access token, set a + B2B company location, or configure checkout preferences like delivery method. + Preferences prefill checkout fields but don't sync back to the cart if + overwritten at checkout. """ cartBuyerIdentityUpdate( @@ -6777,13 +7523,36 @@ type Mutation { buyerIdentity: CartBuyerIdentityInput! ): CartBuyerIdentityUpdatePayload - """Creates a new cart.""" + """ + Creates a clone of the specified cart with all personally identifiable information removed. + """ + cartClone( + """The ID of the cart to clone.""" + cartId: ID! + ): CartClonePayload + + """ + Creates a new [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart) + for a buyer session. You can optionally initialize the cart with merchandise + lines, discount codes, gift card codes, buyer identity for international + pricing, and custom attributes. + + The returned cart includes a `checkoutUrl` that directs the buyer to complete their purchase. + + """ cartCreate( """The fields used to create a cart.""" input: CartInput ): CartCreatePayload - """Adds delivery addresses to the cart.""" + """ + Adds delivery addresses to a + [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart). A cart + can have up to 20 delivery addresses. One address can be marked as selected + for checkout, and addresses can optionally be marked as one-time use so they + aren't saved to the customer's account. + + """ cartDeliveryAddressesAdd( """The ID of the cart.""" cartId: ID! @@ -6796,7 +7565,12 @@ type Mutation { addresses: [CartSelectableAddressInput!]! ): CartDeliveryAddressesAddPayload - """Removes delivery addresses from the cart.""" + """ + Removes delivery addresses from a + [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart) by + their IDs, allowing batch removal in a single request. + + """ cartDeliveryAddressesRemove( """The ID of the cart.""" cartId: ID! @@ -6809,7 +7583,37 @@ type Mutation { addressIds: [ID!]! ): CartDeliveryAddressesRemovePayload - """Updates one or more delivery addresses on a cart.""" + """ + Replaces all delivery addresses on a + [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart) with a + new set of addresses in a single operation. Unlike [`cartDeliveryAddressesUpdate`](https://shopify.dev/docs/api/storefront/current/mutations/cartDeliveryAddressesUpdate), + which modifies existing addresses, this mutation removes all current addresses + and sets the provided list as the new delivery addresses. + + One address can be marked as selected, and each address can be flagged for + one-time use or configured with a specific validation strategy. + + """ + cartDeliveryAddressesReplace( + """The ID of the cart.""" + cartId: ID! + + """ + A list of delivery addresses to replace on the cart. + + The input must not contain more than `250` values. + """ + addresses: [CartSelectableAddressInput!]! + ): CartDeliveryAddressesReplacePayload + + """ + Updates one or more delivery addresses on a + [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart). Each + address can be modified to change its details, set it as the pre-selected + address for checkout, or mark it for one-time use so it isn't saved to the + customer's account. + + """ cartDeliveryAddressesUpdate( """The ID of the cart.""" cartId: ID! @@ -6822,7 +7626,16 @@ type Mutation { addresses: [CartSelectableAddressUpdateInput!]! ): CartDeliveryAddressesUpdatePayload - """Updates the discount codes applied to the cart.""" + """ + Updates the discount codes applied to a + [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart). This + mutation replaces all existing discount codes with the provided list, so pass + an empty array to remove all codes. Discount codes are case-insensitive. + + After updating, check each [`CartDiscountCode`](https://shopify.dev/docs/api/storefront/current/objects/CartDiscountCode) in the cart's [`discountCodes`](https://shopify.dev/docs/api/storefront/current/objects/Cart#field-Cart.fields.discountCodes) + field to see whether the code is applicable to the cart's current contents. + + """ cartDiscountCodesUpdate( """The ID of the cart.""" cartId: ID! @@ -6832,10 +7645,35 @@ type Mutation { The input must not contain more than `250` values. """ - discountCodes: [String!] + discountCodes: [String!]! ): CartDiscountCodesUpdatePayload - """Removes the gift card codes applied to the cart.""" + """ + Adds gift card codes to a + [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart) without + replacing any codes already applied. Gift card codes are case-insensitive. + + To replace all gift card codes instead of adding to them, use [`cartGiftCardCodesUpdate`](https://shopify.dev/docs/api/storefront/current/mutations/cartGiftCardCodesUpdate). + + """ + cartGiftCardCodesAdd( + """The ID of the cart.""" + cartId: ID! + + """ + The case-insensitive gift card codes to add. + + The input must not contain more than `250` values. + """ + giftCardCodes: [String!]! + ): CartGiftCardCodesAddPayload + + """ + Removes gift cards from a + [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart) using + their IDs. You can retrieve the IDs of applied gift cards from the cart's [`appliedGiftCards`](https://shopify.dev/docs/api/storefront/current/objects/Cart#field-Cart.fields.appliedGiftCards) field. + + """ cartGiftCardCodesRemove( """The ID of the cart.""" cartId: ID! @@ -6848,7 +7686,12 @@ type Mutation { appliedGiftCardIds: [ID!]! ): CartGiftCardCodesRemovePayload - """Updates the gift card codes applied to the cart.""" + """ + Updates the gift card codes applied to the cart. Unlike [`cartGiftCardCodesAdd`](https://shopify.dev/docs/api/storefront/current/mutations/cartGiftCardCodesAdd), + which adds codes without replacing existing ones, this mutation sets the gift + card codes for the cart. Gift card codes are case-insensitive. + + """ cartGiftCardCodesUpdate( """The ID of the cart.""" cartId: ID! @@ -6861,7 +7704,18 @@ type Mutation { giftCardCodes: [String!]! ): CartGiftCardCodesUpdatePayload - """Adds a merchandise line to the cart.""" + """ + Adds one or more merchandise lines to an existing + [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart). Each + line specifies the [product variant](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant) + to purchase. Quantity defaults to `1` if not provided. + + You can add up to 250 lines in a single request. Use [`CartLineInput`](https://shopify.dev/docs/api/storefront/current/input-objects/CartLineInput) + to configure each line's merchandise, quantity, selling plan, custom + attributes, and any parent relationships for nested line items such as + warranties or add-ons. + + """ cartLinesAdd( """The ID of the cart.""" cartId: ID! @@ -6874,7 +7728,13 @@ type Mutation { lines: [CartLineInput!]! ): CartLinesAddPayload - """Removes one or more merchandise lines from the cart.""" + """ + Removes one or more merchandise lines from a + [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart). + Accepts up to 250 line IDs per request. Returns the updated cart along with + any errors or warnings. + + """ cartLinesRemove( """The ID of the cart.""" cartId: ID! @@ -6887,7 +7747,16 @@ type Mutation { lineIds: [ID!]! ): CartLinesRemovePayload - """Updates one or more merchandise lines on a cart.""" + """ + Updates one or more merchandise lines on a + [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart). You + can modify the quantity, swap the merchandise, change custom attributes, or + update the selling plan for each line. You can update a maximum of 250 lines per request. + + Omitting the [`attributes`](https://shopify.dev/docs/api/storefront/current/mutations/cartLinesUpdate#arguments-lines.fields.attributes) field or setting it to null preserves existing line attributes. Pass an empty + array to clear all attributes from a line. + + """ cartLinesUpdate( """The ID of the cart.""" cartId: ID! @@ -6900,16 +7769,34 @@ type Mutation { lines: [CartLineUpdateInput!]! ): CartLinesUpdatePayload - """Deletes a cart metafield.""" + """ + Deletes a cart metafield. + + > Note: + > This mutation won't trigger [Shopify + Functions](https://shopify.dev/docs/api/functions). The changes won't be + available to Shopify Functions until the buyer goes to checkout or performs + another cart interaction that triggers the functions. + + """ cartMetafieldDelete( """The input fields used to delete a cart metafield.""" input: CartMetafieldDeleteInput! ): CartMetafieldDeletePayload """ - Sets cart metafield values. Cart metafield values will be set regardless if they were previously created or not. + Sets [`Metafield`](https://shopify.dev/docs/api/storefront/current/objects/Metafield) values on a cart, creating new metafields or updating existing ones. Accepts + up to 25 metafields per request. + + Cart metafields can automatically copy to order metafields when an order is + created, if there's a matching order metafield definition with the [cart to order copyable](https://shopify.dev/docs/apps/build/metafields/use-metafield-capabilities#cart-to-order-copyable) + capability enabled. - Allows a maximum of 25 cart metafields to be set at a time. + > Note: + > This mutation doesn't trigger [Shopify + Functions](https://shopify.dev/docs/api/functions). Changes aren't available + to Shopify Functions until the buyer goes to checkout or performs another cart + interaction that triggers the functions. """ cartMetafieldsSet( @@ -6921,7 +7808,13 @@ type Mutation { metafields: [CartMetafieldsSetInput!]! ): CartMetafieldsSetPayload - """Updates the note on the cart.""" + """ + Updates the note on a + [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart). The + note is a text field that stores additional information, such as a + personalized message from the buyer or special instructions for the order. + + """ cartNoteUpdate( """The ID of the cart.""" cartId: ID! @@ -6945,7 +7838,23 @@ type Mutation { cartId: ID! ): CartPrepareForCompletionPayload - """Update the selected delivery options for a delivery group.""" + """Removes personally identifiable information from the cart.""" + cartRemovePersonalData( + """The ID of the cart.""" + cartId: ID! + ): CartRemovePersonalDataPayload + + """ + Updates the selected delivery option for one or more [`CartDeliveryGroup`](https://shopify.dev/docs/api/storefront/current/objects/CartDeliveryGroup) + objects in a cart. Each delivery group represents items shipping to a specific + address and offers multiple delivery options with different costs and methods. + + Use this mutation when a customer chooses their preferred shipping method + during checkout. The [`deliveryOptionHandle`](https://shopify.dev/docs/api/storefront/current/input-objects/CartSelectedDeliveryOptionInput#field-CartSelectedDeliveryOptionInput.fields.deliveryOptionHandle) + identifies which [`CartDeliveryOption`](https://shopify.dev/docs/api/storefront/current/objects/CartDeliveryOption) + to select for each delivery group. + + """ cartSelectedDeliveryOptionsUpdate( """The ID of the cart.""" cartId: ID! @@ -6972,8 +7881,17 @@ type Mutation { ): CartSubmitForCompletionPayload """ - Creates a customer access token. - The customer access token is required to modify the customer object in any way. + For legacy customer accounts only. + + Creates a [`CustomerAccessToken`](https://shopify.dev/docs/api/storefront/current/objects/CustomerAccessToken) using the customer's email and password. The access token is required to read or modify the + [`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer) + object, such as updating account information or managing addresses. + + The token has an expiration time. Use [`customerAccessTokenRenew`](https://shopify.dev/docs/api/storefront/current/mutations/customerAccessTokenRenew) + to extend the token before it expires, or create a new token if it's already expired. + + > Caution: + > This mutation handles customer credentials. Always transmit requests over HTTPS and never log or expose the password. """ customerAccessTokenCreate( @@ -6982,10 +7900,17 @@ type Mutation { ): CustomerAccessTokenCreatePayload """ - Creates a customer access token using a - [multipass token](https://shopify.dev/api/multipass) instead of email and - password. A customer record is created if the customer doesn't exist. If a customer - record already exists but the record is disabled, then the customer record is enabled. + Creates a [`CustomerAccessToken`](https://shopify.dev/docs/api/storefront/current/objects/CustomerAccessToken) using a [multipass token](https://shopify.dev/docs/api/multipass) instead of + email and password. This enables single sign-on for customers who authenticate + through an external system. + + If the customer doesn't exist in Shopify, then a new customer record is + created automatically. If the customer exists but the record is disabled, then + the customer record is re-enabled. + + > Caution: + > Multipass tokens are only valid for 15 minutes and can only be used once. + Generate tokens on-the-fly when needed rather than in advance. """ customerAccessTokenCreateWithMultipass( @@ -6995,17 +7920,33 @@ type Mutation { multipassToken: String! ): CustomerAccessTokenCreateWithMultipassPayload - """Permanently destroys a customer access token.""" + """ + Permanently destroys a [`CustomerAccessToken`](https://shopify.dev/docs/api/storefront/current/objects/CustomerAccessToken). + Use this mutation when a customer explicitly signs out or when you need to + revoke the token. Use [`customerAccessTokenCreate`](https://shopify.dev/docs/api/storefront/current/mutations/customerAccessTokenCreate) + to generate a new token with the customer's credentials. + + > Caution: + > This action is irreversible. The customer needs to sign in again to obtain a new access token. + + """ customerAccessTokenDelete( """The access token used to identify the customer.""" customerAccessToken: String! ): CustomerAccessTokenDeletePayload """ - Renews a customer access token. + Extends the validity of a [`CustomerAccessToken`](https://shopify.dev/docs/api/storefront/current/objects/CustomerAccessToken) + before it expires. The renewed token maintains authenticated access to + customer operations. + + Renewal must happen before the token's [`expiresAt`](https://shopify.dev/docs/api/storefront/current/objects/CustomerAccessToken#field-CustomerAccessToken.fields.expiresAt) + time. If a token has already expired, then use [`customerAccessTokenCreate`](https://shopify.dev/docs/api/storefront/current/mutations/customerAccessTokenCreate) + to generate a new token with the customer's credentials. - Access token renewal must happen *before* a token expires. - If a token has already expired, a new one should be created instead via `customerAccessTokenCreate`. + > Caution: + > Store access tokens securely. Never store tokens in plain text or insecure + locations, and avoid exposing them in URLs or logs. """ customerAccessTokenRenew( @@ -7013,7 +7954,17 @@ type Mutation { customerAccessToken: String! ): CustomerAccessTokenRenewPayload - """Activates a customer.""" + """ + Activates a customer account using an activation token received from the [`customerCreate`](https://shopify.dev/docs/api/storefront/current/mutations/customerCreate) + mutation. The customer sets their password during activation and receives a [`CustomerAccessToken`](https://shopify.dev/docs/api/storefront/current/objects/CustomerAccessToken) + for authenticated access. + + For a simpler approach that doesn't require parsing the activation URL, use [`customerActivateByUrl`](https://shopify.dev/docs/api/storefront/current/mutations/customerActivateByUrl) instead. + + > Caution: + > This mutation handles customer credentials. Always use HTTPS and never log or expose the password or access token. + + """ customerActivate( """Specifies the customer to activate.""" id: ID! @@ -7023,7 +7974,15 @@ type Mutation { ): CustomerActivatePayload """ - Activates a customer with the activation url received from `customerCreate`. + Activates a customer account using the full activation URL from the [`customerCreate`](https://shopify.dev/docs/api/storefront/current/mutations/customerCreate) + mutation. This approach simplifies activation by accepting the complete URL + directly, eliminating the need to parse it for the customer ID and activation + token. Returns a [`CustomerAccessToken`](https://shopify.dev/docs/api/storefront/current/objects/CustomerAccessToken) + for authenticating subsequent requests. + + > Caution: + > Store the returned access token securely. It grants access to the customer's account data. + """ customerActivateByUrl( """The customer activation URL.""" @@ -7033,7 +7992,13 @@ type Mutation { password: String! ): CustomerActivateByUrlPayload - """Creates a new address for a customer.""" + """ + Creates a new [`MailingAddress`](https://shopify.dev/docs/api/storefront/current/objects/MailingAddress) for a [`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer). Use the customer's [access token](https://shopify.dev/docs/api/storefront/current/mutations/customerAddressCreate#arguments-customerAccessToken) + to identify them. Successful creation returns the new address. + + Each customer can have multiple addresses. + + """ customerAddressCreate( """The access token used to identify the customer.""" customerAccessToken: String! @@ -7042,7 +8007,15 @@ type Mutation { address: MailingAddressInput! ): CustomerAddressCreatePayload - """Permanently deletes the address of an existing customer.""" + """ + Permanently deletes a specific [`MailingAddress`](https://shopify.dev/docs/api/storefront/current/objects/MailingAddress) for a [`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer). + Requires a valid [customer access token](https://shopify.dev/docs/api/storefront/current/mutations/customerAddressDelete#arguments-customerAccessToken) + to authenticate the request. + + > Caution: + > This action is irreversible. You can't recover the deleted address. + + """ customerAddressDelete( """Specifies the address to delete.""" id: ID! @@ -7051,7 +8024,15 @@ type Mutation { customerAccessToken: String! ): CustomerAddressDeletePayload - """Updates the address of an existing customer.""" + """ + Updates an existing [`MailingAddress`](https://shopify.dev/docs/api/storefront/current/objects/MailingAddress) for a [`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer). + Requires a [customer access token](https://shopify.dev/docs/api/storefront/current/mutations/customerAddressUpdate#arguments-customerAccessToken) + to identify the customer, an ID to specify which address to modify, and an [`address`](https://shopify.dev/docs/api/storefront/current/input-objects/MailingAddressInput) + with the updated fields. + + Successful update returns the updated [`MailingAddress`](https://shopify.dev/docs/api/storefront/current/objects/MailingAddress). + + """ customerAddressUpdate( """The access token used to identify the customer.""" customerAccessToken: String! @@ -7063,13 +8044,29 @@ type Mutation { address: MailingAddressInput! ): CustomerAddressUpdatePayload - """Creates a new customer.""" + """ + Creates a new [`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer) + account with the provided contact information and login credentials. The + customer can then sign in for things such as accessing their account, viewing + order history, and managing saved addresses. + + > Caution: + > This mutation creates customer credentials. Ensure passwords are collected + securely and never logged or exposed in client-side code. + + """ customerCreate( """The fields used to create a new customer.""" input: CustomerCreateInput! ): CustomerCreatePayload - """Updates the default address of an existing customer.""" + """ + Updates the default address of an existing [`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer). + Requires a [customer access token](https://shopify.dev/docs/api/storefront/current/mutations/customerDefaultAddressUpdate#arguments-customerAccessToken) + to identify the customer and an address ID to specify which address to set as + the new default. + + """ customerDefaultAddressUpdate( """The access token used to identify the customer.""" customerAccessToken: String! @@ -7079,19 +8076,18 @@ type Mutation { ): CustomerDefaultAddressUpdatePayload """ - Sends a reset password email to the customer. The reset password - email contains a reset password URL and token that you can pass to - the [`customerResetByUrl`](https://shopify.dev/api/storefront/latest/mutations/customerResetByUrl) or - [`customerReset`](https://shopify.dev/api/storefront/latest/mutations/customerReset) mutation to reset the - customer password. + Sends a reset password email to the customer. The email contains a reset + password URL and token that you can pass to the [`customerResetByUrl`](https://shopify.dev/docs/api/storefront/current/mutations/customerResetByUrl) or [`customerReset`](https://shopify.dev/docs/api/storefront/current/mutations/customerReset) + mutation to reset the customer's password. - This mutation is throttled by IP. With private access, - you can provide a [`Shopify-Storefront-Buyer-IP`](https://shopify.dev/api/usage/authentication#optional-ip-header) - instead of the request IP. - The header is case-sensitive and must be sent as `Shopify-Storefront-Buyer-IP`. + This mutation is throttled by IP. With private access, you can provide a + [`Shopify-Storefront-Buyer-IP` + header](https://shopify.dev/docs/api/usage/authentication#optional-ip-header) + instead of the request IP. The header is case-sensitive. - Make sure that the value provided to `Shopify-Storefront-Buyer-IP` is trusted. Unthrottled access to this - mutation presents a security risk. + > Caution: + > Ensure the value provided to `Shopify-Storefront-Buyer-IP` is trusted. + Unthrottled access to this mutation presents a security risk. """ customerRecover( @@ -7100,8 +8096,17 @@ type Mutation { ): CustomerRecoverPayload """ - "Resets a customer’s password with the token received from a reset password - email. You can send a reset password email with the [`customerRecover`](https://shopify.dev/api/storefront/latest/mutations/customerRecover) mutation." + Resets a customer's password using the reset token from a password recovery + email. On success, returns the updated + [`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer) and a new [`CustomerAccessToken`](https://shopify.dev/docs/api/storefront/current/objects/CustomerAccessToken) + for immediate authentication. + + Use the [`customerRecover`](https://shopify.dev/docs/api/storefront/current/mutations/customerRecover) mutation to send the password recovery email that provides the reset token. + Alternatively, use [`customerResetByUrl`](https://shopify.dev/docs/api/storefront/current/mutations/customerResetByUrl) + if you have the full reset URL instead of the customer ID and token. + + > Caution: + > This mutation handles sensitive customer credentials. Validate password requirements on the client before submission. """ customerReset( @@ -7113,8 +8118,16 @@ type Mutation { ): CustomerResetPayload """ - "Resets a customer’s password with the reset password URL received from a - reset password email. You can send a reset password email with the [`customerRecover`](https://shopify.dev/api/storefront/latest/mutations/customerRecover) mutation." + Resets a customer's password using the reset URL from a password recovery + email. The reset URL is generated by the [`customerRecover`](https://shopify.dev/docs/api/storefront/current/mutations/customerRecover) mutation. + + On success, returns the updated + [`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer) and a new [`CustomerAccessToken`](https://shopify.dev/docs/api/storefront/current/objects/CustomerAccessToken) + for immediate authentication. + + > Caution: + > This mutation handles customer credentials. Ensure the new password is + transmitted securely and never logged or exposed in client-side code. """ customerResetByUrl( @@ -7125,7 +8138,21 @@ type Mutation { password: String! ): CustomerResetByUrlPayload - """Updates an existing customer.""" + """ + Updates a [customer's](https://shopify.dev/docs/api/storefront/current/objects/Customer) + personal information such as name, password, and marketing preferences. + Requires a valid [`CustomerAccessToken`](https://shopify.dev/docs/api/storefront/current/objects/CustomerAccessToken) + to authenticate the customer making the update. + + If the customer's password is updated, then all previous access tokens become + invalid. The mutation returns a new access token in the payload to maintain + the customer's session. + + > Caution: + > Password changes invalidate all existing access tokens. Ensure your app + handles the new token returned in the response to avoid logging the customer out. + + """ customerUpdate( """The access token used to identify the customer.""" customerAccessToken: String! @@ -7134,7 +8161,20 @@ type Mutation { customer: CustomerUpdateInput! ): CustomerUpdatePayload - """Create a new Shop Pay payment request session.""" + """ + Creates a [Shop Pay payment request session](https://shopify.dev/docs/api/storefront/current/objects/ShopPayPaymentRequestSession) + for processing payments. The session includes a checkout URL where customers + complete their purchase and a token for subsequent operations like submitting the payment. + + The `sourceIdentifier` must be unique across all orders to ensure accurate reconciliation. + + For a complete integration guide including the JavaScript SDK setup and + checkout flow, refer to the [Shop Component API + documentation](https://shopify.dev/docs/api/commerce-components/pay). For + implementation steps, see the [development journey guide](https://shopify.dev/docs/api/commerce-components/pay/development-journey). + For common error scenarios, see the [troubleshooting guide](https://shopify.dev/docs/api/commerce-components/pay/troubleshooting-guide). + + """ shopPayPaymentRequestSessionCreate( """A unique identifier for the payment request session.""" sourceIdentifier: String! @@ -7143,7 +8183,21 @@ type Mutation { paymentRequest: ShopPayPaymentRequestInput! ): ShopPayPaymentRequestSessionCreatePayload - """Submits a Shop Pay payment request session.""" + """ + Finalizes a [Shop Pay payment request session](https://shopify.dev/docs/api/storefront/current/objects/ShopPayPaymentRequestSession). + Call this mutation after creating a session with [`shopPayPaymentRequestSessionCreate`](https://shopify.dev/docs/api/storefront/current/mutations/shopPayPaymentRequestSessionCreate). + + The [`idempotencyKey`](https://shopify.dev/docs/api/storefront/current/mutations/shopPayPaymentRequestSessionSubmit#arguments-idempotencyKey) argument ensures the payment transaction occurs only once, preventing + duplicate charges. On success, returns a [`ShopPayPaymentRequestReceipt`](https://shopify.dev/docs/api/storefront/current/objects/ShopPayPaymentRequestReceipt) + with the processing status and a receipt token. + + For a complete integration guide including the JavaScript SDK setup and + checkout flow, refer to the [Shop Component API + documentation](https://shopify.dev/docs/api/commerce-components/pay). For + implementation steps, see the [development journey guide](https://shopify.dev/docs/api/commerce-components/pay/development-journey). + For common error scenarios, see the [troubleshooting guide](https://shopify.dev/docs/api/commerce-components/pay/troubleshooting-guide). + + """ shopPayPaymentRequestSessionSubmit( """A token representing a payment session request.""" token: String! @@ -7162,10 +8216,11 @@ type Mutation { } """ -An object with an ID field to support global identification, in accordance with the -[Relay specification](https://relay.dev/graphql/objectidentification.htm#sec-Node-Interface). -This interface is used by the [node](/docs/api/storefront/latest/queries/node) -and [nodes](/docs/api/storefront/latest/queries/nodes) queries. +Enables global object identification following the [Relay specification](https://relay.dev/graphql/objectidentification.htm#sec-Node-Interface). +Any type implementing this interface has a globally-unique `id` field and can be +fetched directly using the +[`node`](https://shopify.dev/docs/api/storefront/current/queries/node) or +[`nodes`](https://shopify.dev/docs/api/storefront/current/queries/nodes) queries. """ interface Node { @@ -7480,7 +8535,14 @@ enum OrderFinancialStatus { } """ -Represents the order's aggregated fulfillment status for display purposes. +The aggregated fulfillment status of an +[`Order`](https://shopify.dev/docs/api/storefront/current/objects/Order), +summarizing the state of all line items. Used for display purposes. + +Statuses range from unfulfilled to fully fulfilled, with intermediate states such as in progress and on hold. + +Learn more about [order statuses](https://help.shopify.com/manual/fulfillment/managing-orders/order-status). + """ enum OrderFulfillmentStatus { """ @@ -7617,8 +8679,18 @@ enum OrderSortKeys { } """ -Shopify merchants can create pages to hold static HTML content. Each Page object -represents a custom page on the online store. +A [custom content +page](https://help.shopify.com/manual/online-store/add-edit-pages) on a +merchant's store. Pages display HTML-formatted content, such as "About Us", +contact details, or store policies. + +Each page has a unique [`handle`](https://shopify.dev/docs/api/storefront/current/objects/Page#field-Page.fields.handle) +for URL routing and includes +[`SEO`](https://shopify.dev/docs/api/storefront/current/objects/SEO) information +for search engine optimization. Pages support +[`Metafield`](https://shopify.dev/docs/api/storefront/current/objects/Metafield) +attachments for storing additional custom data. + """ type Page implements HasMetafields & Node & OnlineStorePublishable & Trackable { """The description of the page, complete with HTML formatting.""" @@ -7811,8 +8883,12 @@ enum PredictiveSearchLimitScope { } """ -A predictive search result represents a list of products, collections, pages, articles, and query suggestions -that matches the predictive search query. +Returned by the [`predictiveSearch`](https://shopify.dev/docs/api/storefront/current/queries/predictiveSearch) +query to power type-ahead search experiences. Includes matching +[`Product`](https://shopify.dev/docs/api/storefront/current/objects/Product), [`Collection`](https://shopify.dev/docs/api/storefront/current/objects/Collection), +[`Page`](https://shopify.dev/docs/api/storefront/current/objects/Page), and +[`Article`](https://shopify.dev/docs/api/storefront/current/objects/Article) +objects, along with query suggestions that help customers refine their search. """ type PredictiveSearchResult { @@ -7871,7 +8947,10 @@ enum PreferenceDeliveryMethodType { } """ -The input fields for a filter used to view a subset of products in a collection matching a specific price range. +A price range for filtering products in a collection. Used by the [`ProductFilter`](https://shopify.dev/docs/api/storefront/current/input-objects/ProductFilter) input's [`price`](https://shopify.dev/docs/api/storefront/current/input-objects/ProductFilter#fields-price) field. + +> Note: Omitting the [maximum](https://shopify.dev/docs/api/storefront/currents/input-objects/PriceRangeFilter#fields-max) +returns all products above the [minimum](https://shopify.dev/docs/api/storefront/current/input-objects/PriceRangeFilter#fields-min). """ input PriceRangeFilter { @@ -7882,7 +8961,13 @@ input PriceRangeFilter { max: Float } -"""The value of the percentage pricing object.""" +""" +A percentage discount value applied to cart items or orders. Returned as part of the [`PricingValue`](https://shopify.dev/docs/api/storefront/current/unions/PricingValue) +union on [discount applications](https://shopify.dev/docs/api/storefront/current/interfaces/DiscountApplication), +where it represents discounts calculated as a percentage off rather than a +[fixed amount](https://shopify.dev/docs/api/storefront/current/objects/MoneyV2). + +""" type PricingPercentageValue { """The percentage value of the object.""" percentage: Float! @@ -7892,16 +8977,20 @@ type PricingPercentageValue { union PricingValue = MoneyV2 | PricingPercentageValue """ -The `Product` object lets you manage products in a merchant’s store. +Represents an item listed in a shop's catalog. -Products are the goods and services that merchants offer to customers. -They can include various details such as title, description, price, images, and options such as size or color. -You can use [product variants](/docs/api/storefront/latest/objects/ProductVariant) -to create or update different versions of the same product. -You can also add or update product [media](/docs/api/storefront/latest/interfaces/Media). -Products can be organized by grouping them into a [collection](/docs/api/storefront/latest/objects/Collection). +Products support multiple [product variants](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant), +representing different versions of the same product, and can include various +[media](https://shopify.dev/docs/api/storefront/current/interfaces/Media) types. Use the [`selectedOrFirstAvailableVariant`](https://shopify.dev/docs/api/storefront/current/objects/Product#field-Product.fields.selectedOrFirstAvailableVariant) or [`variantBySelectedOptions`](https://shopify.dev/docs/api/storefront/current/objects/Product#field-Product.fields.variantBySelectedOptions) +fields to help customers find the right variant based on their selections. -Learn more about working with [products and collections](/docs/storefronts/headless/building-with-the-storefront-api/products-collections). +Products can be organized into [collections](https://shopify.dev/docs/api/storefront/current/objects/Collection), +associated with [selling +plans](https://shopify.dev/docs/api/storefront/current/objects/SellingPlanGroup) +for subscriptions, and extended with custom data through +[metafields](https://shopify.dev/docs/api/storefront/current/objects/Metafield). + +Learn more about working with [products and collections](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/products-collections). """ type Product implements HasMetafields & Node & OnlineStorePublishable & Trackable { @@ -8332,7 +9421,14 @@ type Product implements HasMetafields & Node & OnlineStorePublishable & Trackabl vendor: String! } -"""The set of valid sort keys for the ProductCollection query.""" +""" +Sort options for products within a [`Collection`](https://shopify.dev/docs/api/storefront/current/objects/Collection). Used by the [`products`](https://shopify.dev/docs/api/storefront/current/objects/Collection#field-Collection.fields.products) +connection to order results by best-selling, price, title, creation date, or the +collection's default and manual ordering. + +> Note: The [`RELEVANCE`](https://shopify.dev/docs/api/storefront/current/enums/ProductCollectionSortKeys#enums-RELEVANCE) key applies only when you specify a search query. + +""" enum ProductCollectionSortKeys { """Sort by the `title` value.""" TITLE @@ -8467,9 +9563,15 @@ enum ProductMediaSortKeys { } """ -Product property names like "Size", "Color", and "Material" that the customers can select. -Variants are selected based on permutations of these options. -255 characters limit each. +A customizable product attribute that customers select when purchasing, such as +"Size", "Color", or "Material". Each option has a name and a set of [`ProductOptionValue`](https://shopify.dev/docs/api/storefront/current/objects/ProductOptionValue) +objects representing the available choices. + +Different combinations of option values create distinct [`ProductVariant`](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant) +objects. Option values can include visual swatches that display colors or images +to help customers make selections. Option names have a 255-character limit. + +Learn more about [Shopify's product model](https://shopify.dev/docs/apps/build/product-merchandising/products-and-collections). """ type ProductOption implements Node { @@ -8487,7 +9589,16 @@ type ProductOption implements Node { } """ -The product option value names. For example, "Red", "Blue", and "Green" for a "Color" option. +A specific value for a [`ProductOption`](https://shopify.dev/docs/api/storefront/current/objects/ProductOption), +such as "Red" or "Blue" for a "Color" option. Option values combine across +different options to create [`ProductVariant`](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant) objects. + +Each value can include a visual swatch that displays a color or image. The [`firstSelectableVariant`](https://shopify.dev/docs/api/storefront/current/objects/ProductOptionValue#field-ProductOptionValue.fields.firstSelectableVariant) +field returns the variant that combines this option value with the +lowest-position values for all other options. This is useful for building +product selection interfaces. + +Learn more about [Shopify's product model](https://shopify.dev/docs/apps/build/product-merchandising/products-and-collections). """ type ProductOptionValue implements Node { @@ -8511,7 +9622,9 @@ type ProductOptionValue implements Node { } """ -The product option value swatch. +A visual representation for a [`ProductOptionValue`](https://shopify.dev/docs/api/storefront/current/objects/ProductOptionValue), +such as a color or image. Swatches help customers visualize options like "Red" +or "Blue" without relying solely on text labels. """ type ProductOptionValueSwatch { @@ -8522,7 +9635,11 @@ type ProductOptionValueSwatch { image: Media } -"""The price range of the product.""" +""" +The minimum and maximum prices across all variants of a +[`Product`](https://shopify.dev/docs/api/storefront/current/objects/Product). + +""" type ProductPriceRange { """The highest variant's price.""" maxVariantPrice: MoneyV2! @@ -8552,7 +9669,16 @@ enum ProductRecommendationIntent { COMPLEMENTARY } -"""The set of valid sort keys for the Product query.""" +""" +Sorting options for the +[`products`](https://shopify.dev/docs/api/storefront/current/queries/products) +query. Supports sorting products by criteria such as best-selling and price, and +by product attributes such as type, and vendor. + +> Note: Use the [`RELEVANCE`](https://shopify.dev/docs/api/storefront/current/enums/ProductSortKeys#enums-RELEVANCE) +key only when a search query is specified. + +""" enum ProductSortKeys { """Sort by the `title` value.""" TITLE @@ -8587,7 +9713,18 @@ enum ProductSortKeys { } """ -A product variant represents a different version of a product, such as differing sizes or differing colors. +A specific version of a +[product](https://shopify.dev/docs/api/storefront/current/objects/Product) +available for sale, differentiated by options like size or color. For example, a +small blue t-shirt and a large blue t-shirt are separate variants of the same +product. For more information, see the docs on [Shopify's product model](https://shopify.dev/docs/apps/build/product-merchandising/products-and-collections). + +For products with quantity rules, variants enforce minimum, maximum, and increment constraints on purchases. + +Variants also support subscriptions and pre-orders through [selling plan allocations](https://shopify.dev/docs/api/storefront/current/objects/SellingPlanAllocation) +objects, bundle configurations through [product variant components](https://shopify.dev/docs/api/storefront/current/objects/ProductVariantComponent) +objects, and [shop pay installments pricing](https://shopify.dev/docs/api/storefront/current/objects/ShopPayInstallmentsPricing) +for flexible payment options. """ type ProductVariant implements HasMetafields & Node { @@ -8805,7 +9942,12 @@ type ProductVariant implements HasMetafields & Node { } """ -Represents a component of a bundle variant. +An individual product variant included in a [fixed +bundle](https://shopify.dev/docs/apps/build/product-merchandising/bundles). +Fixed bundles group multiple products together and sell them as a single unit, +with the bundle's inventory determined by its components. + +Access components through the `ProductVariant` object's [`components`](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant#field-ProductVariant.fields.components) field. """ type ProductVariantComponent { @@ -8983,16 +10125,51 @@ type QuantityRule { } """ -The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start. +The entry point for all Storefront API queries. Provides access to shop +resources including products, collections, carts, and customer data, as well as +content like articles and pages. This query acts as the public, top-level type +from which all queries must start. + +Use individual queries like +[`product`](https://shopify.dev/docs/api/storefront/current/queries/product) or [`collection`](https://shopify.dev/docs/api/storefront/current/queries/collection) +to fetch specific resources by ID or handle. Use plural queries like +[`products`](https://shopify.dev/docs/api/storefront/current/queries/products) or [`collections`](https://shopify.dev/docs/api/storefront/current/queries/collections) +to retrieve paginated lists with optional filtering and sorting. The +[`search`](https://shopify.dev/docs/api/storefront/current/queries/search) and [`predictiveSearch`](https://shopify.dev/docs/api/storefront/current/queries/predictiveSearch) +queries enable storefront search functionality. + +Explore queries interactively with the [GraphiQL explorer and sample query kit](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/api-exploration). + """ type Query { - """Fetch a specific Article by its ID.""" + """ + Returns an [`Article`](https://shopify.dev/docs/api/storefront/current/objects/Article) + by its ID. Each article belongs to a + [`Blog`](https://shopify.dev/docs/api/storefront/current/objects/Blog) and + includes content in both plain text and HTML formats, [`ArticleAuthor`](https://shopify.dev/docs/api/storefront/current/objects/ArticleAuthor) information, + [`Comment`](https://shopify.dev/docs/api/storefront/current/objects/Comment) + objects, tags, and + [`SEO`](https://shopify.dev/docs/api/storefront/current/objects/SEO) data. + + """ article( """The ID of the `Article`.""" id: ID! ): Article - """List of the shop's articles.""" + """ + Returns a paginated list of + [`Article`](https://shopify.dev/docs/api/storefront/current/objects/Article) + objects from the shop's + [`Blog`](https://shopify.dev/docs/api/storefront/current/objects/Blog) + objects. Each article is a blog post containing content, author information, + tags, and optional images. + + Use the `query` argument to filter results by author, blog title, tags, or + date fields. Sort results using the `sortKey` argument and reverse them with + the `reverse` argument. + + """ articles( """Returns up to the first `n` elements from the list.""" first: Int @@ -9030,7 +10207,14 @@ type Query { query: String ): ArticleConnection! - """Fetch a specific `Blog` by one of its unique attributes.""" + """ + Retrieves a [`Blog`](https://shopify.dev/docs/api/storefront/current/objects/Blog) by + its handle or ID. A blog organizes + [`Article`](https://shopify.dev/docs/api/storefront/current/objects/Article) + objects for the online store and includes author information, + [`SEO`](https://shopify.dev/docs/api/storefront/current/objects/SEO) settings, and custom [`Metafield`](https://shopify.dev/docs/api/storefront/current/objects/Metafield) objects. + + """ blog( """The handle of the `Blog`.""" handle: String @@ -9039,13 +10223,26 @@ type Query { id: ID ): Blog - """Find a blog by its handle.""" + """ + Retrieves a [`Blog`](https://shopify.dev/docs/api/storefront/current/objects/Blog) by + its handle. A blog organizes + [`Article`](https://shopify.dev/docs/api/storefront/current/objects/Article) + objects for the online store and includes author information, + [`SEO`](https://shopify.dev/docs/api/storefront/current/objects/SEO) settings, and custom [`Metafield`](https://shopify.dev/docs/api/storefront/current/objects/Metafield) objects. + + """ blogByHandle( """The handle of the blog.""" handle: String! ): Blog @deprecated(reason: "Use `blog` instead.") - """List of the shop's blogs.""" + """ + Returns a paginated list of the shop's + [`Blog`](https://shopify.dev/docs/api/storefront/current/objects/Blog) + objects. Each blog serves as a container for + [`Article`](https://shopify.dev/docs/api/storefront/current/objects/Article) objects. + + """ blogs( """Returns up to the first `n` elements from the list.""" first: Int @@ -9082,8 +10279,12 @@ type Query { ): BlogConnection! """ - Retrieve a cart by its ID. For more information, refer to - [Manage a cart with the Storefront API](https://shopify.dev/custom-storefronts/cart/manage). + Returns a [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart) by + its ID. The cart contains the merchandise lines a buyer intends to purchase, + along with estimated costs, applied discounts, gift cards, and delivery options. + + Use the [`checkoutUrl`](https://shopify.dev/docs/api/storefront/latest/queries/cart#returns-Cart.fields.checkoutUrl) field to redirect buyers to Shopify's web checkout when they're ready to + complete their purchase. For more information, refer to [Manage a cart with the Storefront API](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/cart/manage). """ cart( @@ -9100,7 +10301,12 @@ type Query { attemptId: String! ): CartCompletionAttemptResult - """Fetch a specific `Collection` by one of its unique attributes.""" + """ + Retrieves a single [`Collection`](https://shopify.dev/docs/api/storefront/current/objects/Collection) + by its ID or handle. Use the [`products`](https://shopify.dev/docs/api/storefront/current/objects/Collection#field-Collection.fields.products) + field to access items in the collection. + + """ collection( """The ID of the `Collection`.""" id: ID @@ -9109,13 +10315,21 @@ type Query { handle: String ): Collection - """Find a collection by its handle.""" + """ + Retrieves a [`Collection`](https://shopify.dev/docs/api/storefront/current/objects/Collection) by its URL-friendly handle. Handles are automatically generated from + collection titles but merchants can customize them. + + """ collectionByHandle( """The handle of the collection.""" handle: String! ): Collection @deprecated(reason: "Use `collection` instead.") - """List of the shop’s collections.""" + """ + Returns a paginated list of the shop's [collections](https://shopify.dev/docs/api/storefront/current/objects/Collection). + Each `Collection` object includes a nested connection to its [products](https://shopify.dev/docs/api/storefront/current/objects/Collection#field-Collection.fields.products). + + """ collections( """Returns up to the first `n` elements from the list.""" first: Int @@ -9151,8 +10365,14 @@ type Query { ): CollectionConnection! """ - The customer associated with the given access token. Tokens are obtained by using the - [`customerAccessTokenCreate` mutation](https://shopify.dev/docs/api/storefront/latest/mutations/customerAccessTokenCreate). + Retrieves the [`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer) + associated with the provided access token. Use the [`customerAccessTokenCreate`](https://shopify.dev/docs/api/storefront/current/mutations/customerAccessTokenCreate) + mutation to obtain an access token using legacy customer account + authentication (email and password). + + The returned customer includes data such as contact information, [addresses](https://shopify.dev/docs/api/storefront/current/objects/MailingAddress), + [orders](https://shopify.dev/docs/api/storefront/current/objects/Order), and + [custom data](https://shopify.dev/docs/apps/build/custom-data) associated with the customer. """ customer( @@ -9160,14 +10380,25 @@ type Query { customerAccessToken: String! ): Customer - """Returns the localized experiences configured for the shop.""" + """ + Returns the shop's localization settings. Use this query to build [country and language selectors](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/markets) + for your storefront. + + The [`country`](https://shopify.dev/docs/api/storefront/latest/queries/localization#returns-Localization.fields.country) and [`language`](https://shopify.dev/docs/api/storefront/latest/queries/localization#returns-Localization.fields.language) fields reflect the active localized experience. To change the context, use the + [`@inContext`](https://shopify.dev/docs/api/storefront#directives) directive + with your desired country or language code. + + """ localization: Localization! """ - List of the shop's locations that support in-store pickup. + Returns shop locations that support in-store pickup. Use the `near` argument with [`GeoCoordinateInput`](https://shopify.dev/docs/api/storefront/current/input-objects/GeoCoordinateInput) + to sort results by proximity to the customer's location. - When sorting by distance, you must specify a location via the `near` argument. + When sorting by distance, set `sortKey` to [`DISTANCE`](https://shopify.dev/docs/api/storefront/current/queries/locations#arguments-sortKey.enums.DISTANCE) + and provide coordinates using the [`near`](https://shopify.dev/docs/api/storefront/current/queries/locations#arguments-near) argument. + Learn more about [supporting local pickup on storefronts](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/products-collections/local-pickup). """ locations( @@ -9194,14 +10425,32 @@ type Query { ): LocationConnection! """ - Retrieve a [navigation menu](https://help.shopify.com/manual/online-store/menus-and-links) by its handle. + Retrieves a [`Menu`](https://shopify.dev/docs/api/storefront/current/objects/Menu) by + its handle. Menus are [hierarchical navigation + structures](https://help.shopify.com/manual/online-store/menus-and-links) that + merchants configure for their storefront, such as header and footer navigation. + + Each menu contains + [`MenuItem`](https://shopify.dev/docs/api/storefront/current/objects/MenuItem) + objects that can nest up to three levels deep, with each item linking to [collections](https://shopify.dev/docs/api/storefront/current/objects/Collection), + [products](https://shopify.dev/docs/api/storefront/current/objects/Product), + [pages](https://shopify.dev/docs/api/storefront/current/objects/Page), + [blogs](https://shopify.dev/docs/api/storefront/current/objects/Blog), or external URLs. + """ menu( """The navigation menu's handle.""" handle: String! ): Menu - """Fetch a specific Metaobject by one of its unique identifiers.""" + """ + Retrieves a single [`Metaobject`](https://shopify.dev/docs/api/storefront/current/objects/Metaobject) + by either its [`global ID`](https://shopify.dev/docs/api/storefront/current/queries/metaobject#arguments-id) or its [`handle`](https://shopify.dev/docs/api/storefront/current/queries/metaobject#arguments-handle). + + > Note: + > When using the handle, you must also provide the metaobject type because handles are only unique within a type. + + """ metaobject( """The ID of the metaobject.""" id: ID @@ -9210,7 +10459,17 @@ type Query { handle: MetaobjectHandleInput ): Metaobject - """All active metaobjects for the shop.""" + """ + Returns a paginated list of [`Metaobject`](https://shopify.dev/docs/api/storefront/current/objects/Metaobject) + entries for a specific type. Metaobjects are [custom data + structures](https://shopify.dev/docs/apps/build/metaobjects) that extend + Shopify's data model with merchant-defined or app-defined content like size + charts, product highlights, or custom sections. + + The required `type` argument specifies which metaobject type to retrieve. You + can sort results by `id` or `updated_at` using the `sortKey` argument. + + """ metaobjects( """The type of metaobject to retrieve.""" type: String! @@ -9234,13 +10493,32 @@ type Query { reverse: Boolean = false ): MetaobjectConnection! - """Returns a specific node by ID.""" + """ + Retrieves any object that implements the + [`Node`](https://shopify.dev/docs/api/storefront/current/interfaces/Node) + interface by its globally-unique ID. Use inline fragments to access + type-specific fields on the returned object. + + This query follows the [Relay specification](https://relay.dev/graphql/objectidentification.htm#sec-Node-Interface) + and is commonly used for refetching objects when you have their ID but need updated data. + + """ node( """The ID of the Node to return.""" id: ID! ): Node - """Returns the list of nodes with the given IDs.""" + """ + Retrieves multiple objects by their global IDs in a single request. Any object + that implements the + [`Node`](https://shopify.dev/docs/api/storefront/current/interfaces/Node) + interface can be fetched, including + [products](https://shopify.dev/docs/api/storefront/current/objects/Product), [collections](https://shopify.dev/docs/api/storefront/current/objects/Collection), + and [pages](https://shopify.dev/docs/api/storefront/current/objects/Page). + + Use inline fragments to access type-specific fields on the returned objects. The input accepts up to 250 IDs. + + """ nodes( """ The IDs of the Nodes to return. @@ -9250,7 +10528,16 @@ type Query { ids: [ID!]! ): [Node]! - """Fetch a specific `Page` by one of its unique attributes.""" + """ + Retrieves a [`Page`](https://shopify.dev/docs/api/storefront/current/objects/Page) by its [`handle`](https://shopify.dev/docs/api/storefront/current/queries/page#arguments-handle) or [`id`](https://shopify.dev/docs/api/storefront/current/queries/page#arguments-id). + Pages are static content pages that merchants display outside their product + catalog, such as "About Us," "Contact," or policy pages. + + The returned page includes information such as the [HTML body content](https://shopify.dev/docs/api/storefront/current/queries/page#returns-Page.fields.body), + [`SEO`](https://shopify.dev/docs/api/storefront/current/objects/SEO) + information, and any associated [`Metafield`](https://shopify.dev/docs/api/storefront/current/objects/Metafield) objects. + + """ page( """The handle of the `Page`.""" handle: String @@ -9259,13 +10546,22 @@ type Query { id: ID ): Page - """Find a page by its handle.""" + """ + Retrieves a [`Page`](https://shopify.dev/docs/api/storefront/current/objects/Page) by its handle. + + """ pageByHandle( """The handle of the page.""" handle: String! ): Page @deprecated(reason: "Use `page` instead.") - """List of the shop's pages.""" + """ + Returns a paginated list of the shop's content + [pages](https://shopify.dev/docs/api/storefront/current/objects/Page). Pages + are custom HTML content like "About Us", "Contact", or policy information that + merchants display outside their product catalog. + + """ pages( """Returns up to the first `n` elements from the list.""" first: Int @@ -9304,7 +10600,20 @@ type Query { """Settings related to payments.""" paymentSettings: PaymentSettings! - """List of the predictive search results.""" + """ + Returns suggested results as customers type in a search field, enabling + type-ahead search experiences. The query matches + [products](https://shopify.dev/docs/api/storefront/current/objects/Product), [collections](https://shopify.dev/docs/api/storefront/current/objects/Collection), + [pages](https://shopify.dev/docs/api/storefront/current/objects/Page), and + [articles](https://shopify.dev/docs/api/storefront/current/objects/Article) + based on partial search terms, and also provides [search query suggestions](https://shopify.dev/docs/api/storefront/current/objects/SearchQuerySuggestion) + to help customers refine their search. + + You can filter results by resource type and limit the quantity. The [`limitScope`](https://shopify.dev/docs/api/storefront/current/queries/predictiveSearch#arguments-limitScope) + argument controls whether limits apply across all result types or per type. Use [`unavailableProducts`](https://shopify.dev/docs/api/storefront/current/queries/predictiveSearch#arguments-unavailableProducts) + to control how out-of-stock products appear in results. + + """ predictiveSearch( """ Limits the number of results based on `limit_scope`. The value can range from 1 to 10, and the default is 10. @@ -9339,7 +10648,14 @@ type Query { unavailableProducts: SearchUnavailableProductsType ): PredictiveSearchResult - """Fetch a specific `Product` by one of its unique attributes.""" + """ + Retrieves a single + [`Product`](https://shopify.dev/docs/api/storefront/current/objects/Product) + by its ID or handle. Use this query to build product detail pages, access + variant and pricing information, or fetch product media and [metafields](https://shopify.dev/docs/api/storefront/current/objects/Metafield). + See some [examples of querying products](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/products-collections/getting-started). + + """ product( """The ID of the `Product`.""" id: ID @@ -9348,7 +10664,13 @@ type Query { handle: String ): Product - """Find a product by its handle.""" + """ + Retrieves a [`Product`](https://shopify.dev/docs/api/storefront/current/objects/Product) + by its handle. The handle is a URL-friendly identifier that's automatically + generated from the product's title. If no product exists with the specified + handle, returns `null`. + + """ productByHandle( """ A unique, human-readable string of the product's title. @@ -9360,9 +10682,15 @@ type Query { ): Product @deprecated(reason: "Use `product` instead.") """ - Find recommended products related to a given `product_id`. - To learn more about how recommendations are generated, see - [*Showing product recommendations on product pages*](https://help.shopify.com/themes/development/recommended-products). + Returns recommended products for a given product, identified by either ID or + handle. Use the [`intent`](https://shopify.dev/docs/api/storefront/current/enums/ProductRecommendationIntent) + argument to control the recommendation strategy. + + Shopify [auto-generates related recommendations](https://shopify.dev/docs/storefronts/themes/product-merchandising/recommendations) + based on sales data, product descriptions, and collection relationships. + Complementary recommendations require [manual configuration](https://help.shopify.com/manual/online-store/storefront-search/search-and-discovery-recommendations) + through the Shopify Search & Discovery app. Returns up to ten + [`Product`](https://shopify.dev/docs/api/storefront/current/objects/Product) objects. """ productRecommendations( @@ -9381,8 +10709,9 @@ type Query { ): [Product!] """ - Tags added to products. - Additional access scope required: unauthenticated_read_product_tags. + Returns a paginated list of all tags that have been added to + [products](https://shopify.dev/docs/api/storefront/current/objects/Product) in + the shop. Useful for building tag-based product filtering or navigation in a storefront. """ productTags( @@ -9391,7 +10720,11 @@ type Query { ): StringConnection! """ - List of product types for the shop's products that are published to your app. + Returns a list of product types from the shop's + [`Product`](https://shopify.dev/docs/api/storefront/current/objects/Product) + objects that are published to your app. Use this query to build [filtering interfaces](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/products-collections/filter-products) + or navigation menus based on product categorization. + """ productTypes( """Returns up to the first `n` elements from the list.""" @@ -9399,8 +10732,11 @@ type Query { ): StringConnection! """ - Returns a list of the shop's products. For storefront search, use the - [`search`](https://shopify.dev/docs/api/storefront/latest/queries/search) query. + Returns a paginated list of the shop's [products](https://shopify.dev/docs/api/storefront/current/objects/Product). + + For full-text storefront search, use the + [`search`](https://shopify.dev/docs/api/storefront/current/queries/search) query instead. + """ products( """Returns up to the first `n` elements from the list.""" @@ -9452,11 +10788,26 @@ type Query { ): ProductConnection! """ - The list of public Storefront API versions, including supported, release candidate and unstable versions. + Returns all public Storefront [API + versions](https://shopify.dev/docs/api/storefront/current/objects/ApiVersion), + including supported, release candidate, and unstable versions. + """ publicApiVersions: [ApiVersion!]! - """List of the search results.""" + """ + Returns paginated search results for + [`Product`](https://shopify.dev/docs/api/storefront/current/objects/Product), + [`Page`](https://shopify.dev/docs/api/storefront/current/objects/Page), and + [`Article`](https://shopify.dev/docs/api/storefront/current/objects/Article) + resources based on a query string. Results are sorted by relevance by default. + + The response includes the total result count and available product filters for + building [faceted search interfaces](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/products-collections/filter-products). Use the [`prefix`](https://shopify.dev/docs/api/storefront/current/enums/SearchPrefixQueryType) + argument to enable partial word matching on the last search term, allowing + queries like "winter snow" to match "snowboard" or "snowshoe". + + """ search( """Returns up to the first `n` elements from the list.""" first: Int @@ -9504,16 +10855,42 @@ type Query { unavailableProducts: SearchUnavailableProductsType ): SearchResultItemConnection! - """The shop associated with the storefront access token.""" + """ + Returns the [`Shop`](https://shopify.dev/docs/api/storefront/current/objects/Shop) + associated with the storefront access token. The `Shop` object provides + general store information such as the shop name, description, and primary domain. + + Use this query to access data like store policies, [`PaymentSettings`](https://shopify.dev/docs/api/storefront/current/objects/PaymentSettings), + [`Brand`](https://shopify.dev/docs/api/storefront/current/objects/Brand) + configuration, and shipping destinations. It also exposes [`ShopPayInstallmentsPricing`](https://shopify.dev/docs/api/storefront/current/objects/ShopPayInstallmentsPricing) and [`SocialLoginProvider`](https://shopify.dev/docs/api/storefront/current/objects/SocialLoginProvider) + options for customer accounts. + + """ shop: Shop! - """Contains all fields required to generate sitemaps.""" + """ + Returns sitemap data for a specific resource type, enabling headless + storefronts to generate XML sitemaps for search engine optimization. The query + provides a page count and paginated access to resources like + [`Product`](https://shopify.dev/docs/api/storefront/current/objects/Product), [`Collection`](https://shopify.dev/docs/api/storefront/current/objects/Collection), + [`Page`](https://shopify.dev/docs/api/storefront/current/objects/Page), and + [`Blog`](https://shopify.dev/docs/api/storefront/current/objects/Blog) objects. + + When paginating through resources, the number of items per page varies from 0 + to 250, and empty pages can occur without indicating the end of results. Always check [`hasNextPage`](https://shopify.dev/docs/api/storefront/current/objects/PaginatedSitemapResources#field-PaginatedSitemapResources.fields.hasNextPage) + to determine if more pages are available. + + """ sitemap( """The type of the resource for the sitemap.""" type: SitemapType! ): Sitemap! - """A list of redirects for a shop.""" + """ + Returns a paginated list of [`UrlRedirect`](https://shopify.dev/docs/api/storefront/current/objects/UrlRedirect) + objects configured for the shop. Each redirect maps an old path to a target location. + + """ urlRedirects( """Returns up to the first `n` elements from the list.""" first: Int @@ -9547,8 +10924,9 @@ type Query { } """ -Script discount applications capture the intentions of a discount that -was created by a Shopify Script. +A discount application created by a Shopify Script. Implements the [`DiscountApplication`](https://shopify.dev/docs/api/storefront/current/interfaces/DiscountApplication) +interface and captures the discount's value, allocation method, and targeting +rules at the time the script applied it. """ type ScriptDiscountApplication implements DiscountApplication { @@ -9613,7 +10991,16 @@ enum SearchPrefixQueryType { NONE } -"""A search query suggestion.""" +""" +A suggested search term returned by the [`predictiveSearch`](https://shopify.dev/docs/api/storefront/current/queries/predictiveSearch) +query. Query suggestions help customers refine their searches by showing +relevant terms as they type. + +The [`text`](https://shopify.dev/docs/api/storefront/current/objects/SearchQuerySuggestion#field-SearchQuerySuggestion.fields.text) field provides the plain suggestion, while [`styledText`](https://shopify.dev/docs/api/storefront/current/objects/SearchQuerySuggestion#field-SearchQuerySuggestion.fields.styledText) +includes HTML tags to highlight matching portions. Implements [`Trackable`](https://shopify.dev/docs/api/storefront/current/interfaces/Trackable) +for analytics reporting on search traffic origins. + +""" type SearchQuerySuggestion implements Trackable { """The text of the search query suggestion with highlighted HTML tags.""" styledText: String! @@ -9706,8 +11093,9 @@ enum SearchUnavailableProductsType { } """ -Properties used by customers to select a product variant. -Products can have multiple options, like different sizes or colors. +A name/value pair representing a product option selection on a variant. The [`ProductVariant`](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant) object's [`selectedOptions`](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant#field-ProductVariant.fields.selectedOptions) +field returns this to indicate which options define that variant, such as "Size: +Large" or "Color: Red". """ type SelectedOption { @@ -9727,7 +11115,13 @@ input SelectedOptionInput { value: String! } -"""Represents how products and variants can be sold and purchased.""" +""" +Represents deferred or recurring purchase options for +[products](https://shopify.dev/docs/api/storefront/current/objects/Product) and [product variants](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant), +such as subscriptions, pre-orders, or try-before-you-buy. Each selling plan belongs to a [`SellingPlanGroup`](https://shopify.dev/docs/api/storefront/current/objects/SellingPlanGroup) +and defines billing, pricing, inventory, and delivery policies. + +""" type SellingPlan implements HasMetafields { """The billing policy for the selling plan.""" billingPolicy: SellingPlanBillingPolicy @@ -9800,9 +11194,16 @@ type SellingPlan implements HasMetafields { } """ -Represents an association between a variant and a selling plan. Selling plan -allocations describe the options offered for each variant, and the price of the -variant when purchased with a selling plan. +Links a [`ProductVariant`](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant) to a [`SellingPlan`](https://shopify.dev/docs/api/storefront/current/objects/SellingPlan), providing the pricing details for that specific combination. Each allocation +includes the checkout charge amount, any remaining balance due for the purchase, +and up to two price adjustments that show how the selling plan affects the +variant's price. + +Selling plan allocations are available on product variants and [cart +lines](https://shopify.dev/docs/api/storefront/current/objects/CartLine), +enabling storefronts to display information such as subscription or purchase +option pricing before and during checkout. + """ type SellingPlanAllocation { """The checkout charge amount due for the purchase.""" @@ -9965,9 +11366,14 @@ type SellingPlanFixedPriceAdjustment { } """ -Represents a selling method. For example, 'Subscribe and save' is a selling -method where customers pay for goods or services per delivery. A selling plan -group contains individual selling plans. +A selling method that defines how products can be sold through purchase options +like subscriptions, pre-orders, or try-before-you-buy. Groups one or more [`SellingPlan`](https://shopify.dev/docs/api/storefront/current/objects/SellingPlan) +objects that share the same selling method and options. + +The `SellingPlanGroup` acts as a container for one or more individual +`SellingPlan` objects, enabling merchants to offer multiple options (like weekly +or monthly deliveries) under one, unified category on a product page. + """ type SellingPlanGroup { """ @@ -10134,7 +11540,11 @@ type SellingPlanRecurringDeliveryPolicy { intervalCount: Int! } -"""SEO information.""" +""" +Search engine optimization metadata for a resource. The title and description +appear in search engine results and browser tabs. + +""" type SEO { """The meta description.""" description: String @@ -10144,12 +11554,32 @@ type SEO { } """ -Shop represents a collection of the general settings and information about the shop. +The central hub for store-wide settings and information accessible through the +Storefront API. Provides the shop's name, description, and branding +configuration including logos and colors through the +[`Brand`](https://shopify.dev/docs/api/storefront/current/objects/Brand) object. + +Access store policies such as privacy, refund, shipping, and terms of service via [`ShopPolicy`](https://shopify.dev/docs/api/storefront/current/objects/ShopPolicy), +and the subscription policy via [`ShopPolicyWithDefault`](https://shopify.dev/docs/api/storefront/current/objects/ShopPolicyWithDefault). [`PaymentSettings`](https://shopify.dev/docs/api/storefront/current/objects/PaymentSettings) +expose accepted card brands, supported digital wallets, and enabled presentment +currencies. The object also includes the primary +[`Domain`](https://shopify.dev/docs/api/storefront/current/objects/Domain), +countries the shop ships to, [`ShopPayInstallmentsPricing`](https://shopify.dev/docs/api/storefront/current/objects/ShopPayInstallmentsPricing), and [`SocialLoginProvider`](https://shopify.dev/docs/api/storefront/current/objects/SocialLoginProvider) +options for customer accounts. + """ type Shop implements HasMetafields & Node { """The shop's branding configuration.""" brand: Brand + """Translations for customer accounts.""" + customerAccountTranslations: [Translation!] + + """ + The URL for the customer account (only present if shop has a customer account vanity domain). + """ + customerAccountUrl: String + """A description of the shop.""" description: String @@ -10212,6 +11642,9 @@ type Shop implements HasMetafields & Node { """The Shop Pay Installments pricing information for the shop.""" shopPayInstallmentsPricing: ShopPayInstallmentsPricing + """The social login providers for customer accounts.""" + socialLoginProviders: [SocialLoginProvider!]! + """The shop’s subscription policy.""" subscriptionPolicy: ShopPolicyWithDefault @@ -10849,9 +12282,7 @@ type SitemapResourceMetaobject implements SitemapResourceInterface { """ onlineStoreUrlHandle: String - """ - The type of the metaobject. Defines the namespace of its associated metafields. - """ + """The type of the metaobject.""" type: String! """The date and time when the resource was updated.""" @@ -10884,9 +12315,22 @@ enum SitemapType { ARTICLE } +"""A social login provider for customer accounts.""" +type SocialLoginProvider { + """The handle of the social login provider.""" + handle: String! +} + """ -The availability of a product variant at a particular location. -Local pick-up must be enabled in the store's shipping settings, otherwise this will return an empty result. +Inventory information for a product variant at a physical store location that +offers local pickup. Includes stock availability, quantity on hand, and +estimated pickup readiness time. + +Local pickup must be [enabled in the store's shipping settings](https://help.shopify.com/manual/shipping/setting-up-and-managing-your-shipping/local-methods/local-pickup) +for this data to be returned. Results can be sorted by proximity to a customer's +location using the `near` argument on the [`ProductVariant.storeAvailability`](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant#field-ProductVariant.fields.storeAvailability) connection. + +Learn more about [supporting local pickup on storefronts](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/products-collections/local-pickup). """ type StoreAvailability { @@ -11112,7 +12556,11 @@ type SubmitThrottled { pollAfter: DateTime! } -"""Color and image for visual representation.""" +""" +A visual representation for filter values, containing a color, an image, or both. The [`FilterValue`](https://shopify.dev/docs/api/storefront/current/objects/FilterValue) object's [`swatch`](https://shopify.dev/docs/api/storefront/current/objects/FilterValue#field-FilterValue.fields.swatch) +field returns this when the filter's presentation is set to `SWATCH`. + +""" type Swatch { """The swatch color.""" color: Color @@ -11122,7 +12570,16 @@ type Swatch { } """ -The taxonomy category for the product. +A category from Shopify's [Standard Product Taxonomy](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) assigned to +a [`Product`](https://shopify.dev/docs/api/storefront/current/objects/Product). +Categories provide hierarchical classification through the `ancestors` field. + +The [`ancestors`](https://shopify.dev/docs/api/storefront/current/objects/TaxonomyCategory#field-TaxonomyCategory.fields.ancestors) field returns the parent chain from the immediate parent up to the root. Each +ancestor category also includes its own `ancestors`. + +The [`name`](https://shopify.dev/docs/api/storefront/latest/objects/TaxonomyCategory#field-TaxonomyCategory.fields.name) field returns the localized category name based on the storefront's request +language with shop locale fallbacks. If a translation isn't available for the +resolved locale, the English taxonomy name is returned. """ type TaxonomyCategory implements Node { @@ -11165,8 +12622,23 @@ interface Trackable { trackingParameters: String } +"""Translation represents a translation of a key-value pair.""" +type Translation { + """The key of the translation.""" + key: String! + + """The value of the translation.""" + value: String! +} + """ -The measurement used to calculate a unit price for a product variant (e.g. $9.99 / 100ml). +The measurement data used to calculate unit prices for a [`ProductVariant`](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant). +Unit pricing helps customers compare costs across different package sizes by +showing a standardized price, such as "$9.99 / 100ml". + +The object includes the quantity being sold (value and unit) and the reference +measurement used for price comparison. Use this alongside the variant's [`unitPrice`](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant#field-ProductVariant.fields.unitPrice) +field to display complete unit pricing information. """ type UnitPriceMeasurement { @@ -11199,6 +12671,14 @@ enum UnitPriceMeasurementMeasuredType { """Unit of measurements representing areas.""" AREA + + """Unit of measurements representing counts.""" + COUNT + + """ + The type of measurement is unknown. Upgrade to the latest version of the API to resolve this type. + """ + UNKNOWN } """The valid units of measurement for a unit price measurement.""" @@ -11215,6 +12695,18 @@ enum UnitPriceMeasurementMeasuredUnit { """1 cubic meter equals 1000 liters.""" M3 + """Imperial system unit of volume (U.S. customary unit).""" + FLOZ + + """1 pint equals 16 fluid ounces (U.S. customary unit).""" + PT + + """1 quart equals 32 fluid ounces (U.S. customary unit).""" + QT + + """1 gallon equals 128 fluid ounces (U.S. customary unit).""" + GAL + """1000 milligrams equals 1 gram.""" MG @@ -11224,6 +12716,12 @@ enum UnitPriceMeasurementMeasuredUnit { """1 kilogram equals 1000 grams.""" KG + """Imperial system unit of weight.""" + LB + + """16 ounces equals 1 pound.""" + OZ + """1000 millimeters equals 1 meter.""" MM @@ -11233,8 +12731,28 @@ enum UnitPriceMeasurementMeasuredUnit { """Metric system unit of length.""" M + """Imperial system unit of length.""" + IN + + """1 foot equals 12 inches.""" + FT + + """1 yard equals 36 inches.""" + YD + """Metric system unit of area.""" M2 + + """Imperial system unit of area.""" + FT2 + + """1 item, a unit of count.""" + ITEM + + """ + The unit of measurement is unknown. Upgrade to the latest version of the API to resolve this unit. + """ + UNKNOWN } """Systems of weights and measures.""" @@ -11351,7 +12869,17 @@ input VariantOptionFilter { value: String! } -"""Represents a Shopify hosted video.""" +""" +A video hosted on Shopify's servers. Implements the +[`Media`](https://shopify.dev/docs/api/storefront/current/interfaces/Media) +interface and provides multiple video sources through the [`sources`](https://shopify.dev/docs/api/storefront/current/objects/Video#field-Video.fields.sources) +field, each with [format](https://shopify.dev/docs/api/storefront/current/objects/Video#field-Video.fields.sources.format), +dimensions, and [URL information](https://shopify.dev/docs/api/storefront/current/objects/Video#field-Video.fields.sources.url) +for adaptive playback. + +For videos hosted on external platforms like YouTube or Vimeo, use [`ExternalVideo`](https://shopify.dev/docs/api/storefront/current/objects/ExternalVideo) instead. + +""" type Video implements Media & Node { """A word or phrase to share the nature or contents of a media.""" alt: String @@ -11390,7 +12918,36 @@ type VideoSource { width: Int! } -"""Units of measurement for weight.""" +""" +The visitor's consent to data processing purposes for the shop. true means +accepting the purposes, false means declining them, and null means that the +visitor didn't express a preference. +""" +input VisitorConsent { + """ + The visitor accepts or rejects the preferences data processing purpose. + """ + preferences: Boolean + + """The visitor accepts or rejects the analytics data processing purpose.""" + analytics: Boolean + + """ + The visitor accepts or rejects the first and third party marketing data processing purposes. + """ + marketing: Boolean + + """ + The visitor accepts or rejects the sale or sharing of their data with third parties. + """ + saleOfData: Boolean +} + +""" +Units of measurement for weight, supporting both metric and imperial systems. Used by [`ProductVariant`](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant) +to specify the unit for the variant's weight value. + +""" enum WeightUnit { """1 kilogram equals 1000 grams.""" KILOGRAMS diff --git a/mvn/pom.xml b/mvn/pom.xml index 05fea0b8..f84e57c5 100644 --- a/mvn/pom.xml +++ b/mvn/pom.xml @@ -6,7 +6,7 @@ io.github.mores java-shopify-graphql - 2025.04.001 + 2026.01.001 pom java-shopify-graphql diff --git a/support/downloadSchemas.sh b/support/downloadSchemas.sh index 6a61873a..458efd57 100755 --- a/support/downloadSchemas.sh +++ b/support/downloadSchemas.sh @@ -1,6 +1,6 @@ #!/bin/sh -VERSION=2025-04 +VERSION=2026-01 curl --request POST \ --url https://shopify.dev/admin-graphql-direct-proxy/$VERSION \