product.tpl 50 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511
  1. type Query {
  2. # Returns a Product resource by ID.
  3. product(id: ID!): Product
  4. # Return a product by its handle.
  5. productByHandle(handle: String!): Product
  6. # Returns the product resource feedback for the currently authenticated app.
  7. productResourceFeedback(id: ID!): ProductResourceFeedback
  8. # Returns a list of the shop's product saved searches.
  9. productSavedSearches(
  10. after: String
  11. before: String
  12. first: Int
  13. last: Int
  14. reverse: Boolean = false
  15. ): SavedSearchConnection!
  16. # Returns a ProductVariant resource by ID.
  17. productVariant(id: ID!): ProductVariant
  18. # List of the product variants.
  19. productVariants(
  20. after: String
  21. before: String
  22. first: Int
  23. last: Int
  24. query: String
  25. reverse: Boolean = false
  26. savedSearchId: ID
  27. sortKey: ProductVariantSortKeys = ID
  28. ): ProductVariantConnection!
  29. # List of products.
  30. products(
  31. after: String
  32. before: String
  33. first: Int
  34. last: Int
  35. query: String
  36. reverse: Boolean = false
  37. savedSearchId: ID
  38. sortKey: ProductSortKeys = ID
  39. ): ProductConnection!
  40. }
  41. type Mutation {
  42. # Appends images to a product.
  43. productAppendImages(input: ProductAppendImagesInput!): ProductAppendImagesPayload
  44. # Changes the status of a product. This allows you to set the availability of the product across all channels.
  45. productChangeStatus(productId: ID! status: ProductStatus!): ProductChangeStatusPayload
  46. # Creates a product.
  47. #
  48. # If you need to create a product with many variants that are active at several locations,
  49. # especially with a lot of collections and tags, then you should first create the product with just the variants.
  50. #
  51. # After the product is created, you can activate the variants at locations
  52. # and add the other related objects to the product. This reduces the size of each mutation and increases the likelihood that it will
  53. # complete before the operation times out.
  54. #
  55. # The following example shows how you might break up product creation and object association into multiple steps:
  56. #
  57. # Create the product with variants. Don't specify any tags or collections on the product, and don't specify
  58. # inventory quantities for each variant.
  59. #
  60. # After the product is created, add tags to the product using the tagsAdd mutation, and add collections using the
  61. # collectionsAddProducts mutation.
  62. #
  63. # Use the inventoryBulkToggleActivation mutation on each inventory item to activate it at the appropriate locations.
  64. #
  65. # After activating the variants at the locations, adjust inventory quantities at each location using the
  66. # inventoryBulkAdjustQuantityAtLocation mutation.
  67. productCreate(input: ProductInput! media: [CreateMediaInput!]): ProductCreatePayload
  68. # Creates media for a product
  69. productCreateMedia(productId: ID! media: [CreateMediaInput!]!): ProductCreateMediaPayload
  70. # Deletes a product, including all associated variants and media.
  71. #
  72. # As of API version 2023-01, if you need to delete a large product, such as one that has many variants
  73. # that are active at several locations,
  74. # you may encounter timeout errors. To avoid these timeout errors, you can instead use the asynchronous
  75. # ProductDeleteAsync mutation.
  76. productDelete(input: ProductDeleteInput!): ProductDeletePayload
  77. # Removes product images from the product.
  78. productDeleteImages(id: ID! imageIds: [ID!]!): ProductDeleteImagesPayload
  79. # Deletes media for a product.
  80. productDeleteMedia(productId: ID! mediaIds: [ID!]!): ProductDeleteMediaPayload
  81. # Duplicates a product.
  82. #
  83. # As of API version 2023-01, if you need to duplicate a large product, such as one that has many variants
  84. # that are active at several locations, you may encounter timeout errors.
  85. # To avoid these timeout errors, you can instead use the asynchronous ProductDuplicateAsync mutation.
  86. productDuplicate(
  87. productId: ID!
  88. newTitle: String!
  89. newStatus: ProductStatus
  90. includeImages: Boolean = false
  91. ): ProductDuplicatePayload
  92. # Updates an image of a product.
  93. productImageUpdate(productId: ID! image: ImageInput!): ProductImageUpdatePayload
  94. # Adds multiple selling plan groups to a product.
  95. productJoinSellingPlanGroups(id: ID! sellingPlanGroupIds: [ID!]!): ProductJoinSellingPlanGroupsPayload
  96. # Removes multiple groups from a product.
  97. productLeaveSellingPlanGroups(id: ID! sellingPlanGroupIds: [ID!]!): ProductLeaveSellingPlanGroupsPayload
  98. # Asynchronously reorders a set of images for a given product.
  99. productReorderImages(id: ID! moves: [MoveInput!]!): ProductReorderImagesPayload
  100. # Asynchronously reorders the media attached to a product.
  101. productReorderMedia(id: ID! moves: [MoveInput!]!): ProductReorderMediaPayload
  102. # Updates a product. If you update a product and only include some variants in the update,
  103. # then any variants not included will be deleted. To safely manage variants without the risk of
  104. # deleting excluded variants, use productVariantsBulkUpdate.
  105. # If you want to update a single variant, then use productVariantUpdate.
  106. productUpdate(input: ProductInput!): ProductUpdatePayload
  107. # Updates media for a product.
  108. productUpdateMedia(productId: ID! media: [UpdateMediaInput!]!): ProductUpdateMediaPayload
  109. # Appends media from a product to variants of the product.
  110. productVariantAppendMedia(productId: ID! variantMedia: [ProductVariantAppendMediaInput!]!): ProductVariantAppendMediaPayload
  111. # Creates a product variant.
  112. productVariantCreate(input: ProductVariantInput!): ProductVariantCreatePayload
  113. # Deletes a product variant.
  114. productVariantDelete(id: ID!): ProductVariantDeletePayload
  115. # Detaches media from product variants.
  116. productVariantDetachMedia(productId: ID! variantMedia: [ProductVariantDetachMediaInput!]!): ProductVariantDetachMediaPayload
  117. # Adds multiple selling plan groups to a product variant.
  118. productVariantJoinSellingPlanGroups(id: ID! sellingPlanGroupIds: [ID!]!): ProductVariantJoinSellingPlanGroupsPayload
  119. # Remove multiple groups from a product variant.
  120. productVariantLeaveSellingPlanGroups(id: ID! sellingPlanGroupIds: [ID!]!): ProductVariantLeaveSellingPlanGroupsPayload
  121. # Updates a product variant.
  122. productVariantUpdate(input: ProductVariantInput!): ProductVariantUpdatePayload
  123. # Creates product variants in bulk. If you want to create a single variant, then use productVariantCreate.
  124. productVariantsBulkCreate(variants: [ProductVariantsBulkInput!]! productId: ID!): ProductVariantsBulkCreatePayload
  125. # Deletes product variants in bulk. If you want to delete a single variant, then use productVariantDelete.
  126. productVariantsBulkDelete(variantsIds: [ID!]! productId: ID!): ProductVariantsBulkDeletePayload
  127. # Reorder product variants in bulk.
  128. productVariantsBulkReorder(productId: ID! positions: [ProductVariantPositionInput!]!): ProductVariantsBulkReorderPayload
  129. # Updates product variants in bulk. If you want to update a single variant, then use
  130. # productVariantUpdate.
  131. productVariantsBulkUpdate(variants: [ProductVariantsBulkInput!]! productId: ID!): ProductVariantsBulkUpdatePayload
  132. }
  133. # The Product resource lets you manage products in a merchant’s store.
  134. # You can use ProductVariants to create or update different versions of the same product.
  135. # You can also add or update product Media. Products can be organized by grouping them into a Collection.
  136. type Product
  137. implements HasMetafieldDefinitions&HasMetafields&HasPublishedTranslations&LegacyInteroperability&Navigable&Node&OnlineStorePreviewable&Publishable
  138. @key(fields: "id") {
  139. # The number of publications a resource is published to without feedback errors.
  140. availablePublicationCount: Int!
  141. # A list of the collections that include the product.
  142. collections(
  143. first: Int
  144. after: String
  145. last: Int
  146. before: String
  147. reverse: Boolean = false
  148. sortKey: CollectionSortKeys = ID
  149. query: String
  150. ): CollectionConnection!
  151. # The pricing that applies for a customer in a given context.
  152. contextualPricing(context: ContextualPricingContext!): ProductContextualPricing!
  153. # The date and time (ISO 8601 format) when the product was created.
  154. createdAt: DateTime!
  155. # A default cursor that returns the single next record, sorted ascending by ID.
  156. defaultCursor: String!
  157. # A stripped description of the product, single line with HTML tags removed.
  158. description(truncateAt: Int): String!
  159. # The description of the product, complete with HTML formatting.
  160. descriptionHtml: HTML!
  161. # The featured image for the product.
  162. featuredImage: Image
  163. # The featured media for the product.
  164. featuredMedia: Media
  165. # Information about the product that's provided through resource feedback.
  166. feedback: ResourceFeedback
  167. # The theme template used when viewing the gift card in a store.
  168. giftCardTemplateSuffix: String
  169. # A unique human-friendly string of the product's title.
  170. handle: String!
  171. # Whether the product has only a single variant with the default option and value.
  172. hasOnlyDefaultVariant: Boolean!
  173. # Whether the product has out of stock variants.
  174. hasOutOfStockVariants: Boolean!
  175. # A globally-unique identifier.
  176. id: ID!
  177. # The images associated with the product.
  178. images(
  179. first: Int
  180. after: String
  181. last: Int
  182. before: String
  183. reverse: Boolean = false
  184. sortKey: ProductImageSortKeys = POSITION
  185. ): ImageConnection!
  186. # Whether the product is in a given collection.
  187. inCollection(id: ID!): Boolean!
  188. # Whether the product is a gift card.
  189. isGiftCard: Boolean!
  190. # The ID of the corresponding resource in the REST Admin API.
  191. legacyResourceId: UnsignedInt64!
  192. # The media associated with the product. This can include images, 3D models, or videos.
  193. media(
  194. first: Int
  195. after: String
  196. last: Int
  197. before: String
  198. reverse: Boolean = false
  199. sortKey: ProductMediaSortKeys = POSITION
  200. ): MediaConnection!
  201. # Total count of media belonging to a product.
  202. mediaCount: Int!
  203. # Returns a metafield by namespace and key that belongs to the resource.
  204. metafield(namespace: String!key: String!): Metafield
  205. # List of metafield definitions.
  206. metafieldDefinitions(
  207. namespace: String
  208. pinnedStatus: MetafieldDefinitionPinnedStatus = ANY
  209. first: Int
  210. after: String
  211. last: Int
  212. before: String
  213. reverse: Boolean = false
  214. sortKey: MetafieldDefinitionSortKeys = ID
  215. query: String
  216. ): MetafieldDefinitionConnection!
  217. # List of metafields that belong to the resource.
  218. metafields(
  219. namespace: String
  220. first: Int
  221. after: String
  222. last: Int
  223. before: String
  224. reverse: Boolean = false
  225. ): MetafieldConnection!
  226. # The online store preview URL.
  227. onlineStorePreviewUrl: URL
  228. # The online store URL for the product.
  229. # A value of null indicates that the product is not published to the Online Store sales channel.
  230. onlineStoreUrl: URL
  231. # A list of product options. The limit is specified by Shop.resourceLimits.maxProductOptions.
  232. options(first: Int): [ProductOption!]!
  233. # The price range of the product with prices formatted as decimals.
  234. priceRangeV2: ProductPriceRangeV2!
  235. # Returns a private metafield by namespace and key that belongs to the resource.
  236. privateMetafield(namespace: String!key: String!): PrivateMetafield
  237. # List of private metafields that belong to the resource.
  238. privateMetafields(
  239. namespace: String
  240. first: Int
  241. after: String
  242. last: Int
  243. before: String
  244. reverse: Boolean = false
  245. ): PrivateMetafieldConnection!
  246. # The product category specified by the merchant.
  247. productCategory: ProductCategory
  248. # The product type specified by the merchant.
  249. productType: String!
  250. # The number of publications a resource is published on.
  251. publicationCount(onlyPublished: Boolean = true): Int!
  252. # The date and time (ISO 8601 format) when the product was published to the Online Store.
  253. publishedAt: DateTime
  254. # Check to see whether the resource is published to the calling app's publication.
  255. publishedOnCurrentPublication: Boolean!
  256. # Check to see whether the resource is published to a given publication.
  257. publishedOnPublication(publicationId: ID!): Boolean!
  258. # Whether the product can only be purchased with a selling plan (subscription).
  259. # Products that are sold on subscription (requiresSellingPlan: true) can be updated only for online stores.
  260. # If you update a product to be subscription only, then the product is unpublished from all channels except the online store.
  261. requiresSellingPlan: Boolean!
  262. # The resource that is either published or staged to be published to the calling app's publication.
  263. # Requires the read_product_listings scope.
  264. resourcePublicationOnCurrentPublication: ResourcePublicationV2
  265. # The list of resources that are published to a publication.
  266. resourcePublications(
  267. onlyPublished: Boolean = true
  268. first: Int
  269. after: String
  270. last: Int
  271. before: String
  272. reverse: Boolean = false
  273. ): ResourcePublicationConnection!
  274. # The list of resources that are either published or staged to be published to a publication.
  275. resourcePublicationsV2(
  276. onlyPublished: Boolean = true
  277. first: Int
  278. after: String
  279. last: Int
  280. before: String
  281. reverse: Boolean = false
  282. ): ResourcePublicationV2Connection!
  283. # Count of selling plan groups associated with the product.
  284. sellingPlanGroupCount: Int!
  285. # A list of all selling plan groups defined in the current shop associated with the product either directly or through any of its variants.
  286. sellingPlanGroups(
  287. first: Int
  288. after: String
  289. last: Int
  290. before: String
  291. reverse: Boolean = false
  292. ): SellingPlanGroupConnection!
  293. # SEO information of the product.
  294. seo: SEO!
  295. # The product status. This controls visibility across all channels.
  296. status: ProductStatus!
  297. # A comma separated list of tags associated with the product. Updating tags overwrites
  298. # any existing tags that were previously added to the product. To add new tags without overwriting
  299. # existing tags, use the tagsAdd mutation.
  300. tags: [String!]!
  301. # The theme template used when viewing the product in a store.
  302. templateSuffix: String
  303. # The title of the product.
  304. title: String!
  305. # The quantity of inventory in stock.
  306. totalInventory: Int!
  307. # The number of variants that are associated with the product.
  308. totalVariants: Int!
  309. # Whether inventory tracking has been enabled for the product.
  310. tracksInventory: Boolean!
  311. # The translations associated with the resource.
  312. translations(locale: String!marketId: ID): [PublishedTranslation!]!
  313. # The list of publications that the resource is not published to.
  314. unpublishedPublications(
  315. first: Int
  316. after: String
  317. last: Int
  318. before: String
  319. reverse: Boolean = false
  320. ): PublicationConnection!
  321. # The date and time when the product was last modified.
  322. # A product's updatedAt value can change for different reasons. For example, if an order
  323. # is placed for a product that has inventory tracking set up, then the inventory adjustment
  324. # is counted as an update.
  325. updatedAt: DateTime!
  326. # A list of variants associated with the product.
  327. variants(
  328. first: Int
  329. after: String
  330. last: Int
  331. before: String
  332. reverse: Boolean = false
  333. sortKey: ProductVariantSortKeys = POSITION
  334. ): ProductVariantConnection!
  335. # The name of the product's vendor.
  336. vendor: String!
  337. }
  338. # Represents a product variant.
  339. type ProductVariant
  340. implements HasMetafieldDefinitions&HasMetafields&HasPublishedTranslations&LegacyInteroperability&Navigable&Node
  341. @key(fields: "id") {
  342. # Whether the product variant is available for sale.
  343. availableForSale: Boolean!
  344. # The value of the barcode associated with the product.
  345. barcode: String
  346. # The compare-at price of the variant in the default shop currency.
  347. compareAtPrice: Money
  348. # The pricing that applies for a customer in a given context.
  349. contextualPricing(context: ContextualPricingContext!): ProductVariantContextualPricing!
  350. # The date and time when the variant was created.
  351. createdAt: DateTime!
  352. # A default cursor that returns the single next record, sorted ascending by ID.
  353. defaultCursor: String!
  354. # The delivery profile for the variant.
  355. deliveryProfile: DeliveryProfile
  356. # Display name of the variant, based on product's title + variant's title.
  357. displayName: String!
  358. # Whether changes to the fulfillment service for the product variant are allowed.
  359. fulfillmentServiceEditable: EditableProperty!
  360. # A globally-unique identifier.
  361. id: ID!
  362. # The featured image for the variant.
  363. image: Image
  364. # The inventory item, which is used to query for inventory information.
  365. inventoryItem: InventoryItem!
  366. # Whether customers are allowed to place an order for the product variant when it's out of stock.
  367. inventoryPolicy: ProductVariantInventoryPolicy!
  368. # The total sellable quantity of the variant.
  369. inventoryQuantity: Int
  370. # The ID of the corresponding resource in the REST Admin API.
  371. legacyResourceId: UnsignedInt64!
  372. # The media associated with the product variant.
  373. media(
  374. first: Int
  375. after: String
  376. last: Int
  377. before: String
  378. reverse: Boolean = false
  379. ): MediaConnection!
  380. # Returns a metafield by namespace and key that belongs to the resource.
  381. metafield(namespace: String!key: String!): Metafield
  382. # List of metafield definitions.
  383. metafieldDefinitions(
  384. namespace: String
  385. pinnedStatus: MetafieldDefinitionPinnedStatus = ANY
  386. first: Int
  387. after: String
  388. last: Int
  389. before: String
  390. reverse: Boolean = false
  391. sortKey: MetafieldDefinitionSortKeys = ID
  392. query: String
  393. ): MetafieldDefinitionConnection!
  394. # List of metafields that belong to the resource.
  395. metafields(
  396. namespace: String
  397. first: Int
  398. after: String
  399. last: Int
  400. before: String
  401. reverse: Boolean = false
  402. ): MetafieldConnection!
  403. # The order of the product variant in the list of product variants. The first position in the list is 1.
  404. position: Int!
  405. # The price of the product variant in the default shop currency.
  406. price: Money!
  407. # Returns a private metafield by namespace and key that belongs to the resource.
  408. privateMetafield(namespace: String!key: String!): PrivateMetafield
  409. # List of private metafields that belong to the resource.
  410. privateMetafields(
  411. namespace: String
  412. first: Int
  413. after: String
  414. last: Int
  415. before: String
  416. reverse: Boolean = false
  417. ): PrivateMetafieldConnection!
  418. # The product that this variant belongs to.
  419. product: Product!
  420. # List of product options applied to the variant.
  421. selectedOptions: [SelectedOption!]!
  422. # The total sellable quantity of the variant for online channels.
  423. # This doesn't represent the total available inventory or capture
  424. # limitations based on customer location.
  425. sellableOnlineQuantity: Int!
  426. # Count of selling plan groups associated with the product variant.
  427. sellingPlanGroupCount: Int!
  428. # A list of all selling plan groups defined in the current shop associated with the product variant.
  429. sellingPlanGroups(
  430. first: Int
  431. after: String
  432. last: Int
  433. before: String
  434. reverse: Boolean = false
  435. ): SellingPlanGroupConnection!
  436. # An identifier for the product variant in the shop. Required in order to connect to a fulfillment service.
  437. sku: String
  438. # The tax code for the product variant.
  439. taxCode: String
  440. # Whether a tax is charged when the product variant is sold.
  441. taxable: Boolean!
  442. # The title of the product variant.
  443. title: String!
  444. # The translations associated with the resource.
  445. translations(locale: String!marketId: ID): [PublishedTranslation!]!
  446. # The date and time (ISO 8601 format) when the product variant was last modified.
  447. updatedAt: DateTime!
  448. # The weight of the product variant in the unit system specified with weight_unit.
  449. weight: Float
  450. # The unit of measurement that applies to the product variant's weight.
  451. # If you don't specify a value for weight_unit, then the shop's default unit of measurement is applied. Valid values: g, kg, oz, lb.
  452. weightUnit: WeightUnit!
  453. }
  454. # The quantities of an inventory item that are related to a specific location.
  455. type InventoryLevel
  456. implements Node
  457. @key(fields: "id") {
  458. # The quantity of inventory items that are available at the inventory level's associated location.
  459. available: Int!
  460. # Whether the inventory items associated with the inventory level can be deactivated.
  461. canDeactivate: Boolean!
  462. # The date and time when the inventory level was created.
  463. createdAt: DateTime!
  464. # Describes either the impact of deactivating the inventory level, or why the inventory level can't be deactivated.
  465. deactivationAlert: String
  466. # Describes, in HTML with embedded URLs, either the impact of deactivating the inventory level or why the inventory level can't be deactivated.
  467. deactivationAlertHtml: FormattedString
  468. # A globally-unique identifier.
  469. id: ID!
  470. # The quantity of inventory items that are going to the inventory level's associated location.
  471. incoming: Int!
  472. # Inventory item associated with the inventory level.
  473. item: InventoryItem!
  474. # The location associated with the inventory level.
  475. location: Location!
  476. # The date and time when the inventory level was updated.
  477. updatedAt: DateTime!
  478. }
  479. # The product property names. For example, "Size", "Color", and "Material".
  480. # Variants are selected based on permutations of these options.
  481. # The limit for each product property name is 255 characters.
  482. type ProductOption
  483. implements HasPublishedTranslations&Node
  484. @key(fields: "id") {
  485. # A globally-unique identifier.
  486. id: ID!
  487. # The product option’s name.
  488. name: String!
  489. # The product option's position.
  490. position: Int!
  491. # The translations associated with the resource.
  492. translations(locale: String!marketId: ID): [PublishedTranslation!]!
  493. # The corresponding value to the product option name.
  494. values: [String!]!
  495. }
  496. # Represents a fulfillment service.
  497. # A fulfillment service is a third-party service that prepares and ships orders on behalf of the store owner.
  498. type FulfillmentService
  499. @key(fields: "id") {
  500. # The callback URL that the fulfillment service has registered for requests. The following considerations apply:
  501. #
  502. # Shopify queries the <code>callback_url/fetch_tracking_numbers</code> endpoint to retrieve tracking numbers
  503. # for orders, if inventoryManagement is set to true.
  504. # Shopify queries the <code>callback_url/fetch_stock</code> endpoint to retrieve inventory levels,
  505. # if trackingSupport is set to true.
  506. # Shopify uses the <code>callback_url/fulfillment_order_notification</code> endpoint to send
  507. # fulfillment and cancellation requests,
  508. # if the fulfillment service has opted in to the fulfillment order based workflow for managing fulfillments
  509. # (fulfillmentOrdersOptIn is set to true).
  510. callbackUrl: URL
  511. # Whether the fulfillment service uses the fulfillment order based workflow for managing fulfillments.
  512. fulfillmentOrdersOptIn: Boolean!
  513. # Human-readable unique identifier for this fulfillment service.
  514. handle: String!
  515. # The ID of the fulfillment service.
  516. id: ID!
  517. # Whether the fulfillment service tracks product inventory and provides updates to Shopify.
  518. inventoryManagement: Boolean!
  519. # Location associated with the fulfillment service.
  520. location: Location
  521. # Whether the fulfillment service can stock inventory alongside other locations.
  522. permitsSkuSharing: Boolean!
  523. # Whether the fulfillment service supports local deliveries.
  524. productBased: Boolean!
  525. # The name of the fulfillment service as seen by merchants.
  526. serviceName: String!
  527. # Type associated with the fulfillment service.
  528. type: FulfillmentServiceType!
  529. }
  530. # 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.
  531. #
  532. # Collections can be defined by conditions, such as whether they match certain product tags.
  533. # These are called smart or automated collections.
  534. #
  535. # Collections can also be created for a custom group of products. These are called custom or manual collections.
  536. type Collection
  537. implements HasMetafieldDefinitions&HasMetafields&HasPublishedTranslations&Node&Publishable
  538. @key(fields: "id") {
  539. # The number of publications a resource is published to without feedback errors.
  540. availablePublicationCount: Int!
  541. # A single-line, text-only description of the collection, stripped of any HTML tags and formatting that were included in the description.
  542. description(truncateAt: Int): String!
  543. # The description of the collection, including any HTML tags and formatting.
  544. # This content is typically displayed to customers, such as on an online store, depending on the theme.
  545. descriptionHtml: HTML!
  546. # Information about the collection that's provided through resource feedback.
  547. feedback: ResourceFeedback
  548. # A unique string that identifies the collection. If a handle isn't specified when a collection is created, it's automatically generated from the collection's original title, and typically includes words from the title separated by hyphens. For example, a collection that was created with the title Summer Catalog 2022 might have the handle summer-catalog-2022.
  549. #
  550. # If the title is changed, the handle doesn't automatically change.
  551. #
  552. # The handle can be used in themes by the Liquid templating language to refer to the collection, but using the ID is preferred because it never changes.
  553. handle: String!
  554. # Whether the collection includes the specified product.
  555. hasProduct(id: ID!): Boolean!
  556. # A globally-unique identifier.
  557. id: ID!
  558. # The image associated with the collection.
  559. image: Image
  560. # The ID of the corresponding resource in the REST Admin API.
  561. legacyResourceId: UnsignedInt64!
  562. # Returns a metafield by namespace and key that belongs to the resource.
  563. metafield(namespace: String!key: String!): Metafield
  564. # List of metafield definitions.
  565. metafieldDefinitions(
  566. namespace: String
  567. pinnedStatus: MetafieldDefinitionPinnedStatus = ANY
  568. first: Int
  569. after: String
  570. last: Int
  571. before: String
  572. reverse: Boolean = false
  573. sortKey: MetafieldDefinitionSortKeys = ID
  574. query: String
  575. ): MetafieldDefinitionConnection!
  576. # List of metafields that belong to the resource.
  577. metafields(
  578. namespace: String
  579. first: Int
  580. after: String
  581. last: Int
  582. before: String
  583. reverse: Boolean = false
  584. ): MetafieldConnection!
  585. # Returns a private metafield by namespace and key that belongs to the resource.
  586. privateMetafield(namespace: String!key: String!): PrivateMetafield
  587. # List of private metafields that belong to the resource.
  588. privateMetafields(
  589. namespace: String
  590. first: Int
  591. after: String
  592. last: Int
  593. before: String
  594. reverse: Boolean = false
  595. ): PrivateMetafieldConnection!
  596. # The products that are included in the collection.
  597. products(
  598. first: Int
  599. after: String
  600. last: Int
  601. before: String
  602. reverse: Boolean = false
  603. sortKey: ProductCollectionSortKeys = COLLECTION_DEFAULT
  604. ): ProductConnection!
  605. # The number of products in the collection.
  606. productsCount: Int!
  607. # The number of publications a resource is published on.
  608. publicationCount(onlyPublished: Boolean = true): Int!
  609. # Check to see whether the resource is published to the calling app's publication.
  610. publishedOnCurrentPublication: Boolean!
  611. # Check to see whether the resource is published to a given publication.
  612. publishedOnPublication(publicationId: ID!): Boolean!
  613. # The list of resources that are published to a publication.
  614. resourcePublications(
  615. onlyPublished: Boolean = true
  616. first: Int
  617. after: String
  618. last: Int
  619. before: String
  620. reverse: Boolean = false
  621. ): ResourcePublicationConnection!
  622. # The list of resources that are either published or staged to be published to a publication.
  623. resourcePublicationsV2(
  624. onlyPublished: Boolean = true
  625. first: Int
  626. after: String
  627. last: Int
  628. before: String
  629. reverse: Boolean = false
  630. ): ResourcePublicationV2Connection!
  631. # For a smart (automated) collection, specifies the rules that determine whether a product is included.
  632. ruleSet: CollectionRuleSet
  633. # If the default SEO fields for page title and description have been modified, contains the modified information.
  634. seo: SEO!
  635. # The order in which the products in the collection are displayed by default in the Shopify admin and in sales channels, such as an online store.
  636. sortOrder: CollectionSortOrder!
  637. # The suffix of the Liquid template being used to show the collection in an online store. For example, if the value is custom, then the collection is using the collection.custom.liquid template. If the value is null, then the collection is using the default collection.liquid template.
  638. templateSuffix: String
  639. # The name of the collection. It's displayed in the Shopify admin and is typically displayed in sales channels, such as an online store.
  640. title: String!
  641. # The translations associated with the resource.
  642. translations(locale: String!marketId: ID): [PublishedTranslation!]!
  643. # The list of publications that the resource is not published to.
  644. unpublishedPublications(
  645. first: Int
  646. after: String
  647. last: Int
  648. before: String
  649. reverse: Boolean = false
  650. ): PublicationConnection!
  651. # The date and time (ISO 8601 format) when the collection was last modified.
  652. updatedAt: DateTime!
  653. }
  654. # Specifies product images to append.
  655. input ProductAppendImagesInput {
  656. # The ID of the product.
  657. id: ID!
  658. # A list of images to be appended to the product.
  659. images: [ImageInput!]!
  660. }
  661. # Specifies the input fields for an image.
  662. input ImageInput {
  663. # A globally-unique identifier.
  664. id: ID
  665. # A word or phrase to share the nature or contents of an image.
  666. altText: String
  667. # The URL of the image. May be a staged upload URL.
  668. src: String
  669. }
  670. # Specifies the input fields required to create a product.
  671. input ProductInput {
  672. # The description of the product, complete with HTML formatting.
  673. descriptionHtml: String
  674. # Whether a redirect is required after a new handle has been provided.
  675. # If true, then the old handle is redirected to the new one automatically.
  676. redirectNewHandle: Boolean
  677. # A unique, human-friendly string for the product.
  678. # Automatically generated from the product's title unless otherwise specified.
  679. handle: String
  680. # The SEO information associated with the product.
  681. seo: SEOInput
  682. # The product type specified by the merchant.
  683. productType: String
  684. # The standardized product type in the Shopify product taxonomy.
  685. standardizedProductType: StandardizedProductTypeInput
  686. # The product category in the Shopify product taxonomy.
  687. productCategory: ProductCategoryInput
  688. # The custom product type specified by the merchant.
  689. customProductType: String
  690. # A comma separated list of tags that have been added to the product.
  691. tags: [String!]
  692. # The theme template used when viewing the product in a store.
  693. templateSuffix: String
  694. # Whether the product is a gift card.
  695. giftCard: Boolean
  696. # The theme template used when viewing the gift card in a store.
  697. giftCardTemplateSuffix: String
  698. # The title of the product.
  699. title: String
  700. # The name of the product's vendor.
  701. vendor: String
  702. # The IDs of the collections that this product will be added to.
  703. collectionsToJoin: [ID!]
  704. # The IDs of collections that will no longer include the existing product.
  705. collectionsToLeave: [ID!]
  706. # Specifies the product to update in productUpdate or creates a new product if absent in productCreate.
  707. id: ID
  708. # The images to associate with the product.
  709. images: [ImageInput!]
  710. # The metafields to associate with this product.
  711. metafields: [MetafieldInput!]
  712. # The private metafields to associate with this product.
  713. privateMetafields: [PrivateMetafieldInput!]
  714. # List of custom product options (maximum of 3 per product).
  715. options: [String!]
  716. # A list of variants associated with the product.
  717. variants: [ProductVariantInput!]
  718. # The status of the product.
  719. status: ProductStatus
  720. # Whether the product can only be purchased with a selling plan (subscription).
  721. # Products that are sold exclusively on subscription can only be created on online stores.
  722. # If set to true on an already existing product, then the product will be marked unavailable on channels that don't support subscriptions.
  723. requiresSellingPlan: Boolean
  724. }
  725. # Specifies a product variant to create or update.
  726. input ProductVariantInput {
  727. # The value of the barcode associated with the product.
  728. barcode: String
  729. # The compare-at price of the variant.
  730. compareAtPrice: Money
  731. # The Harmonized System code (or HS Tariff code) for the variant.
  732. harmonizedSystemCode: String
  733. # Specifies the product variant to update or create a new variant if absent.
  734. id: ID
  735. # The ID of the image that's associated with the variant.
  736. imageId: ID
  737. # The URL of an image to associate with the variant.
  738. # This field can only be used through mutations that create product images and must match one of the URLs being created on the product.
  739. imageSrc: String
  740. # The URL of the media to associate with the variant.
  741. # This field can only be used in mutations that create media images and must match one of the URLs being created on the product.
  742. # This field only accepts one value.
  743. mediaSrc: [String!]
  744. # Whether customers are allowed to place an order for the product variant when it's out of stock.
  745. inventoryPolicy: ProductVariantInventoryPolicy
  746. # The inventory quantities at each location where the variant is stocked.
  747. # Used as input only to the productVariantCreate mutation.
  748. inventoryQuantities: [InventoryLevelInput!]
  749. # The inventory item associated with the variant. Used for unit cost.
  750. inventoryItem: InventoryItemInput
  751. # Additional customizable information about the product variant.
  752. metafields: [MetafieldInput!]
  753. # The private metafields associated with the product.
  754. privateMetafields: [PrivateMetafieldInput!]
  755. # The custom properties that a shop owner uses to define product variants.
  756. options: [String!]
  757. # The order of the product variant in the list of product variants. The first position in the list is 1.
  758. position: Int
  759. # The price of the variant.
  760. price: Money
  761. # The product to create the variant for. Used as input only to the productVariantCreate mutation.
  762. productId: ID
  763. # Whether the variant requires shipping.
  764. requiresShipping: Boolean
  765. # The SKU for the variant.
  766. sku: String
  767. # Whether the variant is taxable.
  768. taxable: Boolean
  769. # The tax code associated with the variant.
  770. taxCode: String
  771. # The weight of the variant.
  772. weight: Float
  773. # The unit of weight that's used to measure the variant.
  774. weightUnit: WeightUnit
  775. }
  776. # Specifies the input fields for an inventory level.
  777. input InventoryLevelInput {
  778. # The available quantity of an inventory item at a location.
  779. availableQuantity: Int!
  780. # The ID of a location.
  781. locationId: ID!
  782. }
  783. # Specifies the input fields for an inventory item.
  784. input InventoryItemInput {
  785. # Unit cost associated with the inventory item, the currency is the shop's default currency.
  786. cost: Decimal
  787. # Whether the inventory item is tracked.
  788. tracked: Boolean
  789. }
  790. # Return type for productAppendImages mutation.
  791. type ProductAppendImagesPayload {
  792. # List of new images appended to the product.
  793. newImages: [Image!]
  794. # The product object.
  795. product: Product
  796. # The list of errors that occurred from executing the mutation.
  797. userErrors: [UserError!]!
  798. }
  799. # Return type for productChangeStatus mutation.
  800. type ProductChangeStatusPayload {
  801. # The product object.
  802. product: Product
  803. # The list of errors that occurred from executing the mutation.
  804. userErrors: [ProductChangeStatusUserError!]!
  805. }
  806. # Provides the fields and values to use when adding a standard product type to a product.
  807. # The Shopify product taxonomy contains the full list of available values.
  808. input StandardizedProductTypeInput {
  809. # The id of the node in the Shopify taxonomy that represents the product type.
  810. productTaxonomyNodeId: ID!
  811. }
  812. # The input fields to use when adding a product category to a product.
  813. # The Shopify product taxonomy contains the full list of available values.
  814. input ProductCategoryInput {
  815. # The ID of the node in the Shopify taxonomy that represents the product category.
  816. productTaxonomyNodeId: ID!
  817. }
  818. # Specifies the input fields required to create a media object.
  819. input CreateMediaInput {
  820. # The original source of the media object. This might be an external URL or a staged upload URL.
  821. originalSource: String!
  822. # The alt text associated with the media.
  823. alt: String
  824. # The media content type.
  825. mediaContentType: MediaContentType!
  826. }
  827. # A single move of an object to a specific position in a set, using a zero-based index.
  828. input MoveInput {
  829. # The ID of the object to be moved.
  830. id: ID!
  831. # The new position of the object in the set.
  832. newPosition: UnsignedInt64!
  833. }
  834. # Specifies the product to delete.
  835. input ProductDeleteInput {
  836. # The ID of the product.
  837. id: ID!
  838. }
  839. # Specifies the input fields required to update a media object.
  840. input UpdateMediaInput {
  841. # Specifies the media to update.
  842. id: ID!
  843. # The source from which to update the media preview image. May be an external URL or staged upload URL.
  844. previewImageSource: String
  845. # The alt text associated to the media.
  846. alt: String
  847. }
  848. # Specifies the input fields required to append media to a single variant.
  849. input ProductVariantAppendMediaInput {
  850. # Specifies the variant to which media will be appended.
  851. variantId: ID!
  852. # Specifies the media to append to the variant.
  853. mediaIds: [ID!]!
  854. }
  855. # Specifies the input fields required to detach media from a single variant.
  856. input ProductVariantDetachMediaInput {
  857. # Specifies the variant from which media will be detached.
  858. variantId: ID!
  859. # Specifies the media to detach from the variant.
  860. mediaIds: [ID!]!
  861. }
  862. # Specifies a product variant to create as part of a variant bulk mutation.
  863. input ProductVariantsBulkInput {
  864. # The value of the barcode associated with the product variant.
  865. barcode: String
  866. # The compare-at price of the variant.
  867. compareAtPrice: Money
  868. # The Harmonized System code (or HS Tariff code) for the variant.
  869. harmonizedSystemCode: String
  870. # Specifies the product variant to update or delete.
  871. id: ID
  872. # The ID of the image that's associated with the variant.
  873. imageId: ID
  874. # The URL of an image to associate with the variant. This field can only be used through mutations that create product images and must match one of the URLs being created on the product.
  875. imageSrc: String
  876. # The URL of the media to associate with the variant.
  877. mediaSrc: [String!]
  878. # Whether customers are allowed to place an order for the variant when it's out of stock.
  879. inventoryPolicy: ProductVariantInventoryPolicy
  880. # The inventory quantities at each location where the variant is stocked. The number of elements
  881. # in the array of inventory quantities cannot exceed 10 and the amount specified for the plan.
  882. # Used as input only to the productVariantCreate mutation.
  883. inventoryQuantities: [InventoryLevelInput!]
  884. # The inventory item associated with the variant, used for unit cost.
  885. inventoryItem: InventoryItemInput
  886. # The additional customizable information about the product variant.
  887. metafields: [MetafieldInput!]
  888. # The private metafields associated with the product.
  889. privateMetafields: [PrivateMetafieldInput!]
  890. # The custom properties that a shop owner uses to define product variants.
  891. options: [String!]
  892. # The price of the variant.
  893. price: Money
  894. # Whether the variant requires shipping.
  895. requiresShipping: Boolean
  896. # The SKU for the variant.
  897. sku: String
  898. # Whether the variant is taxable.
  899. taxable: Boolean
  900. # The tax code associated with the variant.
  901. taxCode: String
  902. # The weight of the variant.
  903. weight: Float
  904. # The unit of weight that's used to measure the variant.
  905. weightUnit: WeightUnit
  906. }
  907. # Represents a product variant position.
  908. input ProductVariantPositionInput {
  909. # Specifies the ID of the product variant to update.
  910. id: ID!
  911. # The order of the product variant in the list of product variants. The first position in the list is 1.
  912. position: Int!
  913. }
  914. # Return type for productCreate mutation.
  915. type ProductCreatePayload {
  916. # The product object.
  917. product: Product
  918. # The shop associated with the product.
  919. shop: Shop!
  920. # The list of errors that occurred from executing the mutation.
  921. userErrors: [UserError!]!
  922. }
  923. # Return type for productCreateMedia mutation.
  924. type ProductCreateMediaPayload {
  925. # The newly created media.
  926. media: [Media!]
  927. # The list of errors that occurred from executing the mutation.
  928. mediaUserErrors: [MediaUserError!]!
  929. # The product associated with the media.
  930. product: Product
  931. }
  932. # Return type for productDelete mutation.
  933. type ProductDeletePayload {
  934. # The ID of the deleted product.
  935. deletedProductId: ID
  936. # The shop associated with the product.
  937. shop: Shop!
  938. # The list of errors that occurred from executing the mutation.
  939. userErrors: [UserError!]!
  940. }
  941. # Return type for productImageUpdate mutation.
  942. type ProductImageUpdatePayload {
  943. # The image that has been updated.
  944. image: Image
  945. # The list of errors that occurred from executing the mutation.
  946. userErrors: [UserError!]!
  947. }
  948. # Return type for productDeleteImages mutation.
  949. type ProductDeleteImagesPayload {
  950. # The array of image IDs to delete.
  951. deletedImageIds: [ID!]!
  952. # The product object.
  953. product: Product
  954. # The list of errors that occurred from executing the mutation.
  955. userErrors: [UserError!]!
  956. }
  957. # Return type for productDeleteMedia mutation.
  958. type ProductDeleteMediaPayload {
  959. # List of media IDs which were deleted.
  960. deletedMediaIds: [ID!]
  961. # List of product image IDs which were deleted.
  962. deletedProductImageIds: [ID!]
  963. # The list of errors that occurred from executing the mutation.
  964. mediaUserErrors: [MediaUserError!]!
  965. # The product associated with the deleted media.
  966. product: Product
  967. }
  968. # Return type for productDuplicate mutation.
  969. type ProductDuplicatePayload {
  970. # The asynchronous job that duplicates the product images.
  971. imageJob: Job
  972. # The duplicated product.
  973. newProduct: Product
  974. # The user's shop.
  975. shop: Shop!
  976. # The list of errors that occurred from executing the mutation.
  977. userErrors: [UserError!]!
  978. }
  979. # Return type for productJoinSellingPlanGroups mutation.
  980. type ProductJoinSellingPlanGroupsPayload {
  981. # The product object.
  982. product: Product
  983. # The list of errors that occurred from executing the mutation.
  984. userErrors: [SellingPlanGroupUserError!]!
  985. }
  986. # Return type for productLeaveSellingPlanGroups mutation.
  987. type ProductLeaveSellingPlanGroupsPayload {
  988. # The product object.
  989. product: Product
  990. # The list of errors that occurred from executing the mutation.
  991. userErrors: [SellingPlanGroupUserError!]!
  992. }
  993. # Return type for productReorderImages mutation.
  994. type ProductReorderImagesPayload {
  995. # The asynchronous job which reorders the images.
  996. job: Job
  997. # The list of errors that occurred from executing the mutation.
  998. userErrors: [UserError!]!
  999. }
  1000. # Return type for productReorderMedia mutation.
  1001. type ProductReorderMediaPayload {
  1002. # The asynchronous job which reorders the media.
  1003. job: Job
  1004. # The list of errors that occurred from executing the mutation.
  1005. mediaUserErrors: [MediaUserError!]!
  1006. }
  1007. # Return type for productUpdate mutation.
  1008. type ProductUpdatePayload {
  1009. # The updated product object.
  1010. product: Product
  1011. # The list of errors that occurred from executing the mutation.
  1012. userErrors: [UserError!]!
  1013. }
  1014. # Return type for productUpdateMedia mutation.
  1015. type ProductUpdateMediaPayload {
  1016. # The updated media object.
  1017. media: [Media!]
  1018. # The list of errors that occurred from executing the mutation.
  1019. mediaUserErrors: [MediaUserError!]!
  1020. # The product on which media was updated.
  1021. product: Product
  1022. }
  1023. # Return type for productVariantAppendMedia mutation.
  1024. type ProductVariantAppendMediaPayload {
  1025. # The product associated with the variants and media.
  1026. product: Product
  1027. # The product variants that were updated.
  1028. productVariants: [ProductVariant!]
  1029. # The list of errors that occurred from executing the mutation.
  1030. userErrors: [MediaUserError!]!
  1031. }
  1032. # Return type for productVariantCreate mutation.
  1033. type ProductVariantCreatePayload {
  1034. # The product associated with the variant.
  1035. product: Product
  1036. # The successfully created variant.
  1037. productVariant: ProductVariant
  1038. # The list of errors that occurred from executing the mutation.
  1039. userErrors: [UserError!]!
  1040. }
  1041. # Return type for productVariantDelete mutation.
  1042. type ProductVariantDeletePayload {
  1043. # The ID of the deleted product variant.
  1044. deletedProductVariantId: ID
  1045. # The product associated with the deleted product variant.
  1046. product: Product
  1047. # The list of errors that occurred from executing the mutation.
  1048. userErrors: [UserError!]!
  1049. }
  1050. # Return type for productVariantDetachMedia mutation.
  1051. type ProductVariantDetachMediaPayload {
  1052. # The product associated with the variants and media.
  1053. product: Product
  1054. # The product variants that were updated.
  1055. productVariants: [ProductVariant!]
  1056. # The list of errors that occurred from executing the mutation.
  1057. userErrors: [MediaUserError!]!
  1058. }
  1059. # Return type for productVariantJoinSellingPlanGroups mutation.
  1060. type ProductVariantJoinSellingPlanGroupsPayload {
  1061. # The product variant object.
  1062. productVariant: ProductVariant
  1063. # The list of errors that occurred from executing the mutation.
  1064. userErrors: [SellingPlanGroupUserError!]!
  1065. }
  1066. # Return type for productVariantLeaveSellingPlanGroups mutation.
  1067. type ProductVariantLeaveSellingPlanGroupsPayload {
  1068. # The product variant object.
  1069. productVariant: ProductVariant
  1070. # The list of errors that occurred from executing the mutation.
  1071. userErrors: [SellingPlanGroupUserError!]!
  1072. }
  1073. # Return type for productVariantUpdate mutation.
  1074. type ProductVariantUpdatePayload {
  1075. # The product associated with the variant.
  1076. product: Product
  1077. # The updated variant.
  1078. productVariant: ProductVariant
  1079. # The list of errors that occurred from executing the mutation.
  1080. userErrors: [UserError!]!
  1081. }
  1082. # Return type for productVariantsBulkCreate mutation.
  1083. type ProductVariantsBulkCreatePayload {
  1084. # The updated product object.
  1085. product: Product
  1086. # The newly created variants.
  1087. productVariants: [ProductVariant!]
  1088. # The list of errors that occurred from executing the mutation.
  1089. userErrors: [ProductVariantsBulkCreateUserError!]!
  1090. }
  1091. # Return type for productVariantsBulkDelete mutation.
  1092. type ProductVariantsBulkDeletePayload {
  1093. # The updated product object.
  1094. product: Product
  1095. # The list of errors that occurred from executing the mutation.
  1096. userErrors: [ProductVariantsBulkDeleteUserError!]!
  1097. }
  1098. # Return type for productVariantsBulkReorder mutation.
  1099. type ProductVariantsBulkReorderPayload {
  1100. # The updated product.
  1101. product: Product
  1102. # The list of errors that occurred from executing the mutation.
  1103. userErrors: [ProductVariantsBulkReorderUserError!]!
  1104. }
  1105. # Return type for productVariantsBulkUpdate mutation.
  1106. type ProductVariantsBulkUpdatePayload {
  1107. # The updated product object.
  1108. product: Product
  1109. # The updated variants.
  1110. productVariants: [ProductVariant!]
  1111. # The list of errors that occurred from executing the mutation.
  1112. userErrors: [ProductVariantsBulkUpdateUserError!]!
  1113. }
  1114. # Reports the status of product for a Sales Channel or Storefront API.
  1115. # This might include why a product is not available in a Sales Channel
  1116. # and how a merchant might fix this.
  1117. type ProductResourceFeedback {
  1118. # The time when the feedback was generated. Used to help determine whether
  1119. # incoming feedback is outdated compared to existing feedback.
  1120. feedbackGeneratedAt: DateTime!
  1121. # The feedback messages presented to the merchant.
  1122. messages: [String!]!
  1123. # The ID of the product associated with the feedback.
  1124. productId: ID!
  1125. # The timestamp of the product associated with the feedback.
  1126. productUpdatedAt: DateTime!
  1127. # Conveys the state of the feedback and whether it requires merchant action or not.
  1128. state: ResourceFeedbackState!
  1129. }
  1130. extend type App @key(fields: "id") {
  1131. id: ID! @external
  1132. }
  1133. extend type Shop @key(fields: "id") {
  1134. id: ID! @external
  1135. }
  1136. extend type Market @key(fields: "id") {
  1137. id: ID! @external
  1138. }
  1139. extend type Job @key(fields: "id") {
  1140. id: ID! @external
  1141. }
  1142. extend type Customer @key(fields: "id") {
  1143. id: ID! @external
  1144. }
  1145. extend type Order @key(fields: "id") {
  1146. id: ID! @external
  1147. }
  1148. extend type DraftOrder @key(fields: "id") {
  1149. id: ID! @external
  1150. }
  1151. extend type MarketWebPresence @key(fields: "id") {
  1152. id: ID! @external
  1153. }