| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969 | directive @goTag(    key: String!    value: String) on INPUT_FIELD_DEFINITION | FIELD_DEFINITIONdirective @goField(    forceResolver: Boolean,    name: String) on INPUT_FIELD_DEFINITION | FIELD_DEFINITIONscalar DateTimescalar UnsignedInt64scalar HTML# A JSON object.scalar JSON# A signed decimal number, which supports arbitrary precision and is serialized as a string.scalar Decimal# Represents an RFC 3986 and# RFC 3987-compliant URI string.## For example, 'https://johns-apparel.myshopify.com' is a valid URL. It includes a scheme (https) and a host# (johns-apparel.myshopify.com).scalar URLunion MetafieldParentResource = Collection | Product | ProductVariantunion MetafieldReference = Collection | Product | ProductVariantunion SellingPlanCheckoutChargeValue = MoneyV2 | SellingPlanCheckoutChargePercentageValue# Represents by how much the price of a variant associated with a selling plan is adjusted. Each variant can have up to two price adjustments.union SellingPlanPriceAdjustmentValue = SellingPlanFixedAmountPriceAdjustment | SellingPlanFixedPriceAdjustment | SellingPlanPercentagePriceAdjustmenttype Query {    collection(handle: String id: ID): Collection    collections(        after: String,        before: String,        first: Int,        last: Int,        query: String,        reverse: Boolean = false,        sortKey: CollectionSortKeys = ID    ): CollectionConnection!    product(handle: String id: ID): Product    products(        after: String        before: String        first: Int        last: Int        query: String        reverse: Boolean = false        sortKey: ProductSortKeys = ID    ): ProductConnection!    # Tags added to products.    # Additional access scope required: unauthenticated_read_product_tags.    productTags(first: Int!): StringConnection!    # List of product types for the shop's products that are published to your app.    productTypes(first: Int!): StringConnection!    # Find recommended products related to a given `product_id`.    productRecommendations(productId: ID!): [Product!]}type StringConnection {    # A list of edges.    edges: [StringEdge!]!    # Information to aid in pagination.    pageInfo: PageInfo!}type StringEdge {    # A cursor for use in pagination.    cursor: String!    # The item at the end of StringEdge.    node: String!}# An auto-generated type for paginating through multiple Collections.type CollectionConnection {    # A list of edges.    edges: [CollectionEdge!]!    # A list of the nodes contained in CollectionEdge.    nodes: [Collection!]!    # Information to aid in pagination.    pageInfo: PageInfo!}type CollectionEdge {    # A cursor for use in pagination.    cursor: String!    # The item at the end of CollectionEdge.    node: Collection!}# A collection represents a grouping of products that a shop owner can create to organize them or make their shops easier to browse.type Collection implements HasMetafields&Node&OnlineStorePublishable {    # Stripped description of the collection, single line with HTML tags removed.    description(truncateAt: Int): String! @goField(forceResolver: true)    # The description of the collection, complete with HTML formatting.    descriptionHtml: HTML!    # A human-friendly unique string for the collection automatically generated from its title. Limit of 255 characters.    handle: String!    # A globally-unique identifier.    id: ID!    # Image associated with the collection.    image: Image    # Returns a metafield found by namespace and key.    metafield(key: String! namespace: String!): Metafield    # The metafields associated with the resource matching the supplied list of namespaces and keys.    metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]!    # The URL used for viewing the resource on the shop's Online Store. Returns null if the resource is currently not published to the Online Store sales channel.    onlineStoreUrl: URL    # List of products in the collection.    products(        after: String        before: String        filters: [ProductFilter!]        first: Int        last: Int        reverse: Boolean = false        sortKey: ProductCollectionSortKeys = COLLECTION_DEFAULT    ): ProductConnection! @goField(forceResolver: true)    # The collection's SEO information.    seo: SEO!    # The collection’s name. Limit of 255 characters.    title: String!    # The date and time when the collection was last modified.    updatedAt: DateTime!}# An object with an ID field to support global identification, in accordance with the# Relay specification.# This interface is used by the node# and nodes queries.interface Node {    # A globally-unique identifier.    id: ID!}# Represents information about the metafields associated to the specified resource.interface HasMetafields {    # Returns a metafield found by namespace and key.    metafield(namespace: String!key: String!): Metafield    # The metafields associated with the resource matching the supplied list of namespaces and keys.    metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]!}# Represents a resource that can be published to the Online Store sales channel.interface OnlineStorePublishable {    # The URL used for viewing the resource on the shop's Online Store. Returns `null` if the resource is currently not published to the Online Store sales channel.    onlineStoreUrl: URL}# Represents a media interface.interface Media {    # A word or phrase to share the nature or contents of a media.    alt: String    # The media content type.    mediaContentType: MediaContentType!    # The preview image for the media.    previewImage: Image}type ProductConnection {    # A list of edges.    edges: [ProductEdge!]!    # A list of available filters.    filters: [Filter!]!    # A list of the nodes contained in ProductEdge.    nodes: [Product!]!    # Information to aid in pagination.    pageInfo: PageInfo!}type ProductEdge {    # A cursor for use in pagination.    cursor: String!    # The item at the end of ProductEdge.    node: Product!}# A product represents an individual item for sale in a Shopify store. Products are often physical, but they don't have to be.# For example, a digital download (such as a movie, music or ebook file) also qualifies as a product, as do services (such as equipment rental, work for hire, customization of another product or an extended warranty).type Product implements HasMetafields&Node&OnlineStorePublishable {    # Indicates if at least one product variant is available for sale.    availableForSale: Boolean!    # List of collections a product belongs to.    collections(        after: String        before: String        first: Int        last: Int        reverse: Boolean = false    ): CollectionConnection! @goField(forceResolver: true)    # The compare at price of the product across all variants.    compareAtPriceRange: ProductPriceRange!    # The date and time when the product was created.    createdAt: DateTime!    # Stripped description of the product, single line with HTML tags removed.    description(truncateAt: Int): String! @goField(forceResolver: true)    # The description of the product, complete with HTML formatting.    descriptionHtml: HTML!    # The featured image for the product. This field is functionally equivalent to images(first: 1).    featuredImage: Image    # A human-friendly unique string for the Product automatically generated from its title. They are used by the Liquid templating language to refer to objects.    handle: String!    # A globally-unique identifier.    id: ID!    # List of images associated with the product.    images(        after: String        before: String        first: Int        last: Int        reverse: Boolean = false        sortKey: ProductImageSortKeys = POSITION    ): ImageConnection!    # Whether the product is a gift card.    isGiftCard: Boolean!    # The media associated with the product.    media(        after: String        before: String        first: Int        last: Int        reverse: Boolean = false        sortKey: ProductMediaSortKeys = POSITION    ): MediaConnection!    # Returns a metafield found by namespace and key.    metafield(key: String!namespace: String!): Metafield    # The metafields associated with the resource matching the supplied list of namespaces and keys.    metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]!    # The URL used for viewing the resource on the shop's Online Store. Returns `null` if the resource is currently not published to the Online Store sales channel.    onlineStoreUrl: URL    # List of product options.    options(first: Int): [ProductOption!]! @goField(forceResolver: true)    # The price range.    priceRange: ProductPriceRange!    # A categorization that a product can be tagged with, commonly used for filtering and searching.    productType: String!    # The date and time when the product was published to the channel.    publishedAt: DateTime!    # Whether the product can only be purchased with a selling plan.    requiresSellingPlan: Boolean!    # A list of a product's available selling plan groups. A selling plan group represents a selling method. For example, 'Subscribe and save' is a selling method where customers pay for goods or services per delivery. A selling plan group contains individual selling plans.    sellingPlanGroups(        first: Int        after: String        last: Int        before: String        reverse: Boolean = false    ): SellingPlanGroupConnection!    # The product's SEO information.    seo: SEO!    # A comma separated list of tags that have been added to the product. Additional access scope required for private apps: unauthenticated_read_product_tags.    tags: [String!]!    # The product’s title.    title: String!    # The total quantity of inventory in stock for this Product.    totalInventory: Int    # The date and time when the product was last modified.    # A product's `updatedAt` value can change for different reasons. For example, if an order    # is placed for a product that has inventory tracking set up, then the inventory adjustment    # is counted as an update.    updatedAt: DateTime!    # Find a product’s variant based on its selected options.    # This is useful for converting a user’s selection of product options into a single matching variant.    # If there is not a variant for the selected options, `null` will be returned.    variantBySelectedOptions(selectedOptions: [SelectedOptionInput!]!): ProductVariant @goField(forceResolver: true)    # List of the product’s variants.    variants(        first: Int        after: String        last: Int        before: String        reverse: Boolean = false        sortKey: ProductVariantSortKeys = POSITION    ): ProductVariantConnection! @goField(forceResolver: true)    # The product’s vendor name.    vendor: String!}# The price range of the product.type ProductPriceRange {    # The highest variant's price.    maxVariantPrice: MoneyV2!    # The lowest variant's price.    minVariantPrice: MoneyV2!}# Product property names like 'Size', 'Color', and 'Material' that the customers can select.# Variants are selected based on permutations of these options.# 255 characters limit each.type ProductOption implements Node {    # A globally-unique identifier.    id: ID!    # The product option’s name.    name: String!    # The corresponding value to the product option name.    values: [String!]!}# A monetary value with currency.type MoneyV2 {    # Decimal money amount.    amount: Decimal!    # Currency of the money.    currencyCode: CurrencyCode!}# A filter that is supported on the parent field.type Filter {    # A unique identifier.    id: String!    # A human-friendly string for this filter.    label: String!    # An enumeration that denotes the type of data this filter represents.    type: FilterType!}# SEO information.type SEO {    # The meta description.    description: String    # The SEO title.    title: String}# An auto-generated type for paginating through multiple Media.type MediaConnection {    # A list of edges.    edges: [MediaEdge!]!    # A list of the nodes contained in MediaEdge.    nodes: [Media!]!    # Information to aid in pagination.    pageInfo: PageInfo!}# An auto-generated type which holds one Media and a cursor during pagination.type MediaEdge {    # A cursor for use in pagination.    cursor: String!    # The item at the end of MediaEdge.    node: Media!}# Represents an image resource.type Image {    # A word or phrase to share the nature or contents of an image.    altText: String    # The original height of the image in pixels. Returns `null` if the image is not hosted by Shopify.    height: Int    # A unique identifier for the image.    id: ID    # The location of the image as a URL.    # If no transform options are specified, then the original image will be preserved including any pre-applied transforms.    # All transformation options are considered 'best-effort'. Any transformation that the original image type doesn't support will be ignored.    # If you need multiple variations of the same image, then you can use GraphQL aliases.    url(transform: ImageTransformInput): URL!    # The original width of the image in pixels. Returns null if the image is not hosted by Shopify.    width: Int    # The location of the original image as a URL.    #    # If there are any existing transformations in the original source URL, they will remain and not be stripped. Use url instead.    originalSrc: URL! @deprecated    # The location of the image as a URL. Use url instead.    src: URL! @deprecated    # The location of the transformed image as a URL.    # All transformation arguments are considered 'best-effort'. If they can be applied to an image, they will be. Otherwise any transformations which an image type does not support will be ignored. Use `url(transform:)` instead    transformedSrc: URL! @deprecated}# An auto-generated type for paginating through multiple Images.type ImageConnection {    # A list of edges.    edges: [ImageEdge!]!    # A list of the nodes contained in ImageEdge.    nodes: [Image!]!    # Information to aid in pagination.    pageInfo: PageInfo!}# An auto-generated type which holds one Image and a cursor during pagination.type ImageEdge {    # A cursor for use in pagination.    cursor: String!    # The item at the end of ImageEdge.    node: Image!}# An auto-generated type for paginating through multiple SellingPlanGroups.type SellingPlanGroupConnection {    # A list of edges.    edges: [SellingPlanGroupEdge!]!    # A list of the nodes contained in SellingPlanGroupEdge.    nodes: [SellingPlanGroup!]!    # Information to aid in pagination.    pageInfo: PageInfo!}# An auto-generated type which holds one SellingPlanGroup and a cursor during pagination.type SellingPlanGroupEdge {    # A cursor for use in pagination.    cursor: String!    # The item at the end of SellingPlanGroupEdge.    node: SellingPlanGroup!}# Represents a selling method. For example, 'Subscribe and save' is a selling method where customers pay for goods or services per delivery. A selling plan group contains individual selling plans.type SellingPlanGroup {    # A display friendly name for the app that created the selling plan group.    appName: String    # The name of the selling plan group.    name: String!    # Represents the selling plan options available in the drop-down list in the storefront. For example, 'Delivery every week' or 'Delivery every 2 weeks' specifies the delivery frequency options for the product.    options: [SellingPlanGroupOption!]!    # A list of selling plans in a selling plan group. A selling plan is a representation of how products and variants can be sold and purchased. For example, an individual selling plan could be '6 weeks of prepaid granola, delivered weekly'.    sellingPlans(        first: Int        after: String        last: Int        before: String        reverse: Boolean = false    ): SellingPlanConnection!}# Represents an option on a selling plan group that's available in the drop-down list in the storefront.## Individual selling plans contribute their options to the associated selling plan group. For example, a selling plan group might have an option called option1: Delivery every. One selling plan in that group could contribute option1: 2 weeks with the pricing for that option, and another selling plan could contribute option1: 4 weeks, with different pricing.type SellingPlanGroupOption {    # The name of the option. For example, 'Delivery every'.    name: String!    # The values for the options specified by the selling plans in the selling plan group. For example, '1 week', '2 weeks', '3 weeks'.    values: [String!]!}# An auto-generated type for paginating through multiple SellingPlans.type SellingPlanConnection {    # A list of edges.    edges: [SellingPlanEdge!]!    # A list of the nodes contained in SellingPlanEdge.    nodes: [SellingPlan!]!    # Information to aid in pagination.    pageInfo: PageInfo!}# An auto-generated type which holds one SellingPlan and a cursor during pagination.type SellingPlanEdge {    # A cursor for use in pagination.    cursor: String!    # The item at the end of SellingPlanEdge.    node: SellingPlan!}# Represents how products and variants can be sold and purchased.type SellingPlan implements Node {    # The initial payment due for the purchase.    checkoutCharge: SellingPlanCheckoutCharge!    # The description of the selling plan.    description: String    # A globally-unique identifier.    id: ID!    # The name of the selling plan. For example, '6 weeks of prepaid granola, delivered weekly'.    name: String!    # The selling plan options available in the drop-down list in the storefront. For example, 'Delivery every week' or 'Delivery every 2 weeks' specifies the delivery frequency options for the product. Individual selling plans contribute their options to the associated selling plan group. For example, a selling plan group might have an option called option1: Delivery every. One selling plan in that group could contribute option1: 2 weeks with the pricing for that option, and another selling plan could contribute option1: 4 weeks, with different pricing.    options: [SellingPlanOption!]!    # The price adjustments that a selling plan makes when a variant is purchased with a selling plan.    priceAdjustments: [SellingPlanPriceAdjustment!]!    # Whether purchasing the selling plan will result in multiple deliveries.    recurringDeliveries: Boolean!}# The initial payment due for the purchase.type SellingPlanCheckoutCharge {    # The charge type for the checkout charge.    type: SellingPlanCheckoutChargeType!    # The charge value for the checkout charge.    value: SellingPlanCheckoutChargeValue!}# The percentage value of the price used for checkout charge.type SellingPlanCheckoutChargePercentageValue {    # The percentage value of the price used for checkout charge.    percentage: Float!}# An option provided by a Selling Plan.type SellingPlanOption {    # The name of the option (ie 'Delivery every').    name: String    # The value of the option (ie 'Month').    value: String}# Represents by how much the price of a variant associated with a selling plan is adjusted. Each variant can have up to two price adjustments. If a variant has multiple price adjustments, then the first price adjustment applies when the variant is initially purchased. The second price adjustment applies after a certain number of orders (specified by the `orderCount` field) are made. If a selling plan doesn't have any price adjustments, then the unadjusted price of the variant is the effective price.type SellingPlanPriceAdjustment {    # The type of price adjustment. An adjustment value can have one of three types: percentage, amount off, or a new price.    adjustmentValue: SellingPlanPriceAdjustmentValue!    # The number of orders that the price adjustment applies to. If the price adjustment always applies, then this field is `null`.    orderCount: Int}# A fixed amount that's deducted from the original variant price. For example, $10.00 off.type SellingPlanFixedAmountPriceAdjustment {    # The money value of the price adjustment.    adjustmentAmount: MoneyV2!}# A fixed price adjustment for a variant that's purchased with a selling plan.type SellingPlanFixedPriceAdjustment {    # A new price of the variant when it's purchased with the selling plan.    price: MoneyV2!}# A percentage amount that's deducted from the original variant price. For example, 10% off.type SellingPlanPercentagePriceAdjustment {    # The percentage value of the price adjustment.    adjustmentPercentage: Int!}# A product variant represents a different version of a product, such as differing sizes or differing colors.type ProductVariant implements Node&HasMetafields {    # Indicates if the product variant is available for sale.    availableForSale: Boolean!    # The barcode (for example, ISBN, UPC, or GTIN) associated with the variant.    barcode: String    # The compare at price of the variant. This can be used to mark a variant as on sale, when `compareAtPrice` is higher than `price`.    compareAtPrice: MoneyV2    # Whether a product is out of stock but still available for purchase (used for backorders).    currentlyNotInStock: Boolean!    # A globally-unique identifier.    id: ID!    # Image associated with the product variant. This field falls back to the product image if no image is available.    image: Image    # Returns a metafield found by namespace and key.    metafield(namespace: String!key: String!): Metafield    # The metafields associated with the resource matching the supplied list of namespaces and keys.    metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]!    # The product variant’s price.    price: MoneyV2!    # The product object that the product variant belongs to.    product: Product! @goField(forceResolver: true)    # The total sellable quantity of the variant for online sales channels.    quantityAvailable: Int    # Whether a customer needs to provide a shipping address when placing an order for the product variant.    requiresShipping: Boolean!    # List of product options applied to the variant.    selectedOptions: [SelectedOption!]! @goField(forceResolver: true)    # Represents an association between a variant and a selling plan. Selling plan allocations describe which selling plans are available for each variant, and what their impact is on pricing.    sellingPlanAllocations(        first: Int        after: String        last: Int        before: String        reverse: Boolean = false    ): SellingPlanAllocationConnection!    # The SKU (stock keeping unit) associated with the variant.    sku: String    # The in-store pickup availability of this variant by location.    storeAvailability(        first: Int        after: String        last: Int        before: String        reverse: Boolean = false    ): StoreAvailabilityConnection! @goField(forceResolver: true)    # The product variant’s title.    title: String! @goField(forceResolver: true)    # The unit price value for the variant based on the variant's measurement.    unitPrice: MoneyV2    # The unit price measurement for the variant.    unitPriceMeasurement: UnitPriceMeasurement    # The weight of the product variant in the unit system specified with `weight_unit`.    weight: Float    # Unit of measurement for weight.    weightUnit: WeightUnit!}# Properties used by customers to select a product variant.# Products can have multiple options, like different sizes or colors.type SelectedOption {    # The product option’s name.    name: String!    # The product option’s value.    value: String!}# An auto-generated type for paginating through multiple SellingPlanAllocations.type SellingPlanAllocationConnection {    # A list of edges.    edges: [SellingPlanAllocationEdge!]!    # A list of the nodes contained in SellingPlanAllocationEdge.    nodes: [SellingPlanAllocation!]!    # Information to aid in pagination.    pageInfo: PageInfo!}# An auto-generated type which holds one SellingPlanAllocation and a cursor during pagination.type SellingPlanAllocationEdge {    # A cursor for use in pagination.    cursor: String!    # The item at the end of SellingPlanAllocationEdge.    node: SellingPlanAllocation!}# Represents an association between a variant and a selling plan. Selling plan allocations describe the options offered for each variant, and the price of the variant when purchased with a selling plan.type SellingPlanAllocation {    # The checkout charge amount due for the purchase.    checkoutChargeAmount: MoneyV2!    # A list of price adjustments, with a maximum of two. When there are two, the first price adjustment goes into effect at the time of purchase, while the second one starts after a certain number of orders. A price adjustment represents how a selling plan affects pricing when a variant is purchased with a selling plan. Prices display in the customer's currency if the shop is configured for it.    priceAdjustments: [SellingPlanAllocationPriceAdjustment!]!    # The remaining balance charge amount due for the purchase.    remainingBalanceChargeAmount: MoneyV2!    # A representation of how products and variants can be sold and purchased. For example, an individual selling plan could be '6 weeks of prepaid granola, delivered weekly'.    sellingPlan: SellingPlan!}# The resulting prices for variants when they're purchased with a specific selling plan.type SellingPlanAllocationPriceAdjustment {    # The price of the variant when it's purchased without a selling plan for the same number of deliveries. For example, if a customer purchases 6 deliveries of $10.00 granola separately, then the price is 6 x $10.00 = $60.00.    compareAtPrice: MoneyV2!    # The effective price for a single delivery. For example, for a prepaid subscription plan that includes 6 deliveries at the price of $48.00, the per delivery price is $8.00.    perDeliveryPrice: MoneyV2!    # The price of the variant when it's purchased with a selling plan For example, for a prepaid subscription plan that includes 6 deliveries of $10.00 granola, where the customer gets 20% off, the price is 6 x $10.00 x 0.80 = $48.00.    price: MoneyV2!    # The resulting price per unit for the variant associated with the selling plan. If the variant isn't sold by quantity or measurement, then this field returns `null`.    unitPrice: MoneyV2}# An auto-generated type for paginating through multiple StoreAvailabilities.type StoreAvailabilityConnection {    # A list of edges.    edges: [StoreAvailabilityEdge!]!    # A list of the nodes contained in StoreAvailabilityEdge.    nodes: [StoreAvailability!]!    # Information to aid in pagination.    pageInfo: PageInfo!}# An auto-generated type which holds one StoreAvailability and a cursor during pagination.type StoreAvailabilityEdge {    # A cursor for use in pagination.    cursor: String!    # The item at the end of StoreAvailabilityEdge.    node: StoreAvailability!}# The availability of a product variant at a particular location.# Local pick-up must be enabled in the store's shipping settings, otherwise this will return an empty result.type StoreAvailability {    # Whether the product variant is in-stock at this location.    available: Boolean!    # The location where this product variant is stocked at.    location: Location! @provides(fields: "id")    # Returns the estimated amount of time it takes for pickup to be ready (Example: Usually ready in 24 hours).    pickUpTime: String!}# Represents a location where product inventory is held.extend type Location implements Node {    # The address of the location.    address: LocationAddress! @external    # A globally-unique identifier.    id: ID! @external    # The name of the location.    name: String! @external}# Represents the address of a location.extend type LocationAddress {    # The first line of the address for the location.    address1: String    # The second line of the address for the location.    address2: String    # The city of the location.    city: String    # The country of the location.    country: String    # The country code of the location.    countryCode: String    # A formatted version of the address for the location.    formatted: [String!]!    # The latitude coordinates of the location.    latitude: Float    # The longitude coordinates of the location.    longitude: Float    # The phone number of the location.    phone: String    # The province of the location.    province: String    # The code for the province, state, or district of the address of the location.    provinceCode: String    # The ZIP code of the location.    zip: String}# The measurement used to calculate a unit price for a product variant (e.g. $9.99 / 100ml).type UnitPriceMeasurement {    # The type of unit of measurement for the unit price measurement.    measuredType: UnitPriceMeasurementMeasuredType    # The quantity unit for the unit price measurement.    quantityUnit: UnitPriceMeasurementMeasuredUnit    # The quantity value for the unit price measurement.    quantityValue: Float!    # The reference unit for the unit price measurement.    referenceUnit: UnitPriceMeasurementMeasuredUnit    # The reference value for the unit price measurement.    referenceValue: Int!}# The available options for transforming an image.# All transformation options are considered best effort. Any transformation that the original image type doesn't support will be ignored.input ImageTransformInput {    # The region of the image to remain after cropping.    # Must be used in conjunction with the maxWidth and/or maxHeight fields, where the maxWidth and maxHeight aren't equal.    # The crop argument should coincide with the smaller value. A smaller maxWidth indicates a LEFT or RIGHT crop, while    # a smaller maxHeight indicates a TOP or BOTTOM crop. For example, { maxWidth: 5, maxHeight: 10, crop: LEFT } will result    # in an image with a width of 5 and height of 10, where the right side of the image is removed.    crop: CropRegion    # Image width in pixels between 1 and 5760.    maxWidth: Int    # Image height in pixels between 1 and 5760.    maxHeight: Int    # Image size multiplier for high-resolution retina displays. Must be within 1..3.    scale: Int = 1    # Convert the source image into the preferred content type.    # Supported conversions: .svg to .png, any file type to .jpg, and any file type to .webp.    preferredContentType: ImageContentType}# Identifies a metafield on an owner resource by namespace and key.input HasMetafieldsIdentifier {    # A container for a set of metafields.    namespace: String!    # The identifier for the metafield.    key: String!}input ProductFilter {    # Filter on if the product is available for sale.    available: Boolean    # A variant option to filter on.    variantOption: VariantOptionFilter    # The product type to filter on.    productType: String    # The product vendor to filter on.    productVendor: String    # A range of prices to filter with-in.    price: PriceRangeFilter    # A product metafield to filter on.    productMetafield: MetafieldFilter    # A variant metafield to filter on.    variantMetafield: MetafieldFilter}enum ProductSortKeys {    # Sort by the `title` value.    TITLE    # Sort by the `product_type` value.    PRODUCT_TYPE    # Sort by the `vendor` value.    VENDOR    # Sort by the `updated_at` value.    UPDATED_AT    # Sort by the `created_at` value.    CREATED_AT    # Sort by the `best_selling` value.    BEST_SELLING    # Sort by the price value.    PRICE    # Sort by the id value.    ID    # Sort by relevance to the search terms when the query parameter is specified on the connection.    # Don't use this sort key when no search query is specified.    RELEVANCE}# A filter used to view a subset of products in a collection matching a specific price range.input PriceRangeFilter {    # The minimum price in the range. Defaults to zero.    min: Float = 0    # The maximum price in the range. Empty indicates no max price.    max: Float}input VariantOptionFilter {    # The name of the variant option to filter on.    name: String!    # The value of the variant option to filter on.    value: String!}# Specifies the input fields required for a selected option.input SelectedOptionInput {    # The product option’s name.    name: String!    # The product option’s value.    value: String!}# Metafields represent custom metadata attached to a resource.# Metafields can be sorted into namespaces and are comprised of keys, values, and value types.type Metafield implements Node {    # The date and time when the storefront metafield was created.    createdAt: DateTime!    # The description of a metafield.    description: String    # A globally-unique identifier.    id: ID!    # The key name for a metafield.    key: String!    # The namespace for a metafield.    namespace: String!    # The parent object that the metafield belongs to.    parentResource: MetafieldParentResource!    # Returns a reference object if the metafield definition's type is a resource reference.    reference: MetafieldReference    # A list of reference objects if the metafield's type is a resource reference list.    references(        first: Int        after: String        last: Int        before: String    ): MetafieldReferenceConnection    # The type name of the metafield. See the list of supported types.    type: String!    # The date and time when the storefront metafield was updated.    updatedAt: DateTime!    # The value of a metafield.    value: String!}# An auto-generated type for paginating through multiple MetafieldReferences.type MetafieldReferenceConnection {    # A list of edges.    edges: [MetafieldReferenceEdge!]!    # A list of the nodes contained in MetafieldReferenceEdge.    nodes: [MetafieldReference!]!    # Information to aid in pagination.    pageInfo: PageInfo!}# Returns information about pagination in a connection, in accordance with the Relay specification.type PageInfo {    # The cursor corresponding to the last node in edges.    endCursor: String    # Whether there are more pages to fetch following the current page.    hasNextPage: Boolean!    # Whether there are any pages prior to the current page.    hasPreviousPage: Boolean!    # The cursor corresponding to the first node in edges.    startCursor: String}type MetafieldReferenceEdge {    # A cursor for use in pagination.    cursor: String!    # The item at the end of MetafieldReferenceEdge.    node: MetafieldReference!}# A filter used to view a subset of products in a collection matching a specific metafield value.## Only the following metafield types are currently supported:## number_integer# number_decimal# single_line_text_field# boolean as of 2022-04.input MetafieldFilter {    # The namespace of the metafield to filter on.    namespace: String!    # The key of the metafield to filter on.    key: String!    # The value of the metafield.    value: String!}enum CollectionSortKeys {    # Sort by the `id` value.    ID,    # Sort by relevance to the search terms when the `query` parameter is specified on the connection. Don't use this sort key when no search query is specified.    RELEVANCE,    # Sort by the `title` value.    TITLE,    # Sort by the `updated_at` value.    UPDATED_AT}enum CollectionSortOrder {    # Alphabetically, in ascending order (A - Z).    ALPHA_ASC,    # Alphabetically, in descending order (Z - A).    ALPHA_DESC,    # By best-selling products.    BEST_SELLING,    # By date created, in ascending order (oldest - newest).    CREATED,    # By date created, in descending order (newest - oldest).    CREATED_DESC,    # In the order set manually by the merchant.    MANUAL,    # By price, in ascending order (lowest - highest).    PRICE_ASC,    # By price, in descending order (highest - lowest).    PRICE_DESC}enum ProductCollectionSortKeys {    # Sort by the `best-selling` value.    BEST_SELLING,    # Sort by the `collection-default` value.    COLLECTION_DEFAULT,    # Sort by the `created` value.    CREATED,    # Sort by the `id` value.    ID,    # Sort by the `manual` value.    MANUAL,    # Sort by the `price` value.    PRICE,    # Sort by relevance to the search terms when the `query` parameter is specified on the connection. Don't use this sort key when no search query is specified.    RELEVANCE,    # Sort by the `title` value.    TITLE}# List of supported image content types.enum ImageContentType {    # A PNG image.    PNG    # A JPG image.    JPG    # A WEBP image.    WEBP}# The part of the image that should remain after cropping.enum CropRegion {    # Keep the center of the image.    CENTER    # Keep the top of the image.    TOP    # Keep the bottom of the image.    BOTTOM    # Keep the left of the image.    LEFT    # Keep the right of the image.    RIGHT}# The type of data that the filter group represents.## For more information, refer to [Filter products in a collection with the Storefront API]# (https://shopify.dev/custom-storefronts/products-collections/filter-products).enum FilterType {    # A list of selectable values.    LIST    # A range of prices.    PRICE_RANGE    # A boolean value.    BOOLEAN}# The three-letter currency codes that represent the world currencies used in stores. These include standard ISO 4217 codes, legacy codes, and non-standard codes.enum CurrencyCode {    # United Arab Emirates Dirham (AED).    AED    # Afghan Afghani (AFN).    AFN    # Albanian Lek (ALL).    ALL    # Armenian Dram (AMD).    AMD    # Netherlands Antillean Guilder.    ANG    # Angolan Kwanza (AOA).    AOA    # Argentine Pesos (ARS).    ARS    # Australian Dollars (AUD).    AUD    # Aruban Florin (AWG).    AWG    # Azerbaijani Manat (AZN).    AZN    # Bosnia and Herzegovina Convertible Mark (BAM).    BAM    # Barbadian Dollar (BBD).    BBD    # Bangladesh Taka (BDT).    BDT    # Bulgarian Lev (BGN).    BGN    # Bahraini Dinar (BHD).    BHD    # Burundian Franc (BIF).    BIF    # Bermudian Dollar (BMD).    BMD    # Brunei Dollar (BND).    BND    # Bolivian Boliviano (BOB).    BOB    # Brazilian Real (BRL).    BRL    # Bahamian Dollar (BSD).    BSD    # Bhutanese Ngultrum (BTN).    BTN    # Botswana Pula (BWP).    BWP    # Belarusian Ruble (BYN).    BYN    # Belize Dollar (BZD).    BZD    # Canadian Dollars (CAD).    CAD    # Congolese franc (CDF).    CDF    # Swiss Francs (CHF).    CHF    # Chilean Peso (CLP).    CLP    # Chinese Yuan Renminbi (CNY).    CNY    # Colombian Peso (COP).    COP    # Costa Rican Colones (CRC).    CRC    # Cape Verdean escudo (CVE).    CVE    # Czech Koruny (CZK).    CZK    # Djiboutian Franc (DJF).    DJF    # Danish Kroner (DKK).    DKK    # Dominican Peso (DOP).    DOP    # Algerian Dinar (DZD).    DZD    # Egyptian Pound (EGP).    EGP    # Eritrean Nakfa (ERN).    ERN    # Ethiopian Birr (ETB).    ETB    # Euro (EUR).    EUR    # Fijian Dollars (FJD).    FJD    # Falkland Islands Pounds (FKP).    FKP    # United Kingdom Pounds (GBP).    GBP    # Georgian Lari (GEL).    GEL    # Ghanaian Cedi (GHS).    GHS    # Gibraltar Pounds (GIP).    GIP    # Gambian Dalasi (GMD).    GMD    # Guinean Franc (GNF).    GNF    # Guatemalan Quetzal (GTQ).    GTQ    # Guyanese Dollar (GYD).    GYD    # Hong Kong Dollars (HKD).    HKD    # Honduran Lempira (HNL).    HNL    # Croatian Kuna (HRK).    HRK    # Haitian Gourde (HTG).    HTG    # Hungarian Forint (HUF).    HUF    # Indonesian Rupiah (IDR).    IDR    # Israeli New Shekel (NIS).    ILS    # Indian Rupees (INR).    INR    # Iraqi Dinar (IQD).    IQD    # Iranian Rial (IRR).    IRR    # Icelandic Kronur (ISK).    ISK    # Jersey Pound.    JEP    # Jamaican Dollars (JMD).    JMD    # Jordanian Dinar (JOD).    JOD    # Japanese Yen (JPY).    JPY    # Kenyan Shilling (KES).    KES    # Kyrgyzstani Som (KGS).    KGS    # Cambodian Riel.    KHR    # Kiribati Dollar (KID).    KID    # Comorian Franc (KMF).    KMF    # South Korean Won (KRW).    KRW    # Kuwaiti Dinar (KWD).    KWD    # Cayman Dollars (KYD).    KYD    # Kazakhstani Tenge (KZT).    KZT    # Laotian Kip (LAK).    LAK    # Lebanese Pounds (LBP).    LBP    # Sri Lankan Rupees (LKR).    LKR    # Liberian Dollar (LRD).    LRD    # Lesotho Loti (LSL).    LSL    # Lithuanian Litai (LTL).    LTL    # Latvian Lati (LVL).    LVL    # Libyan Dinar (LYD).    LYD    # Moroccan Dirham.    MAD    # Moldovan Leu (MDL).    MDL    # Malagasy Ariary (MGA).    MGA    # Macedonia Denar (MKD).    MKD    # Burmese Kyat (MMK).    MMK    # Mongolian Tugrik.    MNT    # Macanese Pataca (MOP).    MOP    # Mauritanian Ouguiya (MRU).    MRU    # Mauritian Rupee (MUR).    MUR    # Maldivian Rufiyaa (MVR).    MVR    # Malawian Kwacha (MWK).    MWK    # Mexican Pesos (MXN).    MXN    # Malaysian Ringgits (MYR).    MYR    # Mozambican Metical.    MZN    # Namibian Dollar.    NAD    # Nigerian Naira (NGN).    NGN    # Nicaraguan Córdoba (NIO).    NIO    # Norwegian Kroner (NOK).    NOK    # Nepalese Rupee (NPR).    NPR    # New Zealand Dollars (NZD).    NZD    # Omani Rial (OMR).    OMR    # Panamian Balboa (PAB).    PAB    # Peruvian Nuevo Sol (PEN).    PEN    # Papua New Guinean Kina (PGK).    PGK    # Philippine Peso (PHP).    PHP    # Pakistani Rupee (PKR).    PKR    # Polish Zlotych (PLN).    PLN    # Paraguayan Guarani (PYG).    PYG    # Qatari Rial (QAR).    QAR    # Romanian Lei (RON).    RON    # Serbian dinar (RSD).    RSD    # Russian Rubles (RUB).    RUB    # Rwandan Franc (RWF).    RWF    # Saudi Riyal (SAR).    SAR    # Solomon Islands Dollar (SBD).    SBD    # Seychellois Rupee (SCR).    SCR    # Sudanese Pound (SDG).    SDG    # Swedish Kronor (SEK).    SEK    # Singapore Dollars (SGD).    SGD    # Saint Helena Pounds (SHP).    SHP    # Sierra Leonean Leone (SLL).    SLL    # Somali Shilling (SOS).    SOS    # Surinamese Dollar (SRD).    SRD    # South Sudanese Pound (SSP).    SSP    # Sao Tome And Principe Dobra (STN).    STN    # Syrian Pound (SYP).    SYP    # Swazi Lilangeni (SZL).    SZL    # Thai baht (THB).    THB    # Tajikistani Somoni (TJS).    TJS    # Turkmenistani Manat (TMT).    TMT    # Tunisian Dinar (TND).    TND    # Tongan Pa'anga (TOP).    TOP    # Turkish Lira (TRY).    TRY    # Trinidad and Tobago Dollars (TTD).    TTD    # Taiwan Dollars (TWD).    TWD    # Tanzanian Shilling (TZS).    TZS    # Ukrainian Hryvnia (UAH).    UAH    # Ugandan Shilling (UGX).    UGX    # United States Dollars (USD).    USD    # Uruguayan Pesos (UYU).    UYU    # Uzbekistan som (UZS).    UZS    # Venezuelan Bolivares (VED).    VED    # Venezuelan Bolivares (VES).    VES    # Vietnamese đồng (VND).    VND    # Vanuatu Vatu (VUV).    VUV    # Samoan Tala (WST).    WST    # Central African CFA Franc (XAF).    XAF    # East Caribbean Dollar (XCD).    XCD    # West African CFA franc (XOF).    XOF    # CFP Franc (XPF).    XPF    # Unrecognized currency.    XXX    # Yemeni Rial (YER).    YER    # South African Rand (ZAR).    ZAR    # Zambian Kwacha (ZMW).    ZMW    # Belarusian Ruble (BYR).    BYR @deprecated}type ProductVariantConnection {    # A list of edges.    edges: [ProductVariantEdge!]!    # A list of the nodes contained in ProductVariantEdge.    nodes: [ProductVariant!]!    # Information to aid in pagination.    pageInfo: PageInfo!}type ProductVariantEdge {    # A cursor for use in pagination.    cursor: String!    # The item at the end of ProductVariantEdge.    node: ProductVariant!}# The set of valid sort keys for the ProductVariant query.enum ProductVariantSortKeys {    # Sort by the `title` value.    TITLE    # Sort by the `sku` value.    SKU    # Sort by the `position` value.    POSITION    # Sort by the `id` value.    ID    # Sort by relevance to the search terms when the `query` parameter is specified on the connection.    # Don't use this sort key when no search query is specified.    RELEVANCE}# The set of valid sort keys for the ProductImage query.enum ProductImageSortKeys {    # Sort by the `created_at` value.    CREATED_AT    # Sort by the `id` value.    ID    # Sort by the `position` value.    POSITION    # Sort by relevance to the search terms when the `query` parameter is specified on the connection. Don't use this sort key when no search query is specified.    RELEVANCE}# The set of valid sort keys for the ProductMedia query.enum ProductMediaSortKeys {    # Sort by the `id` value.    ID    # Sort by the `position` value.    POSITION    # Sort by relevance to the search terms when the `query` parameter is specified on the connection. Don't use this sort key when no search query is specified.    RELEVANCE}# The possible content types for a media object.enum MediaContentType {    # An externally hosted video.    EXTERNAL_VIDEO    # A Shopify hosted image.    IMAGE    # A 3d model.    MODEL_3D    # A Shopify hosted video.    VIDEO}# The checkout charge when the full amount isn't charged at checkout.enum SellingPlanCheckoutChargeType {    # The checkout charge is a percentage of the product or variant price.    PERCENTAGE    # The checkout charge is a fixed price amount.    PRICE}# Units of measurement for weight.enum WeightUnit {    # 1 kilogram equals 1000 grams.    KILOGRAMS    # Metric system unit of mass.    GRAMS    # 1 pound equals 16 ounces.    POUNDS    # Imperial system unit of mass.    OUNCES}# The accepted types of unit of measurement.enum UnitPriceMeasurementMeasuredType {    # Unit of measurements representing areas.    AREA    # Unit of measurements representing lengths.    LENGTH    # Unit of measurements representing volumes.    VOLUME    # Unit of measurements representing weights.    WEIGHT}# The valid units of measurement for a unit price measurement.enum UnitPriceMeasurementMeasuredUnit {    # 100 centiliters equals 1 liter.    CL    # 100 centimeters equals 1 meter.    CM    # Metric system unit of weight.    G    # 1 kilogram equals 1000 grams.    KG    # Metric system unit of volume.    L    # Metric system unit of length.    M    # Metric system unit of area.    M2    # 1 cubic meter equals 1000 liters.    M3    # 1000 milligrams equals 1 gram.    MG    # 1000 milliliters equals 1 liter.    ML    # 1000 millimeters equals 1 meter.    MM}# ISO 639-1 language codes supported by Shopify.enum LanguageCode {    # Afrikaans    AF    # Akan    AK    # Amharic    AM    # Arabic    AR    # Assamese    AS    # Azerbaijani    AZ    # Belarusian    BE    # Bulgarian    BG    # Bambara    BM    # Bangla    BN    # Tibetan    BO    # Breton    BR    # Bosnian    BS    # Catalan    CA    # Chechen    CE    # Czech    CS    # Church Slavic    CU    # Welsh    CY    # Danish    DA    # German    DE    # Dzongkha    DZ    # Ewe    EE    # Greek    EL    # English    EN    # Esperanto    EO    # Spanish    ES    # Estonian    ET    # Basque    EU    # Persian    FA    # Fulah    FF    # Finnish    FI    # Faroese    FO    # French    FR    # Western Frisian    FY    # Irish    GA    # Scottish Gaelic    GD    # Galician    GL    # Gujarati    GU    # Manx    GV    # Hausa    HA    # Hebrew    HE    # Hindi    HI    # Croatian    HR    # Hungarian    HU    # Armenian    HY    # Interlingua    IA    # Indonesian    ID    # Igbo    IG    # Sichuan Yi    II    # Icelandic    IS    # Italian    IT    # Japanese    JA    # Javanese    JV    # Georgian.    KA    # Kikuyu.    KI    # Kazakh.    KK    # Kalaallisut.    KL    # Khmer.    KM    # Kannada.    KN    # Korean.    KO    # Kashmiri.    KS    # Kurdish.    KU    # Cornish.    KW    # Kyrgyz.    KY    # Luxembourgish.    LB    # Ganda.    LG    # Lingala.    LN    # Lao.    LO    # Lithuanian.    LT    # Luba-Katanga.    LU    # Latvian.    LV    # Malagasy.    MG    # Māori.    MI    # Macedonian.    MK    # Malayalam.    ML    # Mongolian.    MN    # Marathi.    MR    # Malay.    MS    # Maltese.    MT    # Burmese.    MY    # Norwegian (Bokmål).    NB    # North Ndebele.    ND    # Nepali.    NE    # Dutch.    NL    # Norwegian Nynorsk.    NN    # Norwegian.    NO    # Oromo.    OM    # Odia.    OR    # Ossetic.    OS    # Punjabi.    PA    # Polish.    PL    # Pashto.    PS    # Portuguese (Brazil).    PT_BR    # Portuguese (Portugal).    PT_PT    QU    # Quechua.    # Romansh.    RM    # Rundi.    RN    # Romanian.    RO    # Russian.    RU    # Kinyarwanda.    RW    # Sindhi.    SD    # Northern Sami.    SE    # Sango.    SG    # Sinhala.    SI    # Slovak.    SK    # Slovenian.    SL    # Shona.    SN    # Somali.    SO    # Albanian.    SQ    # Serbian.    SR    # Sundanese.    SU    # Swedish.    SV    # Swahili.    SW    # Tamil.    TA    # Telugu.    TE    # Tajik.    TG    # Thai.    TH    # Tigrinya.    TI    # Turkmen.    TK    # Tongan.    TO    # Turkish.    TR    # Tatar.    TT    # Uyghur.    UG    # Ukrainian.    UK    # Urdu.    UR    # Uzbek.    UZ    # Vietnamese.    VI    # Wolof.    WO    # Xhosa.    XH    # Yiddish.    YI    # Yoruba.    YO    # Chinese (Simplified).    ZH_CN    # Chinese (Traditional).    ZH_TW    # Zulu.    ZU    # Chinese.    ZH    # Portuguese.    PT    # Volapük.    VO}# The code designating a country/region, which generally follows ISO 3166-1 alpha-2 guidelines.# If a territory doesn't have a country code value in the CountryCode enum, then it might be considered a subdivision# of another country. For example, the territories associated with Spain are represented by the country code ES,# and the territories associated with the United States of America are represented by the country code US.enum CountryCode {    # Afghanistan.    AF    # Åland Islands.    AX    # Albania.    AL    # Algeria.    DZ    # Andorra.    AD    # Angola.    AO    # Anguilla.    AI    # Antigua & Barbuda.    AG    # Argentina.    AR    # Armenia.    AM    # Aruba.    AW    # Ascension Island.    AC    # Australia.    AU    # Austria.    AT    # Azerbaijan.    AZ    # Bahamas.    BS    # Bahrain.    BH    # Bangladesh.    BD    # Barbados.    BB    # Belarus.    BY    # Belgium.    BE    # Belize.    BZ    # Benin.    BJ    # Bermuda.    BM    # Bhutan.    BT    # Bolivia.    BO    # Bosnia & Herzegovina.    BA    # Botswana.    BW    # Bouvet Island.    BV    # Brazil.    BR    # British Indian Ocean Territory.    IO    # Brunei.    BN    # Bulgaria.    BG    # Burkina Faso.    BF    # Burundi.    BI    # Cambodia.    KH    # Canada.    CA    # Cape Verde.    CV    # Caribbean Netherlands.    BQ    # Cayman Islands.    KY    # Central African Republic.    CF    # Chad.    TD    # Chile.    CL    # China.    CN    # Christmas Island.    CX    # Cocos (Keeling) Islands.    CC    # Colombia.    CO    # Comoros.    KM    # Congo - Brazzaville.    CG    # Congo - Kinshasa.    CD    # Cook Islands.    CK    # Costa Rica.    CR    # Croatia.    HR    # Cuba.    CU    # Curaçao.    CW    # Cyprus.    CY    # Czechia.    CZ    # Côte d’Ivoire.    CI    # Denmark.    DK    # Djibouti.    DJ    # Dominica.    DM    # Dominican Republic.    DO    # Ecuador.    EC    # Egypt.    EG    # El Salvador.    SV    # Equatorial Guinea.    GQ    # Eritrea.    ER    # Estonia.    EE    # Eswatini.    SZ    # Ethiopia.    ET    # Falkland Islands.    FK    # Faroe Islands.    FO    # Fiji.    FJ    # Finland.    FI    # France.    FR    # French Guiana.    GF    # French Polynesia.    PF    # French Southern Territories.    TF    # Gabon.    GA    # Gambia.    GM    # Georgia.    GE    # Germany.    DE    # Ghana.    GH    # Gibraltar.    GI    # Greece.    GR    # Greenland.    GL    # Grenada.    GD    # Guadeloupe.    GP    # Guatemala.    GT    # Guernsey.    GG    # Guinea.    GN    # Guinea-Bissau.    GW    # Guyana.    GY    # Haiti.    HT    # Heard & McDonald Islands.    HM    # Vatican City.    VA    # Honduras.    HN    # Hong Kong SAR.    HK    # Hungary.    HU    # Iceland.    IS    # India.    IN    # Indonesia.    ID    # Iran.    IR    # Iraq.    IQ    # Ireland.    IE    # Isle of Man.    IM    # Israel.    IL    # Italy.    IT    # Jamaica.    JM    # Japan.    JP    # Jersey.    JE    # Jordan.    JO    # Kazakhstan.    KZ    # Kenya.    KE    # Kiribati.    KI    # North Korea.    KP    # Kosovo.    XK    # Kuwait.    KW    # Kyrgyzstan.    KG    # Laos.    LA    # Latvia.    LV    # Lebanon.    LB    # Lesotho.    LS    # Liberia.    LR    # Libya.    LY    # Liechtenstein.    LI    # Lithuania.    LT    # Luxembourg.    LU    # Macao SAR.    MO    # Madagascar.    MG    # Malawi.    MW    # Malaysia.    MY    # Maldives.    MV    # Mali.    ML    # Malta.    MT    # Martinique.    MQ    # Mauritania.    MR    # Mauritius.    MU    # Mayotte.    YT    # Mexico.    MX    # Moldova.    MD    # Monaco.    MC    # Mongolia.    MN    # Montenegro.    ME    # Montserrat.    MS    # Morocco.    MA    # Mozambique.    MZ    # Myanmar (Burma).    MM    # Namibia.    NA    # Nauru.    NR    # Nepal.    NP    # Netherlands.    NL    # Netherlands Antilles.    AN    # New Caledonia.    NC    # New Zealand.    NZ    # Nicaragua.    NI    # Niger.    NE    # Nigeria.    NG    # Niue.    NU    # Norfolk Island.    NF    # North Macedonia.    MK    # Norway.    NO    # Oman.    OM    # Pakistan.    PK    # Palestinian Territories.    PS    # Panama.    PA    # Papua New Guinea.    PG    # Paraguay.    PY    # Peru.    PE    # Philippines.    PH    # Pitcairn Islands.    PN    # Poland.    PL    # Portugal.    PT    # Qatar.    QA    # Cameroon.    CM    # Réunion.    RE    # Romania.    RO    # Russia.    RU    # Rwanda.    RW    # St. Barthélemy.    BL    # St. Helena.    SH    # St. Kitts & Nevis.    KN    # St. Lucia.    LC    # St. Martin.    MF    # St. Pierre & Miquelon.    PM    # Samoa.    WS    # San Marino.    SM    # São Tomé & Príncipe.    ST    # Saudi Arabia.    SA    # Senegal.    SN    # Serbia.    RS    # Seychelles.    SC    # Sierra Leone.    SL    # Singapore.    SG    # Sint Maarten.    SX    # Slovakia.    SK    # Slovenia.    SI    # Solomon Islands.    SB    # Somalia.    SO    # South Africa.    ZA    # South Georgia & South Sandwich Islands.    GS    # South Korea.    KR    # South Sudan.    SS    # Spain.    ES    # Sri Lanka.    LK    # St. Vincent & Grenadines.    VC    # Sudan.    SD    # Suriname.    SR    # Svalbard & Jan Mayen.    SJ    # Sweden.    SE    # Switzerland.    CH    # Syria.    SY    # Taiwan.    TW    # Tajikistan.    TJ    # Tanzania.    TZ    # Thailand.    TH    # Timor-Leste.    TL    # Togo.    TG    # Tokelau.    TK    # Tonga.    TO    # Trinidad & Tobago.    TT    # Tristan da Cunha.    TA    # Tunisia.    TN    # Turkey.    TR    # Turkmenistan.    TM    # Turks & Caicos Islands.    TC    # Tuvalu.    TV    # Uganda.    UG    # Ukraine.    UA    # United Arab Emirates.    AE    # United Kingdom.    GB    # United States.    US    # U.S. Outlying Islands.    UM    # Uruguay.    UY    # Uzbekistan.    UZ    # Vanuatu.    VU    # Venezuela.    VE    # Vietnam.    VN    # British Virgin Islands.    VG    # Wallis & Futuna.    WF    # Western Sahara.    EH    # Yemen.    YE    # Zambia.    ZM    # Zimbabwe.    ZW    # Unknown Region.    ZZ}
 |