| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622 | 
							- schema
 
-   @link(url: "https://specs.apollo.dev/link/v1.0")
 
-   @link(url: "https://specs.apollo.dev/join/v0.2", for: EXECUTION)
 
- {
 
-   query: Query
 
-   mutation: Mutation
 
- }
 
- 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
 
- directive @join__graph(name: String!, url: String!) on ENUM_VALUE
 
- directive @join__implements(graph: join__Graph!, interface: String!) repeatable on OBJECT | INTERFACE
 
- directive @join__type(graph: join__Graph!, key: join__FieldSet, extension: Boolean! = false, resolvable: Boolean! = true) repeatable on OBJECT | INTERFACE | UNION | ENUM | INPUT_OBJECT | SCALAR
 
- directive @link(url: String, as: String, for: link__Purpose, import: [link__Import]) repeatable on SCHEMA
 
- type Collection implements HasMetafields & Node & OnlineStorePublishable
 
-   @join__implements(graph: PRODUCT, interface: "HasMetafields")
 
-   @join__implements(graph: PRODUCT, interface: "Node")
 
-   @join__implements(graph: PRODUCT, interface: "OnlineStorePublishable")
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   description(truncateAt: Int): String!
 
-   descriptionHtml: HTML!
 
-   handle: String!
 
-   id: ID!
 
-   image: Image
 
-   metafield(key: String!, namespace: String!): Metafield
 
-   metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]!
 
-   onlineStoreUrl: URL
 
-   products(after: String, before: String, filters: [ProductFilter!], first: Int, last: Int, reverse: Boolean = false, sortKey: ProductCollectionSortKeys = COLLECTION_DEFAULT): ProductConnection!
 
-   seo: SEO!
 
-   title: String!
 
-   updatedAt: DateTime!
 
- }
 
- type CollectionConnection
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   edges: [CollectionEdge!]!
 
-   nodes: [Collection!]!
 
-   pageInfo: PageInfo!
 
- }
 
- type CollectionEdge
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   cursor: String!
 
-   node: Collection!
 
- }
 
- enum CollectionSortKeys
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   ID
 
-   RELEVANCE
 
-   TITLE
 
-   UPDATED_AT
 
- }
 
- enum CollectionSortOrder
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   ALPHA_ASC
 
-   ALPHA_DESC
 
-   BEST_SELLING
 
-   CREATED
 
-   CREATED_DESC
 
-   MANUAL
 
-   PRICE_ASC
 
-   PRICE_DESC
 
- }
 
- enum CountryCode
 
-   @join__type(graph: CUSTOMER)
 
-   @join__type(graph: PRODUCT)
 
-   @join__type(graph: SHOP)
 
- {
 
-   AF
 
-   AX
 
-   AL
 
-   DZ
 
-   AD
 
-   AO
 
-   AI
 
-   AG
 
-   AR
 
-   AM
 
-   AW
 
-   AC
 
-   AU
 
-   AT
 
-   AZ
 
-   BS
 
-   BH
 
-   BD
 
-   BB
 
-   BY
 
-   BE
 
-   BZ
 
-   BJ
 
-   BM
 
-   BT
 
-   BO
 
-   BA
 
-   BW
 
-   BV
 
-   BR
 
-   IO
 
-   BN
 
-   BG
 
-   BF
 
-   BI
 
-   KH
 
-   CA
 
-   CV
 
-   BQ
 
-   KY
 
-   CF
 
-   TD
 
-   CL
 
-   CN
 
-   CX
 
-   CC
 
-   CO
 
-   KM
 
-   CG
 
-   CD
 
-   CK
 
-   CR
 
-   HR
 
-   CU
 
-   CW
 
-   CY
 
-   CZ
 
-   CI
 
-   DK
 
-   DJ
 
-   DM
 
-   DO
 
-   EC
 
-   EG
 
-   SV
 
-   GQ
 
-   ER
 
-   EE
 
-   SZ
 
-   ET
 
-   FK
 
-   FO
 
-   FJ
 
-   FI
 
-   FR
 
-   GF
 
-   PF
 
-   TF
 
-   GA
 
-   GM
 
-   GE
 
-   DE
 
-   GH
 
-   GI
 
-   GR
 
-   GL
 
-   GD
 
-   GP
 
-   GT
 
-   GG
 
-   GN
 
-   GW
 
-   GY
 
-   HT
 
-   HM
 
-   VA
 
-   HN
 
-   HK
 
-   HU
 
-   IS
 
-   IN
 
-   ID
 
-   IR
 
-   IQ
 
-   IE
 
-   IM
 
-   IL
 
-   IT
 
-   JM
 
-   JP
 
-   JE
 
-   JO
 
-   KZ
 
-   KE
 
-   KI
 
-   KP
 
-   XK
 
-   KW
 
-   KG
 
-   LA
 
-   LV
 
-   LB
 
-   LS
 
-   LR
 
-   LY
 
-   LI
 
-   LT
 
-   LU
 
-   MO
 
-   MG
 
-   MW
 
-   MY
 
-   MV
 
-   ML
 
-   MT
 
-   MQ
 
-   MR
 
-   MU
 
-   YT
 
-   MX
 
-   MD
 
-   MC
 
-   MN
 
-   ME
 
-   MS
 
-   MA
 
-   MZ
 
-   MM
 
-   NA
 
-   NR
 
-   NP
 
-   NL
 
-   AN
 
-   NC
 
-   NZ
 
-   NI
 
-   NE
 
-   NG
 
-   NU
 
-   NF
 
-   MK
 
-   NO
 
-   OM
 
-   PK
 
-   PS
 
-   PA
 
-   PG
 
-   PY
 
-   PE
 
-   PH
 
-   PN
 
-   PL
 
-   PT
 
-   QA
 
-   CM
 
-   RE
 
-   RO
 
-   RU
 
-   RW
 
-   BL
 
-   SH
 
-   KN
 
-   LC
 
-   MF
 
-   PM
 
-   WS
 
-   SM
 
-   ST
 
-   SA
 
-   SN
 
-   RS
 
-   SC
 
-   SL
 
-   SG
 
-   SX
 
-   SK
 
-   SI
 
-   SB
 
-   SO
 
-   ZA
 
-   GS
 
-   KR
 
-   SS
 
-   ES
 
-   LK
 
-   VC
 
-   SD
 
-   SR
 
-   SJ
 
-   SE
 
-   CH
 
-   SY
 
-   TW
 
-   TJ
 
-   TZ
 
-   TH
 
-   TL
 
-   TG
 
-   TK
 
-   TO
 
-   TT
 
-   TA
 
-   TN
 
-   TR
 
-   TM
 
-   TC
 
-   TV
 
-   UG
 
-   UA
 
-   AE
 
-   GB
 
-   US
 
-   UM
 
-   UY
 
-   UZ
 
-   VU
 
-   VE
 
-   VN
 
-   VG
 
-   WF
 
-   EH
 
-   YE
 
-   ZM
 
-   ZW
 
-   ZZ
 
- }
 
- enum CropRegion
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   CENTER
 
-   TOP
 
-   BOTTOM
 
-   LEFT
 
-   RIGHT
 
- }
 
- enum CurrencyCode
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   AED
 
-   AFN
 
-   ALL
 
-   AMD
 
-   ANG
 
-   AOA
 
-   ARS
 
-   AUD
 
-   AWG
 
-   AZN
 
-   BAM
 
-   BBD
 
-   BDT
 
-   BGN
 
-   BHD
 
-   BIF
 
-   BMD
 
-   BND
 
-   BOB
 
-   BRL
 
-   BSD
 
-   BTN
 
-   BWP
 
-   BYN
 
-   BZD
 
-   CAD
 
-   CDF
 
-   CHF
 
-   CLP
 
-   CNY
 
-   COP
 
-   CRC
 
-   CVE
 
-   CZK
 
-   DJF
 
-   DKK
 
-   DOP
 
-   DZD
 
-   EGP
 
-   ERN
 
-   ETB
 
-   EUR
 
-   FJD
 
-   FKP
 
-   GBP
 
-   GEL
 
-   GHS
 
-   GIP
 
-   GMD
 
-   GNF
 
-   GTQ
 
-   GYD
 
-   HKD
 
-   HNL
 
-   HRK
 
-   HTG
 
-   HUF
 
-   IDR
 
-   ILS
 
-   INR
 
-   IQD
 
-   IRR
 
-   ISK
 
-   JEP
 
-   JMD
 
-   JOD
 
-   JPY
 
-   KES
 
-   KGS
 
-   KHR
 
-   KID
 
-   KMF
 
-   KRW
 
-   KWD
 
-   KYD
 
-   KZT
 
-   LAK
 
-   LBP
 
-   LKR
 
-   LRD
 
-   LSL
 
-   LTL
 
-   LVL
 
-   LYD
 
-   MAD
 
-   MDL
 
-   MGA
 
-   MKD
 
-   MMK
 
-   MNT
 
-   MOP
 
-   MRU
 
-   MUR
 
-   MVR
 
-   MWK
 
-   MXN
 
-   MYR
 
-   MZN
 
-   NAD
 
-   NGN
 
-   NIO
 
-   NOK
 
-   NPR
 
-   NZD
 
-   OMR
 
-   PAB
 
-   PEN
 
-   PGK
 
-   PHP
 
-   PKR
 
-   PLN
 
-   PYG
 
-   QAR
 
-   RON
 
-   RSD
 
-   RUB
 
-   RWF
 
-   SAR
 
-   SBD
 
-   SCR
 
-   SDG
 
-   SEK
 
-   SGD
 
-   SHP
 
-   SLL
 
-   SOS
 
-   SRD
 
-   SSP
 
-   STN
 
-   SYP
 
-   SZL
 
-   THB
 
-   TJS
 
-   TMT
 
-   TND
 
-   TOP
 
-   TRY
 
-   TTD
 
-   TWD
 
-   TZS
 
-   UAH
 
-   UGX
 
-   USD
 
-   UYU
 
-   UZS
 
-   VED
 
-   VES
 
-   VND
 
-   VUV
 
-   WST
 
-   XAF
 
-   XCD
 
-   XOF
 
-   XPF
 
-   XXX
 
-   YER
 
-   ZAR
 
-   ZMW
 
-   BYR @deprecated
 
- }
 
- type Customer implements HasMetafields
 
-   @join__implements(graph: CUSTOMER, interface: "HasMetafields")
 
-   @join__type(graph: CUSTOMER)
 
- {
 
-   acceptsMarketing: Boolean!
 
-   addresses(after: String, before: String, first: Int, last: Int, reverse: Boolean = false): MailingAddressConnection!
 
-   createdAt: DateTime!
 
-   defaultAddress: MailingAddress
 
-   displayName: String!
 
-   email: String
 
-   firstName: String
 
-   id: ID!
 
-   lastName: String
 
-   metafield(key: String!, namespace: String!): Metafield
 
-   metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]!
 
-   numberOfOrders: UnsignedInt64!
 
-   phone: String
 
-   tags: [String!]!
 
-   updatedAt: DateTime!
 
- }
 
- type CustomerAccessToken
 
-   @join__type(graph: CUSTOMER)
 
- {
 
-   accessToken: String!
 
-   expiresAt: DateTime!
 
- }
 
- input CustomerAccessTokenCreateInput
 
-   @join__type(graph: CUSTOMER)
 
- {
 
-   email: String!
 
-   password: String!
 
- }
 
- type CustomerAccessTokenCreatePayload
 
-   @join__type(graph: CUSTOMER)
 
- {
 
-   customerAccessToken: CustomerAccessToken
 
-   customerUserErrors: [CustomerUserError!]!
 
- }
 
- type CustomerAccessTokenDeletePayload
 
-   @join__type(graph: CUSTOMER)
 
- {
 
-   deletedAccessToken: String
 
-   deletedCustomerAccessTokenId: String
 
-   userErrors: [UserError!]!
 
- }
 
- type CustomerAccessTokenRenewPayload
 
-   @join__type(graph: CUSTOMER)
 
- {
 
-   customerAccessToken: CustomerAccessToken
 
-   userErrors: [UserError!]!
 
- }
 
- input CustomerCreateInput
 
-   @join__type(graph: CUSTOMER)
 
- {
 
-   firstName: String
 
-   lastName: String
 
-   email: String!
 
-   phone: String
 
-   password: String!
 
-   acceptsMarketing: Boolean
 
- }
 
- type CustomerCreatePayload
 
-   @join__type(graph: CUSTOMER)
 
- {
 
-   customer: Customer
 
-   customerUserErrors: [CustomerUserError!]!
 
- }
 
- enum CustomerErrorCode
 
-   @join__type(graph: CUSTOMER)
 
- {
 
-   BLANK
 
-   INVALID
 
-   TAKEN
 
-   TOO_LONG
 
-   TOO_SHORT
 
-   UNIDENTIFIED_CUSTOMER
 
-   CUSTOMER_DISABLED
 
-   PASSWORD_STARTS_OR_ENDS_WITH_WHITESPACE
 
-   CONTAINS_HTML_TAGS
 
-   CONTAINS_URL
 
-   TOKEN_INVALID
 
-   ALREADY_ENABLED
 
-   NOT_FOUND
 
-   BAD_DOMAIN
 
-   INVALID_MULTIPASS_REQUEST
 
- }
 
- input CustomerUpdateInput
 
-   @join__type(graph: CUSTOMER)
 
- {
 
-   firstName: String
 
-   lastName: String
 
-   email: String
 
-   phone: String
 
-   password: String
 
-   acceptsMarketing: Boolean
 
- }
 
- type CustomerUpdatePayload
 
-   @join__type(graph: CUSTOMER)
 
- {
 
-   customer: Customer
 
-   customerAccessToken: CustomerAccessToken
 
-   customerUserErrors: [CustomerUserError!]!
 
- }
 
- type CustomerUserError implements DisplayableError
 
-   @join__implements(graph: CUSTOMER, interface: "DisplayableError")
 
-   @join__type(graph: CUSTOMER)
 
- {
 
-   code: CustomerErrorCode
 
-   field: [String!]
 
-   message: String!
 
- }
 
- scalar DateTime
 
-   @join__type(graph: CUSTOMER)
 
-   @join__type(graph: PRODUCT)
 
- scalar Decimal
 
-   @join__type(graph: PRODUCT)
 
- interface DisplayableError
 
-   @join__type(graph: CUSTOMER)
 
- {
 
-   field: [String!]
 
-   message: String!
 
- }
 
- type Filter
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   id: String!
 
-   label: String!
 
-   type: FilterType!
 
- }
 
- enum FilterType
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   LIST
 
-   PRICE_RANGE
 
-   BOOLEAN
 
- }
 
- input GeoCoordinateInput
 
-   @join__type(graph: SHOP)
 
- {
 
-   latitude: Float!
 
-   longitude: Float!
 
- }
 
- interface HasMetafields
 
-   @join__type(graph: CUSTOMER)
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   metafield(namespace: String!, key: String!): Metafield
 
-   metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]!
 
- }
 
- input HasMetafieldsIdentifier
 
-   @join__type(graph: CUSTOMER)
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   namespace: String!
 
-   key: String!
 
- }
 
- scalar HTML
 
-   @join__type(graph: CUSTOMER)
 
-   @join__type(graph: PRODUCT)
 
- type Image
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   altText: String
 
-   height: Int
 
-   id: ID
 
-   url(transform: ImageTransformInput): URL!
 
-   width: Int
 
-   originalSrc: URL! @deprecated
 
-   src: URL! @deprecated
 
-   transformedSrc: URL! @deprecated
 
- }
 
- type ImageConnection
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   edges: [ImageEdge!]!
 
-   nodes: [Image!]!
 
-   pageInfo: PageInfo!
 
- }
 
- enum ImageContentType
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   PNG
 
-   JPG
 
-   WEBP
 
- }
 
- type ImageEdge
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   cursor: String!
 
-   node: Image!
 
- }
 
- input ImageTransformInput
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   crop: CropRegion
 
-   maxWidth: Int
 
-   maxHeight: Int
 
-   scale: Int = 1
 
-   preferredContentType: ImageContentType
 
- }
 
- scalar join__FieldSet
 
- enum join__Graph {
 
-   CUSTOMER @join__graph(name: "customer", url: "https://customer.api.gshopper.com/")
 
-   PRODUCT @join__graph(name: "product", url: "https://product.api.gshopper.com/")
 
-   SHOP @join__graph(name: "shop", url: "https://shop.api.gshopper.com/")
 
- }
 
- scalar JSON
 
-   @join__type(graph: PRODUCT)
 
- enum LanguageCode
 
-   @join__type(graph: CUSTOMER)
 
-   @join__type(graph: PRODUCT)
 
-   @join__type(graph: SHOP)
 
- {
 
-   AF
 
-   AK
 
-   AM
 
-   AR
 
-   AS
 
-   AZ
 
-   BE
 
-   BG
 
-   BM
 
-   BN
 
-   BO
 
-   BR
 
-   BS
 
-   CA
 
-   CE
 
-   CS
 
-   CU
 
-   CY
 
-   DA
 
-   DE
 
-   DZ
 
-   EE
 
-   EL
 
-   EN
 
-   EO
 
-   ES
 
-   ET
 
-   EU
 
-   FA
 
-   FF
 
-   FI
 
-   FO
 
-   FR
 
-   FY
 
-   GA
 
-   GD
 
-   GL
 
-   GU
 
-   GV
 
-   HA
 
-   HE
 
-   HI
 
-   HR
 
-   HU
 
-   HY
 
-   IA
 
-   ID
 
-   IG
 
-   II
 
-   IS
 
-   IT
 
-   JA
 
-   JV
 
-   KA
 
-   KI
 
-   KK
 
-   KL
 
-   KM
 
-   KN
 
-   KO
 
-   KS
 
-   KU
 
-   KW
 
-   KY
 
-   LB
 
-   LG
 
-   LN
 
-   LO
 
-   LT
 
-   LU
 
-   LV
 
-   MG
 
-   MI
 
-   MK
 
-   ML
 
-   MN
 
-   MR
 
-   MS
 
-   MT
 
-   MY
 
-   NB
 
-   ND
 
-   NE
 
-   NL
 
-   NN
 
-   NO
 
-   OM
 
-   OR
 
-   OS
 
-   PA
 
-   PL
 
-   PS
 
-   PT_BR
 
-   PT_PT
 
-   QU
 
-   RM
 
-   RN
 
-   RO
 
-   RU
 
-   RW
 
-   SD
 
-   SE
 
-   SG
 
-   SI
 
-   SK
 
-   SL
 
-   SN
 
-   SO
 
-   SQ
 
-   SR
 
-   SU
 
-   SV
 
-   SW
 
-   TA
 
-   TE
 
-   TG
 
-   TH
 
-   TI
 
-   TK
 
-   TO
 
-   TR
 
-   TT
 
-   UG
 
-   UK
 
-   UR
 
-   UZ
 
-   VI
 
-   WO
 
-   XH
 
-   YI
 
-   YO
 
-   ZH_CN
 
-   ZH_TW
 
-   ZU
 
-   ZH
 
-   PT
 
-   VO
 
- }
 
- scalar link__Import
 
- enum link__Purpose {
 
-   """
 
-   `SECURITY` features provide metadata necessary to securely resolve fields.
 
-   """
 
-   SECURITY
 
-   """
 
-   `EXECUTION` features provide metadata necessary for operation execution.
 
-   """
 
-   EXECUTION
 
- }
 
- type Location implements Node
 
-   @join__implements(graph: PRODUCT, interface: "Node")
 
-   @join__implements(graph: SHOP, interface: "Node")
 
-   @join__type(graph: PRODUCT)
 
-   @join__type(graph: SHOP, key: "id")
 
- {
 
-   id: ID!
 
-   address: LocationAddress! @join__field(graph: SHOP)
 
-   name: String! @join__field(graph: SHOP)
 
- }
 
- type LocationAddress
 
-   @join__type(graph: PRODUCT)
 
-   @join__type(graph: SHOP)
 
- {
 
-   address1: String
 
-   address2: String
 
-   city: String
 
-   country: String
 
-   countryCode: String
 
-   formatted: [String!]!
 
-   latitude: Float
 
-   longitude: Float
 
-   phone: String
 
-   province: String
 
-   provinceCode: String
 
-   zip: String
 
- }
 
- type LocationConnection
 
-   @join__type(graph: SHOP)
 
- {
 
-   edges: [LocationEdge!]!
 
-   nodes: [Location!]!
 
-   pageInfo: PageInfo!
 
- }
 
- type LocationEdge
 
-   @join__type(graph: SHOP)
 
- {
 
-   cursor: String!
 
-   node: Location!
 
- }
 
- enum LocationSortKeys
 
-   @join__type(graph: SHOP)
 
- {
 
-   ID
 
-   NAME
 
-   CITY
 
-   DISTANCE
 
- }
 
- type MailingAddress implements Node
 
-   @join__implements(graph: CUSTOMER, interface: "Node")
 
-   @join__type(graph: CUSTOMER)
 
- {
 
-   address1: String
 
-   address2: String
 
-   city: String
 
-   company: String
 
-   country: String
 
-   countryCodeV2: CountryCode
 
-   firstName: String
 
-   formatted(withName: Boolean = false, withCompany: Boolean = true): [String!]!
 
-   formattedArea: String
 
-   id: ID!
 
-   lastName: String
 
-   latitude: Float
 
-   longitude: Float
 
-   name: String
 
-   phone: String
 
-   province: String
 
-   provinceCode: String
 
-   zip: String
 
-   countryCode: String @deprecated(reason: "Use `countryCodeV2` instead.")
 
- }
 
- type MailingAddressConnection
 
-   @join__type(graph: CUSTOMER)
 
- {
 
-   edges: [MailingAddressEdge!]!
 
-   nodes: [MailingAddress!]!
 
-   pageInfo: PageInfo!
 
- }
 
- type MailingAddressEdge
 
-   @join__type(graph: CUSTOMER)
 
- {
 
-   cursor: String!
 
-   node: MailingAddress!
 
- }
 
- interface Media
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   alt: String
 
-   mediaContentType: MediaContentType!
 
-   previewImage: Image
 
- }
 
- type MediaConnection
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   edges: [MediaEdge!]!
 
-   nodes: [Media!]!
 
-   pageInfo: PageInfo!
 
- }
 
- enum MediaContentType
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   EXTERNAL_VIDEO
 
-   IMAGE
 
-   MODEL_3D
 
-   VIDEO
 
- }
 
- type MediaEdge
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   cursor: String!
 
-   node: Media!
 
- }
 
- type Metafield implements Node
 
-   @join__implements(graph: CUSTOMER, interface: "Node")
 
-   @join__implements(graph: PRODUCT, interface: "Node")
 
-   @join__type(graph: CUSTOMER)
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   createdAt: DateTime!
 
-   description: String
 
-   id: ID!
 
-   key: String!
 
-   namespace: String!
 
-   parentResource: MetafieldParentResource!
 
-   reference: MetafieldReference
 
-   references(first: Int, after: String, last: Int, before: String): MetafieldReferenceConnection
 
-   type: String!
 
-   updatedAt: DateTime!
 
-   value: String!
 
- }
 
- input MetafieldFilter
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   namespace: String!
 
-   key: String!
 
-   value: String!
 
- }
 
- union MetafieldParentResource
 
-   @join__type(graph: CUSTOMER)
 
-   @join__type(graph: PRODUCT)
 
-  = Customer | Collection | Product | ProductVariant
 
- union MetafieldReference
 
-   @join__type(graph: CUSTOMER)
 
-   @join__type(graph: PRODUCT)
 
-  = Page | Collection | Product | ProductVariant
 
- type MetafieldReferenceConnection
 
-   @join__type(graph: CUSTOMER)
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   edges: [MetafieldReferenceEdge!]!
 
-   nodes: [MetafieldReference!]!
 
-   pageInfo: PageInfo!
 
- }
 
- type MetafieldReferenceEdge
 
-   @join__type(graph: CUSTOMER)
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   cursor: String!
 
-   node: MetafieldReference!
 
- }
 
- type MoneyV2
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   amount: Decimal!
 
-   currencyCode: CurrencyCode!
 
- }
 
- type Mutation
 
-   @inContext
 
-   @join__type(graph: CUSTOMER)
 
- {
 
-   customerAccessTokenCreate(input: CustomerAccessTokenCreateInput!): CustomerAccessTokenCreatePayload
 
-   customerAccessTokenRenew(customerAccessToken: String!): CustomerAccessTokenRenewPayload
 
-   customerAccessTokenDelete(customerAccessToken: String!): CustomerAccessTokenDeletePayload
 
-   customerCreate(input: CustomerCreateInput!): CustomerCreatePayload
 
-   customerUpdate(customerAccessToken: String!, customer: CustomerUpdateInput!): CustomerUpdatePayload
 
- }
 
- interface Node
 
-   @join__type(graph: CUSTOMER)
 
-   @join__type(graph: PRODUCT)
 
-   @join__type(graph: SHOP)
 
- {
 
-   id: ID!
 
- }
 
- interface OnlineStorePublishable
 
-   @join__type(graph: CUSTOMER)
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   onlineStoreUrl: URL
 
- }
 
- type Page implements Node & HasMetafields & OnlineStorePublishable
 
-   @join__implements(graph: CUSTOMER, interface: "Node")
 
-   @join__implements(graph: CUSTOMER, interface: "HasMetafields")
 
-   @join__implements(graph: CUSTOMER, interface: "OnlineStorePublishable")
 
-   @join__type(graph: CUSTOMER)
 
- {
 
-   body: HTML!
 
-   bodySummary: String!
 
-   createdAt: DateTime!
 
-   handle: String!
 
-   id: ID!
 
-   metafield(namespace: String!, key: String!): Metafield
 
-   metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]!
 
-   onlineStoreUrl: URL
 
-   seo: SEO
 
-   title: String!
 
-   updatedAt: DateTime!
 
- }
 
- type PageInfo
 
-   @join__type(graph: CUSTOMER)
 
-   @join__type(graph: PRODUCT)
 
-   @join__type(graph: SHOP)
 
- {
 
-   endCursor: String
 
-   hasNextPage: Boolean!
 
-   hasPreviousPage: Boolean!
 
-   startCursor: String
 
- }
 
- input PriceRangeFilter
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   min: Float = 0
 
-   max: Float
 
- }
 
- type Product implements HasMetafields & Node & OnlineStorePublishable
 
-   @join__implements(graph: PRODUCT, interface: "HasMetafields")
 
-   @join__implements(graph: PRODUCT, interface: "Node")
 
-   @join__implements(graph: PRODUCT, interface: "OnlineStorePublishable")
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   availableForSale: Boolean!
 
-   collections(after: String, before: String, first: Int, last: Int, reverse: Boolean = false): CollectionConnection!
 
-   compareAtPriceRange: ProductPriceRange!
 
-   createdAt: DateTime!
 
-   description(truncateAt: Int): String!
 
-   descriptionHtml: HTML!
 
-   featuredImage: Image
 
-   handle: String!
 
-   id: ID!
 
-   images(after: String, before: String, first: Int, last: Int, reverse: Boolean = false, sortKey: ProductImageSortKeys = POSITION): ImageConnection!
 
-   isGiftCard: Boolean!
 
-   media(after: String, before: String, first: Int, last: Int, reverse: Boolean = false, sortKey: ProductMediaSortKeys = POSITION): MediaConnection!
 
-   metafield(key: String!, namespace: String!): Metafield
 
-   metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]!
 
-   onlineStoreUrl: URL
 
-   options(first: Int): [ProductOption!]!
 
-   priceRange: ProductPriceRange!
 
-   productType: String!
 
-   publishedAt: DateTime!
 
-   requiresSellingPlan: Boolean!
 
-   sellingPlanGroups(first: Int, after: String, last: Int, before: String, reverse: Boolean = false): SellingPlanGroupConnection!
 
-   seo: SEO!
 
-   tags: [String!]!
 
-   title: String!
 
-   totalInventory: Int
 
-   updatedAt: DateTime!
 
-   variantBySelectedOptions(selectedOptions: [SelectedOptionInput!]!): ProductVariant
 
-   variants(first: Int, after: String, last: Int, before: String, reverse: Boolean = false, sortKey: ProductVariantSortKeys = POSITION): ProductVariantConnection!
 
-   vendor: String!
 
- }
 
- enum ProductCollectionSortKeys
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   BEST_SELLING
 
-   COLLECTION_DEFAULT
 
-   CREATED
 
-   ID
 
-   MANUAL
 
-   PRICE
 
-   RELEVANCE
 
-   TITLE
 
- }
 
- type ProductConnection
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   edges: [ProductEdge!]!
 
-   filters: [Filter!]!
 
-   nodes: [Product!]!
 
-   pageInfo: PageInfo!
 
- }
 
- type ProductEdge
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   cursor: String!
 
-   node: Product!
 
- }
 
- input ProductFilter
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   available: Boolean
 
-   variantOption: VariantOptionFilter
 
-   productType: String
 
-   productVendor: String
 
-   price: PriceRangeFilter
 
-   productMetafield: MetafieldFilter
 
-   variantMetafield: MetafieldFilter
 
- }
 
- enum ProductImageSortKeys
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   CREATED_AT
 
-   ID
 
-   POSITION
 
-   RELEVANCE
 
- }
 
- enum ProductMediaSortKeys
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   ID
 
-   POSITION
 
-   RELEVANCE
 
- }
 
- type ProductOption implements Node
 
-   @join__implements(graph: PRODUCT, interface: "Node")
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   id: ID!
 
-   name: String!
 
-   values: [String!]!
 
- }
 
- type ProductPriceRange
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   maxVariantPrice: MoneyV2!
 
-   minVariantPrice: MoneyV2!
 
- }
 
- enum ProductSortKeys
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   TITLE
 
-   PRODUCT_TYPE
 
-   VENDOR
 
-   UPDATED_AT
 
-   CREATED_AT
 
-   BEST_SELLING
 
-   PRICE
 
-   ID
 
-   RELEVANCE
 
- }
 
- type ProductVariant implements Node & HasMetafields
 
-   @join__implements(graph: PRODUCT, interface: "Node")
 
-   @join__implements(graph: PRODUCT, interface: "HasMetafields")
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   availableForSale: Boolean!
 
-   barcode: String
 
-   compareAtPrice: MoneyV2
 
-   currentlyNotInStock: Boolean!
 
-   id: ID!
 
-   image: Image
 
-   metafield(namespace: String!, key: String!): Metafield
 
-   metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]!
 
-   price: MoneyV2!
 
-   product: Product!
 
-   quantityAvailable: Int
 
-   requiresShipping: Boolean!
 
-   selectedOptions: [SelectedOption!]!
 
-   sellingPlanAllocations(first: Int, after: String, last: Int, before: String, reverse: Boolean = false): SellingPlanAllocationConnection!
 
-   sku: String
 
-   storeAvailability(first: Int, after: String, last: Int, before: String, reverse: Boolean = false): StoreAvailabilityConnection!
 
-   title: String!
 
-   unitPrice: MoneyV2
 
-   unitPriceMeasurement: UnitPriceMeasurement
 
-   weight: Float
 
-   weightUnit: WeightUnit!
 
- }
 
- type ProductVariantConnection
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   edges: [ProductVariantEdge!]!
 
-   nodes: [ProductVariant!]!
 
-   pageInfo: PageInfo!
 
- }
 
- type ProductVariantEdge
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   cursor: String!
 
-   node: ProductVariant!
 
- }
 
- enum ProductVariantSortKeys
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   TITLE
 
-   SKU
 
-   POSITION
 
-   ID
 
-   RELEVANCE
 
- }
 
- type Query
 
-   @inContext
 
-   @join__type(graph: CUSTOMER)
 
-   @join__type(graph: PRODUCT)
 
-   @join__type(graph: SHOP)
 
- {
 
-   customer(customerAccessToken: String!): Customer @join__field(graph: CUSTOMER)
 
-   collection(handle: String, id: ID): Collection @join__field(graph: PRODUCT)
 
-   collections(after: String, before: String, first: Int, last: Int, query: String, reverse: Boolean = false, sortKey: CollectionSortKeys = ID): CollectionConnection! @join__field(graph: PRODUCT)
 
-   product(handle: String, id: ID): Product @join__field(graph: PRODUCT)
 
-   products(after: String, before: String, first: Int, last: Int, query: String, reverse: Boolean = false, sortKey: ProductSortKeys = ID): ProductConnection! @join__field(graph: PRODUCT)
 
-   productTags(first: Int!): StringConnection! @join__field(graph: PRODUCT)
 
-   productTypes(first: Int!): StringConnection! @join__field(graph: PRODUCT)
 
-   productRecommendations(productId: ID!): [Product!] @join__field(graph: PRODUCT)
 
-   locations(after: String, before: String, first: Int, last: Int, near: GeoCoordinateInput, reverse: Boolean = false, sortKey: LocationSortKeys = ID): LocationConnection! @join__field(graph: SHOP)
 
- }
 
- type SelectedOption
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   name: String!
 
-   value: String!
 
- }
 
- input SelectedOptionInput
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   name: String!
 
-   value: String!
 
- }
 
- type SellingPlan implements Node
 
-   @join__implements(graph: PRODUCT, interface: "Node")
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   checkoutCharge: SellingPlanCheckoutCharge!
 
-   description: String
 
-   id: ID!
 
-   name: String!
 
-   options: [SellingPlanOption!]!
 
-   priceAdjustments: [SellingPlanPriceAdjustment!]!
 
-   recurringDeliveries: Boolean!
 
- }
 
- type SellingPlanAllocation
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   checkoutChargeAmount: MoneyV2!
 
-   priceAdjustments: [SellingPlanAllocationPriceAdjustment!]!
 
-   remainingBalanceChargeAmount: MoneyV2!
 
-   sellingPlan: SellingPlan!
 
- }
 
- type SellingPlanAllocationConnection
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   edges: [SellingPlanAllocationEdge!]!
 
-   nodes: [SellingPlanAllocation!]!
 
-   pageInfo: PageInfo!
 
- }
 
- type SellingPlanAllocationEdge
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   cursor: String!
 
-   node: SellingPlanAllocation!
 
- }
 
- type SellingPlanAllocationPriceAdjustment
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   compareAtPrice: MoneyV2!
 
-   perDeliveryPrice: MoneyV2!
 
-   price: MoneyV2!
 
-   unitPrice: MoneyV2
 
- }
 
- type SellingPlanCheckoutCharge
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   type: SellingPlanCheckoutChargeType!
 
-   value: SellingPlanCheckoutChargeValue!
 
- }
 
- type SellingPlanCheckoutChargePercentageValue
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   percentage: Float!
 
- }
 
- enum SellingPlanCheckoutChargeType
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   PERCENTAGE
 
-   PRICE
 
- }
 
- union SellingPlanCheckoutChargeValue
 
-   @join__type(graph: PRODUCT)
 
-  = MoneyV2 | SellingPlanCheckoutChargePercentageValue
 
- type SellingPlanConnection
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   edges: [SellingPlanEdge!]!
 
-   nodes: [SellingPlan!]!
 
-   pageInfo: PageInfo!
 
- }
 
- type SellingPlanEdge
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   cursor: String!
 
-   node: SellingPlan!
 
- }
 
- type SellingPlanFixedAmountPriceAdjustment
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   adjustmentAmount: MoneyV2!
 
- }
 
- type SellingPlanFixedPriceAdjustment
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   price: MoneyV2!
 
- }
 
- type SellingPlanGroup
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   appName: String
 
-   name: String!
 
-   options: [SellingPlanGroupOption!]!
 
-   sellingPlans(first: Int, after: String, last: Int, before: String, reverse: Boolean = false): SellingPlanConnection!
 
- }
 
- type SellingPlanGroupConnection
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   edges: [SellingPlanGroupEdge!]!
 
-   nodes: [SellingPlanGroup!]!
 
-   pageInfo: PageInfo!
 
- }
 
- type SellingPlanGroupEdge
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   cursor: String!
 
-   node: SellingPlanGroup!
 
- }
 
- type SellingPlanGroupOption
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   name: String!
 
-   values: [String!]!
 
- }
 
- type SellingPlanOption
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   name: String
 
-   value: String
 
- }
 
- type SellingPlanPercentagePriceAdjustment
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   adjustmentPercentage: Int!
 
- }
 
- type SellingPlanPriceAdjustment
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   adjustmentValue: SellingPlanPriceAdjustmentValue!
 
-   orderCount: Int
 
- }
 
- union SellingPlanPriceAdjustmentValue
 
-   @join__type(graph: PRODUCT)
 
-  = SellingPlanFixedAmountPriceAdjustment | SellingPlanFixedPriceAdjustment | SellingPlanPercentagePriceAdjustment
 
- type SEO
 
-   @join__type(graph: CUSTOMER)
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   description: String
 
-   title: String
 
- }
 
- type StoreAvailability
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   available: Boolean!
 
-   location: Location!
 
-   pickUpTime: String!
 
- }
 
- type StoreAvailabilityConnection
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   edges: [StoreAvailabilityEdge!]!
 
-   nodes: [StoreAvailability!]!
 
-   pageInfo: PageInfo!
 
- }
 
- type StoreAvailabilityEdge
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   cursor: String!
 
-   node: StoreAvailability!
 
- }
 
- type StringConnection
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   edges: [StringEdge!]!
 
-   pageInfo: PageInfo!
 
- }
 
- type StringEdge
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   cursor: String!
 
-   node: String!
 
- }
 
- type UnitPriceMeasurement
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   measuredType: UnitPriceMeasurementMeasuredType
 
-   quantityUnit: UnitPriceMeasurementMeasuredUnit
 
-   quantityValue: Float!
 
-   referenceUnit: UnitPriceMeasurementMeasuredUnit
 
-   referenceValue: Int!
 
- }
 
- enum UnitPriceMeasurementMeasuredType
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   AREA
 
-   LENGTH
 
-   VOLUME
 
-   WEIGHT
 
- }
 
- enum UnitPriceMeasurementMeasuredUnit
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   CL
 
-   CM
 
-   G
 
-   KG
 
-   L
 
-   M
 
-   M2
 
-   M3
 
-   MG
 
-   ML
 
-   MM
 
- }
 
- scalar UnsignedInt64
 
-   @join__type(graph: CUSTOMER)
 
-   @join__type(graph: PRODUCT)
 
- scalar URL
 
-   @join__type(graph: CUSTOMER)
 
-   @join__type(graph: PRODUCT)
 
- type UserError implements DisplayableError
 
-   @join__implements(graph: CUSTOMER, interface: "DisplayableError")
 
-   @join__type(graph: CUSTOMER)
 
- {
 
-   field: [String!]
 
-   message: String!
 
- }
 
- input VariantOptionFilter
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   name: String!
 
-   value: String!
 
- }
 
- enum WeightUnit
 
-   @join__type(graph: PRODUCT)
 
- {
 
-   KILOGRAMS
 
-   GRAMS
 
-   POUNDS
 
-   OUNCES
 
- }
 
- directive @inContext(
 
-     language: LanguageCode,
 
-     country: CountryCode
 
- ) on QUERY | MUTATION | OBJECT
 
 
  |