prod.graphql 25 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622
  1. schema
  2. @link(url: "https://specs.apollo.dev/link/v1.0")
  3. @link(url: "https://specs.apollo.dev/join/v0.2", for: EXECUTION)
  4. {
  5. query: Query
  6. mutation: Mutation
  7. }
  8. directive @join__field(graph: join__Graph!, requires: join__FieldSet, provides: join__FieldSet, type: String, external: Boolean, override: String, usedOverridden: Boolean) repeatable on FIELD_DEFINITION | INPUT_FIELD_DEFINITION
  9. directive @join__graph(name: String!, url: String!) on ENUM_VALUE
  10. directive @join__implements(graph: join__Graph!, interface: String!) repeatable on OBJECT | INTERFACE
  11. directive @join__type(graph: join__Graph!, key: join__FieldSet, extension: Boolean! = false, resolvable: Boolean! = true) repeatable on OBJECT | INTERFACE | UNION | ENUM | INPUT_OBJECT | SCALAR
  12. directive @link(url: String, as: String, for: link__Purpose, import: [link__Import]) repeatable on SCHEMA
  13. type Collection implements HasMetafields & Node & OnlineStorePublishable
  14. @join__implements(graph: PRODUCT, interface: "HasMetafields")
  15. @join__implements(graph: PRODUCT, interface: "Node")
  16. @join__implements(graph: PRODUCT, interface: "OnlineStorePublishable")
  17. @join__type(graph: PRODUCT)
  18. {
  19. description(truncateAt: Int): String!
  20. descriptionHtml: HTML!
  21. handle: String!
  22. id: ID!
  23. image: Image
  24. metafield(key: String!, namespace: String!): Metafield
  25. metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]!
  26. onlineStoreUrl: URL
  27. products(after: String, before: String, filters: [ProductFilter!], first: Int, last: Int, reverse: Boolean = false, sortKey: ProductCollectionSortKeys = COLLECTION_DEFAULT): ProductConnection!
  28. seo: SEO!
  29. title: String!
  30. updatedAt: DateTime!
  31. }
  32. type CollectionConnection
  33. @join__type(graph: PRODUCT)
  34. {
  35. edges: [CollectionEdge!]!
  36. nodes: [Collection!]!
  37. pageInfo: PageInfo!
  38. }
  39. type CollectionEdge
  40. @join__type(graph: PRODUCT)
  41. {
  42. cursor: String!
  43. node: Collection!
  44. }
  45. enum CollectionSortKeys
  46. @join__type(graph: PRODUCT)
  47. {
  48. ID
  49. RELEVANCE
  50. TITLE
  51. UPDATED_AT
  52. }
  53. enum CollectionSortOrder
  54. @join__type(graph: PRODUCT)
  55. {
  56. ALPHA_ASC
  57. ALPHA_DESC
  58. BEST_SELLING
  59. CREATED
  60. CREATED_DESC
  61. MANUAL
  62. PRICE_ASC
  63. PRICE_DESC
  64. }
  65. enum CountryCode
  66. @join__type(graph: CUSTOMER)
  67. @join__type(graph: PRODUCT)
  68. @join__type(graph: SHOP)
  69. {
  70. AF
  71. AX
  72. AL
  73. DZ
  74. AD
  75. AO
  76. AI
  77. AG
  78. AR
  79. AM
  80. AW
  81. AC
  82. AU
  83. AT
  84. AZ
  85. BS
  86. BH
  87. BD
  88. BB
  89. BY
  90. BE
  91. BZ
  92. BJ
  93. BM
  94. BT
  95. BO
  96. BA
  97. BW
  98. BV
  99. BR
  100. IO
  101. BN
  102. BG
  103. BF
  104. BI
  105. KH
  106. CA
  107. CV
  108. BQ
  109. KY
  110. CF
  111. TD
  112. CL
  113. CN
  114. CX
  115. CC
  116. CO
  117. KM
  118. CG
  119. CD
  120. CK
  121. CR
  122. HR
  123. CU
  124. CW
  125. CY
  126. CZ
  127. CI
  128. DK
  129. DJ
  130. DM
  131. DO
  132. EC
  133. EG
  134. SV
  135. GQ
  136. ER
  137. EE
  138. SZ
  139. ET
  140. FK
  141. FO
  142. FJ
  143. FI
  144. FR
  145. GF
  146. PF
  147. TF
  148. GA
  149. GM
  150. GE
  151. DE
  152. GH
  153. GI
  154. GR
  155. GL
  156. GD
  157. GP
  158. GT
  159. GG
  160. GN
  161. GW
  162. GY
  163. HT
  164. HM
  165. VA
  166. HN
  167. HK
  168. HU
  169. IS
  170. IN
  171. ID
  172. IR
  173. IQ
  174. IE
  175. IM
  176. IL
  177. IT
  178. JM
  179. JP
  180. JE
  181. JO
  182. KZ
  183. KE
  184. KI
  185. KP
  186. XK
  187. KW
  188. KG
  189. LA
  190. LV
  191. LB
  192. LS
  193. LR
  194. LY
  195. LI
  196. LT
  197. LU
  198. MO
  199. MG
  200. MW
  201. MY
  202. MV
  203. ML
  204. MT
  205. MQ
  206. MR
  207. MU
  208. YT
  209. MX
  210. MD
  211. MC
  212. MN
  213. ME
  214. MS
  215. MA
  216. MZ
  217. MM
  218. NA
  219. NR
  220. NP
  221. NL
  222. AN
  223. NC
  224. NZ
  225. NI
  226. NE
  227. NG
  228. NU
  229. NF
  230. MK
  231. NO
  232. OM
  233. PK
  234. PS
  235. PA
  236. PG
  237. PY
  238. PE
  239. PH
  240. PN
  241. PL
  242. PT
  243. QA
  244. CM
  245. RE
  246. RO
  247. RU
  248. RW
  249. BL
  250. SH
  251. KN
  252. LC
  253. MF
  254. PM
  255. WS
  256. SM
  257. ST
  258. SA
  259. SN
  260. RS
  261. SC
  262. SL
  263. SG
  264. SX
  265. SK
  266. SI
  267. SB
  268. SO
  269. ZA
  270. GS
  271. KR
  272. SS
  273. ES
  274. LK
  275. VC
  276. SD
  277. SR
  278. SJ
  279. SE
  280. CH
  281. SY
  282. TW
  283. TJ
  284. TZ
  285. TH
  286. TL
  287. TG
  288. TK
  289. TO
  290. TT
  291. TA
  292. TN
  293. TR
  294. TM
  295. TC
  296. TV
  297. UG
  298. UA
  299. AE
  300. GB
  301. US
  302. UM
  303. UY
  304. UZ
  305. VU
  306. VE
  307. VN
  308. VG
  309. WF
  310. EH
  311. YE
  312. ZM
  313. ZW
  314. ZZ
  315. }
  316. enum CropRegion
  317. @join__type(graph: PRODUCT)
  318. {
  319. CENTER
  320. TOP
  321. BOTTOM
  322. LEFT
  323. RIGHT
  324. }
  325. enum CurrencyCode
  326. @join__type(graph: PRODUCT)
  327. {
  328. AED
  329. AFN
  330. ALL
  331. AMD
  332. ANG
  333. AOA
  334. ARS
  335. AUD
  336. AWG
  337. AZN
  338. BAM
  339. BBD
  340. BDT
  341. BGN
  342. BHD
  343. BIF
  344. BMD
  345. BND
  346. BOB
  347. BRL
  348. BSD
  349. BTN
  350. BWP
  351. BYN
  352. BZD
  353. CAD
  354. CDF
  355. CHF
  356. CLP
  357. CNY
  358. COP
  359. CRC
  360. CVE
  361. CZK
  362. DJF
  363. DKK
  364. DOP
  365. DZD
  366. EGP
  367. ERN
  368. ETB
  369. EUR
  370. FJD
  371. FKP
  372. GBP
  373. GEL
  374. GHS
  375. GIP
  376. GMD
  377. GNF
  378. GTQ
  379. GYD
  380. HKD
  381. HNL
  382. HRK
  383. HTG
  384. HUF
  385. IDR
  386. ILS
  387. INR
  388. IQD
  389. IRR
  390. ISK
  391. JEP
  392. JMD
  393. JOD
  394. JPY
  395. KES
  396. KGS
  397. KHR
  398. KID
  399. KMF
  400. KRW
  401. KWD
  402. KYD
  403. KZT
  404. LAK
  405. LBP
  406. LKR
  407. LRD
  408. LSL
  409. LTL
  410. LVL
  411. LYD
  412. MAD
  413. MDL
  414. MGA
  415. MKD
  416. MMK
  417. MNT
  418. MOP
  419. MRU
  420. MUR
  421. MVR
  422. MWK
  423. MXN
  424. MYR
  425. MZN
  426. NAD
  427. NGN
  428. NIO
  429. NOK
  430. NPR
  431. NZD
  432. OMR
  433. PAB
  434. PEN
  435. PGK
  436. PHP
  437. PKR
  438. PLN
  439. PYG
  440. QAR
  441. RON
  442. RSD
  443. RUB
  444. RWF
  445. SAR
  446. SBD
  447. SCR
  448. SDG
  449. SEK
  450. SGD
  451. SHP
  452. SLL
  453. SOS
  454. SRD
  455. SSP
  456. STN
  457. SYP
  458. SZL
  459. THB
  460. TJS
  461. TMT
  462. TND
  463. TOP
  464. TRY
  465. TTD
  466. TWD
  467. TZS
  468. UAH
  469. UGX
  470. USD
  471. UYU
  472. UZS
  473. VED
  474. VES
  475. VND
  476. VUV
  477. WST
  478. XAF
  479. XCD
  480. XOF
  481. XPF
  482. XXX
  483. YER
  484. ZAR
  485. ZMW
  486. BYR @deprecated
  487. }
  488. type Customer implements HasMetafields
  489. @join__implements(graph: CUSTOMER, interface: "HasMetafields")
  490. @join__type(graph: CUSTOMER)
  491. {
  492. acceptsMarketing: Boolean!
  493. addresses(after: String, before: String, first: Int, last: Int, reverse: Boolean = false): MailingAddressConnection!
  494. createdAt: DateTime!
  495. defaultAddress: MailingAddress
  496. displayName: String!
  497. email: String
  498. firstName: String
  499. id: ID!
  500. lastName: String
  501. metafield(key: String!, namespace: String!): Metafield
  502. metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]!
  503. numberOfOrders: UnsignedInt64!
  504. phone: String
  505. tags: [String!]!
  506. updatedAt: DateTime!
  507. }
  508. type CustomerAccessToken
  509. @join__type(graph: CUSTOMER)
  510. {
  511. accessToken: String!
  512. expiresAt: DateTime!
  513. }
  514. input CustomerAccessTokenCreateInput
  515. @join__type(graph: CUSTOMER)
  516. {
  517. email: String!
  518. password: String!
  519. }
  520. type CustomerAccessTokenCreatePayload
  521. @join__type(graph: CUSTOMER)
  522. {
  523. customerAccessToken: CustomerAccessToken
  524. customerUserErrors: [CustomerUserError!]!
  525. }
  526. type CustomerAccessTokenDeletePayload
  527. @join__type(graph: CUSTOMER)
  528. {
  529. deletedAccessToken: String
  530. deletedCustomerAccessTokenId: String
  531. userErrors: [UserError!]!
  532. }
  533. type CustomerAccessTokenRenewPayload
  534. @join__type(graph: CUSTOMER)
  535. {
  536. customerAccessToken: CustomerAccessToken
  537. userErrors: [UserError!]!
  538. }
  539. input CustomerCreateInput
  540. @join__type(graph: CUSTOMER)
  541. {
  542. firstName: String
  543. lastName: String
  544. email: String!
  545. phone: String
  546. password: String!
  547. acceptsMarketing: Boolean
  548. }
  549. type CustomerCreatePayload
  550. @join__type(graph: CUSTOMER)
  551. {
  552. customer: Customer
  553. customerUserErrors: [CustomerUserError!]!
  554. }
  555. enum CustomerErrorCode
  556. @join__type(graph: CUSTOMER)
  557. {
  558. BLANK
  559. INVALID
  560. TAKEN
  561. TOO_LONG
  562. TOO_SHORT
  563. UNIDENTIFIED_CUSTOMER
  564. CUSTOMER_DISABLED
  565. PASSWORD_STARTS_OR_ENDS_WITH_WHITESPACE
  566. CONTAINS_HTML_TAGS
  567. CONTAINS_URL
  568. TOKEN_INVALID
  569. ALREADY_ENABLED
  570. NOT_FOUND
  571. BAD_DOMAIN
  572. INVALID_MULTIPASS_REQUEST
  573. }
  574. input CustomerUpdateInput
  575. @join__type(graph: CUSTOMER)
  576. {
  577. firstName: String
  578. lastName: String
  579. email: String
  580. phone: String
  581. password: String
  582. acceptsMarketing: Boolean
  583. }
  584. type CustomerUpdatePayload
  585. @join__type(graph: CUSTOMER)
  586. {
  587. customer: Customer
  588. customerAccessToken: CustomerAccessToken
  589. customerUserErrors: [CustomerUserError!]!
  590. }
  591. type CustomerUserError implements DisplayableError
  592. @join__implements(graph: CUSTOMER, interface: "DisplayableError")
  593. @join__type(graph: CUSTOMER)
  594. {
  595. code: CustomerErrorCode
  596. field: [String!]
  597. message: String!
  598. }
  599. scalar DateTime
  600. @join__type(graph: CUSTOMER)
  601. @join__type(graph: PRODUCT)
  602. scalar Decimal
  603. @join__type(graph: PRODUCT)
  604. interface DisplayableError
  605. @join__type(graph: CUSTOMER)
  606. {
  607. field: [String!]
  608. message: String!
  609. }
  610. type Filter
  611. @join__type(graph: PRODUCT)
  612. {
  613. id: String!
  614. label: String!
  615. type: FilterType!
  616. }
  617. enum FilterType
  618. @join__type(graph: PRODUCT)
  619. {
  620. LIST
  621. PRICE_RANGE
  622. BOOLEAN
  623. }
  624. input GeoCoordinateInput
  625. @join__type(graph: SHOP)
  626. {
  627. latitude: Float!
  628. longitude: Float!
  629. }
  630. interface HasMetafields
  631. @join__type(graph: CUSTOMER)
  632. @join__type(graph: PRODUCT)
  633. {
  634. metafield(namespace: String!, key: String!): Metafield
  635. metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]!
  636. }
  637. input HasMetafieldsIdentifier
  638. @join__type(graph: CUSTOMER)
  639. @join__type(graph: PRODUCT)
  640. {
  641. namespace: String!
  642. key: String!
  643. }
  644. scalar HTML
  645. @join__type(graph: CUSTOMER)
  646. @join__type(graph: PRODUCT)
  647. type Image
  648. @join__type(graph: PRODUCT)
  649. {
  650. altText: String
  651. height: Int
  652. id: ID
  653. url(transform: ImageTransformInput): URL!
  654. width: Int
  655. originalSrc: URL! @deprecated
  656. src: URL! @deprecated
  657. transformedSrc: URL! @deprecated
  658. }
  659. type ImageConnection
  660. @join__type(graph: PRODUCT)
  661. {
  662. edges: [ImageEdge!]!
  663. nodes: [Image!]!
  664. pageInfo: PageInfo!
  665. }
  666. enum ImageContentType
  667. @join__type(graph: PRODUCT)
  668. {
  669. PNG
  670. JPG
  671. WEBP
  672. }
  673. type ImageEdge
  674. @join__type(graph: PRODUCT)
  675. {
  676. cursor: String!
  677. node: Image!
  678. }
  679. input ImageTransformInput
  680. @join__type(graph: PRODUCT)
  681. {
  682. crop: CropRegion
  683. maxWidth: Int
  684. maxHeight: Int
  685. scale: Int = 1
  686. preferredContentType: ImageContentType
  687. }
  688. scalar join__FieldSet
  689. enum join__Graph {
  690. CUSTOMER @join__graph(name: "customer", url: "https://customer.api.gshopper.com/")
  691. PRODUCT @join__graph(name: "product", url: "https://product.api.gshopper.com/")
  692. SHOP @join__graph(name: "shop", url: "https://shop.api.gshopper.com/")
  693. }
  694. scalar JSON
  695. @join__type(graph: PRODUCT)
  696. enum LanguageCode
  697. @join__type(graph: CUSTOMER)
  698. @join__type(graph: PRODUCT)
  699. @join__type(graph: SHOP)
  700. {
  701. AF
  702. AK
  703. AM
  704. AR
  705. AS
  706. AZ
  707. BE
  708. BG
  709. BM
  710. BN
  711. BO
  712. BR
  713. BS
  714. CA
  715. CE
  716. CS
  717. CU
  718. CY
  719. DA
  720. DE
  721. DZ
  722. EE
  723. EL
  724. EN
  725. EO
  726. ES
  727. ET
  728. EU
  729. FA
  730. FF
  731. FI
  732. FO
  733. FR
  734. FY
  735. GA
  736. GD
  737. GL
  738. GU
  739. GV
  740. HA
  741. HE
  742. HI
  743. HR
  744. HU
  745. HY
  746. IA
  747. ID
  748. IG
  749. II
  750. IS
  751. IT
  752. JA
  753. JV
  754. KA
  755. KI
  756. KK
  757. KL
  758. KM
  759. KN
  760. KO
  761. KS
  762. KU
  763. KW
  764. KY
  765. LB
  766. LG
  767. LN
  768. LO
  769. LT
  770. LU
  771. LV
  772. MG
  773. MI
  774. MK
  775. ML
  776. MN
  777. MR
  778. MS
  779. MT
  780. MY
  781. NB
  782. ND
  783. NE
  784. NL
  785. NN
  786. NO
  787. OM
  788. OR
  789. OS
  790. PA
  791. PL
  792. PS
  793. PT_BR
  794. PT_PT
  795. QU
  796. RM
  797. RN
  798. RO
  799. RU
  800. RW
  801. SD
  802. SE
  803. SG
  804. SI
  805. SK
  806. SL
  807. SN
  808. SO
  809. SQ
  810. SR
  811. SU
  812. SV
  813. SW
  814. TA
  815. TE
  816. TG
  817. TH
  818. TI
  819. TK
  820. TO
  821. TR
  822. TT
  823. UG
  824. UK
  825. UR
  826. UZ
  827. VI
  828. WO
  829. XH
  830. YI
  831. YO
  832. ZH_CN
  833. ZH_TW
  834. ZU
  835. ZH
  836. PT
  837. VO
  838. }
  839. scalar link__Import
  840. enum link__Purpose {
  841. """
  842. `SECURITY` features provide metadata necessary to securely resolve fields.
  843. """
  844. SECURITY
  845. """
  846. `EXECUTION` features provide metadata necessary for operation execution.
  847. """
  848. EXECUTION
  849. }
  850. type Location implements Node
  851. @join__implements(graph: PRODUCT, interface: "Node")
  852. @join__implements(graph: SHOP, interface: "Node")
  853. @join__type(graph: PRODUCT)
  854. @join__type(graph: SHOP, key: "id")
  855. {
  856. id: ID!
  857. address: LocationAddress! @join__field(graph: SHOP)
  858. name: String! @join__field(graph: SHOP)
  859. }
  860. type LocationAddress
  861. @join__type(graph: PRODUCT)
  862. @join__type(graph: SHOP)
  863. {
  864. address1: String
  865. address2: String
  866. city: String
  867. country: String
  868. countryCode: String
  869. formatted: [String!]!
  870. latitude: Float
  871. longitude: Float
  872. phone: String
  873. province: String
  874. provinceCode: String
  875. zip: String
  876. }
  877. type LocationConnection
  878. @join__type(graph: SHOP)
  879. {
  880. edges: [LocationEdge!]!
  881. nodes: [Location!]!
  882. pageInfo: PageInfo!
  883. }
  884. type LocationEdge
  885. @join__type(graph: SHOP)
  886. {
  887. cursor: String!
  888. node: Location!
  889. }
  890. enum LocationSortKeys
  891. @join__type(graph: SHOP)
  892. {
  893. ID
  894. NAME
  895. CITY
  896. DISTANCE
  897. }
  898. type MailingAddress implements Node
  899. @join__implements(graph: CUSTOMER, interface: "Node")
  900. @join__type(graph: CUSTOMER)
  901. {
  902. address1: String
  903. address2: String
  904. city: String
  905. company: String
  906. country: String
  907. countryCodeV2: CountryCode
  908. firstName: String
  909. formatted(withName: Boolean = false, withCompany: Boolean = true): [String!]!
  910. formattedArea: String
  911. id: ID!
  912. lastName: String
  913. latitude: Float
  914. longitude: Float
  915. name: String
  916. phone: String
  917. province: String
  918. provinceCode: String
  919. zip: String
  920. countryCode: String @deprecated(reason: "Use `countryCodeV2` instead.")
  921. }
  922. type MailingAddressConnection
  923. @join__type(graph: CUSTOMER)
  924. {
  925. edges: [MailingAddressEdge!]!
  926. nodes: [MailingAddress!]!
  927. pageInfo: PageInfo!
  928. }
  929. type MailingAddressEdge
  930. @join__type(graph: CUSTOMER)
  931. {
  932. cursor: String!
  933. node: MailingAddress!
  934. }
  935. interface Media
  936. @join__type(graph: PRODUCT)
  937. {
  938. alt: String
  939. mediaContentType: MediaContentType!
  940. previewImage: Image
  941. }
  942. type MediaConnection
  943. @join__type(graph: PRODUCT)
  944. {
  945. edges: [MediaEdge!]!
  946. nodes: [Media!]!
  947. pageInfo: PageInfo!
  948. }
  949. enum MediaContentType
  950. @join__type(graph: PRODUCT)
  951. {
  952. EXTERNAL_VIDEO
  953. IMAGE
  954. MODEL_3D
  955. VIDEO
  956. }
  957. type MediaEdge
  958. @join__type(graph: PRODUCT)
  959. {
  960. cursor: String!
  961. node: Media!
  962. }
  963. type Metafield implements Node
  964. @join__implements(graph: CUSTOMER, interface: "Node")
  965. @join__implements(graph: PRODUCT, interface: "Node")
  966. @join__type(graph: CUSTOMER)
  967. @join__type(graph: PRODUCT)
  968. {
  969. createdAt: DateTime!
  970. description: String
  971. id: ID!
  972. key: String!
  973. namespace: String!
  974. parentResource: MetafieldParentResource!
  975. reference: MetafieldReference
  976. references(first: Int, after: String, last: Int, before: String): MetafieldReferenceConnection
  977. type: String!
  978. updatedAt: DateTime!
  979. value: String!
  980. }
  981. input MetafieldFilter
  982. @join__type(graph: PRODUCT)
  983. {
  984. namespace: String!
  985. key: String!
  986. value: String!
  987. }
  988. union MetafieldParentResource
  989. @join__type(graph: CUSTOMER)
  990. @join__type(graph: PRODUCT)
  991. = Customer | Collection | Product | ProductVariant
  992. union MetafieldReference
  993. @join__type(graph: CUSTOMER)
  994. @join__type(graph: PRODUCT)
  995. = Page | Collection | Product | ProductVariant
  996. type MetafieldReferenceConnection
  997. @join__type(graph: CUSTOMER)
  998. @join__type(graph: PRODUCT)
  999. {
  1000. edges: [MetafieldReferenceEdge!]!
  1001. nodes: [MetafieldReference!]!
  1002. pageInfo: PageInfo!
  1003. }
  1004. type MetafieldReferenceEdge
  1005. @join__type(graph: CUSTOMER)
  1006. @join__type(graph: PRODUCT)
  1007. {
  1008. cursor: String!
  1009. node: MetafieldReference!
  1010. }
  1011. type MoneyV2
  1012. @join__type(graph: PRODUCT)
  1013. {
  1014. amount: Decimal!
  1015. currencyCode: CurrencyCode!
  1016. }
  1017. type Mutation
  1018. @inContext
  1019. @join__type(graph: CUSTOMER)
  1020. {
  1021. customerAccessTokenCreate(input: CustomerAccessTokenCreateInput!): CustomerAccessTokenCreatePayload
  1022. customerAccessTokenRenew(customerAccessToken: String!): CustomerAccessTokenRenewPayload
  1023. customerAccessTokenDelete(customerAccessToken: String!): CustomerAccessTokenDeletePayload
  1024. customerCreate(input: CustomerCreateInput!): CustomerCreatePayload
  1025. customerUpdate(customerAccessToken: String!, customer: CustomerUpdateInput!): CustomerUpdatePayload
  1026. }
  1027. interface Node
  1028. @join__type(graph: CUSTOMER)
  1029. @join__type(graph: PRODUCT)
  1030. @join__type(graph: SHOP)
  1031. {
  1032. id: ID!
  1033. }
  1034. interface OnlineStorePublishable
  1035. @join__type(graph: CUSTOMER)
  1036. @join__type(graph: PRODUCT)
  1037. {
  1038. onlineStoreUrl: URL
  1039. }
  1040. type Page implements Node & HasMetafields & OnlineStorePublishable
  1041. @join__implements(graph: CUSTOMER, interface: "Node")
  1042. @join__implements(graph: CUSTOMER, interface: "HasMetafields")
  1043. @join__implements(graph: CUSTOMER, interface: "OnlineStorePublishable")
  1044. @join__type(graph: CUSTOMER)
  1045. {
  1046. body: HTML!
  1047. bodySummary: String!
  1048. createdAt: DateTime!
  1049. handle: String!
  1050. id: ID!
  1051. metafield(namespace: String!, key: String!): Metafield
  1052. metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]!
  1053. onlineStoreUrl: URL
  1054. seo: SEO
  1055. title: String!
  1056. updatedAt: DateTime!
  1057. }
  1058. type PageInfo
  1059. @join__type(graph: CUSTOMER)
  1060. @join__type(graph: PRODUCT)
  1061. @join__type(graph: SHOP)
  1062. {
  1063. endCursor: String
  1064. hasNextPage: Boolean!
  1065. hasPreviousPage: Boolean!
  1066. startCursor: String
  1067. }
  1068. input PriceRangeFilter
  1069. @join__type(graph: PRODUCT)
  1070. {
  1071. min: Float = 0
  1072. max: Float
  1073. }
  1074. type Product implements HasMetafields & Node & OnlineStorePublishable
  1075. @join__implements(graph: PRODUCT, interface: "HasMetafields")
  1076. @join__implements(graph: PRODUCT, interface: "Node")
  1077. @join__implements(graph: PRODUCT, interface: "OnlineStorePublishable")
  1078. @join__type(graph: PRODUCT)
  1079. {
  1080. availableForSale: Boolean!
  1081. collections(after: String, before: String, first: Int, last: Int, reverse: Boolean = false): CollectionConnection!
  1082. compareAtPriceRange: ProductPriceRange!
  1083. createdAt: DateTime!
  1084. description(truncateAt: Int): String!
  1085. descriptionHtml: HTML!
  1086. featuredImage: Image
  1087. handle: String!
  1088. id: ID!
  1089. images(after: String, before: String, first: Int, last: Int, reverse: Boolean = false, sortKey: ProductImageSortKeys = POSITION): ImageConnection!
  1090. isGiftCard: Boolean!
  1091. media(after: String, before: String, first: Int, last: Int, reverse: Boolean = false, sortKey: ProductMediaSortKeys = POSITION): MediaConnection!
  1092. metafield(key: String!, namespace: String!): Metafield
  1093. metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]!
  1094. onlineStoreUrl: URL
  1095. options(first: Int): [ProductOption!]!
  1096. priceRange: ProductPriceRange!
  1097. productType: String!
  1098. publishedAt: DateTime!
  1099. requiresSellingPlan: Boolean!
  1100. sellingPlanGroups(first: Int, after: String, last: Int, before: String, reverse: Boolean = false): SellingPlanGroupConnection!
  1101. seo: SEO!
  1102. tags: [String!]!
  1103. title: String!
  1104. totalInventory: Int
  1105. updatedAt: DateTime!
  1106. variantBySelectedOptions(selectedOptions: [SelectedOptionInput!]!): ProductVariant
  1107. variants(first: Int, after: String, last: Int, before: String, reverse: Boolean = false, sortKey: ProductVariantSortKeys = POSITION): ProductVariantConnection!
  1108. vendor: String!
  1109. }
  1110. enum ProductCollectionSortKeys
  1111. @join__type(graph: PRODUCT)
  1112. {
  1113. BEST_SELLING
  1114. COLLECTION_DEFAULT
  1115. CREATED
  1116. ID
  1117. MANUAL
  1118. PRICE
  1119. RELEVANCE
  1120. TITLE
  1121. }
  1122. type ProductConnection
  1123. @join__type(graph: PRODUCT)
  1124. {
  1125. edges: [ProductEdge!]!
  1126. filters: [Filter!]!
  1127. nodes: [Product!]!
  1128. pageInfo: PageInfo!
  1129. }
  1130. type ProductEdge
  1131. @join__type(graph: PRODUCT)
  1132. {
  1133. cursor: String!
  1134. node: Product!
  1135. }
  1136. input ProductFilter
  1137. @join__type(graph: PRODUCT)
  1138. {
  1139. available: Boolean
  1140. variantOption: VariantOptionFilter
  1141. productType: String
  1142. productVendor: String
  1143. price: PriceRangeFilter
  1144. productMetafield: MetafieldFilter
  1145. variantMetafield: MetafieldFilter
  1146. }
  1147. enum ProductImageSortKeys
  1148. @join__type(graph: PRODUCT)
  1149. {
  1150. CREATED_AT
  1151. ID
  1152. POSITION
  1153. RELEVANCE
  1154. }
  1155. enum ProductMediaSortKeys
  1156. @join__type(graph: PRODUCT)
  1157. {
  1158. ID
  1159. POSITION
  1160. RELEVANCE
  1161. }
  1162. type ProductOption implements Node
  1163. @join__implements(graph: PRODUCT, interface: "Node")
  1164. @join__type(graph: PRODUCT)
  1165. {
  1166. id: ID!
  1167. name: String!
  1168. values: [String!]!
  1169. }
  1170. type ProductPriceRange
  1171. @join__type(graph: PRODUCT)
  1172. {
  1173. maxVariantPrice: MoneyV2!
  1174. minVariantPrice: MoneyV2!
  1175. }
  1176. enum ProductSortKeys
  1177. @join__type(graph: PRODUCT)
  1178. {
  1179. TITLE
  1180. PRODUCT_TYPE
  1181. VENDOR
  1182. UPDATED_AT
  1183. CREATED_AT
  1184. BEST_SELLING
  1185. PRICE
  1186. ID
  1187. RELEVANCE
  1188. }
  1189. type ProductVariant implements Node & HasMetafields
  1190. @join__implements(graph: PRODUCT, interface: "Node")
  1191. @join__implements(graph: PRODUCT, interface: "HasMetafields")
  1192. @join__type(graph: PRODUCT)
  1193. {
  1194. availableForSale: Boolean!
  1195. barcode: String
  1196. compareAtPrice: MoneyV2
  1197. currentlyNotInStock: Boolean!
  1198. id: ID!
  1199. image: Image
  1200. metafield(namespace: String!, key: String!): Metafield
  1201. metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]!
  1202. price: MoneyV2!
  1203. product: Product!
  1204. quantityAvailable: Int
  1205. requiresShipping: Boolean!
  1206. selectedOptions: [SelectedOption!]!
  1207. sellingPlanAllocations(first: Int, after: String, last: Int, before: String, reverse: Boolean = false): SellingPlanAllocationConnection!
  1208. sku: String
  1209. storeAvailability(first: Int, after: String, last: Int, before: String, reverse: Boolean = false): StoreAvailabilityConnection!
  1210. title: String!
  1211. unitPrice: MoneyV2
  1212. unitPriceMeasurement: UnitPriceMeasurement
  1213. weight: Float
  1214. weightUnit: WeightUnit!
  1215. }
  1216. type ProductVariantConnection
  1217. @join__type(graph: PRODUCT)
  1218. {
  1219. edges: [ProductVariantEdge!]!
  1220. nodes: [ProductVariant!]!
  1221. pageInfo: PageInfo!
  1222. }
  1223. type ProductVariantEdge
  1224. @join__type(graph: PRODUCT)
  1225. {
  1226. cursor: String!
  1227. node: ProductVariant!
  1228. }
  1229. enum ProductVariantSortKeys
  1230. @join__type(graph: PRODUCT)
  1231. {
  1232. TITLE
  1233. SKU
  1234. POSITION
  1235. ID
  1236. RELEVANCE
  1237. }
  1238. type Query
  1239. @inContext
  1240. @join__type(graph: CUSTOMER)
  1241. @join__type(graph: PRODUCT)
  1242. @join__type(graph: SHOP)
  1243. {
  1244. customer(customerAccessToken: String!): Customer @join__field(graph: CUSTOMER)
  1245. collection(handle: String, id: ID): Collection @join__field(graph: PRODUCT)
  1246. collections(after: String, before: String, first: Int, last: Int, query: String, reverse: Boolean = false, sortKey: CollectionSortKeys = ID): CollectionConnection! @join__field(graph: PRODUCT)
  1247. product(handle: String, id: ID): Product @join__field(graph: PRODUCT)
  1248. products(after: String, before: String, first: Int, last: Int, query: String, reverse: Boolean = false, sortKey: ProductSortKeys = ID): ProductConnection! @join__field(graph: PRODUCT)
  1249. productTags(first: Int!): StringConnection! @join__field(graph: PRODUCT)
  1250. productTypes(first: Int!): StringConnection! @join__field(graph: PRODUCT)
  1251. productRecommendations(productId: ID!): [Product!] @join__field(graph: PRODUCT)
  1252. locations(after: String, before: String, first: Int, last: Int, near: GeoCoordinateInput, reverse: Boolean = false, sortKey: LocationSortKeys = ID): LocationConnection! @join__field(graph: SHOP)
  1253. }
  1254. type SelectedOption
  1255. @join__type(graph: PRODUCT)
  1256. {
  1257. name: String!
  1258. value: String!
  1259. }
  1260. input SelectedOptionInput
  1261. @join__type(graph: PRODUCT)
  1262. {
  1263. name: String!
  1264. value: String!
  1265. }
  1266. type SellingPlan implements Node
  1267. @join__implements(graph: PRODUCT, interface: "Node")
  1268. @join__type(graph: PRODUCT)
  1269. {
  1270. checkoutCharge: SellingPlanCheckoutCharge!
  1271. description: String
  1272. id: ID!
  1273. name: String!
  1274. options: [SellingPlanOption!]!
  1275. priceAdjustments: [SellingPlanPriceAdjustment!]!
  1276. recurringDeliveries: Boolean!
  1277. }
  1278. type SellingPlanAllocation
  1279. @join__type(graph: PRODUCT)
  1280. {
  1281. checkoutChargeAmount: MoneyV2!
  1282. priceAdjustments: [SellingPlanAllocationPriceAdjustment!]!
  1283. remainingBalanceChargeAmount: MoneyV2!
  1284. sellingPlan: SellingPlan!
  1285. }
  1286. type SellingPlanAllocationConnection
  1287. @join__type(graph: PRODUCT)
  1288. {
  1289. edges: [SellingPlanAllocationEdge!]!
  1290. nodes: [SellingPlanAllocation!]!
  1291. pageInfo: PageInfo!
  1292. }
  1293. type SellingPlanAllocationEdge
  1294. @join__type(graph: PRODUCT)
  1295. {
  1296. cursor: String!
  1297. node: SellingPlanAllocation!
  1298. }
  1299. type SellingPlanAllocationPriceAdjustment
  1300. @join__type(graph: PRODUCT)
  1301. {
  1302. compareAtPrice: MoneyV2!
  1303. perDeliveryPrice: MoneyV2!
  1304. price: MoneyV2!
  1305. unitPrice: MoneyV2
  1306. }
  1307. type SellingPlanCheckoutCharge
  1308. @join__type(graph: PRODUCT)
  1309. {
  1310. type: SellingPlanCheckoutChargeType!
  1311. value: SellingPlanCheckoutChargeValue!
  1312. }
  1313. type SellingPlanCheckoutChargePercentageValue
  1314. @join__type(graph: PRODUCT)
  1315. {
  1316. percentage: Float!
  1317. }
  1318. enum SellingPlanCheckoutChargeType
  1319. @join__type(graph: PRODUCT)
  1320. {
  1321. PERCENTAGE
  1322. PRICE
  1323. }
  1324. union SellingPlanCheckoutChargeValue
  1325. @join__type(graph: PRODUCT)
  1326. = MoneyV2 | SellingPlanCheckoutChargePercentageValue
  1327. type SellingPlanConnection
  1328. @join__type(graph: PRODUCT)
  1329. {
  1330. edges: [SellingPlanEdge!]!
  1331. nodes: [SellingPlan!]!
  1332. pageInfo: PageInfo!
  1333. }
  1334. type SellingPlanEdge
  1335. @join__type(graph: PRODUCT)
  1336. {
  1337. cursor: String!
  1338. node: SellingPlan!
  1339. }
  1340. type SellingPlanFixedAmountPriceAdjustment
  1341. @join__type(graph: PRODUCT)
  1342. {
  1343. adjustmentAmount: MoneyV2!
  1344. }
  1345. type SellingPlanFixedPriceAdjustment
  1346. @join__type(graph: PRODUCT)
  1347. {
  1348. price: MoneyV2!
  1349. }
  1350. type SellingPlanGroup
  1351. @join__type(graph: PRODUCT)
  1352. {
  1353. appName: String
  1354. name: String!
  1355. options: [SellingPlanGroupOption!]!
  1356. sellingPlans(first: Int, after: String, last: Int, before: String, reverse: Boolean = false): SellingPlanConnection!
  1357. }
  1358. type SellingPlanGroupConnection
  1359. @join__type(graph: PRODUCT)
  1360. {
  1361. edges: [SellingPlanGroupEdge!]!
  1362. nodes: [SellingPlanGroup!]!
  1363. pageInfo: PageInfo!
  1364. }
  1365. type SellingPlanGroupEdge
  1366. @join__type(graph: PRODUCT)
  1367. {
  1368. cursor: String!
  1369. node: SellingPlanGroup!
  1370. }
  1371. type SellingPlanGroupOption
  1372. @join__type(graph: PRODUCT)
  1373. {
  1374. name: String!
  1375. values: [String!]!
  1376. }
  1377. type SellingPlanOption
  1378. @join__type(graph: PRODUCT)
  1379. {
  1380. name: String
  1381. value: String
  1382. }
  1383. type SellingPlanPercentagePriceAdjustment
  1384. @join__type(graph: PRODUCT)
  1385. {
  1386. adjustmentPercentage: Int!
  1387. }
  1388. type SellingPlanPriceAdjustment
  1389. @join__type(graph: PRODUCT)
  1390. {
  1391. adjustmentValue: SellingPlanPriceAdjustmentValue!
  1392. orderCount: Int
  1393. }
  1394. union SellingPlanPriceAdjustmentValue
  1395. @join__type(graph: PRODUCT)
  1396. = SellingPlanFixedAmountPriceAdjustment | SellingPlanFixedPriceAdjustment | SellingPlanPercentagePriceAdjustment
  1397. type SEO
  1398. @join__type(graph: CUSTOMER)
  1399. @join__type(graph: PRODUCT)
  1400. {
  1401. description: String
  1402. title: String
  1403. }
  1404. type StoreAvailability
  1405. @join__type(graph: PRODUCT)
  1406. {
  1407. available: Boolean!
  1408. location: Location!
  1409. pickUpTime: String!
  1410. }
  1411. type StoreAvailabilityConnection
  1412. @join__type(graph: PRODUCT)
  1413. {
  1414. edges: [StoreAvailabilityEdge!]!
  1415. nodes: [StoreAvailability!]!
  1416. pageInfo: PageInfo!
  1417. }
  1418. type StoreAvailabilityEdge
  1419. @join__type(graph: PRODUCT)
  1420. {
  1421. cursor: String!
  1422. node: StoreAvailability!
  1423. }
  1424. type StringConnection
  1425. @join__type(graph: PRODUCT)
  1426. {
  1427. edges: [StringEdge!]!
  1428. pageInfo: PageInfo!
  1429. }
  1430. type StringEdge
  1431. @join__type(graph: PRODUCT)
  1432. {
  1433. cursor: String!
  1434. node: String!
  1435. }
  1436. type UnitPriceMeasurement
  1437. @join__type(graph: PRODUCT)
  1438. {
  1439. measuredType: UnitPriceMeasurementMeasuredType
  1440. quantityUnit: UnitPriceMeasurementMeasuredUnit
  1441. quantityValue: Float!
  1442. referenceUnit: UnitPriceMeasurementMeasuredUnit
  1443. referenceValue: Int!
  1444. }
  1445. enum UnitPriceMeasurementMeasuredType
  1446. @join__type(graph: PRODUCT)
  1447. {
  1448. AREA
  1449. LENGTH
  1450. VOLUME
  1451. WEIGHT
  1452. }
  1453. enum UnitPriceMeasurementMeasuredUnit
  1454. @join__type(graph: PRODUCT)
  1455. {
  1456. CL
  1457. CM
  1458. G
  1459. KG
  1460. L
  1461. M
  1462. M2
  1463. M3
  1464. MG
  1465. ML
  1466. MM
  1467. }
  1468. scalar UnsignedInt64
  1469. @join__type(graph: CUSTOMER)
  1470. @join__type(graph: PRODUCT)
  1471. scalar URL
  1472. @join__type(graph: CUSTOMER)
  1473. @join__type(graph: PRODUCT)
  1474. type UserError implements DisplayableError
  1475. @join__implements(graph: CUSTOMER, interface: "DisplayableError")
  1476. @join__type(graph: CUSTOMER)
  1477. {
  1478. field: [String!]
  1479. message: String!
  1480. }
  1481. input VariantOptionFilter
  1482. @join__type(graph: PRODUCT)
  1483. {
  1484. name: String!
  1485. value: String!
  1486. }
  1487. enum WeightUnit
  1488. @join__type(graph: PRODUCT)
  1489. {
  1490. KILOGRAMS
  1491. GRAMS
  1492. POUNDS
  1493. OUNCES
  1494. }
  1495. directive @inContext(
  1496. language: LanguageCode,
  1497. country: CountryCode
  1498. ) on QUERY | MUTATION | OBJECT