# A market is a group of one or more regions that you want to target for international sales. # By creating a market, you can configure a distinct, localized shopping experience for # customers from a specific area of the world. For example, you can # change currency, # configure international pricing, # or add market-specific domains or subfolders. type Market implements Node { # The market’s currency settings. currencySettings: MarketCurrencySettings! # Whether the market is enabled to receive visitors and sales. Note: Regions in inactive # markets cannot be selected on the storefront or in checkout. enabled: Boolean! # A globally-unique identifier. id: ID! # The name of the market. Not shown to customers. name: String! # The market’s price list, which specifies a percentage-based price adjustment as well as # fixed price overrides for specific variants. priceList: PriceList # Whether the market is the shop’s primary market. primary: Boolean! # The regions that comprise the market. regions( first: Int after: String last: Int before: String reverse: Boolean = false ): MarketRegionConnection! # The market’s web presence, which defines its SEO strategy. This can be a different domain, # subdomain, or subfolders of the primary domain. Each web presence comprises one or more # language variants. If a market doesn't have its own web presence, then the market is accessible on the # shop’s primary domain using country # selectors. webPresence: MarketWebPresence } # A market's currency settings. type MarketCurrencySettings { # The currency which this market's prices are defined in, and the # currency which its customers must use if local currencies are disabled. baseCurrency: CurrencySetting! # Whether or not local currencies are enabled. If enabled, then prices will # be converted to give each customer the best experience based on their # region. If disabled, then all customers in this market will see prices # in the market's base currency. localCurrencies: Boolean! } # The market’s web presence, which defines its SEO strategy. This can be a different domain # (e.g. example.ca), subdomain (e.g. ca.example.com), or subfolders of the primary # domain (e.g. example.com/en-ca). Each web presence comprises one or more language # variants. If a market does not have its own web presence, it is accessible on the shop’s # primary domain via country # selectors. # # Note: while the domain/subfolders defined by a market’s web presence are not applicable to # custom storefronts, which must manage their own domains and routing, the languages chosen # here do govern the languages available on the Storefront # API for the countries in # this market. type MarketWebPresence implements Node { # The ISO codes for the alternate locales. When a domain is used, these locales will be # available as language-specific subfolders. For example, if English is an # alternate locale, and example.ca is the market’s domain, then # example.ca/en will load in English. alternateLocales: [String!]! # The ISO code for the default locale. When a domain is used, this is the locale that will # be used when the domain root is accessed. For example, if French is the default locale, # and example.ca is the market’s domian, then example.ca will load in French. defaultLocale: String! # The web presence’s domain. # This field will be null if subfolderSuffix isn't null. domain: Domain # A globally-unique identifier. id: ID! # The associated market. market: Market! # The list of root URLs for each of the web presence’s locales. rootUrls: [MarketWebPresenceRootUrl!]! # The market-specific suffix of the subfolders defined by the web presence. Example: in /en-us the subfolder suffix is us. # This field will be null if domain isn't null. subfolderSuffix: String } # The URL for the homepage of the online store in the context of a particular market and a particular locale. type MarketWebPresenceRootUrl { # The locale that the storefront loads in. locale: String! # The URL. url: URL! }