schema { query: QueryRoot mutation: Mutation } """ The set of valid sort keys for the Article query. """ enum ArticleSortKeys { """ Sort by the `title` value. """ TITLE """ Sort by the `blog_title` value. """ BLOG_TITLE """ Sort by the `author` value. """ AUTHOR """ Sort by the `updated_at` value. """ UPDATED_AT """ Sort by the `published_at` value. """ PUBLISHED_AT """ 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 Blog query. """ enum BlogSortKeys { """ Sort by the `handle` value. """ HANDLE """ Sort by the `title` value. """ TITLE """ 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 } """ Card brand, such as Visa or Mastercard, which can be used for payments. """ enum CardBrand { """ Visa. """ VISA """ Mastercard. """ MASTERCARD """ Discover. """ DISCOVER """ American Express. """ AMERICAN_EXPRESS """ Diners Club. """ DINERS_CLUB """ JCB. """ JCB } """ Represents how credit card details are provided for a direct payment. """ enum CartCardSource { """ The credit card was provided by a third party and vaulted on their system. Using this value requires a separate permission from Shopify. """ SAVED_CREDIT_CARD } """ Defines what type of merchandise is in the delivery group. """ enum CartDeliveryGroupType { """ The delivery group only contains subscription merchandise. """ SUBSCRIPTION """ The delivery group only contains merchandise that is either a one time purchase or a first delivery of subscription merchandise. """ ONE_TIME_PURCHASE } """ Error codes returned by [`CartUserError`](https://shopify.dev/docs/api/storefront/current/objects/CartUserError) during cart mutations. Covers validation failures for addresses, quantities, delivery options, merchandise lines, discount codes, and metafields. """ enum CartErrorCode { """ The input value is invalid. """ INVALID """ The input value should be less than the maximum value allowed. """ LESS_THAN """ Merchandise line was not found in cart. """ INVALID_MERCHANDISE_LINE """ Item cannot be purchased as configured. """ MERCHANDISE_NOT_APPLICABLE """ An error occurred while processing cart transformations. """ MERCHANDISE_LINE_TRANSFORMERS_RUN_ERROR """ Missing discount code. """ MISSING_DISCOUNT_CODE """ Missing note. """ MISSING_NOTE """ The note length must be below the specified maximum. """ NOTE_TOO_LONG """ Delivery group was not found in cart. """ INVALID_DELIVERY_GROUP """ Delivery option was not valid. """ INVALID_DELIVERY_OPTION """ The delivery group is in a pending state. """ PENDING_DELIVERY_GROUPS """ The payment wasn't valid. """ INVALID_PAYMENT """ The payment method is not supported. """ PAYMENT_METHOD_NOT_SUPPORTED """ The payment method is not applicable. """ PAYMENT_METHOD_NOT_APPLICABLE """ The payment is invalid. Deferred payment is required. """ INVALID_PAYMENT_DEFERRED_PAYMENT_REQUIRED """ Cannot update payment on an empty cart """ INVALID_PAYMENT_EMPTY_CART """ Validation failed. """ VALIDATION_CUSTOM """ The metafields were not valid. """ INVALID_METAFIELDS """ The customer access token is required when setting a company location. """ MISSING_CUSTOMER_ACCESS_TOKEN """ Company location not found or not allowed. """ INVALID_COMPANY_LOCATION """ The quantity must be a multiple of the specified increment. """ INVALID_INCREMENT """ The quantity must be above the specified minimum for the item. """ MINIMUM_NOT_MET """ The quantity must be below the specified maximum for the item. """ MAXIMUM_EXCEEDED """ Too many delivery addresses on Cart. """ TOO_MANY_DELIVERY_ADDRESSES """ Only one delivery address can be selected. """ ONLY_ONE_DELIVERY_ADDRESS_CAN_BE_SELECTED """ The delivery address was not found. """ INVALID_DELIVERY_ADDRESS_ID """ Buyer cannot purchase for company location. """ BUYER_CANNOT_PURCHASE_FOR_COMPANY_LOCATION """ Bundles and addons cannot be mixed. """ BUNDLES_AND_ADDONS_CANNOT_BE_MIXED """ Cannot reference existing parent lines by variant_id. """ PARENT_LINE_INVALID_REFERENCE """ Parent line not found. """ PARENT_LINE_NOT_FOUND """ Parent line nesting is too deep or circular. """ PARENT_LINE_NESTING_TOO_DEEP """ Nested cartlines are blocked due to an incompatibility. """ PARENT_LINE_OPERATION_BLOCKED """ The specified gift card recipient is invalid. """ GIFT_CARD_RECIPIENT_INVALID """ The specified address field is required. """ ADDRESS_FIELD_IS_REQUIRED """ The specified address field is too long. """ ADDRESS_FIELD_IS_TOO_LONG """ The specified address field contains emojis. """ ADDRESS_FIELD_CONTAINS_EMOJIS """ The specified address field contains HTML tags. """ ADDRESS_FIELD_CONTAINS_HTML_TAGS """ The specified address field contains a URL. """ ADDRESS_FIELD_CONTAINS_URL """ The specified address field does not match the expected pattern. """ ADDRESS_FIELD_DOES_NOT_MATCH_EXPECTED_PATTERN """ The given zip code is invalid for the provided province. """ INVALID_ZIP_CODE_FOR_PROVINCE """ The given zip code is invalid for the provided country. """ INVALID_ZIP_CODE_FOR_COUNTRY """ The given zip code is unsupported. """ ZIP_CODE_NOT_SUPPORTED """ The given province cannot be found. """ PROVINCE_NOT_FOUND """ A general error occurred during address validation. """ UNSPECIFIED_ADDRESS_ERROR """ Credit card has expired. """ PAYMENTS_CREDIT_CARD_BASE_EXPIRED """ Credit card gateway is not supported. """ PAYMENTS_CREDIT_CARD_BASE_GATEWAY_NOT_SUPPORTED """ Credit card error. """ PAYMENTS_CREDIT_CARD_GENERIC """ Credit card month is invalid. """ PAYMENTS_CREDIT_CARD_MONTH_INCLUSION """ Credit card number is invalid. """ PAYMENTS_CREDIT_CARD_NUMBER_INVALID """ Credit card number format is invalid. """ PAYMENTS_CREDIT_CARD_NUMBER_INVALID_FORMAT """ Credit card verification value is blank. """ PAYMENTS_CREDIT_CARD_VERIFICATION_VALUE_BLANK """ Credit card verification value is invalid for card type. """ PAYMENTS_CREDIT_CARD_VERIFICATION_VALUE_INVALID_FOR_CARD_TYPE """ Credit card has expired. """ PAYMENTS_CREDIT_CARD_YEAR_EXPIRED """ Credit card expiry year is invalid. """ PAYMENTS_CREDIT_CARD_YEAR_INVALID_EXPIRY_YEAR """ Variant can only be purchased with a selling plan. """ VARIANT_REQUIRES_SELLING_PLAN """ Selling plan is not applicable. """ SELLING_PLAN_NOT_APPLICABLE """ An error occurred while saving the cart. """ SERVICE_UNAVAILABLE """ The cart is too large to save. """ CART_TOO_LARGE } """ The code for the cart warning. """ enum CartWarningCode { """ The merchandise does not have enough stock. """ MERCHANDISE_NOT_ENOUGH_STOCK """ The merchandise is out of stock. """ MERCHANDISE_OUT_OF_STOCK """ Gift cards are not available as a payment method. """ PAYMENTS_GIFT_CARDS_UNAVAILABLE """ A delivery address with the same details already exists on this cart. """ DUPLICATE_DELIVERY_ADDRESS """ The discount code cannot be honored. """ DISCOUNT_CODE_NOT_HONOURED """ The discount was not found. """ DISCOUNT_NOT_FOUND """ The discount is currently inactive. """ DISCOUNT_CURRENTLY_INACTIVE """ The discount usage limit has been reached. """ DISCOUNT_USAGE_LIMIT_REACHED """ The customer's discount usage limit has been reached. """ DISCOUNT_CUSTOMER_USAGE_LIMIT_REACHED """ The customer is not eligible for this discount. """ DISCOUNT_CUSTOMER_NOT_ELIGIBLE """ An eligible customer is missing for this discount. """ DISCOUNT_ELIGIBLE_CUSTOMER_MISSING """ The quantity is not in range for this discount. """ DISCOUNT_QUANTITY_NOT_IN_RANGE """ The purchase is not in range for this discount. """ DISCOUNT_PURCHASE_NOT_IN_RANGE """ There are no entitled line items for this discount. """ DISCOUNT_NO_ENTITLED_LINE_ITEMS """ There are no entitled shipping lines for this discount. """ DISCOUNT_NO_ENTITLED_SHIPPING_LINES """ The purchase type is incompatible with this discount. """ DISCOUNT_INCOMPATIBLE_PURCHASE_TYPE """ Only one-time purchase is available for B2B orders. """ MERCHANDISE_SELLING_PLAN_NOT_APPLICABLE_ON_COMPANY_LOCATION } """ The set of valid sort keys for the Collection query. """ enum CollectionSortKeys { """ Sort by the `title` value. """ TITLE """ Sort by the `updated_at` value. """ UPDATED_AT """ 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 code of the error that occurred during a cart completion attempt. """ enum CompletionErrorCode { ERROR INVENTORY_RESERVATION_ERROR PAYMENT_ERROR PAYMENT_TRANSIENT_ERROR PAYMENT_AMOUNT_TOO_SMALL PAYMENT_GATEWAY_NOT_ENABLED_ERROR PAYMENT_INSUFFICIENT_FUNDS PAYMENT_INVALID_PAYMENT_METHOD PAYMENT_INVALID_CURRENCY PAYMENT_INVALID_CREDIT_CARD PAYMENT_INVALID_BILLING_ADDRESS PAYMENT_CARD_DECLINED PAYMENT_CALL_ISSUER } """ The precision of the value returned by a count field. """ enum CountPrecision { """ The count is exactly the value. """ EXACT """ The count is at least the value. A limit was reached. """ AT_LEAST } """ 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 """ Türkiye. """ 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 } """ 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 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 States Dollars (USD). """ USD """ Euro (EUR). """ EUR """ United Kingdom Pounds (GBP). """ GBP """ Canadian Dollars (CAD). """ CAD """ Afghan Afghani (AFN). """ AFN """ Albanian Lek (ALL). """ ALL """ Algerian Dinar (DZD). """ DZD """ Angolan Kwanza (AOA). """ AOA """ Argentine Pesos (ARS). """ ARS """ Armenian Dram (AMD). """ AMD """ Aruban Florin (AWG). """ AWG """ Australian Dollars (AUD). """ AUD """ Barbadian Dollar (BBD). """ BBD """ Azerbaijani Manat (AZN). """ AZN """ Bangladesh Taka (BDT). """ BDT """ Bahamian Dollar (BSD). """ BSD """ Bahraini Dinar (BHD). """ BHD """ Burundian Franc (BIF). """ BIF """ Belize Dollar (BZD). """ BZD """ Bermudian Dollar (BMD). """ BMD """ Bhutanese Ngultrum (BTN). """ BTN """ Bosnia and Herzegovina Convertible Mark (BAM). """ BAM """ Brazilian Real (BRL). """ BRL """ Bolivian Boliviano (BOB). """ BOB """ Botswana Pula (BWP). """ BWP """ Brunei Dollar (BND). """ BND """ Bulgarian Lev (BGN). """ BGN """ Burmese Kyat (MMK). """ MMK """ Cambodian Riel. """ KHR """ Cape Verdean escudo (CVE). """ CVE """ Cayman Dollars (KYD). """ KYD """ Central African CFA Franc (XAF). """ XAF """ Chilean Peso (CLP). """ CLP """ Chinese Yuan Renminbi (CNY). """ CNY """ Colombian Peso (COP). """ COP """ Comorian Franc (KMF). """ KMF """ Congolese franc (CDF). """ CDF """ Costa Rican Colones (CRC). """ CRC """ Croatian Kuna (HRK). """ HRK """ Czech Koruny (CZK). """ CZK """ Danish Kroner (DKK). """ DKK """ Dominican Peso (DOP). """ DOP """ East Caribbean Dollar (XCD). """ XCD """ Egyptian Pound (EGP). """ EGP """ Eritrean Nakfa (ERN). """ ERN """ Ethiopian Birr (ETB). """ ETB """ Falkland Islands Pounds (FKP). """ FKP """ CFP Franc (XPF). """ XPF """ Fijian Dollars (FJD). """ FJD """ Gibraltar Pounds (GIP). """ GIP """ Gambian Dalasi (GMD). """ GMD """ Ghanaian Cedi (GHS). """ GHS """ Guatemalan Quetzal (GTQ). """ GTQ """ Guyanese Dollar (GYD). """ GYD """ Georgian Lari (GEL). """ GEL """ Haitian Gourde (HTG). """ HTG """ Honduran Lempira (HNL). """ HNL """ Hong Kong Dollars (HKD). """ HKD """ Hungarian Forint (HUF). """ HUF """ Icelandic Kronur (ISK). """ ISK """ Indian Rupees (INR). """ INR """ Indonesian Rupiah (IDR). """ IDR """ Israeli New Shekel (NIS). """ ILS """ Iraqi Dinar (IQD). """ IQD """ Jamaican Dollars (JMD). """ JMD """ Japanese Yen (JPY). """ JPY """ Jersey Pound. """ JEP """ Jordanian Dinar (JOD). """ JOD """ Kazakhstani Tenge (KZT). """ KZT """ Kenyan Shilling (KES). """ KES """ Kiribati Dollar (KID). """ KID """ Kuwaiti Dinar (KWD). """ KWD """ Kyrgyzstani Som (KGS). """ KGS """ Laotian Kip (LAK). """ LAK """ Latvian Lati (LVL). """ LVL """ Lebanese Pounds (LBP). """ LBP """ Lesotho Loti (LSL). """ LSL """ Liberian Dollar (LRD). """ LRD """ Lithuanian Litai (LTL). """ LTL """ Malagasy Ariary (MGA). """ MGA """ Macedonia Denar (MKD). """ MKD """ Macanese Pataca (MOP). """ MOP """ Malawian Kwacha (MWK). """ MWK """ Maldivian Rufiyaa (MVR). """ MVR """ Mauritanian Ouguiya (MRU). """ MRU """ Mexican Pesos (MXN). """ MXN """ Malaysian Ringgits (MYR). """ MYR """ Mauritian Rupee (MUR). """ MUR """ Moldovan Leu (MDL). """ MDL """ Moroccan Dirham. """ MAD """ Mongolian Tugrik. """ MNT """ Mozambican Metical. """ MZN """ Namibian Dollar. """ NAD """ Nepalese Rupee (NPR). """ NPR """ Netherlands Antillean Guilder. """ ANG """ New Zealand Dollars (NZD). """ NZD """ Nicaraguan Córdoba (NIO). """ NIO """ Nigerian Naira (NGN). """ NGN """ Norwegian Kroner (NOK). """ NOK """ Omani Rial (OMR). """ OMR """ Panamian Balboa (PAB). """ PAB """ Pakistani Rupee (PKR). """ PKR """ Papua New Guinean Kina (PGK). """ PGK """ Paraguayan Guarani (PYG). """ PYG """ Peruvian Nuevo Sol (PEN). """ PEN """ Philippine Peso (PHP). """ PHP """ Polish Zlotych (PLN). """ PLN """ Qatari Rial (QAR). """ QAR """ Romanian Lei (RON). """ RON """ Russian Rubles (RUB). """ RUB """ Rwandan Franc (RWF). """ RWF """ Samoan Tala (WST). """ WST """ Saint Helena Pounds (SHP). """ SHP """ Saudi Riyal (SAR). """ SAR """ Serbian dinar (RSD). """ RSD """ Seychellois Rupee (SCR). """ SCR """ Singapore Dollars (SGD). """ SGD """ Sudanese Pound (SDG). """ SDG """ Somali Shilling (SOS). """ SOS """ Syrian Pound (SYP). """ SYP """ South African Rand (ZAR). """ ZAR """ South Korean Won (KRW). """ KRW """ South Sudanese Pound (SSP). """ SSP """ Solomon Islands Dollar (SBD). """ SBD """ Sri Lankan Rupees (LKR). """ LKR """ Surinamese Dollar (SRD). """ SRD """ Swazi Lilangeni (SZL). """ SZL """ Swedish Kronor (SEK). """ SEK """ Swiss Francs (CHF). """ CHF """ Taiwan Dollars (TWD). """ TWD """ Thai baht (THB). """ THB """ Tanzanian Shilling (TZS). """ TZS """ Trinidad and Tobago Dollars (TTD). """ TTD """ Tunisian Dinar (TND). """ TND """ Turkish Lira (TRY). """ TRY """ Turkmenistani Manat (TMT). """ TMT """ Ugandan Shilling (UGX). """ UGX """ Ukrainian Hryvnia (UAH). """ UAH """ United Arab Emirates Dirham (AED). """ AED """ Uruguayan Pesos (UYU). """ UYU """ Uzbekistan som (UZS). """ UZS """ Vanuatu Vatu (VUV). """ VUV """ Venezuelan Bolivares Soberanos (VES). """ VES """ Vietnamese đồng (VND). """ VND """ West African CFA franc (XOF). """ XOF """ Yemeni Rial (YER). """ YER """ Zambian Kwacha (ZMW). """ ZMW """ Belarusian Ruble (BYN). """ BYN """ Belarusian Ruble (BYR). """ BYR @deprecated """ Djiboutian Franc (DJF). """ DJF """ Guinean Franc (GNF). """ GNF """ Iranian Rial (IRR). """ IRR """ Libyan Dinar (LYD). """ LYD """ Sierra Leonean Leone (SLL). """ SLL """ Sao Tome And Principe Dobra (STD). """ STD @deprecated """ Sao Tome And Principe Dobra (STN). """ STN """ Tajikistani Somoni (TJS). """ TJS """ Tongan Pa'anga (TOP). """ TOP """ Venezuelan Bolivares (VED). """ VED """ Venezuelan Bolivares (VEF). """ VEF @deprecated """ Unrecognized currency. """ XXX } """ Error codes returned by the [`CustomerUserError`](https://shopify.dev/docs/api/storefront/current/objects/CustomerUserError) object. These codes identify specific validation and processing failures for customer-related mutations, including account creation, updates, password resets, and address management. """ enum CustomerErrorCode { """ The input value is blank. """ BLANK """ The input value is invalid. """ INVALID """ The input value is already taken. """ TAKEN """ The input value is too long. """ TOO_LONG """ The input value is too short. """ TOO_SHORT """ Unidentified customer. """ UNIDENTIFIED_CUSTOMER """ Customer is disabled. """ CUSTOMER_DISABLED """ Input password starts or ends with whitespace. """ PASSWORD_STARTS_OR_ENDS_WITH_WHITESPACE """ Input contains HTML tags. """ CONTAINS_HTML_TAGS """ Input contains URL. """ CONTAINS_URL """ Invalid activation token. """ TOKEN_INVALID """ Customer already enabled. """ ALREADY_ENABLED """ Address does not exist. """ NOT_FOUND """ Input email contains an invalid domain name. """ BAD_DOMAIN """ Multipass token is not valid. """ INVALID_MULTIPASS_REQUEST } """ Controls how delivery addresses are validated during cart operations. The default validation checks only the country code, while strict validation verifies all address fields against Shopify's checkout rules and rejects invalid addresses. Used by [`DeliveryAddressInput`](https://shopify.dev/docs/api/storefront/current/input-objects/DeliveryAddressInput) when setting buyer identity preferences, and by [`CartSelectableAddressInput`](https://shopify.dev/docs/api/storefront/current/input-objects/CartSelectableAddressInput) and [`CartSelectableAddressUpdateInput`](https://shopify.dev/docs/api/storefront/current/input-objects/CartSelectableAddressUpdateInput) when managing cart delivery addresses. """ enum DeliveryAddressValidationStrategy { """ Only the country code is validated. """ COUNTRY_CODE_ONLY """ Strict validation is performed, i.e. all fields in the address are validated according to Shopify's checkout rules. If the address fails validation, the cart will not be updated. """ STRICT } """ List of different delivery method types. """ enum DeliveryMethodType { """ Shipping. """ SHIPPING """ Local Pickup. """ PICK_UP """ Retail. """ RETAIL """ Local Delivery. """ LOCAL """ Shipping to a Pickup Point. """ PICKUP_POINT """ None. """ NONE } """ Digital wallet, such as Apple Pay, which can be used for accelerated checkouts. """ enum DigitalWallet { """ Apple Pay. """ APPLE_PAY """ Android Pay. """ ANDROID_PAY """ Google Pay. """ GOOGLE_PAY """ Shopify Pay. """ SHOPIFY_PAY } """ Controls how a discount's value is distributed across entitled lines. A discount can either spread its value across all entitled lines or apply the full value to each line individually. Used by the [`DiscountApplication`](https://shopify.dev/docs/api/storefront/current/interfaces/DiscountApplication) interface and its implementations to capture the intentions of a discount source at the time of application. """ enum DiscountApplicationAllocationMethod { """ The value is spread across all entitled lines. """ ACROSS """ The value is applied onto every entitled line. """ EACH """ The value is specifically applied onto a particular line. """ ONE @deprecated } """ The lines on the order to which the discount is applied, of the type defined by the discount application's `targetType`. For example, the value `ENTITLED`, combined with a `targetType` of `LINE_ITEM`, applies the discount on all line items that are entitled to the discount. The value `ALL`, combined with a `targetType` of `SHIPPING_LINE`, applies the discount on all shipping lines. """ enum DiscountApplicationTargetSelection { """ The discount is allocated onto all the lines. """ ALL """ The discount is allocated onto only the lines that it's entitled for. """ ENTITLED """ The discount is allocated onto explicitly chosen lines. """ EXPLICIT } """ The type of line (i.e. line item or shipping line) on an order that the discount is applicable towards. """ enum DiscountApplicationTargetType { """ The discount applies onto line items. """ LINE_ITEM """ The discount applies onto shipping lines. """ SHIPPING_LINE } """ Defines how to present the filter values, specifies the presentation of the filter. """ enum FilterPresentation { """ Image presentation, filter values display an image. """ IMAGE """ Swatch presentation, filter values display color or image patterns. """ SWATCH """ Text presentation, no additional visual display for filter values. """ TEXT } """ 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 } """ List of supported image content types. """ enum ImageContentType { """ A PNG image. """ PNG """ A JPG image. """ JPG """ A WEBP image. """ WEBP } """ Supported languages for retrieving translated storefront content. Pass a language code to the [`@inContext`](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/in-context) directive to return product titles, descriptions, and other translatable fields in that language. The [`Localization`](https://shopify.dev/docs/api/storefront/current/objects/Localization) object provides the list of available languages for the active country, and each [`Country`](https://shopify.dev/docs/api/storefront/current/objects/Country) in [`availableCountries`](https://shopify.dev/docs/api/storefront/current/objects/Localization#field-Localization.fields.availableCountries) includes its own available languages. """ 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 """ Central Kurdish. """ CKB """ Czech. """ CS """ 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 """ Filipino. """ FIL """ 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 """ Quechua. """ QU """ Romansh. """ RM """ Rundi. """ RN """ Romanian. """ RO """ Russian. """ RU """ Kinyarwanda. """ RW """ Sanskrit. """ SA """ Sardinian. """ SC """ 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 """ Church Slavic. """ CU """ Volapük. """ VO """ Latin. """ LA """ Serbo-Croatian. """ SH """ Moldavian. """ MO } """ The set of valid sort keys for the Location query. """ enum LocationSortKeys { """ Sort by the `id` value. """ ID """ Sort by the `name` value. """ NAME """ Sort by the `city` value. """ CITY """ Sort by the `distance` value. """ DISTANCE } """ 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 } """ Host for a Media Resource. """ enum MediaHost { """ Host for YouTube embedded videos. """ YOUTUBE """ Host for Vimeo embedded videos. """ VIMEO } """ The possible formats for a media presentation. """ enum MediaPresentationFormat { """ A model viewer presentation. """ MODEL_VIEWER """ A media image presentation. """ IMAGE } """ A menu item type. """ enum MenuItemType { """ A frontpage link. """ FRONTPAGE """ A collection link. """ COLLECTION """ A collection link. """ COLLECTIONS """ A product link. """ PRODUCT """ A catalog link. """ CATALOG """ A page link. """ PAGE """ A blog link. """ BLOG """ An article link. """ ARTICLE """ A search link. """ SEARCH """ A shop policy link. """ SHOP_POLICY """ An http link. """ HTTP """ A metaobject page link. """ METAOBJECT """ A customer account page link. """ CUSTOMER_ACCOUNT_PAGE } """ Possible error codes that can be returned by `MetafieldDeleteUserError`. """ enum MetafieldDeleteErrorCode { """ The owner ID is invalid. """ INVALID_OWNER """ Metafield not found. """ METAFIELD_DOES_NOT_EXIST """ The current app is not authorized to perform this action. """ APP_NOT_AUTHORIZED } """ Possible error codes that can be returned by `MetafieldsSetUserError`. """ enum MetafieldsSetUserErrorCode { """ The input value is blank. """ BLANK """ The input value isn't included in the list. """ INCLUSION """ The input value should be less than or equal to the maximum value allowed. """ LESS_THAN_OR_EQUAL_TO """ The input value needs to be blank. """ PRESENT """ The input value is too short. """ TOO_SHORT """ The input value is too long. """ TOO_LONG """ The owner ID is invalid. """ INVALID_OWNER """ The value is invalid for metafield type or for definition options. """ INVALID_VALUE """ The type is invalid. """ INVALID_TYPE """ The current app is not authorized to perform this action. """ APP_NOT_AUTHORIZED } """ Represents the reason for the order's cancellation. """ enum OrderCancelReason { """ The customer wanted to cancel the order. """ CUSTOMER """ Payment was declined. """ DECLINED """ The order was fraudulent. """ FRAUD """ There was insufficient inventory. """ INVENTORY """ Staff made an error. """ STAFF """ The order was canceled for an unlisted reason. """ OTHER } """ Represents the order's current financial status. """ enum OrderFinancialStatus { """ Displayed as **Pending**. """ PENDING """ Displayed as **Authorized**. """ AUTHORIZED """ Displayed as **Partially paid**. """ PARTIALLY_PAID """ Displayed as **Partially refunded**. """ PARTIALLY_REFUNDED """ Displayed as **Voided**. """ VOIDED """ Displayed as **Paid**. """ PAID """ Displayed as **Refunded**. """ REFUNDED } """ The aggregated fulfillment status of an [`Order`](https://shopify.dev/docs/api/storefront/current/objects/Order), summarizing the state of all line items. Used for display purposes. Statuses range from unfulfilled to fully fulfilled, with intermediate states such as in progress and on hold. Learn more about [order statuses](https://help.shopify.com/manual/fulfillment/managing-orders/order-status). """ enum OrderFulfillmentStatus { """ Displayed as **Unfulfilled**. None of the items in the order have been fulfilled. """ UNFULFILLED """ Displayed as **Partially fulfilled**. Some of the items in the order have been fulfilled. """ PARTIALLY_FULFILLED """ Displayed as **Fulfilled**. All of the items in the order have been fulfilled. """ FULFILLED """ Displayed as **Restocked**. All of the items in the order have been restocked. Replaced by "UNFULFILLED" status. """ RESTOCKED """ Displayed as **Pending fulfillment**. A request for fulfillment of some items awaits a response from the fulfillment service. Replaced by "IN_PROGRESS" status. """ PENDING_FULFILLMENT """ Displayed as **Open**. None of the items in the order have been fulfilled. Replaced by "UNFULFILLED" status. """ OPEN """ Displayed as **In progress**. Some of the items in the order have been fulfilled, or a request for fulfillment has been sent to the fulfillment service. """ IN_PROGRESS """ Displayed as **On hold**. All of the unfulfilled items in this order are on hold. """ ON_HOLD """ Displayed as **Scheduled**. All of the unfulfilled items in this order are scheduled for fulfillment at later time. """ SCHEDULED """ Displayed as **Ready for delivery**. """ READY_FOR_DELIVERY } """ The set of valid sort keys for the Order query. """ enum OrderSortKeys { """ Sort by the `processed_at` value. """ PROCESSED_AT """ Sort by the `total_price` value. """ TOTAL_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 } """ The set of valid sort keys for the Page query. """ enum PageSortKeys { """ Sort by the `title` value. """ TITLE """ Sort by the `updated_at` value. """ UPDATED_AT """ 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 } """ Decides the distribution of results. """ enum PredictiveSearchLimitScope { """ Return results up to limit across all types. """ ALL """ Return results up to limit per type. """ EACH } """ The types of search items to perform predictive search on. """ enum PredictiveSearchType { """ Returns matching collections. """ COLLECTION """ Returns matching products. """ PRODUCT """ Returns matching pages. """ PAGE """ Returns matching articles. """ ARTICLE """ Returns matching query strings. """ QUERY } """ The preferred delivery methods such as shipping, local pickup or through pickup points. """ enum PreferenceDeliveryMethodType { """ A delivery method used to send items directly to a buyer’s specified address. """ SHIPPING """ A delivery method used to let buyers receive items directly from a specific location within an area. """ PICK_UP """ A delivery method used to let buyers collect purchases at designated locations like parcel lockers. """ PICKUP_POINT } """ Sort options for products within a [`Collection`](https://shopify.dev/docs/api/storefront/current/objects/Collection). Used by the [`products`](https://shopify.dev/docs/api/storefront/current/objects/Collection#field-Collection.fields.products) connection to order results by best-selling, price, title, creation date, or the collection's default and manual ordering. > Note: The [`RELEVANCE`](https://shopify.dev/docs/api/storefront/current/enums/ProductCollectionSortKeys#enums-RELEVANCE) key applies only when you specify a search query. """ enum ProductCollectionSortKeys { """ Sort by the `title` value. """ TITLE """ Sort by the `price` value. """ PRICE """ Sort by the `best-selling` value. """ BEST_SELLING """ Sort by the `created` value. """ CREATED """ Sort by the `id` value. """ ID """ Sort by the `manual` value. """ MANUAL """ Sort by the `collection-default` value. """ COLLECTION_DEFAULT """ 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 `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 ProductMedia query. """ enum ProductMediaSortKeys { """ 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 recommendation intent that is used to generate product recommendations. You can use intent to generate product recommendations according to different strategies. """ enum ProductRecommendationIntent { """ Offer customers a mix of products that are similar or complementary to a product for which recommendations are to be fetched. An example is substitutable products that display in a You may also like section. """ RELATED """ Offer customers products that are complementary to a product for which recommendations are to be fetched. An example is add-on products that display in a Pair it with section. """ COMPLEMENTARY } """ Sorting options for the [`products`](https://shopify.dev/docs/api/storefront/current/queries/products) query. Supports sorting products by criteria such as best-selling and price, and by product attributes such as type, and vendor. > Note: Use the [`RELEVANCE`](https://shopify.dev/docs/api/storefront/current/enums/ProductSortKeys#enums-RELEVANCE) key only when a search query is specified. """ 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 } """ 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 } """ Specifies whether to perform a partial word match on the last search term. """ enum SearchPrefixQueryType { """ Perform a partial word match on the last search term. """ LAST """ Don't perform a partial word match on the last search term. """ NONE } """ The set of valid sort keys for the search query. """ enum SearchSortKeys { """ Sort by the `price` value. """ PRICE """ Sort by relevance to the search terms. """ RELEVANCE } """ The types of search items to perform search within. """ enum SearchType { """ Returns matching products. """ PRODUCT """ Returns matching pages. """ PAGE """ Returns matching articles. """ ARTICLE } """ Specifies whether to display results for unavailable products. """ enum SearchUnavailableProductsType { """ Show unavailable products in the order that they're found. """ SHOW """ Exclude unavailable products. """ HIDE """ Show unavailable products after all other matching results. This is the default. """ LAST } """ Specifies the list of resource fields to search. """ enum SearchableField { """ Author of the page or article. """ AUTHOR """ Body of the page or article or product description or collection description. """ BODY """ Product type. """ PRODUCT_TYPE """ Tag associated with the product or article. """ TAG """ Title of the page or article or product title or collection title. """ TITLE """ Variant barcode. """ VARIANTS_BARCODE """ Variant SKU. """ VARIANTS_SKU """ Variant title. """ VARIANTS_TITLE """ Product vendor. """ VENDOR } """ 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 } """ Represents a valid selling plan interval. """ enum SellingPlanInterval { """ Day interval. """ DAY """ Month interval. """ MONTH """ Week interval. """ WEEK """ Year interval. """ YEAR } """ The payment frequency for a Shop Pay Installments Financing Plan. """ enum ShopPayInstallmentsFinancingPlanFrequency { """ Weekly payment frequency. """ WEEKLY """ Monthly payment frequency. """ MONTHLY } """ The loan type for a Shop Pay Installments Financing Plan Term. """ enum ShopPayInstallmentsLoan { """ An interest-bearing loan type. """ INTEREST """ A split-pay loan type. """ SPLIT_PAY """ A zero-percent loan type. """ ZERO_PERCENT } """ Represents the delivery method type for a Shop Pay payment request. """ enum ShopPayPaymentRequestDeliveryMethodType { """ The delivery method type is shipping. """ SHIPPING """ The delivery method type is pickup. """ PICKUP } """ The types of resources potentially present in a sitemap. """ enum SitemapType { """ Products present in the sitemap. """ PRODUCT """ Collections present in the sitemap. """ COLLECTION """ Pages present in the sitemap. """ PAGE """ Metaobjects present in the sitemap. Only metaobject types with the [`renderable` capability](https://shopify.dev/docs/apps/build/custom-data/metaobjects/use-metaobject-capabilities#render-metaobjects-as-web-pages) are included in sitemap. """ METAOBJECT """ Blogs present in the sitemap. """ BLOG """ Articles present in the sitemap. """ ARTICLE } """ The code of the error that occurred during cart submit for completion. """ enum SubmissionErrorCode { ERROR NO_DELIVERY_GROUP_SELECTED BUYER_IDENTITY_EMAIL_IS_INVALID BUYER_IDENTITY_EMAIL_REQUIRED BUYER_IDENTITY_PHONE_IS_INVALID DELIVERY_ADDRESS1_INVALID DELIVERY_ADDRESS1_REQUIRED DELIVERY_ADDRESS1_TOO_LONG DELIVERY_ADDRESS2_INVALID DELIVERY_ADDRESS2_REQUIRED DELIVERY_ADDRESS2_TOO_LONG DELIVERY_CITY_INVALID DELIVERY_CITY_REQUIRED DELIVERY_CITY_TOO_LONG DELIVERY_COMPANY_INVALID DELIVERY_COMPANY_REQUIRED DELIVERY_COMPANY_TOO_LONG DELIVERY_COUNTRY_REQUIRED DELIVERY_FIRST_NAME_INVALID DELIVERY_FIRST_NAME_REQUIRED DELIVERY_FIRST_NAME_TOO_LONG DELIVERY_INVALID_POSTAL_CODE_FOR_COUNTRY DELIVERY_INVALID_POSTAL_CODE_FOR_ZONE DELIVERY_LAST_NAME_INVALID DELIVERY_LAST_NAME_REQUIRED DELIVERY_LAST_NAME_TOO_LONG DELIVERY_NO_DELIVERY_AVAILABLE DELIVERY_NO_DELIVERY_AVAILABLE_FOR_MERCHANDISE_LINE DELIVERY_OPTIONS_PHONE_NUMBER_INVALID DELIVERY_OPTIONS_PHONE_NUMBER_REQUIRED DELIVERY_PHONE_NUMBER_INVALID DELIVERY_PHONE_NUMBER_REQUIRED DELIVERY_POSTAL_CODE_INVALID DELIVERY_POSTAL_CODE_REQUIRED DELIVERY_ZONE_NOT_FOUND DELIVERY_ZONE_REQUIRED_FOR_COUNTRY DELIVERY_ADDRESS_REQUIRED MERCHANDISE_NOT_APPLICABLE MERCHANDISE_LINE_LIMIT_REACHED MERCHANDISE_NOT_ENOUGH_STOCK_AVAILABLE MERCHANDISE_OUT_OF_STOCK MERCHANDISE_PRODUCT_NOT_PUBLISHED PAYMENTS_ADDRESS1_INVALID PAYMENTS_ADDRESS1_REQUIRED PAYMENTS_ADDRESS1_TOO_LONG PAYMENTS_ADDRESS2_INVALID PAYMENTS_ADDRESS2_REQUIRED PAYMENTS_ADDRESS2_TOO_LONG PAYMENTS_CITY_INVALID PAYMENTS_CITY_REQUIRED PAYMENTS_CITY_TOO_LONG PAYMENTS_COMPANY_INVALID PAYMENTS_COMPANY_REQUIRED PAYMENTS_COMPANY_TOO_LONG PAYMENTS_COUNTRY_REQUIRED PAYMENTS_CREDIT_CARD_BASE_EXPIRED PAYMENTS_CREDIT_CARD_BASE_GATEWAY_NOT_SUPPORTED PAYMENTS_CREDIT_CARD_BASE_INVALID_START_DATE_OR_ISSUE_NUMBER_FOR_DEBIT PAYMENTS_CREDIT_CARD_BRAND_NOT_SUPPORTED PAYMENTS_CREDIT_CARD_FIRST_NAME_BLANK PAYMENTS_CREDIT_CARD_GENERIC PAYMENTS_CREDIT_CARD_LAST_NAME_BLANK PAYMENTS_CREDIT_CARD_MONTH_INCLUSION PAYMENTS_CREDIT_CARD_NAME_INVALID PAYMENTS_CREDIT_CARD_NUMBER_INVALID PAYMENTS_CREDIT_CARD_NUMBER_INVALID_FORMAT PAYMENTS_CREDIT_CARD_SESSION_ID PAYMENTS_CREDIT_CARD_VERIFICATION_VALUE_BLANK PAYMENTS_CREDIT_CARD_VERIFICATION_VALUE_INVALID_FOR_CARD_TYPE PAYMENTS_CREDIT_CARD_YEAR_EXPIRED PAYMENTS_CREDIT_CARD_YEAR_INVALID_EXPIRY_YEAR PAYMENTS_FIRST_NAME_INVALID PAYMENTS_FIRST_NAME_REQUIRED PAYMENTS_FIRST_NAME_TOO_LONG PAYMENTS_INVALID_POSTAL_CODE_FOR_COUNTRY PAYMENTS_INVALID_POSTAL_CODE_FOR_ZONE PAYMENTS_LAST_NAME_INVALID PAYMENTS_LAST_NAME_REQUIRED PAYMENTS_LAST_NAME_TOO_LONG PAYMENTS_METHOD_UNAVAILABLE PAYMENTS_METHOD_REQUIRED PAYMENTS_UNACCEPTABLE_PAYMENT_AMOUNT PAYMENTS_PHONE_NUMBER_INVALID PAYMENTS_PHONE_NUMBER_REQUIRED PAYMENTS_POSTAL_CODE_INVALID PAYMENTS_POSTAL_CODE_REQUIRED PAYMENTS_SHOPIFY_PAYMENTS_REQUIRED PAYMENTS_WALLET_CONTENT_MISSING PAYMENTS_BILLING_ADDRESS_ZONE_NOT_FOUND PAYMENTS_BILLING_ADDRESS_ZONE_REQUIRED_FOR_COUNTRY """ Redirect to checkout required to complete this action. """ REDIRECT_TO_CHECKOUT_REQUIRED TAXES_MUST_BE_DEFINED TAXES_LINE_ID_NOT_FOUND TAXES_DELIVERY_GROUP_ID_NOT_FOUND """ Validation failed. """ VALIDATION_CUSTOM } """ The accepted types of unit of measurement. """ enum UnitPriceMeasurementMeasuredType { """ Unit of measurements representing volumes. """ VOLUME """ Unit of measurements representing weights. """ WEIGHT """ Unit of measurements representing lengths. """ LENGTH """ Unit of measurements representing areas. """ AREA """ Unit of measurements representing counts. """ COUNT """ The type of measurement is unknown. Upgrade to the latest version of the API to resolve this type. """ UNKNOWN } """ The valid units of measurement for a unit price measurement. """ enum UnitPriceMeasurementMeasuredUnit { """ 1000 milliliters equals 1 liter. """ ML """ 100 centiliters equals 1 liter. """ CL """ Metric system unit of volume. """ L """ 1 cubic meter equals 1000 liters. """ M3 """ Imperial system unit of volume (U.S. customary unit). """ FLOZ """ 1 pint equals 16 fluid ounces (U.S. customary unit). """ PT """ 1 quart equals 32 fluid ounces (U.S. customary unit). """ QT """ 1 gallon equals 128 fluid ounces (U.S. customary unit). """ GAL """ 1000 milligrams equals 1 gram. """ MG """ Metric system unit of weight. """ G """ 1 kilogram equals 1000 grams. """ KG """ Imperial system unit of weight. """ LB """ 16 ounces equals 1 pound. """ OZ """ 1000 millimeters equals 1 meter. """ MM """ 100 centimeters equals 1 meter. """ CM """ Metric system unit of length. """ M """ Imperial system unit of length. """ IN """ 1 foot equals 12 inches. """ FT """ 1 yard equals 36 inches. """ YD """ Metric system unit of area. """ M2 """ Imperial system unit of area. """ FT2 """ 1 item, a unit of count. """ ITEM """ The unit of measurement is unknown. Upgrade to the latest version of the API to resolve this unit. """ UNKNOWN } """ Systems of weights and measures. """ enum UnitSystem { """ Imperial system of weights and measures. """ IMPERIAL_SYSTEM """ Metric system of weights and measures. """ METRIC_SYSTEM } """ Possible error codes that can be returned by `ShopPayPaymentRequestSessionUserErrors`. """ enum UserErrorsShopPayPaymentRequestSessionUserErrorsCode { """ Payment request input is invalid. """ PAYMENT_REQUEST_INVALID_INPUT """ Payment request not found. """ PAYMENT_REQUEST_NOT_FOUND """ Idempotency key has already been used. """ IDEMPOTENCY_KEY_ALREADY_USED } """ Units of measurement for weight, supporting both metric and imperial systems. Used by [`ProductVariant`](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant) to specify the unit for the variant's weight value. """ 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 input fields for submitting Apple Pay payment method information for checkout. """ input ApplePayWalletContentInput { """ The customer's billing address. """ billingAddress: MailingAddressInput! """ The data for the Apple Pay wallet. """ data: String! """ The header data for the Apple Pay wallet. """ header: ApplePayWalletHeaderInput! """ The last digits of the card used to create the payment. """ lastDigits: String """ The signature for the Apple Pay wallet. """ signature: String! """ The version for the Apple Pay wallet. """ version: String! } """ The input fields for submitting wallet payment method information for checkout. """ input ApplePayWalletHeaderInput { """ The application data for the Apple Pay wallet. """ applicationData: String """ The ephemeral public key for the Apple Pay wallet. """ ephemeralPublicKey: String! """ The public key hash for the Apple Pay wallet. """ publicKeyHash: String! """ The transaction ID for the Apple Pay wallet. """ transactionId: String! } """ A custom key-value pair that stores additional information on a [cart](https://shopify.dev/docs/api/storefront/current/objects/Cart) or [cart line](https://shopify.dev/docs/api/storefront/current/objects/CartLine). Attributes capture additional information like gift messages, special instructions, or custom order details. Learn more about [managing carts with the Storefront API](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/cart/manage). """ input AttributeInput { """ Key or name of the attribute. """ key: String! """ Value of the attribute. """ value: String! } """ Identifies a B2B buyer for the [`@inContext`](https://shopify.dev/docs/storefronts/headless/bring-your-own-stack/b2b) directive. Pass this input to contextualize Storefront API queries with data like B2B-specific pricing, quantity rules, and quantity price breaks. For B2B customers with access to multiple company locations, include the [`companyLocationId`](https://shopify.dev/docs/api/storefront/latest/input-objects/BuyerInput#fields-companyLocationId) to specify which location they're purchasing for. """ input BuyerInput { """ The customer access token retrieved from the [Customer Accounts API](https://shopify.dev/docs/api/customer#step-obtain-access-token). """ customerAccessToken: String! """ The identifier of the company location. """ companyLocationId: ID } """ Specifies a delivery address for a cart. Provide either a [`deliveryAddress`](https://shopify.dev/docs/api/storefront/current/input-objects/CartAddressInput#fields-deliveryAddress) with full address details, or a [`copyFromCustomerAddressId`](https://shopify.dev/docs/api/storefront/current/input-objects/CartAddressInput#fields-copyFromCustomerAddressId) to copy from an existing customer address. Used by [`CartSelectableAddressInput`](https://shopify.dev/docs/api/storefront/current/input-objects/CartSelectableAddressInput) and [`CartSelectableAddressUpdateInput`](https://shopify.dev/docs/api/storefront/current/input-objects/CartSelectableAddressUpdateInput). """ input CartAddressInput { """ A delivery address stored on this cart. """ deliveryAddress: CartDeliveryAddressInput """ Copies details from the customer address to an address on this cart. """ copyFromCustomerAddressId: ID } """ The input fields for identifying the buyer associated with a cart. Buyer identity determines [international pricing](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/markets/international-pricing) and should match the customer's shipping address. Used by [`cartCreate`](https://shopify.dev/docs/api/storefront/current/mutations/cartCreate) and [`cartBuyerIdentityUpdate`](https://shopify.dev/docs/api/storefront/current/mutations/cartBuyerIdentityUpdate) to set contact information, location, and checkout preferences. > Note: > Preferences prefill fields at checkout but don't sync back to the cart if overwritten. """ input CartBuyerIdentityInput { """ The email address of the buyer that is interacting with the cart. """ email: String """ The phone number of the buyer that is interacting with the cart. """ phone: String """ The company location of the buyer that is interacting with the cart. """ companyLocationId: ID """ The country where the buyer is located. """ countryCode: CountryCode """ The access token used to identify the customer associated with the cart. """ customerAccessToken: String """ A set of preferences tied to the buyer interacting with the cart. Preferences are used to prefill fields in at checkout to streamline information collection. Preferences are not synced back to the cart if they are overwritten. """ preferences: CartPreferencesInput } """ The input fields to create or update a cart address. """ input CartDeliveryAddressInput { """ The first line of the address. Typically the street address or PO Box number. """ address1: String """ The second line of the address. Typically the number of the apartment, suite, or unit. """ address2: String """ The name of the city, district, village, or town. """ city: String """ The name of the customer's company or organization. """ company: String """ The name of the country. """ countryCode: CountryCode """ The first name of the customer. """ firstName: String """ The last name of the customer. """ lastName: String """ A unique phone number for the customer. Formatted using E.164 standard. For example, _+16135551111_. """ phone: String """ The region of the address, such as the province, state, or district. """ provinceCode: String """ The zip or postal code of the address. """ zip: String } """ Preferred location used to find the closest pick up point based on coordinates. """ input CartDeliveryCoordinatesPreferenceInput { """ The geographic latitude for a given location. Coordinates are required in order to set pickUpHandle for pickup points. """ latitude: Float! """ The geographic longitude for a given location. Coordinates are required in order to set pickUpHandle for pickup points. """ longitude: Float! """ The two-letter code for the country of the preferred location. For example, US. """ countryCode: CountryCode! } """ The input fields for the cart's delivery properties. """ input CartDeliveryInput { """ Selectable addresses to present to the buyer on the cart. The input must not contain more than `250` values. """ addresses: [CartSelectableAddressInput!] } """ Delivery preferences can be used to prefill the delivery section at checkout. """ input CartDeliveryPreferenceInput { """ The preferred delivery methods such as shipping, local pickup or through pickup points. The input must not contain more than `250` values. """ deliveryMethod: [PreferenceDeliveryMethodType!] """ The pickup handle prefills checkout fields with the location for either local pickup or pickup points delivery methods. It accepts both location ID for local pickup and external IDs for pickup points. The input must not contain more than `250` values. """ pickupHandle: [String!] """ The coordinates of a delivery location in order of preference. """ coordinates: CartDeliveryCoordinatesPreferenceInput } """ The input fields for submitting direct payment method information for checkout. """ input CartDirectPaymentMethodInput { """ The customer's billing address. """ billingAddress: MailingAddressInput! """ The session ID for the direct payment method used to create the payment. """ sessionId: String! """ The source of the credit card payment. """ cardSource: CartCardSource """ Indicates if the customer has accepted the subscription terms. Defaults to false. """ acceptedSubscriptionTerms: Boolean = false } """ The input fields for submitting a billing address without a selected payment method. """ input CartFreePaymentMethodInput { """ The customer's billing address. """ billingAddress: MailingAddressInput! } """ The input fields for creating a [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart). Used by the [`cartCreate`](https://shopify.dev/docs/api/storefront/current/mutations/cartCreate) mutation. Accepts merchandise lines, discount codes, gift card codes, and a note. You can also set custom attributes, metafields, buyer identity for international pricing, and delivery addresses. """ input CartInput { """ An array of key-value pairs that contains additional information about the cart. The input must not contain more than `250` values. """ attributes: [AttributeInput!] """ A list of merchandise lines to add to the cart. The input must not contain more than `250` values. """ lines: [CartLineInput!] """ The case-insensitive discount codes that the customer added at checkout. The input must not contain more than `250` values. """ discountCodes: [String!] """ The case-insensitive gift card codes. The input must not contain more than `250` values. """ giftCardCodes: [String!] """ A note that's associated with the cart. For example, the note can be a personalized message to the buyer. """ note: String """ The customer associated with the cart. Used to determine [international pricing] (https://shopify.dev/custom-storefronts/internationalization/international-pricing). Buyer identity should match the customer's shipping address. """ buyerIdentity: CartBuyerIdentityInput """ The delivery-related fields for the cart. """ delivery: CartDeliveryInput """ The metafields to associate with this cart. The input must not contain more than `250` values. """ metafields: [CartInputMetafieldInput!] } """ The input fields for a cart metafield value to set. Cart metafields will be copied to order metafields at order creation time if there is a matching order metafield definition with the [`cart to order copyable`](https://shopify.dev/docs/apps/build/metafields/use-metafield-capabilities#cart-to-order-copyable) capability enabled. """ input CartInputMetafieldInput { """ The key name of the metafield. """ key: String! """ The data to store in the cart metafield. The data is always stored as a string, regardless of the metafield's type. """ value: String! """ The type of data that the cart metafield stores. The type of data must be a [supported type](https://shopify.dev/apps/metafields/types). """ type: String! } """ The input fields for adding a merchandise line to a cart. Each line represents a [`ProductVariant`](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant) the buyer intends to purchase, along with the quantity and optional [`SellingPlan`](https://shopify.dev/docs/api/storefront/current/objects/SellingPlan) for subscriptions. Used by the [`cartCreate`](https://shopify.dev/docs/api/storefront/current/mutations/cartCreate) mutation when creating a cart with initial items, and the [`cartLinesAdd`](https://shopify.dev/docs/api/storefront/current/mutations/cartLinesAdd) mutation when adding items to an existing cart. """ input CartLineInput { """ An array of key-value pairs that contains additional information about the merchandise line. The input must not contain more than `250` values. """ attributes: [AttributeInput!] """ The quantity of the merchandise. """ quantity: Int = 1 """ The ID of the merchandise that the buyer intends to purchase. """ merchandiseId: ID! """ The ID of the selling plan that the merchandise is being purchased with. """ sellingPlanId: ID """ The parent line item of the cart line. """ parent: CartLineParentInput } """ The parent line item of the cart line. """ input CartLineParentInput { """ The id of the parent line item. """ lineId: ID """ The ID of the parent line merchandise. """ merchandiseId: ID } """ The input fields for updating a merchandise line in a cart. Used by the [`cartLinesUpdate`](https://shopify.dev/docs/api/storefront/current/mutations/cartLinesUpdate) mutation. Specify the line item's [`id`](https://shopify.dev/docs/api/storefront/current/input-objects/CartLineUpdateInput#fields-id) along with any fields to modify. You can change the quantity, swap the merchandise, update custom attributes, or associate a different selling plan. """ input CartLineUpdateInput { """ The ID of the merchandise line. """ id: ID! """ The quantity of the line item. """ quantity: Int """ The ID of the merchandise for the line item. """ merchandiseId: ID """ An array of key-value pairs that contains additional information about the merchandise line. The input must not contain more than `250` values. """ attributes: [AttributeInput!] """ The ID of the selling plan that the merchandise is being purchased with. """ sellingPlanId: ID } """ The input fields to delete a cart metafield. """ input CartMetafieldDeleteInput { """ The ID of the cart resource. """ ownerId: ID! """ The key name of the cart metafield. Can either be a composite key (`namespace.key`) or a simple key that relies on the default app-reserved namespace. """ key: String! } """ The input fields for a cart metafield value to set. """ input CartMetafieldsSetInput { """ The ID of the cart resource. """ ownerId: ID! """ The key name of the cart metafield. This can either be a composite key (`namespace.key`) or a simple key that relies on the default app-reserved namespace. """ key: String! """ The data to store in the cart metafield. The data is always stored as a string, regardless of the metafield's type. """ value: String! """ The type of data that the cart metafield stores. The type of data must be a [supported type](https://shopify.dev/apps/metafields/types). """ type: String! } """ The input fields for updating the payment method that will be used to checkout. """ input CartPaymentInput { """ The amount that the customer will be charged at checkout. """ amount: MoneyInput! """ An ID of the order placed on the originating platform. Note that this value doesn't correspond to the Shopify Order ID. """ sourceIdentifier: String """ The input fields to use to checkout a cart without providing a payment method. Use this payment method input if the total cost of the cart is 0. """ freePaymentMethod: CartFreePaymentMethodInput """ The input fields to use when checking out a cart with a direct payment method (like a credit card). """ directPaymentMethod: CartDirectPaymentMethodInput """ The input fields to use when checking out a cart with a wallet payment method (like Shop Pay or Apple Pay). """ walletPaymentMethod: CartWalletPaymentMethodInput } """ The input fields represent preferences for the buyer that is interacting with the cart. """ input CartPreferencesInput { """ Delivery preferences can be used to prefill the delivery section in at checkout. """ delivery: CartDeliveryPreferenceInput """ Wallet preferences are used to populate relevant payment fields in the checkout flow. Accepted value: `["shop_pay"]`. The input must not contain more than `250` values. """ wallet: [String!] } """ The input fields for a selectable delivery address to present to the buyer. Used by [`CartDeliveryInput`](https://shopify.dev/docs/api/storefront/current/input-objects/CartDeliveryInput) when creating a cart with the [`cartCreate`](https://shopify.dev/docs/api/storefront/current/mutations/cartCreate) mutation. You can pre-select an address for the buyer, mark it as one-time use so it isn't saved after checkout, and specify how strictly the address should be validated. """ input CartSelectableAddressInput { """ Exactly one kind of delivery address. """ address: CartAddressInput! """ Sets exactly one address as pre-selected for the buyer. """ selected: Boolean """ When true, this delivery address will not be associated with the buyer after a successful checkout. """ oneTimeUse: Boolean """ Defines what kind of address validation is requested. """ validationStrategy: DeliveryAddressValidationStrategy = COUNTRY_CODE_ONLY } """ The input fields to update a line item on a cart. """ input CartSelectableAddressUpdateInput { """ The id of the selectable address. """ id: ID! """ Exactly one kind of delivery address. """ address: CartAddressInput """ Sets exactly one address as pre-selected for the buyer. """ selected: Boolean """ When true, this delivery address will not be associated with the buyer after a successful checkout. """ oneTimeUse: Boolean """ Defines what kind of address validation is requested. """ validationStrategy: DeliveryAddressValidationStrategy = COUNTRY_CODE_ONLY } """ The input fields for updating the selected delivery options for a delivery group. """ input CartSelectedDeliveryOptionInput { """ The ID of the cart delivery group. """ deliveryGroupId: ID! """ The handle of the selected delivery option. """ deliveryOptionHandle: String! } """ The input fields for submitting wallet payment method information for checkout. """ input CartWalletPaymentMethodInput { """ The payment method information for the Apple Pay wallet. """ applePayWalletContent: ApplePayWalletContentInput """ The payment method information for the Shop Pay wallet. """ shopPayWalletContent: ShopPayWalletContentInput } """ A filter used to view a subset of products in a collection matching a specific category value. """ input CategoryFilter { """ The id of the category to filter on. """ id: String! } """ The input fields for authenticating a customer with email and password. Used by the [`customerAccessTokenCreate`](https://shopify.dev/docs/api/storefront/current/mutations/customerAccessTokenCreate) mutation to generate a [`CustomerAccessToken`](https://shopify.dev/docs/api/storefront/current/objects/CustomerAccessToken), which is required to read or modify customer data. """ input CustomerAccessTokenCreateInput { """ The email associated to the customer. """ email: String! """ The login password to be used by the customer. """ password: String! } """ The input fields to activate a customer. """ input CustomerActivateInput { """ The activation token required to activate the customer. """ activationToken: String! """ New password that will be set during activation. """ password: String! } """ The input fields for creating a new [`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer) account. Used by the [`customerCreate`](https://shopify.dev/docs/api/storefront/current/mutations/customerCreate) mutation. For legacy customer accounts only and requires an email address and password. Optionally accepts the customer's name, phone number, and email marketing consent. > Caution: > The password is used for customer authentication. Ensure it's transmitted securely and never logged or stored in plain text. """ input CustomerCreateInput { """ The customer’s first name. """ firstName: String """ The customer’s last name. """ lastName: String """ The customer’s email. """ email: String! """ A unique phone number for the customer. Formatted using E.164 standard. For example, _+16135551111_. """ phone: String """ The login password used by the customer. """ password: String! """ Indicates whether the customer has consented to be sent marketing material via email. """ acceptsMarketing: Boolean } """ The input fields to reset a customer's password. """ input CustomerResetInput { """ The reset token required to reset the customer’s password. """ resetToken: String! """ New password that will be set as part of the reset password process. """ password: String! } """ The input fields for updating a [`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer). Used by the [`customerUpdate`](https://shopify.dev/docs/api/storefront/current/mutations/customerUpdate) mutation. > Caution: > Updating the password invalidates all existing access tokens, including the one used to perform the mutation. The response returns a new access token. Ensure your app handles the new token returned in the response to avoid logging the customer out. """ input CustomerUpdateInput { """ The customer’s first name. """ firstName: String """ The customer’s last name. """ lastName: String """ The customer’s email. """ email: String """ A unique phone number for the customer. Formatted using E.164 standard. For example, _+16135551111_. To remove the phone number, specify `null`. """ phone: String """ The login password used by the customer. """ password: String """ Indicates whether the customer has consented to be sent marketing material via email. """ acceptsMarketing: Boolean } """ The input fields for delivery address preferences. """ input DeliveryAddressInput { """ A delivery address preference of a buyer that is interacting with the cart. """ deliveryAddress: MailingAddressInput """ Whether the given delivery address is considered to be a one-time use address. One-time use addresses do not get persisted to the buyer's personal addresses when checking out. """ oneTimeUse: Boolean = false """ Defines what kind of address validation is requested. """ deliveryAddressValidationStrategy: DeliveryAddressValidationStrategy = COUNTRY_CODE_ONLY """ The ID of a customer address that is associated with the buyer that is interacting with the cart. """ customerAddressId: ID } """ The input fields used to specify a geographical location. """ input GeoCoordinateInput { """ The coordinate's latitude value. """ latitude: Float! """ The coordinate's longitude value. """ longitude: Float! } """ The input fields to identify a [`Metafield`](https://shopify.dev/docs/api/storefront/current/objects/Metafield) on an owner resource by namespace and key. Used as an argument to the [`metafields`](https://shopify.dev/docs/api/storefront/current/interfaces/HasMetafields#fields-metafields) field of the `HasMetafields` interface to retrieve multiple metafields in a single request. If you omit the namespace, then the [app-reserved namespace](https://shopify.dev/docs/apps/build/metafields#app-owned-metafields) is used by default. """ input HasMetafieldsIdentifier { """ The container the metafield belongs to. If omitted, the app-reserved namespace will be used. """ namespace: String """ The identifier for the metafield. """ key: String! } """ 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 } """ The input fields for creating or updating a [`MailingAddress`](https://shopify.dev/docs/api/storefront/current/objects/MailingAddress). Accepts standard address components including street address, city, province, country, and postal code, along with customer name and contact information. Used by the [`customerAddressCreate`](https://shopify.dev/docs/api/storefront/current/mutations/customerAddressCreate) and [`customerAddressUpdate`](https://shopify.dev/docs/api/storefront/current/mutations/customerAddressUpdate) mutations, and as part of [`DeliveryAddressInput`](https://shopify.dev/docs/api/storefront/current/input-objects/DeliveryAddressInput) for cart delivery preferences. """ input MailingAddressInput { """ The first line of the address. Typically the street address or PO Box number. """ address1: String """ The second line of the address. Typically the number of the apartment, suite, or unit. """ address2: String """ The name of the city, district, village, or town. """ city: String """ The name of the customer's company or organization. """ company: String """ The name of the country. """ country: String """ The first name of the customer. """ firstName: String """ The last name of the customer. """ lastName: String """ A unique phone number for the customer. Formatted using E.164 standard. For example, _+16135551111_. """ phone: String """ The region of the address, such as the province, state, or district. """ province: String """ The zip or postal code of the address. """ zip: String } """ Filters products in a collection by matching a specific metafield value. Used by the [`ProductFilter`](https://shopify.dev/docs/api/storefront/current/input-objects/ProductFilter) input's `productMetafield` and `variantMetafield` fields. Supports the following metafield types: `number_integer`, `number_decimal`, `single_line_text_field`, and `boolean`. """ 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! } """ The input fields used to retrieve a metaobject by handle. """ input MetaobjectHandleInput { """ The handle of the metaobject. """ handle: String! """ The type of the metaobject. """ type: String! } """ The input fields for a monetary value with currency. """ input MoneyInput { """ Decimal money amount. """ amount: Decimal! """ Currency of the money. """ currencyCode: CurrencyCode! } """ A price range for filtering products in a collection. Used by the [`ProductFilter`](https://shopify.dev/docs/api/storefront/current/input-objects/ProductFilter) input's [`price`](https://shopify.dev/docs/api/storefront/current/input-objects/ProductFilter#fields-price) field. > Note: Omitting the [maximum](https://shopify.dev/docs/api/storefront/currents/input-objects/PriceRangeFilter#fields-max) returns all products above the [minimum](https://shopify.dev/docs/api/storefront/current/input-objects/PriceRangeFilter#fields-min). """ input PriceRangeFilter { """ The minimum price in the range. Defaults to zero. """ min: Float = 0.0 """ The maximum price in the range. Empty indicates no max price. """ max: Float } """ The input fields for a filter used to view a subset of products in a collection. By default, the `available` and `price` filters are enabled. Filters are customized with the Shopify Search & Discovery app. Learn more about [customizing storefront filtering](https://help.shopify.com/manual/online-store/themes/customizing-themes/storefront-filters). """ input ProductFilter { """ Filter on if the product is available for sale. """ available: Boolean """ A variant option to filter on. """ variantOption: VariantOptionFilter """ A product category to filter on. """ category: CategoryFilter """ A standard product attribute metafield to filter on. """ taxonomyMetafield: TaxonomyMetafieldFilter """ 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 """ A product tag to filter on. """ tag: String } """ The input fields required for a selected option. """ input SelectedOptionInput { """ The product option’s name. """ name: String! """ The product option’s value. """ value: String! } """ The input fields to create a delivery method for a Shop Pay payment request. """ input ShopPayPaymentRequestDeliveryMethodInput { """ The code of the delivery method. """ code: String """ The label of the delivery method. """ label: String """ The detail of the delivery method. """ detail: String """ The amount for the delivery method. """ amount: MoneyInput """ The minimum delivery date for the delivery method. """ minDeliveryDate: ISO8601DateTime """ The maximum delivery date for the delivery method. """ maxDeliveryDate: ISO8601DateTime """ The detail about when the delivery may be expected. """ deliveryExpectationLabel: String } """ The input fields to create a discount for a Shop Pay payment request. """ input ShopPayPaymentRequestDiscountInput { """ The label of the discount. """ label: String """ The amount of the discount. """ amount: MoneyInput } """ The input fields to create an image for a Shop Pay payment request. """ input ShopPayPaymentRequestImageInput { """ The source URL of the image. """ url: String! """ The alt text of the image. """ alt: String } """ The input fields represent a Shop Pay payment request. """ input ShopPayPaymentRequestInput { """ The discount codes for the payment request. The input must not contain more than `250` values. """ discountCodes: [String!] """ The line items for the payment request. The input must not contain more than `250` values. """ lineItems: [ShopPayPaymentRequestLineItemInput!] """ The shipping lines for the payment request. The input must not contain more than `250` values. """ shippingLines: [ShopPayPaymentRequestShippingLineInput!] """ The total amount for the payment request. """ total: MoneyInput! """ The subtotal amount for the payment request. """ subtotal: MoneyInput! """ The discounts for the payment request order. The input must not contain more than `250` values. """ discounts: [ShopPayPaymentRequestDiscountInput!] """ The total shipping price for the payment request. """ totalShippingPrice: ShopPayPaymentRequestTotalShippingPriceInput """ The total tax for the payment request. """ totalTax: MoneyInput """ The delivery method type for the payment request. """ selectedDeliveryMethodType: ShopPayPaymentRequestDeliveryMethodType """ The locale for the payment request. """ locale: String! """ The presentment currency for the payment request. """ presentmentCurrency: CurrencyCode! """ The encrypted payment method for the payment request. """ paymentMethod: String } """ The input fields to create a line item for a Shop Pay payment request. """ input ShopPayPaymentRequestLineItemInput { """ The label of the line item. """ label: String """ The quantity of the line item. """ quantity: Int! """ The SKU of the line item. """ sku: String """ Whether the line item requires shipping. """ requiresShipping: Boolean """ The image of the line item. """ image: ShopPayPaymentRequestImageInput """ The original line price for the line item. """ originalLinePrice: MoneyInput """ The final line price for the line item. """ finalLinePrice: MoneyInput """ The line discounts for the line item. The input must not contain more than `250` values. """ lineDiscounts: [ShopPayPaymentRequestDiscountInput!] """ The original item price for the line item. """ originalItemPrice: MoneyInput """ The final item price for the line item. """ finalItemPrice: MoneyInput """ The item discounts for the line item. The input must not contain more than `250` values. """ itemDiscounts: [ShopPayPaymentRequestDiscountInput!] } """ The input fields to create a shipping line for a Shop Pay payment request. """ input ShopPayPaymentRequestShippingLineInput { """ The code of the shipping line. """ code: String """ The label of the shipping line. """ label: String """ The amount for the shipping line. """ amount: MoneyInput } """ The input fields to create a shipping total for a Shop Pay payment request. """ input ShopPayPaymentRequestTotalShippingPriceInput { """ The discounts for the shipping total. The input must not contain more than `250` values. """ discounts: [ShopPayPaymentRequestDiscountInput!] """ The original total for the shipping total. """ originalTotal: MoneyInput """ The final total for the shipping total. """ finalTotal: MoneyInput } """ The input fields for submitting Shop Pay payment method information for checkout. """ input ShopPayWalletContentInput { """ The customer's billing address. """ billingAddress: MailingAddressInput! """ Session token for transaction. """ sessionToken: String! } """ A filter used to view a subset of products in a collection matching a specific taxonomy metafield value. """ input TaxonomyMetafieldFilter { """ 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! } """ The input fields for a filter used to view a subset of products in a collection matching a specific variant option. """ input VariantOptionFilter { """ The name of the variant option to filter on. """ name: String! """ The value of the variant option to filter on. """ value: String! } """ The visitor's consent to data processing purposes for the shop. true means accepting the purposes, false means declining them, and null means that the visitor didn't express a preference. """ input VisitorConsent { """ The visitor accepts or rejects the preferences data processing purpose. """ preferences: Boolean """ The visitor accepts or rejects the analytics data processing purpose. """ analytics: Boolean """ The visitor accepts or rejects the first and third party marketing data processing purposes. """ marketing: Boolean """ The visitor accepts or rejects the sale or sharing of their data with third parties. """ saleOfData: Boolean } """ Defines the shared fields for items in a shopping cart. Implemented by [`CartLine`](https://shopify.dev/docs/api/storefront/current/objects/CartLine) for individual merchandise and [`ComponentizableCartLine`](https://shopify.dev/docs/api/storefront/current/objects/ComponentizableCartLine) for grouped merchandise like bundles. Each implementation includes the merchandise being purchased, quantity, cost breakdown, applied discounts, custom attributes, and any associated [`SellingPlan`](https://shopify.dev/docs/api/storefront/current/objects/SellingPlan). """ interface BaseCartLine implements Node { """ An attribute associated with the cart line. """ attribute(key: String!): Attribute """ The attributes associated with the cart line. Attributes are represented as key-value pairs. """ attributes: [Attribute!]! """ The cost of the merchandise that the buyer will pay for at checkout. The costs are subject to change and changes will be reflected at checkout. """ cost: CartLineCost! """ The discounts that have been applied to the cart line. """ discountAllocations: [CartDiscountAllocation!]! """ The estimated cost of the merchandise that the buyer will pay for at checkout. The estimated costs are subject to change and changes will be reflected at checkout. """ estimatedCost: CartLineEstimatedCost! @deprecated """ A globally-unique ID. """ id: ID! """ The merchandise that the buyer intends to purchase. """ merchandise: Merchandise! """ The quantity of the merchandise that the customer intends to purchase. """ quantity: Int! """ The selling plan associated with the cart line and the effect that each selling plan has on variants when they're purchased. """ sellingPlanAllocation: SellingPlanAllocation } """ A common interface for querying discount allocations regardless of how the discount was applied ([automatic](https://help.shopify.com/manual/discounts/discount-methods/automatic-discounts), [code](https://help.shopify.com/manual/discounts/discount-methods/discount-codes), or custom). Each implementation represents a different discount source. Tracks how a discount distributes across [cart lines](https://shopify.dev/docs/api/storefront/current/objects/CartLine). Each allocation includes the [`CartDiscountApplication`](https://shopify.dev/docs/api/storefront/current/objects/CartDiscountApplication) details, the discounted amount, and whether the discount targets line items or shipping. """ interface CartDiscountAllocation { """ The discount that have been applied on the cart line. """ discountApplication: CartDiscountApplication! @deprecated """ The discounted amount that has been applied to the cart line. """ discountedAmount: MoneyV2! """ The type of line that the discount is applicable towards. """ targetType: DiscountApplicationTargetType! } """ Captures the intent of a discount at the time it was applied. Each implementation represents a different discount source, such as [automatic discounts](https://help.shopify.com/manual/discounts/discount-methods/automatic-discounts), [discount codes](https://help.shopify.com/manual/discounts/discount-methods/discount-codes), and manual discounts. The actual discounted amount on a line item or shipping line is represented by the [`DiscountAllocation`](https://shopify.dev/docs/api/storefront/current/objects/DiscountAllocation) object, which references the discount application it originated from. """ interface DiscountApplication { """ The method by which the discount's value is allocated to its entitled items. """ allocationMethod: DiscountApplicationAllocationMethod! """ Which lines of targetType that the discount is allocated over. """ targetSelection: DiscountApplicationTargetSelection! """ The type of line that the discount is applicable towards. """ targetType: DiscountApplicationTargetType! """ The value of the discount application. """ value: PricingValue! } """ Represents an error in the input of a mutation. """ interface DisplayableError { """ The path to the input field that caused the error. """ field: [String!] """ The error message. """ message: String! } """ Implemented by resources that support custom metadata through [`Metafield`](https://shopify.dev/docs/api/storefront/current/objects/Metafield) objects. Types like [`Product`](https://shopify.dev/docs/api/storefront/current/objects/Product), [`Collection`](https://shopify.dev/docs/api/storefront/current/objects/Collection), and [`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer) implement this interface to provide consistent access to metafields. You can retrieve a [single metafield](https://shopify.dev/docs/api/storefront/current/interfaces/HasMetafields#fields-metafield) by namespace and key, or fetch [multiple metafields](https://shopify.dev/docs/api/storefront/current/interfaces/HasMetafields#fields-metafields) in a single request. If you omit the namespace, then the [app-reserved namespace](https://shopify.dev/docs/apps/build/metafields#app-owned-metafields) is used by default. """ interface HasMetafields { """ A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. """ metafield(namespace: String, key: String!): Metafield """ A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. """ metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]! } """ A common set of fields for media content associated with [products](https://shopify.dev/docs/api/storefront/current/objects/Product). Implementations include [`MediaImage`](https://shopify.dev/docs/api/storefront/current/objects/MediaImage) for Shopify-hosted images, [`Video`](https://shopify.dev/docs/api/storefront/current/objects/Video) for Shopify-hosted videos, [`ExternalVideo`](https://shopify.dev/docs/api/storefront/current/objects/ExternalVideo) for videos hosted on platforms like YouTube or Vimeo, and [`Model3d`](https://shopify.dev/docs/api/storefront/current/objects/Model3d) for 3D models. Each implementation shares fields for alt text, content type, and preview images, while adding type-specific fields like embed URLs for external videos or source files for 3D models. """ interface Media { """ A word or phrase to share the nature or contents of a media. """ alt: String """ A globally-unique ID. """ id: ID! """ The media content type. """ mediaContentType: MediaContentType! """ The presentation for a media. """ presentation: MediaPresentation """ The preview image for the media. """ previewImage: Image } """ Enables global object identification following the [Relay specification](https://relay.dev/graphql/objectidentification.htm#sec-Node-Interface). Any type implementing this interface has a globally-unique `id` field and can be fetched directly using the [`node`](https://shopify.dev/docs/api/storefront/current/queries/node) or [`nodes`](https://shopify.dev/docs/api/storefront/current/queries/nodes) queries. """ interface Node { """ A globally-unique ID. """ id: ID! } """ 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 the common fields for all sitemap resource types. """ interface SitemapResourceInterface { """ Resource's handle. """ handle: String! """ The date and time when the resource was updated. """ updatedAt: DateTime! } """ Represents a resource that you can track the origin of the search traffic. """ interface Trackable { """ URL parameters to be added to a page URL to track the origin of on-site search traffic for [analytics reporting](https://help.shopify.com/manual/reports-and-analytics/shopify-reports/report-types/default-reports/behaviour-reports). Returns a result when accessed through the [search](https://shopify.dev/docs/api/storefront/current/queries/search) or [predictiveSearch](https://shopify.dev/docs/api/storefront/current/queries/predictiveSearch) queries, otherwise returns null. """ trackingParameters: String } """ A version of the Shopify API. Each version has a unique handle in date-based format (YYYY-MM) or `unstable` for the development version. Shopify guarantees supported versions are stable. Unsupported versions include unstable and release candidate versions. Use the [`publicApiVersions`](https://shopify.dev/docs/api/storefront/current/queries/publicApiVersions) query to retrieve all available versions. Learn more about [Shopify API versioning](https://shopify.dev/docs/api/usage/versioning). """ type ApiVersion { """ The human-readable name of the version. """ displayName: String! """ The unique identifier of an ApiVersion. All supported API versions have a date-based (YYYY-MM) or `unstable` handle. """ handle: String! """ Whether the version is actively supported by Shopify. Supported API versions are guaranteed to be stable. Unsupported API versions include unstable, release candidate, and end-of-life versions that are marked as unsupported. For more information, refer to [Versioning](https://shopify.dev/api/usage/versioning). """ supported: Boolean! } """ Details about the gift card used on the checkout. """ type AppliedGiftCard implements Node { """ The amount that was taken from the gift card by applying it. """ amountUsed: MoneyV2! """ The amount that was taken from the gift card by applying it. """ amountUsedV2: MoneyV2! @deprecated """ The amount left on the gift card. """ balance: MoneyV2! """ The amount left on the gift card. """ balanceV2: MoneyV2! @deprecated """ A globally-unique ID. """ id: ID! """ The last characters of the gift card. """ lastCharacters: String! """ The amount that was applied to the checkout in its currency. """ presentmentAmountUsed: MoneyV2! } """ A post that belongs to a [`Blog`](https://shopify.dev/docs/api/storefront/current/objects/Blog). Each article includes content with optional HTML formatting, an excerpt for previews, [`ArticleAuthor`](https://shopify.dev/docs/api/storefront/current/objects/ArticleAuthor) information, and an associated [`Image`](https://shopify.dev/docs/api/storefront/current/objects/Image). Articles can be organized with tags and include [`SEO`](https://shopify.dev/docs/api/storefront/current/objects/SEO) metadata. You can manage [comments](https://shopify.dev/docs/api/storefront/current/objects/Comment) when the blog's comment policy enables them. """ type Article implements HasMetafields & Node & OnlineStorePublishable & Trackable { """ The article's author. """ author: ArticleAuthor! @deprecated """ The article's author. """ authorV2: ArticleAuthor """ The blog that the article belongs to. """ blog: Blog! """ List of comments posted on the article. """ comments(first: Int, after: String, last: Int, before: String, reverse: Boolean = false): CommentConnection! """ Stripped content of the article, single line with HTML tags removed. """ content(truncateAt: Int): String! """ The content of the article, complete with HTML formatting. """ contentHtml: HTML! """ Stripped excerpt of the article, single line with HTML tags removed. """ excerpt(truncateAt: Int): String """ The excerpt of the article, complete with HTML formatting. """ excerptHtml: HTML """ A human-friendly unique string for the Article automatically generated from its title. """ handle: String! """ A globally-unique ID. """ id: ID! """ The image associated with the article. """ image: Image """ A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. """ metafield(namespace: String, key: String!): Metafield """ A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. """ 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 """ The date and time when the article was published. """ publishedAt: DateTime! """ The article’s SEO information. """ seo: SEO """ A categorization that a article can be tagged with. """ tags: [String!]! """ The article’s name. """ title: String! """ URL parameters to be added to a page URL to track the origin of on-site search traffic for [analytics reporting](https://help.shopify.com/manual/reports-and-analytics/shopify-reports/report-types/default-reports/behaviour-reports). Returns a result when accessed through the [search](https://shopify.dev/docs/api/storefront/current/queries/search) or [predictiveSearch](https://shopify.dev/docs/api/storefront/current/queries/predictiveSearch) queries, otherwise returns null. """ trackingParameters: String } """ The author of an article. """ type ArticleAuthor { """ The author's bio. """ bio: String """ The author’s email. """ email: String! """ The author's first name. """ firstName: String! """ The author's last name. """ lastName: String! """ The author's full name. """ name: String! } """ An auto-generated type for paginating through multiple Articles. """ type ArticleConnection { """ A list of edges. """ edges: [ArticleEdge!]! """ A list of the nodes contained in ArticleEdge. """ nodes: [Article!]! """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An auto-generated type which holds one Article and a cursor during pagination. """ type ArticleEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of ArticleEdge. """ node: Article! } """ A custom key-value pair for storing additional information on [carts](https://shopify.dev/docs/api/storefront/current/objects/Cart), [cart lines](https://shopify.dev/docs/api/storefront/current/objects/CartLine), [orders](https://shopify.dev/docs/api/storefront/current/objects/Order), and [order line items](https://shopify.dev/docs/api/storefront/current/objects/OrderLineItem). Common uses include gift wrapping requests, customer notes, and tracking whether a customer is a first-time buyer. Attributes set on a cart carry over to the resulting order after checkout. Use the [`cartAttributesUpdate`](https://shopify.dev/docs/api/storefront/current/mutations/cartAttributesUpdate) mutation to add or modify cart attributes. For a step-by-step guide, see [managing carts with the Storefront API](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/cart/manage). """ type Attribute { """ The key or name of the attribute. For example, `"customersFirstOrder"`. """ key: String! """ The value of the attribute. For example, `"true"`. """ value: String } """ An [automatic discount](https://help.shopify.com/manual/discounts/discount-methods/automatic-discounts) applied to a cart or checkout without requiring a discount code. Implements the [`DiscountApplication`](https://shopify.dev/docs/api/storefront/current/interfaces/DiscountApplication) interface. Includes the discount's title, value, and allocation details that specify how the discount amount distributes across entitled line items or shipping lines. """ type AutomaticDiscountApplication implements DiscountApplication { """ The method by which the discount's value is allocated to its entitled items. """ allocationMethod: DiscountApplicationAllocationMethod! """ Which lines of targetType that the discount is allocated over. """ targetSelection: DiscountApplicationTargetSelection! """ The type of line that the discount is applicable towards. """ targetType: DiscountApplicationTargetType! """ The title of the application. """ title: String! """ The value of the discount application. """ value: PricingValue! } """ An auto-generated type for paginating through multiple BaseCartLines. """ type BaseCartLineConnection { """ A list of edges. """ edges: [BaseCartLineEdge!]! """ A list of the nodes contained in BaseCartLineEdge. """ nodes: [BaseCartLine!]! """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An auto-generated type which holds one BaseCartLine and a cursor during pagination. """ type BaseCartLineEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of BaseCartLineEdge. """ node: BaseCartLine! } """ A blog container for [`Article`](https://shopify.dev/docs/api/storefront/current/objects/Article) objects. Stores can have multiple blogs, for example to organize content by topic or purpose. Each blog provides access to its articles, contributing [`ArticleAuthor`](https://shopify.dev/docs/api/storefront/current/objects/ArticleAuthor) objects, and [`SEO`](https://shopify.dev/docs/api/storefront/current/objects/SEO) information. You can retrieve articles individually [by handle](https://shopify.dev/docs/api/storefront/current/objects/Blog#field-Blog.fields.articleByHandle) or as a [paginated list](https://shopify.dev/docs/api/storefront/current/objects/Blog#field-Blog.fields.articles). """ type Blog implements HasMetafields & Node & OnlineStorePublishable { """ Find an article by its handle. """ articleByHandle(handle: String!): Article """ List of the blog's articles. """ articles(first: Int, after: String, last: Int, before: String, reverse: Boolean = false, sortKey: ArticleSortKeys = ID, query: String): ArticleConnection! """ The authors who have contributed to the blog. """ authors: [ArticleAuthor!]! """ A human-friendly unique string for the Blog automatically generated from its title. """ handle: String! """ A globally-unique ID. """ id: ID! """ A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. """ metafield(namespace: String, key: String!): Metafield """ A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. """ 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 """ The blog's SEO information. """ seo: SEO """ The blogs’s title. """ title: String! } """ An auto-generated type for paginating through multiple Blogs. """ type BlogConnection { """ A list of edges. """ edges: [BlogEdge!]! """ A list of the nodes contained in BlogEdge. """ nodes: [Blog!]! """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An auto-generated type which holds one Blog and a cursor during pagination. """ type BlogEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of BlogEdge. """ node: Blog! } """ The store's [branding configuration](https://help.shopify.com/manual/promoting-marketing/managing-brand-assets), such as logos, colors, and slogan. Access this through the [`Shop`](https://shopify.dev/docs/api/storefront/current/objects/Shop#field-Shop.fields.brand) object to display consistent brand assets across your storefront. """ type Brand { """ The colors of the store's brand. """ colors: BrandColors! """ The store's cover image. """ coverImage: MediaImage """ The store's default logo. """ logo: MediaImage """ The store's short description. """ shortDescription: String """ The store's slogan. """ slogan: String """ The store's preferred logo for square UI elements. """ squareLogo: MediaImage } """ A group of related colors for the shop's brand. """ type BrandColorGroup { """ The background color. """ background: Color """ The foreground color. """ foreground: Color } """ The colors of the shop's brand. """ type BrandColors { """ The shop's primary brand colors. """ primary: [BrandColorGroup!]! """ The shop's secondary brand colors. """ secondary: [BrandColorGroup!]! } """ A cart represents the merchandise that a buyer intends to purchase, and the estimated cost associated with the cart, throughout a customer's session. Use the [`checkoutUrl`](https://shopify.dev/docs/api/storefront/current/objects/Cart#field-checkoutUrl) field to direct buyers to Shopify's web checkout to complete their purchase. Learn more about [interacting with carts](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/cart/manage). """ type Cart implements HasMetafields & Node { """ The gift cards that have been applied to the cart. """ appliedGiftCards: [AppliedGiftCard!]! """ An attribute associated with the cart. """ attribute(key: String!): Attribute """ The attributes associated with the cart. Attributes are represented as key-value pairs. """ attributes: [Attribute!]! """ Information about the buyer that's interacting with the cart. """ buyerIdentity: CartBuyerIdentity! """ The URL of the checkout for the cart. """ checkoutUrl: URL! """ The estimated costs that the buyer will pay at checkout. The costs are subject to change and changes will be reflected at checkout. The `cost` field uses the `buyerIdentity` field to determine [international pricing](https://shopify.dev/custom-storefronts/internationalization/international-pricing). """ cost: CartCost! """ The date and time when the cart was created. """ createdAt: DateTime! """ The delivery properties of the cart. """ delivery: CartDelivery! """ The delivery groups available for the cart, based on the buyer identity default delivery address preference or the default address of the logged-in customer. """ deliveryGroups(first: Int, after: String, last: Int, before: String, reverse: Boolean = false, withCarrierRates: Boolean = false): CartDeliveryGroupConnection! """ The discounts that have been applied to the entire cart. """ discountAllocations: [CartDiscountAllocation!]! @deprecated """ The case-insensitive discount codes that the customer added at checkout. """ discountCodes: [CartDiscountCode!]! """ The estimated costs that the buyer will pay at checkout. The estimated costs are subject to change and changes will be reflected at checkout. The `estimatedCost` field uses the `buyerIdentity` field to determine [international pricing](https://shopify.dev/custom-storefronts/internationalization/international-pricing). """ estimatedCost: CartEstimatedCost! @deprecated """ A globally-unique ID. """ id: ID! """ A list of lines containing information about the items the customer intends to purchase. """ lines(first: Int, after: String, last: Int, before: String, reverse: Boolean = false): BaseCartLineConnection! """ A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. """ metafield(namespace: String, key: String!): Metafield """ A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. """ metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]! """ A note that's associated with the cart. For example, the note can be a personalized message to the buyer. """ note: String """ The total number of items in the cart. """ totalQuantity: Int! """ The date and time when the cart was updated. """ updatedAt: DateTime! } """ Return type for `cartAttributesUpdate` mutation. """ type CartAttributesUpdatePayload { """ The updated cart. """ cart: Cart """ The list of errors that occurred from executing the mutation. """ userErrors: [CartUserError!]! """ A list of warnings that occurred during the mutation. """ warnings: [CartWarning!]! } """ A discount allocation [that applies automatically](https://help.shopify.com/manual/discounts/discount-methods/automatic-discounts) to a cart line when configured conditions are met. Unlike [`CartCodeDiscountAllocation`](https://shopify.dev/docs/api/storefront/current/objects/CartCodeDiscountAllocation), automatic discounts don't require customers to enter a code. """ type CartAutomaticDiscountAllocation implements CartDiscountAllocation { """ The discount that have been applied on the cart line. """ discountApplication: CartDiscountApplication! @deprecated """ The discounted amount that has been applied to the cart line. """ discountedAmount: MoneyV2! """ The type of line that the discount is applicable towards. """ targetType: DiscountApplicationTargetType! """ The title of the allocated discount. """ title: String! } """ Return type for `cartBillingAddressUpdate` mutation. """ type CartBillingAddressUpdatePayload { """ The updated cart. """ cart: Cart """ The list of errors that occurred from executing the mutation. """ userErrors: [CartUserError!]! """ A list of warnings that occurred during the mutation. """ warnings: [CartWarning!]! } """ Contact information about the buyer interacting with a [cart](https://shopify.dev/docs/api/storefront/current/objects/Cart). The buyer's country determines [international pricing](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/markets/international-pricing) and should match their shipping address. For B2B scenarios, the [`purchasingCompany`](https://shopify.dev/docs/api/storefront/current/objects/CartBuyerIdentity#field-CartBuyerIdentity.fields.purchasingCompany) field identifies the company and location on whose behalf a business customer purchases. The [`preferences`](https://shopify.dev/docs/api/storefront/current/objects/CartBuyerIdentity#field-CartBuyerIdentity.fields.preferences) field stores delivery and wallet settings that prefill checkout fields to streamline the buying process. """ type CartBuyerIdentity { """ The country where the buyer is located. """ countryCode: CountryCode """ The customer account associated with the cart. """ customer: Customer """ An ordered set of delivery addresses tied to the buyer that is interacting with the cart. The rank of the preferences is determined by the order of the addresses in the array. Preferences can be used to populate relevant fields in the checkout flow. As of the `2025-01` release, `buyerIdentity.deliveryAddressPreferences` is deprecated. Delivery addresses are now part of the `CartDelivery` object and managed with three new mutations: - `cartDeliveryAddressAdd` - `cartDeliveryAddressUpdate` - `cartDeliveryAddressDelete` """ deliveryAddressPreferences: [DeliveryAddress!]! @deprecated """ The email address of the buyer that's interacting with the cart. """ email: String """ The phone number of the buyer that's interacting with the cart. """ phone: String """ A set of preferences tied to the buyer interacting with the cart. Preferences are used to prefill fields in at checkout to streamline information collection. Preferences are not synced back to the cart if they are overwritten. """ preferences: CartPreferences """ The purchasing company associated with the cart. """ purchasingCompany: PurchasingCompany } """ Return type for `cartBuyerIdentityUpdate` mutation. """ type CartBuyerIdentityUpdatePayload { """ The updated cart. """ cart: Cart """ The list of errors that occurred from executing the mutation. """ userErrors: [CartUserError!]! """ A list of warnings that occurred during the mutation. """ warnings: [CartWarning!]! } """ Return type for `cartClone` mutation. """ type CartClonePayload { """ The newly created cart without PII. This is a different cart from the source. """ cart: Cart """ The list of errors that occurred from executing the mutation. """ userErrors: [CartUserError!]! """ A list of warnings that occurred during the mutation. """ warnings: [CartWarning!]! } """ A discount allocation applied to a cart line when a customer enters a [discount code](https://help.shopify.com/manual/discounts/discount-methods/discount-codes). """ type CartCodeDiscountAllocation implements CartDiscountAllocation { """ The code used to apply the discount. """ code: String! """ The discount that have been applied on the cart line. """ discountApplication: CartDiscountApplication! @deprecated """ The discounted amount that has been applied to the cart line. """ discountedAmount: MoneyV2! """ The type of line that the discount is applicable towards. """ targetType: DiscountApplicationTargetType! } """ The required completion action to checkout a cart. """ type CartCompletionActionRequired { """ The action required to complete the cart completion attempt. """ action: CartCompletionAction """ The ID of the cart completion attempt. """ id: String! } """ A failed completion to checkout a cart. """ type CartCompletionFailed { """ The errors that caused the checkout to fail. """ errors: [CompletionError!]! """ The ID of the cart completion attempt. """ id: String! } """ A cart checkout completion that's still processing. """ type CartCompletionProcessing { """ The ID of the cart completion attempt. """ id: String! """ The number of milliseconds to wait before polling again. """ pollDelay: Int! } """ A successful completion to checkout a cart and a created order. """ type CartCompletionSuccess { """ The date and time when the job completed. """ completedAt: DateTime """ The ID of the cart completion attempt. """ id: String! """ The ID of the order that's created in Shopify. """ orderId: ID! """ The URL of the order confirmation in Shopify. """ orderUrl: URL! } """ The estimated costs that a buyer will pay at checkout. The `Cart` object's [`cost`](https://shopify.dev/docs/api/storefront/current/objects/Cart#field-Cart.fields.cost) field returns this. The costs are subject to change and changes will be reflected at checkout. Costs reflect [international pricing](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/markets/international-pricing) based on the buyer's context. Amounts include the subtotal before taxes and cart-level discounts, the checkout charge amount excluding deferred payments, and the total. The subtotal and total amounts each include a corresponding boolean field indicating whether the value is an estimate. """ type CartCost { """ The estimated amount, before taxes and discounts, for the customer to pay at checkout. The checkout charge amount doesn't include any deferred payments that'll be paid at a later date. If the cart has no deferred payments, then the checkout charge amount is equivalent to `subtotalAmount`. """ checkoutChargeAmount: MoneyV2! """ The amount, before taxes and cart-level discounts, for the customer to pay. """ subtotalAmount: MoneyV2! """ Whether the subtotal amount is estimated. """ subtotalAmountEstimated: Boolean! """ The total amount for the customer to pay. """ totalAmount: MoneyV2! """ Whether the total amount is estimated. """ totalAmountEstimated: Boolean! """ The duty amount for the customer to pay at checkout. """ totalDutyAmount: MoneyV2 @deprecated """ Whether the total duty amount is estimated. """ totalDutyAmountEstimated: Boolean! @deprecated """ The tax amount for the customer to pay at checkout. """ totalTaxAmount: MoneyV2 @deprecated """ Whether the total tax amount is estimated. """ totalTaxAmountEstimated: Boolean! @deprecated } """ Return type for `cartCreate` mutation. """ type CartCreatePayload { """ The new cart. """ cart: Cart """ The list of errors that occurred from executing the mutation. """ userErrors: [CartUserError!]! """ A list of warnings that occurred during the mutation. """ warnings: [CartWarning!]! } """ The discounts automatically applied to the cart line based on prerequisites that have been met. """ type CartCustomDiscountAllocation implements CartDiscountAllocation { """ The discount that have been applied on the cart line. """ discountApplication: CartDiscountApplication! @deprecated """ The discounted amount that has been applied to the cart line. """ discountedAmount: MoneyV2! """ The type of line that the discount is applicable towards. """ targetType: DiscountApplicationTargetType! """ The title of the allocated discount. """ title: String! } """ The delivery properties of the cart. """ type CartDelivery { """ Selectable addresses to present to the buyer on the cart. """ addresses(selected: Boolean = false): [CartSelectableAddress!]! } """ Represents a mailing address for customers and shipping. """ type CartDeliveryAddress { """ The first line of the address. Typically the street address or PO Box number. """ address1: String """ The second line of the address. Typically the number of the apartment, suite, or unit. """ address2: String """ The name of the city, district, village, or town. """ city: String """ The name of the customer's company or organization. """ company: String """ The two-letter code for the country of the address. For example, US. """ countryCode: String """ The first name of the customer. """ firstName: String """ A formatted version of the address, customized by the provided arguments. """ formatted(withName: Boolean = false, withCompany: Boolean = true): [String!]! """ A comma-separated list of the values for city, province, and country. """ formattedArea: String """ The last name of the customer. """ lastName: String """ The latitude coordinate of the customer address. """ latitude: Float """ The longitude coordinate of the customer address. """ longitude: Float """ The full name of the customer, based on firstName and lastName. """ name: String """ A unique phone number for the customer. Formatted using E.164 standard. For example, _+16135551111_. """ phone: String """ The alphanumeric code for the region. For example, ON. """ provinceCode: String """ The zip or postal code of the address. """ zip: String } """ Return type for `cartDeliveryAddressesAdd` mutation. """ type CartDeliveryAddressesAddPayload { """ The updated cart. """ cart: Cart """ The list of errors that occurred from executing the mutation. """ userErrors: [CartUserError!]! """ A list of warnings that occurred during the mutation. """ warnings: [CartWarning!]! } """ Return type for `cartDeliveryAddressesRemove` mutation. """ type CartDeliveryAddressesRemovePayload { """ The updated cart. """ cart: Cart """ The list of errors that occurred from executing the mutation. """ userErrors: [CartUserError!]! """ A list of warnings that occurred during the mutation. """ warnings: [CartWarning!]! } """ Return type for `cartDeliveryAddressesReplace` mutation. """ type CartDeliveryAddressesReplacePayload { """ The updated cart. """ cart: Cart """ The list of errors that occurred from executing the mutation. """ userErrors: [CartUserError!]! """ A list of warnings that occurred during the mutation. """ warnings: [CartWarning!]! } """ Return type for `cartDeliveryAddressesUpdate` mutation. """ type CartDeliveryAddressesUpdatePayload { """ The updated cart. """ cart: Cart """ The list of errors that occurred from executing the mutation. """ userErrors: [CartUserError!]! """ A list of warnings that occurred during the mutation. """ warnings: [CartWarning!]! } """ Preferred location used to find the closest pick up point based on coordinates. """ type CartDeliveryCoordinatesPreference { """ The two-letter code for the country of the preferred location. For example, US. """ countryCode: CountryCode! """ The geographic latitude for a given location. Coordinates are required in order to set pickUpHandle for pickup points. """ latitude: Float! """ The geographic longitude for a given location. Coordinates are required in order to set pickUpHandle for pickup points. """ longitude: Float! } """ Groups cart line items that share the same delivery destination. Each group provides the available [`CartDeliveryOption`](https://shopify.dev/docs/api/storefront/current/objects/CartDeliveryOption) choices for that address, along with the customer's selected option. Access through the [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart) object's `deliveryGroups` field. Items are grouped by merchandise type (one-time purchase vs subscription), allowing different delivery methods for each. """ type CartDeliveryGroup { """ A list of cart lines for the delivery group. """ cartLines(first: Int, after: String, last: Int, before: String, reverse: Boolean = false): BaseCartLineConnection! """ The destination address for the delivery group. """ deliveryAddress: MailingAddress! """ The delivery options available for the delivery group. """ deliveryOptions: [CartDeliveryOption!]! """ The type of merchandise in the delivery group. """ groupType: CartDeliveryGroupType! """ The ID for the delivery group. """ id: ID! """ The selected delivery option for the delivery group. """ selectedDeliveryOption: CartDeliveryOption } """ An auto-generated type for paginating through multiple CartDeliveryGroups. """ type CartDeliveryGroupConnection { """ A list of edges. """ edges: [CartDeliveryGroupEdge!]! """ A list of the nodes contained in CartDeliveryGroupEdge. """ nodes: [CartDeliveryGroup!]! """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An auto-generated type which holds one CartDeliveryGroup and a cursor during pagination. """ type CartDeliveryGroupEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of CartDeliveryGroupEdge. """ node: CartDeliveryGroup! } """ A shipping or delivery choice available to customers during checkout. Each option includes a title, estimated cost, and delivery method type such as shipping or local pickup. Returned by the [`CartDeliveryGroup`](https://shopify.dev/docs/api/storefront/current/objects/CartDeliveryGroup) object's [`deliveryOptions`](https://shopify.dev/docs/api/storefront/current/objects/CartDeliveryGroup#field-CartDeliveryGroup.fields.deliveryOptions) field and [`selectedDeliveryOption`](https://shopify.dev/docs/api/storefront/current/objects/CartDeliveryGroup#field-CartDeliveryGroup.fields.selectedDeliveryOption) field. """ type CartDeliveryOption { """ The code of the delivery option. """ code: String """ The method for the delivery option. """ deliveryMethodType: DeliveryMethodType! """ The description of the delivery option. """ description: String """ The estimated cost for the delivery option. """ estimatedCost: MoneyV2! """ The unique identifier of the delivery option. """ handle: String! """ The title of the delivery option. """ title: String } """ A set of preferences tied to the buyer interacting with the cart. Preferences are used to prefill fields in at checkout to streamline information collection. Preferences are not synced back to the cart if they are overwritten. """ type CartDeliveryPreference { """ Preferred location used to find the closest pick up point based on coordinates. """ coordinates: CartDeliveryCoordinatesPreference """ The preferred delivery methods such as shipping, local pickup or through pickup points. """ deliveryMethod: [PreferenceDeliveryMethodType!]! """ The pickup handle prefills checkout fields with the location for either local pickup or pickup points delivery methods. It accepts both location ID for local pickup and external IDs for pickup points. """ pickupHandle: [String!]! } """ Captures the intent of a discount source at the time it was applied to a cart. This includes the discount value, how it's allocated across entitled items, and which line types it targets. The actual discounted amounts on specific cart lines are represented by [`CartDiscountAllocation`](https://shopify.dev/docs/api/storefront/current/interfaces/CartDiscountAllocation) objects, which reference this application. """ type CartDiscountApplication { """ The method by which the discount's value is allocated to its entitled items. """ allocationMethod: DiscountApplicationAllocationMethod! """ Which lines of targetType that the discount is allocated over. """ targetSelection: DiscountApplicationTargetSelection! """ The type of line that the discount is applicable towards. """ targetType: DiscountApplicationTargetType! """ The value of the discount application. """ value: PricingValue! } """ A discount code applied to a [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart). Discount codes are case-insensitive and can be added using the [`cartDiscountCodesUpdate`](https://shopify.dev/docs/api/storefront/current/mutations/cartDiscountCodesUpdate) mutation. The [`applicable`](https://shopify.dev/docs/api/storefront/current/objects/CartDiscountCode#field-CartDiscountCode.fields.applicable) field indicates whether the code applies to the cart's current contents, which might change as items are added or removed. """ type CartDiscountCode { """ Whether the discount code is applicable to the cart's current contents. """ applicable: Boolean! """ The code for the discount. """ code: String! } """ Return type for `cartDiscountCodesUpdate` mutation. """ type CartDiscountCodesUpdatePayload { """ The updated cart. """ cart: Cart """ The list of errors that occurred from executing the mutation. """ userErrors: [CartUserError!]! """ A list of warnings that occurred during the mutation. """ warnings: [CartWarning!]! } """ The estimated costs that the buyer pays at checkout. Uses [`CartBuyerIdentity`](https://shopify.dev/docs/api/storefront/current/objects/CartBuyerIdentity) to determine [international pricing](https://shopify.dev/docs/custom-storefronts/internationalization/international-pricing). Includes the subtotal, total amount, duties, and taxes. The [`checkoutChargeAmount`](https://shopify.dev/docs/api/storefront/current/objects/CartEstimatedCost#field-CartEstimatedCost.fields.checkoutChargeAmount) field excludes deferred payments that are charged later, making it useful for displaying what the customer pays immediately. """ type CartEstimatedCost { """ The estimated amount, before taxes and discounts, for the customer to pay at checkout. The checkout charge amount doesn't include any deferred payments that'll be paid at a later date. If the cart has no deferred payments, then the checkout charge amount is equivalent to`subtotal_amount`. """ checkoutChargeAmount: MoneyV2! """ The estimated amount, before taxes and discounts, for the customer to pay. """ subtotalAmount: MoneyV2! """ The estimated total amount for the customer to pay. """ totalAmount: MoneyV2! """ The estimated duty amount for the customer to pay at checkout. """ totalDutyAmount: MoneyV2 """ The estimated tax amount for the customer to pay at checkout. """ totalTaxAmount: MoneyV2 } """ Return type for `cartGiftCardCodesAdd` mutation. """ type CartGiftCardCodesAddPayload { """ The updated cart. """ cart: Cart """ The list of errors that occurred from executing the mutation. """ userErrors: [CartUserError!]! """ A list of warnings that occurred during the mutation. """ warnings: [CartWarning!]! } """ Return type for `cartGiftCardCodesRemove` mutation. """ type CartGiftCardCodesRemovePayload { """ The updated cart. """ cart: Cart """ The list of errors that occurred from executing the mutation. """ userErrors: [CartUserError!]! """ A list of warnings that occurred during the mutation. """ warnings: [CartWarning!]! } """ Return type for `cartGiftCardCodesUpdate` mutation. """ type CartGiftCardCodesUpdatePayload { """ The updated cart. """ cart: Cart """ The list of errors that occurred from executing the mutation. """ userErrors: [CartUserError!]! """ A list of warnings that occurred during the mutation. """ warnings: [CartWarning!]! } """ An item in a customer's [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart) representing a product variant they intend to purchase. Each cart line tracks the merchandise, quantity, cost breakdown, and any applied discounts. Cart lines can include custom attributes for additional information like gift wrapping requests, and can be associated with a [`SellingPlanAllocation`](https://shopify.dev/docs/api/storefront/current/objects/SellingPlanAllocation) for purchase options like subscriptions, pre-orders, or try-before-you-buy. The [`instructions`](https://shopify.dev/docs/api/storefront/current/objects/CartLine#field-CartLine.fields.instructions) field indicates whether the line can be removed or have its quantity updated. """ type CartLine implements BaseCartLine & Node { """ An attribute associated with the cart line. """ attribute(key: String!): Attribute """ The attributes associated with the cart line. Attributes are represented as key-value pairs. """ attributes: [Attribute!]! """ The cost of the merchandise that the buyer will pay for at checkout. The costs are subject to change and changes will be reflected at checkout. """ cost: CartLineCost! """ The discounts that have been applied to the cart line. """ discountAllocations: [CartDiscountAllocation!]! """ The estimated cost of the merchandise that the buyer will pay for at checkout. The estimated costs are subject to change and changes will be reflected at checkout. """ estimatedCost: CartLineEstimatedCost! @deprecated """ A globally-unique ID. """ id: ID! """ The instructions for the line item. """ instructions: CartLineInstructions! """ The merchandise that the buyer intends to purchase. """ merchandise: Merchandise! """ The parent of the line item. """ parentRelationship: CartLineParentRelationship """ The quantity of the merchandise that the customer intends to purchase. """ quantity: Int! """ The selling plan associated with the cart line and the effect that each selling plan has on variants when they're purchased. """ sellingPlanAllocation: SellingPlanAllocation } """ Cost breakdown for a single line item in a [cart](https://shopify.dev/docs/api/storefront/current/objects/Cart). Includes the per-unit price, the subtotal before line-level discounts, and the final total amount the buyer pays. The [`compareAtAmountPerQuantity`](https://shopify.dev/docs/api/storefront/current/objects/CartLineCost#field-CartLineCost.fields.compareAtAmountPerQuantity) field shows the original price when the item is on sale, enabling the display of savings to customers. """ type CartLineCost { """ The amount of the merchandise line. """ amountPerQuantity: MoneyV2! """ The compare at amount of the merchandise line. """ compareAtAmountPerQuantity: MoneyV2 """ The cost of the merchandise line before line-level discounts. """ subtotalAmount: MoneyV2! """ The total cost of the merchandise line. """ totalAmount: MoneyV2! } """ The estimated cost of the merchandise line that the buyer will pay at checkout. """ type CartLineEstimatedCost { """ The amount of the merchandise line. """ amount: MoneyV2! """ The compare at amount of the merchandise line. """ compareAtAmount: MoneyV2 """ The estimated cost of the merchandise line before discounts. """ subtotalAmount: MoneyV2! """ The estimated total cost of the merchandise line. """ totalAmount: MoneyV2! } """ Represents instructions for a cart line item. """ type CartLineInstructions { """ Whether the line item can be removed from the cart. """ canRemove: Boolean! """ Whether the line item quantity can be updated. """ canUpdateQuantity: Boolean! } """ Represents the parent relationship of a cart line. """ type CartLineParentRelationship { """ The parent cart line. """ parent: CartLine! } """ Return type for `cartLinesAdd` mutation. """ type CartLinesAddPayload { """ The updated cart. """ cart: Cart """ The list of errors that occurred from executing the mutation. """ userErrors: [CartUserError!]! """ A list of warnings that occurred during the mutation. """ warnings: [CartWarning!]! } """ Return type for `cartLinesRemove` mutation. """ type CartLinesRemovePayload { """ The updated cart. """ cart: Cart """ The list of errors that occurred from executing the mutation. """ userErrors: [CartUserError!]! """ A list of warnings that occurred during the mutation. """ warnings: [CartWarning!]! } """ Return type for `cartLinesUpdate` mutation. """ type CartLinesUpdatePayload { """ The updated cart. """ cart: Cart """ The list of errors that occurred from executing the mutation. """ userErrors: [CartUserError!]! """ A list of warnings that occurred during the mutation. """ warnings: [CartWarning!]! } """ Return type for `cartMetafieldDelete` mutation. """ type CartMetafieldDeletePayload { """ The ID of the deleted cart metafield. """ deletedId: ID """ The list of errors that occurred from executing the mutation. """ userErrors: [MetafieldDeleteUserError!]! } """ Return type for `cartMetafieldsSet` mutation. """ type CartMetafieldsSetPayload { """ The list of cart metafields that were set. """ metafields: [Metafield!] """ The list of errors that occurred from executing the mutation. """ userErrors: [MetafieldsSetUserError!]! } """ Return type for `cartNoteUpdate` mutation. """ type CartNoteUpdatePayload { """ The updated cart. """ cart: Cart """ The list of errors that occurred from executing the mutation. """ userErrors: [CartUserError!]! """ A list of warnings that occurred during the mutation. """ warnings: [CartWarning!]! } """ An error occurred during the cart operation. """ type CartOperationError { """ The error code. """ code: String! """ The error message. """ message: String } """ Return type for `cartPaymentUpdate` mutation. """ type CartPaymentUpdatePayload { """ The updated cart. """ cart: Cart """ The list of errors that occurred from executing the mutation. """ userErrors: [CartUserError!]! """ A list of warnings that occurred during the mutation. """ warnings: [CartWarning!]! } """ A set of preferences tied to the buyer interacting with the cart. Preferences are used to prefill fields in at checkout to streamline information collection. Preferences are not synced back to the cart if they are overwritten. """ type CartPreferences { """ Delivery preferences can be used to prefill the delivery section in at checkout. """ delivery: CartDeliveryPreference """ Wallet preferences are used to populate relevant payment fields in the checkout flow. Accepted value: `["shop_pay"]`. """ wallet: [String!] } """ Return type for `cartPrepareForCompletion` mutation. """ type CartPrepareForCompletionPayload { """ The result of cart preparation for completion. """ result: CartPrepareForCompletionResult """ The list of errors that occurred from executing the mutation. """ userErrors: [CartUserError!]! } """ Return type for `cartRemovePersonalData` mutation. """ type CartRemovePersonalDataPayload { """ The updated cart. """ cart: Cart """ The list of errors that occurred from executing the mutation. """ userErrors: [CartUserError!]! """ A list of warnings that occurred during the mutation. """ warnings: [CartWarning!]! } """ A selectable delivery address for a cart. """ type CartSelectableAddress { """ The delivery address. """ address: CartAddress! """ A unique identifier for the address, specific to this cart. """ id: ID! """ This delivery address will not be associated with the buyer after a successful checkout. """ oneTimeUse: Boolean! """ Sets exactly one address as pre-selected for the buyer. """ selected: Boolean! } """ Return type for `cartSelectedDeliveryOptionsUpdate` mutation. """ type CartSelectedDeliveryOptionsUpdatePayload { """ The updated cart. """ cart: Cart """ The list of errors that occurred from executing the mutation. """ userErrors: [CartUserError!]! """ A list of warnings that occurred during the mutation. """ warnings: [CartWarning!]! } """ Cart is not ready for payment update and completion. """ type CartStatusNotReady { """ The result of cart preparation for completion. """ cart: Cart """ The list of errors that caused the cart to not be ready for payment update and completion. """ errors: [CartOperationError!]! } """ Cart is ready for payment update and completion. """ type CartStatusReady { """ The result of cart preparation for completion. """ cart: Cart } """ Return type for `cartSubmitForCompletion` mutation. """ type CartSubmitForCompletionPayload { """ The result of cart submission for completion. """ result: CartSubmitForCompletionResult """ The list of errors that occurred from executing the mutation. """ userErrors: [CartUserError!]! } """ Response signifying that the access to cart request is currently being throttled. The client can retry after `poll_after`. """ type CartThrottled { """ The result of cart preparation for completion. """ cart: Cart """ The polling delay. """ pollAfter: DateTime! } """ Represents an error that happens during execution of a cart mutation. """ type CartUserError implements DisplayableError { """ The error code. """ code: CartErrorCode """ The path to the input field that caused the error. """ field: [String!] """ The error message. """ message: String! } """ A non-blocking issue that occurred during a cart mutation. Unlike errors, warnings don't prevent the mutation from completing but indicate potential problems that may affect the buyer's experience. Each warning includes a code identifying the issue type, a human-readable message, and a target ID pointing to the affected resource. """ type CartWarning { """ The code of the warning. """ code: CartWarningCode! """ The message text of the warning. """ message: String! """ The target of the warning. """ target: ID! } """ A group of products [organized by a merchant](https://help.shopify.com/manual/products/collections) to make their store easier to browse. Collections can help customers discover related products by category, season, promotion, or other criteria. Query a collection's products with [filtering options](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/products-collections/filter-products) like availability, price range, vendor, and tags. Each collection includes [`SEO`](https://shopify.dev/docs/api/storefront/current/objects/SEO) information, an optional [`Image`](https://shopify.dev/docs/api/storefront/current/objects/Image), and supports custom data through [`metafields`](https://shopify.dev/docs/api/storefront/current/objects/Metafield). """ type Collection implements HasMetafields & Node & OnlineStorePublishable & Trackable { """ Stripped description of the collection, single line with HTML tags removed. """ description(truncateAt: Int): String! """ 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 ID. """ id: ID! """ Image associated with the collection. """ image: Image """ A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. """ metafield(namespace: String, key: String!): Metafield """ A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. """ 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(first: Int, after: String, last: Int, before: String, reverse: Boolean = false, sortKey: ProductCollectionSortKeys = COLLECTION_DEFAULT, filters: [ProductFilter!]): ProductConnection! """ The collection's SEO information. """ seo: SEO! """ The collection’s name. Limit of 255 characters. """ title: String! """ URL parameters to be added to a page URL to track the origin of on-site search traffic for [analytics reporting](https://help.shopify.com/manual/reports-and-analytics/shopify-reports/report-types/default-reports/behaviour-reports). Returns a result when accessed through the [search](https://shopify.dev/docs/api/storefront/current/queries/search) or [predictiveSearch](https://shopify.dev/docs/api/storefront/current/queries/predictiveSearch) queries, otherwise returns null. """ trackingParameters: String """ The date and time when the collection was last modified. """ updatedAt: DateTime! } """ 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! """ The total count of Collections. """ totalCount: UnsignedInt64! } """ An auto-generated type which holds one Collection and a cursor during pagination. """ type CollectionEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of CollectionEdge. """ node: Collection! } """ A comment on an article. """ type Comment implements Node { """ The comment’s author. """ author: CommentAuthor! """ Stripped content of the comment, single line with HTML tags removed. """ content(truncateAt: Int): String! """ The content of the comment, complete with HTML formatting. """ contentHtml: HTML! """ A globally-unique ID. """ id: ID! } """ The author of a comment. """ type CommentAuthor { """ The author's email. """ email: String! """ The author’s name. """ name: String! } """ An auto-generated type for paginating through multiple Comments. """ type CommentConnection { """ A list of edges. """ edges: [CommentEdge!]! """ A list of the nodes contained in CommentEdge. """ nodes: [Comment!]! """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An auto-generated type which holds one Comment and a cursor during pagination. """ type CommentEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of CommentEdge. """ node: Comment! } """ A B2B organization that purchases from the shop. In the Storefront API, company information is accessed through the [`PurchasingCompany`](https://shopify.dev/docs/api/storefront/current/objects/PurchasingCompany) object on [`CartBuyerIdentity`](https://shopify.dev/docs/api/storefront/current/objects/CartBuyerIdentity), which provides the associated location and contact for the current purchasing context. You can store custom data using [metafields](https://shopify.dev/docs/apps/build/metafields). """ type Company implements HasMetafields & Node { """ The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) at which the company was created in Shopify. """ createdAt: DateTime! """ A unique externally-supplied ID for the company. """ externalId: String """ A globally-unique ID. """ id: ID! """ A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. """ metafield(namespace: String, key: String!): Metafield """ A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. """ metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]! """ The name of the company. """ name: String! """ The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) at which the company was last modified. """ updatedAt: DateTime! } """ A company's main point of contact. """ type CompanyContact implements Node { """ The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) at which the company contact was created in Shopify. """ createdAt: DateTime! """ A globally-unique ID. """ id: ID! """ The company contact's locale (language). """ locale: String """ The company contact's job title. """ title: String """ The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) at which the company contact was last modified. """ updatedAt: DateTime! } """ A branch or office of a [`Company`](https://shopify.dev/docs/api/storefront/current/objects/Company) where B2B customers can place orders. When a B2B customer selects a location after logging in, the Storefront API contextualizes product queries to return location-specific pricing and quantity rules. Access through the [`PurchasingCompany`](https://shopify.dev/docs/api/storefront/current/objects/PurchasingCompany) object, which associates the location with the buyer's [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart). """ type CompanyLocation implements HasMetafields & Node { """ The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) at which the company location was created in Shopify. """ createdAt: DateTime! """ A unique externally-supplied ID for the company. """ externalId: String """ A globally-unique ID. """ id: ID! """ The preferred locale of the company location. """ locale: String """ A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. """ metafield(namespace: String, key: String!): Metafield """ A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. """ metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]! """ The name of the company location. """ name: String! """ The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) at which the company location was last modified. """ updatedAt: DateTime! } """ The action for the 3DS payment redirect. """ type CompletePaymentChallenge { """ The URL for the 3DS payment redirect. """ redirectUrl: URL } """ An error that occurred during a cart completion attempt. """ type CompletionError { """ The error code. """ code: CompletionErrorCode! """ The error message. """ message: String } """ Represents information about the grouped merchandise in the cart. """ type ComponentizableCartLine implements BaseCartLine & Node { """ An attribute associated with the cart line. """ attribute(key: String!): Attribute """ The attributes associated with the cart line. Attributes are represented as key-value pairs. """ attributes: [Attribute!]! """ The cost of the merchandise that the buyer will pay for at checkout. The costs are subject to change and changes will be reflected at checkout. """ cost: CartLineCost! """ The discounts that have been applied to the cart line. """ discountAllocations: [CartDiscountAllocation!]! """ The estimated cost of the merchandise that the buyer will pay for at checkout. The estimated costs are subject to change and changes will be reflected at checkout. """ estimatedCost: CartLineEstimatedCost! @deprecated """ A globally-unique ID. """ id: ID! """ The components of the line item. """ lineComponents: [CartLine!]! """ The merchandise that the buyer intends to purchase. """ merchandise: Merchandise! """ The quantity of the merchandise that the customer intends to purchase. """ quantity: Int! """ The selling plan associated with the cart line and the effect that each selling plan has on variants when they're purchased. """ sellingPlanAllocation: SellingPlanAllocation } """ Details for count of elements. """ type Count { """ Count of elements. """ count: Int! """ Precision of count, how exact is the value. """ precision: CountPrecision! } """ A country with localization settings for a storefront. Includes the country's currency, available languages, default language, and unit system (metric or imperial). Access countries through the [localization](https://shopify.dev/docs/api/storefront/current/queries/localization) query, which returns both the list of available countries and the currently active country. Use the [`@inContext`](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/in-context) directive to change the active country context. """ type Country { """ The languages available for the country. """ availableLanguages: [Language!]! """ The currency of the country. """ currency: Currency! """ The default language for the country. """ defaultLanguage: Language! """ The ISO code of the country. """ isoCode: CountryCode! """ The market that includes this country. """ market: Market @deprecated """ The name of the country. """ name: String! """ The unit system used in the country. """ unitSystem: UnitSystem! } """ A currency. """ type Currency { """ The ISO code of the currency. """ isoCode: CurrencyCode! """ The name of the currency. """ name: String! """ The symbol of the currency. """ symbol: String! } """ A customer account with the shop. Includes data such as contact information, [addresses](https://shopify.dev/docs/api/storefront/current/objects/MailingAddress) and marketing preferences for logged-in customers, so they don't have to provide these details at every checkout. Access the customer through the [`customer`](https://shopify.dev/docs/api/storefront/current/queries/customer) query using a customer access token obtained from the [`customerAccessTokenCreate`](https://shopify.dev/docs/api/storefront/current/mutations/customerAccessTokenCreate) mutation. The object implements the [`HasMetafields`](https://shopify.dev/docs/api/storefront/current/interfaces/HasMetafields) interface, enabling retrieval of [custom data](https://shopify.dev/docs/apps/build/custom-data) associated with the customer. """ type Customer implements HasMetafields { """ Indicates whether the customer has consented to be sent marketing material via email. """ acceptsMarketing: Boolean! """ A list of addresses for the customer. """ addresses(first: Int, after: String, last: Int, before: String, reverse: Boolean = false): MailingAddressConnection! """ The URL of the customer's avatar image. """ avatarUrl: String """ The date and time when the customer was created. """ createdAt: DateTime! """ The customer’s default address. """ defaultAddress: MailingAddress """ The customer’s name, email or phone number. """ displayName: String! """ The customer’s email address. """ email: String """ The customer’s first name. """ firstName: String """ A unique ID for the customer. """ id: ID! """ The customer’s last name. """ lastName: String """ A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. """ metafield(namespace: String, key: String!): Metafield """ A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. """ metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]! """ The number of orders that the customer has made at the store in their lifetime. """ numberOfOrders: UnsignedInt64! """ The orders associated with the customer. """ orders(first: Int, after: String, last: Int, before: String, reverse: Boolean = false, sortKey: OrderSortKeys = ID, query: String): OrderConnection! """ The customer’s phone number. """ phone: String """ The social login provider associated with the customer. """ socialLoginProvider: SocialLoginProvider """ A comma separated list of tags that have been added to the customer. Additional access scope required: unauthenticated_read_customer_tags. """ tags: [String!]! """ The date and time when the customer information was updated. """ updatedAt: DateTime! } """ A unique authentication token that identifies a logged-in customer and authorizes modifications to the [`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer) object. The token is required for customer-specific operations like updating profile information or managing addresses. Tokens have an expiration date and must be renewed using [`customerAccessTokenRenew`](https://shopify.dev/docs/api/storefront/current/mutations/customerAccessTokenRenew) before they expire. Create tokens with [`customerAccessTokenCreate`](https://shopify.dev/docs/api/storefront/current/mutations/customerAccessTokenCreate) using legacy customer account authentication (email and password), or with [`customerAccessTokenCreateWithMultipass`](https://shopify.dev/docs/api/storefront/current/mutations/customerAccessTokenCreateWithMultipass) for single sign-on flows. """ type CustomerAccessToken { """ The customer’s access token. """ accessToken: String! """ The date and time when the customer access token expires. """ expiresAt: DateTime! } """ Return type for `customerAccessTokenCreate` mutation. """ type CustomerAccessTokenCreatePayload { """ The newly created customer access token object. """ customerAccessToken: CustomerAccessToken """ The list of errors that occurred from executing the mutation. """ customerUserErrors: [CustomerUserError!]! """ The list of errors that occurred from executing the mutation. """ userErrors: [UserError!]! @deprecated } """ Return type for `customerAccessTokenCreateWithMultipass` mutation. """ type CustomerAccessTokenCreateWithMultipassPayload { """ An access token object associated with the customer. """ customerAccessToken: CustomerAccessToken """ The list of errors that occurred from executing the mutation. """ customerUserErrors: [CustomerUserError!]! """ The list of errors that occurred from executing the mutation. """ userErrors: [UserError!]! @deprecated } """ Return type for `customerAccessTokenDelete` mutation. """ type CustomerAccessTokenDeletePayload { """ The destroyed access token. """ deletedAccessToken: String """ ID of the destroyed customer access token. """ deletedCustomerAccessTokenId: String """ The list of errors that occurred from executing the mutation. """ userErrors: [UserError!]! } """ Return type for `customerAccessTokenRenew` mutation. """ type CustomerAccessTokenRenewPayload { """ The renewed customer access token object. """ customerAccessToken: CustomerAccessToken """ The list of errors that occurred from executing the mutation. """ userErrors: [UserError!]! } """ Return type for `customerActivateByUrl` mutation. """ type CustomerActivateByUrlPayload { """ The customer that was activated. """ customer: Customer """ A new customer access token for the customer. """ customerAccessToken: CustomerAccessToken """ The list of errors that occurred from executing the mutation. """ customerUserErrors: [CustomerUserError!]! """ The list of errors that occurred from executing the mutation. """ userErrors: [UserError!]! @deprecated } """ Return type for `customerActivate` mutation. """ type CustomerActivatePayload { """ The customer object. """ customer: Customer """ A newly created customer access token object for the customer. """ customerAccessToken: CustomerAccessToken """ The list of errors that occurred from executing the mutation. """ customerUserErrors: [CustomerUserError!]! """ The list of errors that occurred from executing the mutation. """ userErrors: [UserError!]! @deprecated } """ Return type for `customerAddressCreate` mutation. """ type CustomerAddressCreatePayload { """ The new customer address object. """ customerAddress: MailingAddress """ The list of errors that occurred from executing the mutation. """ customerUserErrors: [CustomerUserError!]! """ The list of errors that occurred from executing the mutation. """ userErrors: [UserError!]! @deprecated } """ Return type for `customerAddressDelete` mutation. """ type CustomerAddressDeletePayload { """ The list of errors that occurred from executing the mutation. """ customerUserErrors: [CustomerUserError!]! """ ID of the deleted customer address. """ deletedCustomerAddressId: String """ The list of errors that occurred from executing the mutation. """ userErrors: [UserError!]! @deprecated } """ Return type for `customerAddressUpdate` mutation. """ type CustomerAddressUpdatePayload { """ The customer’s updated mailing address. """ customerAddress: MailingAddress """ The list of errors that occurred from executing the mutation. """ customerUserErrors: [CustomerUserError!]! """ The list of errors that occurred from executing the mutation. """ userErrors: [UserError!]! @deprecated } """ Return type for `customerCreate` mutation. """ type CustomerCreatePayload { """ The created customer object. """ customer: Customer """ The list of errors that occurred from executing the mutation. """ customerUserErrors: [CustomerUserError!]! """ The list of errors that occurred from executing the mutation. """ userErrors: [UserError!]! @deprecated } """ Return type for `customerDefaultAddressUpdate` mutation. """ type CustomerDefaultAddressUpdatePayload { """ The updated customer object. """ customer: Customer """ The list of errors that occurred from executing the mutation. """ customerUserErrors: [CustomerUserError!]! """ The list of errors that occurred from executing the mutation. """ userErrors: [UserError!]! @deprecated } """ Return type for `customerRecover` mutation. """ type CustomerRecoverPayload { """ The list of errors that occurred from executing the mutation. """ customerUserErrors: [CustomerUserError!]! """ The list of errors that occurred from executing the mutation. """ userErrors: [UserError!]! @deprecated } """ Return type for `customerResetByUrl` mutation. """ type CustomerResetByUrlPayload { """ The customer object which was reset. """ customer: Customer """ A newly created customer access token object for the customer. """ customerAccessToken: CustomerAccessToken """ The list of errors that occurred from executing the mutation. """ customerUserErrors: [CustomerUserError!]! """ The list of errors that occurred from executing the mutation. """ userErrors: [UserError!]! @deprecated } """ Return type for `customerReset` mutation. """ type CustomerResetPayload { """ The customer object which was reset. """ customer: Customer """ A newly created customer access token object for the customer. """ customerAccessToken: CustomerAccessToken """ The list of errors that occurred from executing the mutation. """ customerUserErrors: [CustomerUserError!]! """ The list of errors that occurred from executing the mutation. """ userErrors: [UserError!]! @deprecated } """ Return type for `customerUpdate` mutation. """ type CustomerUpdatePayload { """ The updated customer object. """ customer: Customer """ The newly created customer access token. If the customer's password is updated, all previous access tokens (including the one used to perform this mutation) become invalid, and a new token is generated. """ customerAccessToken: CustomerAccessToken """ The list of errors that occurred from executing the mutation. """ customerUserErrors: [CustomerUserError!]! """ The list of errors that occurred from executing the mutation. """ userErrors: [UserError!]! @deprecated } """ Represents an error that happens during execution of a customer mutation. """ type CustomerUserError implements DisplayableError { """ The error code. """ code: CustomerErrorCode """ The path to the input field that caused the error. """ field: [String!] """ The error message. """ message: String! } """ The calculated discount amount applied to a line item or shipping line. While a [`DiscountApplication`](https://shopify.dev/docs/api/storefront/current/interfaces/DiscountApplication) captures the discount's rules and intentions, the allocation shows how much was actually deducted. Each allocation includes the discounted amount and a reference to the originating discount application. """ type DiscountAllocation { """ Amount of discount allocated. """ allocatedAmount: MoneyV2! """ The discount this allocated amount originated from. """ discountApplication: DiscountApplication! } """ An auto-generated type for paginating through multiple DiscountApplications. """ type DiscountApplicationConnection { """ A list of edges. """ edges: [DiscountApplicationEdge!]! """ A list of the nodes contained in DiscountApplicationEdge. """ nodes: [DiscountApplication!]! """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An auto-generated type which holds one DiscountApplication and a cursor during pagination. """ type DiscountApplicationEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of DiscountApplicationEdge. """ node: DiscountApplication! } """ Records the configuration and intent of a [discount code](https://help.shopify.com/manual/discounts/discount-methods/discount-codes) when a customer applies it. This includes the code string, allocation method, target type, and discount value at the time of application. The [`applicable`](https://shopify.dev/docs/api/storefront/latest/objects/DiscountCodeApplication#field-DiscountCodeApplication.fields.applicable) field indicates whether the code was successfully applied. > Note: > To see the actual amounts discounted on specific line items or shipping lines, use the [`DiscountAllocation`](https://shopify.dev/docs/api/storefront/current/objects/DiscountAllocation) object instead. """ type DiscountCodeApplication implements DiscountApplication { """ The method by which the discount's value is allocated to its entitled items. """ allocationMethod: DiscountApplicationAllocationMethod! """ Specifies whether the discount code was applied successfully. """ applicable: Boolean! """ The string identifying the discount code that was used at the time of application. """ code: String! """ Which lines of targetType that the discount is allocated over. """ targetSelection: DiscountApplicationTargetSelection! """ The type of line that the discount is applicable towards. """ targetType: DiscountApplicationTargetType! """ The value of the discount application. """ value: PricingValue! } """ A web address associated with a shop. The [`Shop`](https://shopify.dev/docs/api/storefront/current/objects/Shop) object's [`primaryDomain`](https://shopify.dev/docs/api/storefront/current/objects/Shop#field-Shop.fields.primaryDomain) field returns this to identify the shop's online store URL. """ type Domain { """ The host name of the domain (eg: `example.com`). """ host: String! """ Whether SSL is enabled or not. """ sslEnabled: Boolean! """ The URL of the domain (eg: `https://example.com`). """ url: URL! } """ Represents a video hosted outside of Shopify. """ type ExternalVideo implements Media & Node { """ A word or phrase to share the nature or contents of a media. """ alt: String """ The embed URL of the video for the respective host. """ embedUrl: URL! """ The URL. """ embeddedUrl: URL! @deprecated """ The host of the external video. """ host: MediaHost! """ A globally-unique ID. """ id: ID! """ The media content type. """ mediaContentType: MediaContentType! """ The origin URL of the video on the respective host. """ originUrl: URL! """ The presentation for a media. """ presentation: MediaPresentation """ The preview image for the media. """ previewImage: Image } """ A filter option available on collection and search results pages. Each filter includes a type, display label, and selectable values that customers can use to narrow down products. The [`FilterValue`](https://shopify.dev/docs/api/storefront/current/objects/FilterValue) objects contain an [`input`](https://shopify.dev/docs/api/storefront/current/objects/FilterValue#field-FilterValue.fields.input) field that you can combine to [build dynamic filtering queries](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/products-collections/filter-products). Merchants [configure available filters](https://help.shopify.com/manual/online-store/search-and-discovery/filters) using the Shopify Search & Discovery app. """ type Filter { """ A unique identifier. """ id: String! """ A human-friendly string for this filter. """ label: String! """ Describes how to present the filter values. Returns a value only for filters of type `LIST`. Returns null for other types. """ presentation: FilterPresentation """ An enumeration that denotes the type of data this filter represents. """ type: FilterType! """ The list of values for this filter. """ values: [FilterValue!]! } """ A selectable option within a [`Filter`](https://shopify.dev/docs/api/storefront/current/objects/Filter), such as a specific color, size, or product type. Each value includes a count of matching results and a human-readable label for display. The [`input`](https://shopify.dev/docs/api/storefront/current/objects/FilterValue#field-FilterValue.fields.input) field provides ready-to-use JSON for building dynamic filtering interfaces. You can combine the `input` values from multiple selected [`FilterValue`](https://shopify.dev/docs/api/storefront/current/objects/FilterValue) objects to construct filter queries. Visual representations are available through the [`image`](https://shopify.dev/docs/api/storefront/current/objects/FilterValue#field-FilterValue.fields.image) or [`swatch`](https://shopify.dev/docs/api/storefront/current/objects/FilterValue#field-FilterValue.fields.swatch) fields when the parent filter's presentation type supports them. """ type FilterValue { """ The number of results that match this filter value. """ count: Int! """ A unique identifier. """ id: String! """ The visual representation when the filter's presentation is `IMAGE`. """ image: MediaImage """ An input object that can be used to filter by this value on the parent field. The value is provided as a helper for building dynamic filtering UI. For example, if you have a list of selected `FilterValue` objects, you can combine their respective `input` values to use in a subsequent query. """ input: JSON! """ A human-friendly string for this filter value. """ label: String! """ The visual representation when the filter's presentation is `SWATCH`. """ swatch: Swatch } """ A shipment of one or more items in an order. Accessed through the [`Order`](https://shopify.dev/docs/api/storefront/current/objects/Order) object's [`successfulFulfillments`](https://shopify.dev/docs/api/storefront/current/objects/Order#field-Order.fields.successfulFulfillments) field. Each fulfillment includes the line items that shipped, the tracking company name, and tracking details like numbers and URLs. An order can have multiple fulfillments when items ship separately or from different locations. """ type Fulfillment { """ List of the fulfillment's line items. """ fulfillmentLineItems(first: Int, after: String, last: Int, before: String, reverse: Boolean = false): FulfillmentLineItemConnection! """ The name of the tracking company. """ trackingCompany: String """ Tracking information associated with the fulfillment, such as the tracking number and tracking URL. """ trackingInfo(first: Int): [FulfillmentTrackingInfo!]! } """ Records how many units of an [`OrderLineItem`](https://shopify.dev/docs/api/storefront/current/objects/OrderLineItem) were included in a [`Fulfillment`](https://shopify.dev/docs/api/storefront/current/objects/Fulfillment). Each order line item has at most one fulfillment line item per fulfillment. """ type FulfillmentLineItem { """ The associated order's line item. """ lineItem: OrderLineItem! """ The amount fulfilled in this fulfillment. """ quantity: Int! } """ An auto-generated type for paginating through multiple FulfillmentLineItems. """ type FulfillmentLineItemConnection { """ A list of edges. """ edges: [FulfillmentLineItemEdge!]! """ A list of the nodes contained in FulfillmentLineItemEdge. """ nodes: [FulfillmentLineItem!]! """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An auto-generated type which holds one FulfillmentLineItem and a cursor during pagination. """ type FulfillmentLineItemEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of FulfillmentLineItemEdge. """ node: FulfillmentLineItem! } """ Tracking information associated with the fulfillment. """ type FulfillmentTrackingInfo { """ The tracking number of the fulfillment. """ number: String """ The URL to track the fulfillment. """ url: URL } """ Any file that doesn't fit into a designated type like image or video. For example, a PDF or JSON document. Use this object to manage files in a merchant's store. Generic files are commonly referenced through [file reference metafields](https://shopify.dev/docs/apps/build/metafields/list-of-data-types) and returned as part of the [`MetafieldReference`](https://shopify.dev/docs/api/storefront/current/unions/MetafieldReference) union. Includes the file's URL, MIME type, size in bytes, and an optional preview image. """ type GenericFile implements Node { """ A word or phrase to indicate the contents of a file. """ alt: String """ A globally-unique ID. """ id: ID! """ The MIME type of the file. """ mimeType: String """ The size of the original file in bytes. """ originalFileSize: Int """ The preview image for the file. """ previewImage: Image """ The URL of the file. """ url: URL } """ An image resource with URL, dimensions, and transformation options. Used for product images, collection images, media previews, and other visual content throughout the storefront. The [`url`](https://shopify.dev/docs/api/storefront/current/objects/Image#field-Image.fields.url) field accepts an [`ImageTransformInput`](https://shopify.dev/docs/api/storefront/current/input-objects/ImageTransformInput) argument for resizing, cropping, scaling for retina displays, and converting between image formats. Use the [`thumbhash`](https://shopify.dev/docs/api/storefront/current/objects/Image#field-Image.fields.thumbhash) field to display lightweight placeholders while images load. """ 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 isn't hosted by Shopify. """ height: Int """ A unique ID for the image. """ id: ID """ 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. """ originalSrc: URL! @deprecated """ The location of the image as a URL. """ src: URL! @deprecated """ The ThumbHash of the image. Useful to display placeholder images while the original image is loading. See https://evanw.github.io/thumbhash/ for details on how to use it. """ thumbhash: String """ 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 doesn't support will be ignored. """ transformedSrc(maxWidth: Int, maxHeight: Int, crop: CropRegion, scale: Int = 1, preferredContentType: ImageContentType): URL! @deprecated """ 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](https://graphql.org/learn/queries/#aliases). """ url(transform: ImageTransformInput): URL! """ The original width of the image in pixels. Returns `null` if the image isn't hosted by Shopify. """ width: Int } """ 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! } """ Provide details about the contexts influenced by the @inContext directive on a field. """ type InContextAnnotation { description: String! type: InContextAnnotationType! } """ This gives information about the type of context that impacts a field. For example, for a query with @inContext(language: "EN"), the type would point to the name: LanguageCode and kind: ENUM. """ type InContextAnnotationType { kind: String! name: String! } """ A language available for a localized storefront experience. Provides the language name in both its native form (endonym) and translated into the current language, along with its [`LanguageCode`](https://shopify.dev/docs/api/storefront/current/enums/LanguageCode). Returned by the [`Localization`](https://shopify.dev/docs/api/storefront/current/objects/Localization) and [`Country`](https://shopify.dev/docs/api/storefront/current/objects/Country) objects to indicate available and active languages. Pass the `isoCode` to the [`@inContext`](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/in-context) directive to retrieve translated content in that language. """ type Language { """ The name of the language in the language itself. If the language uses capitalization, it is capitalized for a mid-sentence position. """ endonymName: String! """ The ISO code. """ isoCode: LanguageCode! """ The name of the language in the current language. """ name: String! } """ Information about the shop's configured localized experiences, including available countries and languages. The [`country`](https://shopify.dev/docs/api/storefront/current/objects/Localization#field-Localization.fields.country) and [`language`](https://shopify.dev/docs/api/storefront/current/objects/Localization#field-Localization.fields.language) fields reflect the active localization context, which you can change using the `@inContext` directive on queries. Use [`availableCountries`](https://shopify.dev/docs/api/storefront/current/objects/Localization#field-Localization.fields.availableCountries) to list all countries with enabled localized experiences, and [`availableLanguages`](https://shopify.dev/docs/api/storefront/current/objects/Localization#field-Localization.fields.availableLanguages) to get languages available for the currently active country. Each [`Country`](https://shopify.dev/docs/api/storefront/current/objects/Country) includes its own currency, unit system, and available languages. """ type Localization { """ The list of countries with enabled localized experiences. """ availableCountries: [Country!]! """ The list of languages available for the active country. """ availableLanguages: [Language!]! """ The country of the active localized experience. Use the `@inContext` directive to change this value. """ country: Country! """ The language of the active localized experience. Use the `@inContext` directive to change this value. """ language: Language! """ The market including the country of the active localized experience. Use the `@inContext` directive to change this value. """ market: Market! @deprecated } """ A physical store location where product inventory is held and that supports in-store pickup. Provides the location's name, address, and geographic coordinates for proximity-based sorting. Use with [`StoreAvailability`](https://shopify.dev/docs/api/storefront/current/objects/StoreAvailability) to show customers where a [`ProductVariant`](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant) is available for pickup. Learn more about [supporting local pickup on storefronts](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/products-collections/local-pickup). """ type Location implements HasMetafields & Node { """ The address of the location. """ address: LocationAddress! """ A globally-unique ID. """ id: ID! """ A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. """ metafield(namespace: String, key: String!): Metafield """ A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. """ metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]! """ The name of the location. """ name: String! } """ Represents the address of a location. """ 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 } """ An auto-generated type for paginating through multiple Locations. """ type LocationConnection { """ A list of edges. """ edges: [LocationEdge!]! """ A list of the nodes contained in LocationEdge. """ nodes: [Location!]! """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An auto-generated type which holds one Location and a cursor during pagination. """ type LocationEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of LocationEdge. """ node: Location! } """ A physical mailing address associated with a [`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer) or [`Order`](https://shopify.dev/docs/api/storefront/current/objects/Order). Stores standard address components including street address, city, province, country, and postal code, along with customer name and company information. The address includes geographic coordinates and provides pre-formatted output through the [`formatted`](https://shopify.dev/docs/api/storefront/current/objects/MailingAddress#field-MailingAddress.fields.formatted) field, which can optionally include or exclude name and company details. """ type MailingAddress implements Node { """ The first line of the address. Typically the street address or PO Box number. """ address1: String """ The second line of the address. Typically the number of the apartment, suite, or unit. """ address2: String """ The name of the city, district, village, or town. """ city: String """ The name of the customer's company or organization. """ company: String """ The name of the country. """ country: String """ The two-letter code for the country of the address. For example, US. """ countryCode: String @deprecated """ The two-letter code for the country of the address. For example, US. """ countryCodeV2: CountryCode """ The first name of the customer. """ firstName: String """ A formatted version of the address, customized by the provided arguments. """ formatted(withName: Boolean = false, withCompany: Boolean = true): [String!]! """ A comma-separated list of the values for city, province, and country. """ formattedArea: String """ A globally-unique ID. """ id: ID! """ The last name of the customer. """ lastName: String """ The latitude coordinate of the customer address. """ latitude: Float """ The longitude coordinate of the customer address. """ longitude: Float """ The full name of the customer, based on firstName and lastName. """ name: String """ A unique phone number for the customer. Formatted using E.164 standard. For example, _+16135551111_. """ phone: String """ The region of the address, such as the province, state, or district. """ province: String """ The alphanumeric code for the region. For example, ON. """ provinceCode: String """ The zip or postal code of the address. """ zip: String } """ An auto-generated type for paginating through multiple MailingAddresses. """ type MailingAddressConnection { """ A list of edges. """ edges: [MailingAddressEdge!]! """ A list of the nodes contained in MailingAddressEdge. """ nodes: [MailingAddress!]! """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An auto-generated type which holds one MailingAddress and a cursor during pagination. """ type MailingAddressEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of MailingAddressEdge. """ node: MailingAddress! } """ A discount created manually by a merchant, as opposed to [automatic discounts](https://help.shopify.com/manual/discounts/discount-methods/automatic-discounts) or [discount codes](https://help.shopify.com/manual/discounts/discount-methods/discount-codes). Implements the [`DiscountApplication`](https://shopify.dev/docs/api/storefront/current/interfaces/DiscountApplication) interface and includes a title, optional description, and the discount value as either a fixed amount or percentage. """ type ManualDiscountApplication implements DiscountApplication { """ The method by which the discount's value is allocated to its entitled items. """ allocationMethod: DiscountApplicationAllocationMethod! """ The description of the application. """ description: String """ Which lines of targetType that the discount is allocated over. """ targetSelection: DiscountApplicationTargetSelection! """ The type of line that the discount is applicable towards. """ targetType: DiscountApplicationTargetType! """ The title of the application. """ title: String! """ The value of the discount application. """ value: PricingValue! } """ An audience of buyers that a merchant targets for sales. Audiences can include geographic regions, company locations, and retail locations. Markets enable localized shopping experiences with region-specific languages, currencies, and pricing. Each market has a unique [`handle`](https://shopify.dev/docs/api/storefront/current/objects/Market#field-Market.fields.handle) for identification and supports custom data through [`metafields`](https://shopify.dev/docs/api/storefront/current/objects/Metafield). Learn more about [building localized experiences with Shopify Markets](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/markets). """ type Market implements HasMetafields & Node { """ A human-readable unique string for the market automatically generated from its title. """ handle: String! """ A globally-unique ID. """ id: ID! """ A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. """ metafield(namespace: String, key: String!): Metafield """ A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. """ metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]! } """ 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! } """ An image hosted on Shopify's content delivery network (CDN). Used for product images, brand logos, and other visual content across the storefront. The [`image`](https://shopify.dev/docs/api/storefront/current/objects/MediaImage#field-MediaImage.fields.image) field provides the actual image data with transformation options. Implements the [`Media`](https://shopify.dev/docs/api/storefront/current/interfaces/Media) interface alongside other media types like [`Video`](https://shopify.dev/docs/api/storefront/current/objects/Video) and [`Model3d`](https://shopify.dev/docs/api/storefront/current/objects/Model3d). """ type MediaImage implements Media & Node { """ A word or phrase to share the nature or contents of a media. """ alt: String """ A globally-unique ID. """ id: ID! """ The image for the media. """ image: Image """ The media content type. """ mediaContentType: MediaContentType! """ The presentation for a media. """ presentation: MediaPresentation """ The preview image for the media. """ previewImage: Image } """ A media presentation. """ type MediaPresentation implements Node { """ A JSON object representing a presentation view. """ asJson(format: MediaPresentationFormat!): JSON """ A globally-unique ID. """ id: ID! @deprecated } """ A navigation structure for building store [menus](https://help.shopify.com/manual/online-store/menus-and-links). Each menu contains [`MenuItem`](https://shopify.dev/docs/api/storefront/current/objects/MenuItem) objects that can be nested to create multi-level navigation hierarchies. Menu items can link to [collections](https://shopify.dev/docs/api/storefront/current/objects/Collection), [products](https://shopify.dev/docs/api/storefront/current/objects/Product), [pages](https://shopify.dev/docs/api/storefront/current/objects/Page), [blogs](https://shopify.dev/docs/api/storefront/current/objects/Blog), or external URLs. Use the [`menu`](https://shopify.dev/docs/api/storefront/current/queries/menu) query to retrieve a menu by its handle. """ type Menu implements Node { """ The menu's handle. """ handle: String! """ A globally-unique ID. """ id: ID! """ The menu's child items. """ items: [MenuItem!]! """ The count of items on the menu. """ itemsCount: Int! """ The menu's title. """ title: String! } """ A navigation link within a [`Menu`](https://shopify.dev/docs/api/storefront/current/objects/Menu). Each item has a title, URL, and can link to store resources like [products](https://shopify.dev/docs/api/storefront/current/objects/Product), [collections](https://shopify.dev/docs/api/storefront/current/objects/Collection), [pages](https://shopify.dev/docs/api/storefront/current/objects/Page), [blogs](https://shopify.dev/docs/api/storefront/current/objects/Blog), or external URLs. Menu items support nested hierarchies through the [`items`](https://shopify.dev/docs/api/storefront/current/objects/MenuItem#field-MenuItem.fields.items) field, enabling dropdown or multi-level navigation structures. The [`tags`](https://shopify.dev/docs/api/storefront/current/objects/MenuItem#field-MenuItem.fields.tags) field filters results when the item links to a collection specifically. """ type MenuItem implements Node { """ A globally-unique ID. """ id: ID! """ The menu item's child items. """ items: [MenuItem!]! """ The linked resource. """ resource: MenuItemResource """ The ID of the linked resource. """ resourceId: ID """ The menu item's tags to filter a collection. """ tags: [String!]! """ The menu item's title. """ title: String! """ The menu item's type. """ type: MenuItemType! """ The menu item's URL. """ url: URL } """ [Custom metadata](https://shopify.dev/docs/apps/build/metafields) attached to a Shopify resource such as a [`Product`](https://shopify.dev/docs/api/storefront/current/objects/Product), [`Collection`](https://shopify.dev/docs/api/storefront/current/objects/Collection), or [`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer). Each metafield is identified by a namespace and key, and stores a value with an associated type. Values are always stored as strings, but the [`type`](https://shopify.dev/docs/api/storefront/current/objects/Metafield#field-Metafield.fields.type) field indicates how to interpret the data. When a metafield's type is a resource reference, use the [`reference`](https://shopify.dev/docs/api/storefront/current/objects/Metafield#field-Metafield.fields.reference) or [`references`](https://shopify.dev/docs/api/storefront/current/objects/Metafield#field-Metafield.fields.references) fields to retrieve the linked objects. Access metafields on any resource that implements the [`HasMetafields`](https://shopify.dev/docs/api/storefront/current/interfaces/HasMetafields) interface. """ 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 ID. """ id: ID! """ The unique identifier for the metafield within its namespace. """ key: String! """ Whether the metafield's type is a list type. Returns `true` for types like `list.color` or `list.single_line_text_field`. """ list: Boolean! """ The container for a group of metafields that the metafield is associated with. """ namespace: String! """ The type of resource that the metafield is attached to. """ parentResource: MetafieldParentResource! """ Returns a reference object if the metafield'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. Refer to the list of [supported types](https://shopify.dev/apps/metafields/definitions/types). """ type: String! """ The date and time when the metafield was last updated. """ updatedAt: DateTime! """ The data stored in the metafield. Always stored as a string, regardless of the metafield's type. """ value: String! } """ An error that occurs during the execution of cart metafield deletion. """ type MetafieldDeleteUserError implements DisplayableError { """ The error code. """ code: MetafieldDeleteErrorCode """ The path to the input field that caused the error. """ field: [String!] """ The error message. """ message: 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! } """ An auto-generated type which holds one MetafieldReference and a cursor during pagination. """ type MetafieldReferenceEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of MetafieldReferenceEdge. """ node: MetafieldReference! } """ An error that occurs during the execution of `MetafieldsSet`. """ type MetafieldsSetUserError implements DisplayableError { """ The error code. """ code: MetafieldsSetUserErrorCode """ The index of the array element that's causing the error. """ elementIndex: Int """ The path to the input field that caused the error. """ field: [String!] """ The error message. """ message: String! } """ An instance of [custom structured data](https://shopify.dev/docs/apps/build/metaobjects) defined by a metaobject definition. Metaobjects store reusable content that extends beyond standard Shopify resources, such as size charts, author profiles, or custom content sections. Each metaobject contains fields that match the types and validation rules specified in its definition. [`Metafield`](https://shopify.dev/docs/api/storefront/current/objects/Metafield) references can point to metaobjects, connecting custom data with products, collections, and other resources. If the definition has the `renderable` capability, then the [`seo`](https://shopify.dev/docs/api/storefront/current/objects/Metaobject#field-Metaobject.fields.seo) field provides SEO metadata. If it has the `online_store` capability, then the [`onlineStoreUrl`](https://shopify.dev/docs/api/storefront/current/objects/Metaobject#field-Metaobject.fields.onlineStoreUrl) field returns the public URL. """ type Metaobject implements Node & OnlineStorePublishable { """ Accesses a field of the object by key. """ field(key: String!): MetaobjectField """ All object fields with defined values. Omitted object keys can be assumed null, and no guarantees are made about field order. """ fields: [MetaobjectField!]! """ The unique handle of the metaobject. Useful as a custom ID. """ handle: String! """ A globally-unique ID. """ id: ID! """ The URL used for viewing the metaobject on the shop's Online Store. Returns `null` if the metaobject definition doesn't have the `online_store` capability. """ onlineStoreUrl: URL """ The metaobject's SEO information. Returns `null` if the metaobject definition doesn't have the `renderable` capability. """ seo: MetaobjectSEO """ The type of the metaobject. """ type: String! """ The date and time when the metaobject was last updated. """ updatedAt: DateTime! } """ An auto-generated type for paginating through multiple Metaobjects. """ type MetaobjectConnection { """ A list of edges. """ edges: [MetaobjectEdge!]! """ A list of the nodes contained in MetaobjectEdge. """ nodes: [Metaobject!]! """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An auto-generated type which holds one Metaobject and a cursor during pagination. """ type MetaobjectEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of MetaobjectEdge. """ node: Metaobject! } """ The value of a field within a [`Metaobject`](https://shopify.dev/docs/api/storefront/current/objects/Metaobject). For fields that reference other resources, use the [`reference`](https://shopify.dev/docs/api/storefront/current/objects/MetaobjectField#field-MetaobjectField.fields.reference) field for single references or [`references`](https://shopify.dev/docs/api/storefront/current/objects/MetaobjectField#field-MetaobjectField.fields.references) for lists. """ type MetaobjectField { """ The field key. """ key: String! """ A referenced object if the field type is a resource reference. """ reference: MetafieldReference """ A list of referenced objects if the field type is a resource reference list. """ references(first: Int, after: String, last: Int, before: String): MetafieldReferenceConnection """ The type name of the field. See the list of [supported types](https://shopify.dev/apps/metafields/definitions/types). """ type: String! """ The field value. """ value: String } """ SEO information for a metaobject. """ type MetaobjectSEO { """ The meta description. """ description: MetaobjectField """ The SEO title. """ title: MetaobjectField } """ Represents a Shopify hosted 3D model. """ type Model3d implements Media & Node { """ A word or phrase to share the nature or contents of a media. """ alt: String """ A globally-unique ID. """ id: ID! """ The media content type. """ mediaContentType: MediaContentType! """ The presentation for a media. """ presentation: MediaPresentation """ The preview image for the media. """ previewImage: Image """ The sources for a 3d model. """ sources: [Model3dSource!]! } """ Represents a source for a Shopify hosted 3d model. """ type Model3dSource { """ The filesize of the 3d model. """ filesize: Int! """ The format of the 3d model. """ format: String! """ The MIME type of the 3d model. """ mimeType: String! """ The URL of the 3d model. """ url: String! } """ A precise monetary value with its associated currency. Combines a decimal amount with a three-letter [`CurrencyCode`](https://shopify.dev/docs/api/storefront/current/enums/CurrencyCode) to express prices, costs, and other financial values. For example, 12.99 USD. """ type MoneyV2 { """ Decimal money amount. """ amount: Decimal! """ Currency of the money. """ currencyCode: CurrencyCode! } """ The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. """ type Mutation { """ Updates the attributes on a [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart). Attributes are custom key-value pairs that store additional information, such as gift messages, special instructions, or order notes. """ cartAttributesUpdate(attributes: [AttributeInput!]!, cartId: ID!): CartAttributesUpdatePayload """ Updates the billing address on the cart. """ cartBillingAddressUpdate(cartId: ID!, billingAddress: MailingAddressInput): CartBillingAddressUpdatePayload """ Updates the buyer identity on a [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart), including contact information, location, and checkout preferences. The buyer's country determines [international pricing](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/markets/international-pricing) and should match their shipping address. Use this mutation to associate a logged-in customer via access token, set a B2B company location, or configure checkout preferences like delivery method. Preferences prefill checkout fields but don't sync back to the cart if overwritten at checkout. """ cartBuyerIdentityUpdate(cartId: ID!, buyerIdentity: CartBuyerIdentityInput!): CartBuyerIdentityUpdatePayload """ Creates a clone of the specified cart with all personally identifiable information removed. """ cartClone(cartId: ID!): CartClonePayload """ Creates a new [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart) for a buyer session. You can optionally initialize the cart with merchandise lines, discount codes, gift card codes, buyer identity for international pricing, and custom attributes. The returned cart includes a `checkoutUrl` that directs the buyer to complete their purchase. """ cartCreate(input: CartInput): CartCreatePayload """ Adds delivery addresses to a [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart). A cart can have up to 20 delivery addresses. One address can be marked as selected for checkout, and addresses can optionally be marked as one-time use so they aren't saved to the customer's account. """ cartDeliveryAddressesAdd(cartId: ID!, addresses: [CartSelectableAddressInput!]!): CartDeliveryAddressesAddPayload """ Removes delivery addresses from a [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart) by their IDs, allowing batch removal in a single request. """ cartDeliveryAddressesRemove(cartId: ID!, addressIds: [ID!]!): CartDeliveryAddressesRemovePayload """ Replaces all delivery addresses on a [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart) with a new set of addresses in a single operation. Unlike [`cartDeliveryAddressesUpdate`](https://shopify.dev/docs/api/storefront/current/mutations/cartDeliveryAddressesUpdate), which modifies existing addresses, this mutation removes all current addresses and sets the provided list as the new delivery addresses. One address can be marked as selected, and each address can be flagged for one-time use or configured with a specific validation strategy. """ cartDeliveryAddressesReplace(cartId: ID!, addresses: [CartSelectableAddressInput!]!): CartDeliveryAddressesReplacePayload """ Updates one or more delivery addresses on a [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart). Each address can be modified to change its details, set it as the pre-selected address for checkout, or mark it for one-time use so it isn't saved to the customer's account. """ cartDeliveryAddressesUpdate(cartId: ID!, addresses: [CartSelectableAddressUpdateInput!]!): CartDeliveryAddressesUpdatePayload """ Updates the discount codes applied to a [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart). This mutation replaces all existing discount codes with the provided list, so pass an empty array to remove all codes. Discount codes are case-insensitive. After updating, check each [`CartDiscountCode`](https://shopify.dev/docs/api/storefront/current/objects/CartDiscountCode) in the cart's [`discountCodes`](https://shopify.dev/docs/api/storefront/current/objects/Cart#field-Cart.fields.discountCodes) field to see whether the code is applicable to the cart's current contents. """ cartDiscountCodesUpdate(cartId: ID!, discountCodes: [String!]!): CartDiscountCodesUpdatePayload """ Adds gift card codes to a [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart) without replacing any codes already applied. Gift card codes are case-insensitive. To replace all gift card codes instead of adding to them, use [`cartGiftCardCodesUpdate`](https://shopify.dev/docs/api/storefront/current/mutations/cartGiftCardCodesUpdate). """ cartGiftCardCodesAdd(cartId: ID!, giftCardCodes: [String!]!): CartGiftCardCodesAddPayload """ Removes gift cards from a [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart) using their IDs. You can retrieve the IDs of applied gift cards from the cart's [`appliedGiftCards`](https://shopify.dev/docs/api/storefront/current/objects/Cart#field-Cart.fields.appliedGiftCards) field. """ cartGiftCardCodesRemove(cartId: ID!, appliedGiftCardIds: [ID!]!): CartGiftCardCodesRemovePayload """ Updates the gift card codes applied to the cart. Unlike [`cartGiftCardCodesAdd`](https://shopify.dev/docs/api/storefront/current/mutations/cartGiftCardCodesAdd), which adds codes without replacing existing ones, this mutation sets the gift card codes for the cart. Gift card codes are case-insensitive. """ cartGiftCardCodesUpdate(cartId: ID!, giftCardCodes: [String!]!): CartGiftCardCodesUpdatePayload """ Adds one or more merchandise lines to an existing [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart). Each line specifies the [product variant](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant) to purchase. Quantity defaults to `1` if not provided. You can add up to 250 lines in a single request. Use [`CartLineInput`](https://shopify.dev/docs/api/storefront/current/input-objects/CartLineInput) to configure each line's merchandise, quantity, selling plan, custom attributes, and any parent relationships for nested line items such as warranties or add-ons. """ cartLinesAdd(cartId: ID!, lines: [CartLineInput!]!): CartLinesAddPayload """ Removes one or more merchandise lines from a [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart). Accepts up to 250 line IDs per request. Returns the updated cart along with any errors or warnings. """ cartLinesRemove(cartId: ID!, lineIds: [ID!]!): CartLinesRemovePayload """ Updates one or more merchandise lines on a [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart). You can modify the quantity, swap the merchandise, change custom attributes, or update the selling plan for each line. You can update a maximum of 250 lines per request. Omitting the [`attributes`](https://shopify.dev/docs/api/storefront/current/mutations/cartLinesUpdate#arguments-lines.fields.attributes) field or setting it to null preserves existing line attributes. Pass an empty array to clear all attributes from a line. """ cartLinesUpdate(cartId: ID!, lines: [CartLineUpdateInput!]!): CartLinesUpdatePayload """ Deletes a cart metafield. > Note: > This mutation won't trigger [Shopify Functions](https://shopify.dev/docs/api/functions). The changes won't be available to Shopify Functions until the buyer goes to checkout or performs another cart interaction that triggers the functions. """ cartMetafieldDelete(input: CartMetafieldDeleteInput!): CartMetafieldDeletePayload """ Sets [`Metafield`](https://shopify.dev/docs/api/storefront/current/objects/Metafield) values on a cart, creating new metafields or updating existing ones. Accepts up to 25 metafields per request. Cart metafields can automatically copy to order metafields when an order is created, if there's a matching order metafield definition with the [cart to order copyable](https://shopify.dev/docs/apps/build/metafields/use-metafield-capabilities#cart-to-order-copyable) capability enabled. > Note: > This mutation doesn't trigger [Shopify Functions](https://shopify.dev/docs/api/functions). Changes aren't available to Shopify Functions until the buyer goes to checkout or performs another cart interaction that triggers the functions. """ cartMetafieldsSet(metafields: [CartMetafieldsSetInput!]!): CartMetafieldsSetPayload """ Updates the note on a [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart). The note is a text field that stores additional information, such as a personalized message from the buyer or special instructions for the order. """ cartNoteUpdate(cartId: ID!, note: String!): CartNoteUpdatePayload """ Update the customer's payment method that will be used to checkout. """ cartPaymentUpdate(cartId: ID!, payment: CartPaymentInput!): CartPaymentUpdatePayload """ Prepare the cart for cart checkout completion. """ cartPrepareForCompletion(cartId: ID!): CartPrepareForCompletionPayload """ Removes personally identifiable information from the cart. """ cartRemovePersonalData(cartId: ID!): CartRemovePersonalDataPayload """ Updates the selected delivery option for one or more [`CartDeliveryGroup`](https://shopify.dev/docs/api/storefront/current/objects/CartDeliveryGroup) objects in a cart. Each delivery group represents items shipping to a specific address and offers multiple delivery options with different costs and methods. Use this mutation when a customer chooses their preferred shipping method during checkout. The [`deliveryOptionHandle`](https://shopify.dev/docs/api/storefront/current/input-objects/CartSelectedDeliveryOptionInput#field-CartSelectedDeliveryOptionInput.fields.deliveryOptionHandle) identifies which [`CartDeliveryOption`](https://shopify.dev/docs/api/storefront/current/objects/CartDeliveryOption) to select for each delivery group. """ cartSelectedDeliveryOptionsUpdate(cartId: ID!, selectedDeliveryOptions: [CartSelectedDeliveryOptionInput!]!): CartSelectedDeliveryOptionsUpdatePayload """ Submit the cart for checkout completion. """ cartSubmitForCompletion(cartId: ID!, attemptToken: String!): CartSubmitForCompletionPayload """ For legacy customer accounts only. Creates a [`CustomerAccessToken`](https://shopify.dev/docs/api/storefront/current/objects/CustomerAccessToken) using the customer's email and password. The access token is required to read or modify the [`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer) object, such as updating account information or managing addresses. The token has an expiration time. Use [`customerAccessTokenRenew`](https://shopify.dev/docs/api/storefront/current/mutations/customerAccessTokenRenew) to extend the token before it expires, or create a new token if it's already expired. > Caution: > This mutation handles customer credentials. Always transmit requests over HTTPS and never log or expose the password. """ customerAccessTokenCreate(input: CustomerAccessTokenCreateInput!): CustomerAccessTokenCreatePayload """ Creates a [`CustomerAccessToken`](https://shopify.dev/docs/api/storefront/current/objects/CustomerAccessToken) using a [multipass token](https://shopify.dev/docs/api/multipass) instead of email and password. This enables single sign-on for customers who authenticate through an external system. If the customer doesn't exist in Shopify, then a new customer record is created automatically. If the customer exists but the record is disabled, then the customer record is re-enabled. > Caution: > Multipass tokens are only valid for 15 minutes and can only be used once. Generate tokens on-the-fly when needed rather than in advance. """ customerAccessTokenCreateWithMultipass(multipassToken: String!): CustomerAccessTokenCreateWithMultipassPayload """ Permanently destroys a [`CustomerAccessToken`](https://shopify.dev/docs/api/storefront/current/objects/CustomerAccessToken). Use this mutation when a customer explicitly signs out or when you need to revoke the token. Use [`customerAccessTokenCreate`](https://shopify.dev/docs/api/storefront/current/mutations/customerAccessTokenCreate) to generate a new token with the customer's credentials. > Caution: > This action is irreversible. The customer needs to sign in again to obtain a new access token. """ customerAccessTokenDelete(customerAccessToken: String!): CustomerAccessTokenDeletePayload """ Extends the validity of a [`CustomerAccessToken`](https://shopify.dev/docs/api/storefront/current/objects/CustomerAccessToken) before it expires. The renewed token maintains authenticated access to customer operations. Renewal must happen before the token's [`expiresAt`](https://shopify.dev/docs/api/storefront/current/objects/CustomerAccessToken#field-CustomerAccessToken.fields.expiresAt) time. If a token has already expired, then use [`customerAccessTokenCreate`](https://shopify.dev/docs/api/storefront/current/mutations/customerAccessTokenCreate) to generate a new token with the customer's credentials. > Caution: > Store access tokens securely. Never store tokens in plain text or insecure locations, and avoid exposing them in URLs or logs. """ customerAccessTokenRenew(customerAccessToken: String!): CustomerAccessTokenRenewPayload """ Activates a customer account using an activation token received from the [`customerCreate`](https://shopify.dev/docs/api/storefront/current/mutations/customerCreate) mutation. The customer sets their password during activation and receives a [`CustomerAccessToken`](https://shopify.dev/docs/api/storefront/current/objects/CustomerAccessToken) for authenticated access. For a simpler approach that doesn't require parsing the activation URL, use [`customerActivateByUrl`](https://shopify.dev/docs/api/storefront/current/mutations/customerActivateByUrl) instead. > Caution: > This mutation handles customer credentials. Always use HTTPS and never log or expose the password or access token. """ customerActivate(id: ID!, input: CustomerActivateInput!): CustomerActivatePayload """ Activates a customer account using the full activation URL from the [`customerCreate`](https://shopify.dev/docs/api/storefront/current/mutations/customerCreate) mutation. This approach simplifies activation by accepting the complete URL directly, eliminating the need to parse it for the customer ID and activation token. Returns a [`CustomerAccessToken`](https://shopify.dev/docs/api/storefront/current/objects/CustomerAccessToken) for authenticating subsequent requests. > Caution: > Store the returned access token securely. It grants access to the customer's account data. """ customerActivateByUrl(activationUrl: URL!, password: String!): CustomerActivateByUrlPayload """ Creates a new [`MailingAddress`](https://shopify.dev/docs/api/storefront/current/objects/MailingAddress) for a [`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer). Use the customer's [access token](https://shopify.dev/docs/api/storefront/current/mutations/customerAddressCreate#arguments-customerAccessToken) to identify them. Successful creation returns the new address. Each customer can have multiple addresses. """ customerAddressCreate(customerAccessToken: String!, address: MailingAddressInput!): CustomerAddressCreatePayload """ Permanently deletes a specific [`MailingAddress`](https://shopify.dev/docs/api/storefront/current/objects/MailingAddress) for a [`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer). Requires a valid [customer access token](https://shopify.dev/docs/api/storefront/current/mutations/customerAddressDelete#arguments-customerAccessToken) to authenticate the request. > Caution: > This action is irreversible. You can't recover the deleted address. """ customerAddressDelete(id: ID!, customerAccessToken: String!): CustomerAddressDeletePayload """ Updates an existing [`MailingAddress`](https://shopify.dev/docs/api/storefront/current/objects/MailingAddress) for a [`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer). Requires a [customer access token](https://shopify.dev/docs/api/storefront/current/mutations/customerAddressUpdate#arguments-customerAccessToken) to identify the customer, an ID to specify which address to modify, and an [`address`](https://shopify.dev/docs/api/storefront/current/input-objects/MailingAddressInput) with the updated fields. Successful update returns the updated [`MailingAddress`](https://shopify.dev/docs/api/storefront/current/objects/MailingAddress). """ customerAddressUpdate(customerAccessToken: String!, id: ID!, address: MailingAddressInput!): CustomerAddressUpdatePayload """ Creates a new [`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer) account with the provided contact information and login credentials. The customer can then sign in for things such as accessing their account, viewing order history, and managing saved addresses. > Caution: > This mutation creates customer credentials. Ensure passwords are collected securely and never logged or exposed in client-side code. """ customerCreate(input: CustomerCreateInput!): CustomerCreatePayload """ Updates the default address of an existing [`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer). Requires a [customer access token](https://shopify.dev/docs/api/storefront/current/mutations/customerDefaultAddressUpdate#arguments-customerAccessToken) to identify the customer and an address ID to specify which address to set as the new default. """ customerDefaultAddressUpdate(customerAccessToken: String!, addressId: ID!): CustomerDefaultAddressUpdatePayload """ Sends a reset password email to the customer. The email contains a reset password URL and token that you can pass to the [`customerResetByUrl`](https://shopify.dev/docs/api/storefront/current/mutations/customerResetByUrl) or [`customerReset`](https://shopify.dev/docs/api/storefront/current/mutations/customerReset) mutation to reset the customer's password. This mutation is throttled by IP. With private access, you can provide a [`Shopify-Storefront-Buyer-IP` header](https://shopify.dev/docs/api/usage/authentication#optional-ip-header) instead of the request IP. The header is case-sensitive. > Caution: > Ensure the value provided to `Shopify-Storefront-Buyer-IP` is trusted. Unthrottled access to this mutation presents a security risk. """ customerRecover(email: String!): CustomerRecoverPayload """ Resets a customer's password using the reset token from a password recovery email. On success, returns the updated [`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer) and a new [`CustomerAccessToken`](https://shopify.dev/docs/api/storefront/current/objects/CustomerAccessToken) for immediate authentication. Use the [`customerRecover`](https://shopify.dev/docs/api/storefront/current/mutations/customerRecover) mutation to send the password recovery email that provides the reset token. Alternatively, use [`customerResetByUrl`](https://shopify.dev/docs/api/storefront/current/mutations/customerResetByUrl) if you have the full reset URL instead of the customer ID and token. > Caution: > This mutation handles sensitive customer credentials. Validate password requirements on the client before submission. """ customerReset(id: ID!, input: CustomerResetInput!): CustomerResetPayload """ Resets a customer's password using the reset URL from a password recovery email. The reset URL is generated by the [`customerRecover`](https://shopify.dev/docs/api/storefront/current/mutations/customerRecover) mutation. On success, returns the updated [`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer) and a new [`CustomerAccessToken`](https://shopify.dev/docs/api/storefront/current/objects/CustomerAccessToken) for immediate authentication. > Caution: > This mutation handles customer credentials. Ensure the new password is transmitted securely and never logged or exposed in client-side code. """ customerResetByUrl(resetUrl: URL!, password: String!): CustomerResetByUrlPayload """ Updates a [customer's](https://shopify.dev/docs/api/storefront/current/objects/Customer) personal information such as name, password, and marketing preferences. Requires a valid [`CustomerAccessToken`](https://shopify.dev/docs/api/storefront/current/objects/CustomerAccessToken) to authenticate the customer making the update. If the customer's password is updated, then all previous access tokens become invalid. The mutation returns a new access token in the payload to maintain the customer's session. > Caution: > Password changes invalidate all existing access tokens. Ensure your app handles the new token returned in the response to avoid logging the customer out. """ customerUpdate(customerAccessToken: String!, customer: CustomerUpdateInput!): CustomerUpdatePayload """ Creates a [Shop Pay payment request session](https://shopify.dev/docs/api/storefront/current/objects/ShopPayPaymentRequestSession) for processing payments. The session includes a checkout URL where customers complete their purchase and a token for subsequent operations like submitting the payment. The `sourceIdentifier` must be unique across all orders to ensure accurate reconciliation. For a complete integration guide including the JavaScript SDK setup and checkout flow, refer to the [Shop Component API documentation](https://shopify.dev/docs/api/commerce-components/pay). For implementation steps, see the [development journey guide](https://shopify.dev/docs/api/commerce-components/pay/development-journey). For common error scenarios, see the [troubleshooting guide](https://shopify.dev/docs/api/commerce-components/pay/troubleshooting-guide). """ shopPayPaymentRequestSessionCreate(sourceIdentifier: String!, paymentRequest: ShopPayPaymentRequestInput!): ShopPayPaymentRequestSessionCreatePayload """ Finalizes a [Shop Pay payment request session](https://shopify.dev/docs/api/storefront/current/objects/ShopPayPaymentRequestSession). Call this mutation after creating a session with [`shopPayPaymentRequestSessionCreate`](https://shopify.dev/docs/api/storefront/current/mutations/shopPayPaymentRequestSessionCreate). The [`idempotencyKey`](https://shopify.dev/docs/api/storefront/current/mutations/shopPayPaymentRequestSessionSubmit#arguments-idempotencyKey) argument ensures the payment transaction occurs only once, preventing duplicate charges. On success, returns a [`ShopPayPaymentRequestReceipt`](https://shopify.dev/docs/api/storefront/current/objects/ShopPayPaymentRequestReceipt) with the processing status and a receipt token. For a complete integration guide including the JavaScript SDK setup and checkout flow, refer to the [Shop Component API documentation](https://shopify.dev/docs/api/commerce-components/pay). For implementation steps, see the [development journey guide](https://shopify.dev/docs/api/commerce-components/pay/development-journey). For common error scenarios, see the [troubleshooting guide](https://shopify.dev/docs/api/commerce-components/pay/troubleshooting-guide). """ shopPayPaymentRequestSessionSubmit(token: String!, paymentRequest: ShopPayPaymentRequestInput!, idempotencyKey: String!, orderName: String): ShopPayPaymentRequestSessionSubmitPayload } """ An order is a customer’s completed request to purchase one or more products from a shop. An order is created when a customer completes the checkout process, during which time they provides an email address, billing address and payment information. """ type Order implements HasMetafields & Node { """ The address associated with the payment method. """ billingAddress: MailingAddress """ The reason for the order's cancellation. Returns `null` if the order wasn't canceled. """ cancelReason: OrderCancelReason """ The date and time when the order was canceled. Returns null if the order wasn't canceled. """ canceledAt: DateTime """ The code of the currency used for the payment. """ currencyCode: CurrencyCode! """ The subtotal of line items and their discounts, excluding line items that have been removed. Does not contain order-level discounts, duties, shipping costs, or shipping discounts. Taxes aren't included unless the order is a taxes-included order. """ currentSubtotalPrice: MoneyV2! """ The total cost of duties for the order, including refunds. """ currentTotalDuties: MoneyV2 """ The total amount of the order, including duties, taxes and discounts, minus amounts for line items that have been removed. """ currentTotalPrice: MoneyV2! """ The total cost of shipping, excluding shipping lines that have been refunded or removed. Taxes aren't included unless the order is a taxes-included order. """ currentTotalShippingPrice: MoneyV2! """ The total of all taxes applied to the order, excluding taxes for returned line items. """ currentTotalTax: MoneyV2! """ A list of the custom attributes added to the order. For example, whether an order is a customer's first. """ customAttributes: [Attribute!]! """ The locale code in which this specific order happened. """ customerLocale: String """ The unique URL that the customer can use to access the order. """ customerUrl: URL """ Discounts that have been applied on the order. """ discountApplications(first: Int, after: String, last: Int, before: String, reverse: Boolean = false): DiscountApplicationConnection! """ Whether the order has had any edits applied or not. """ edited: Boolean! """ The customer's email address. """ email: String """ The financial status of the order. """ financialStatus: OrderFinancialStatus """ The fulfillment status for the order. """ fulfillmentStatus: OrderFulfillmentStatus! """ A globally-unique ID. """ id: ID! """ List of the order’s line items. """ lineItems(first: Int, after: String, last: Int, before: String, reverse: Boolean = false): OrderLineItemConnection! """ A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. """ metafield(namespace: String, key: String!): Metafield """ A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. """ metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]! """ Unique identifier for the order that appears on the order. For example, _#1000_ or _Store1001. """ name: String! """ A unique numeric identifier for the order for use by shop owner and customer. """ orderNumber: Int! """ The total cost of duties charged at checkout. """ originalTotalDuties: MoneyV2 """ The total price of the order before any applied edits. """ originalTotalPrice: MoneyV2! """ The customer's phone number for receiving SMS notifications. """ phone: String """ The date and time when the order was imported. This value can be set to dates in the past when importing from other systems. If no value is provided, it will be auto-generated based on current date and time. """ processedAt: DateTime! """ The address to where the order will be shipped. """ shippingAddress: MailingAddress """ The discounts that have been allocated onto the shipping line by discount applications. """ shippingDiscountAllocations: [DiscountAllocation!]! """ The unique URL for the order's status page. """ statusUrl: URL! """ Price of the order before shipping and taxes. """ subtotalPrice: MoneyV2 """ Price of the order before duties, shipping and taxes. """ subtotalPriceV2: MoneyV2 @deprecated """ List of the order’s successful fulfillments. """ successfulFulfillments(first: Int): [Fulfillment!] """ The sum of all the prices of all the items in the order, duties, taxes and discounts included (must be positive). """ totalPrice: MoneyV2! """ The sum of all the prices of all the items in the order, duties, taxes and discounts included (must be positive). """ totalPriceV2: MoneyV2! @deprecated """ The total amount that has been refunded. """ totalRefunded: MoneyV2! """ The total amount that has been refunded. """ totalRefundedV2: MoneyV2! @deprecated """ The total cost of shipping. """ totalShippingPrice: MoneyV2! """ The total cost of shipping. """ totalShippingPriceV2: MoneyV2! @deprecated """ The total cost of taxes. """ totalTax: MoneyV2 """ The total cost of taxes. """ totalTaxV2: MoneyV2 @deprecated } """ An auto-generated type for paginating through multiple Orders. """ type OrderConnection { """ A list of edges. """ edges: [OrderEdge!]! """ A list of the nodes contained in OrderEdge. """ nodes: [Order!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ The total count of Orders. """ totalCount: UnsignedInt64! } """ An auto-generated type which holds one Order and a cursor during pagination. """ type OrderEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of OrderEdge. """ node: Order! } """ Represents a single line in an order. There is one line item for each distinct product variant. """ type OrderLineItem { """ The number of entries associated to the line item minus the items that have been removed. """ currentQuantity: Int! """ List of custom attributes associated to the line item. """ customAttributes: [Attribute!]! """ The discounts that have been allocated onto the order line item by discount applications. """ discountAllocations: [DiscountAllocation!]! """ The total price of the line item, including discounts, and displayed in the presentment currency. """ discountedTotalPrice: MoneyV2! """ The total price of the line item, not including any discounts. The total price is calculated using the original unit price multiplied by the quantity, and it's displayed in the presentment currency. """ originalTotalPrice: MoneyV2! """ The number of products variants associated to the line item. """ quantity: Int! """ The title of the product combined with title of the variant. """ title: String! """ The product variant object associated to the line item. """ variant: ProductVariant } """ An auto-generated type for paginating through multiple OrderLineItems. """ type OrderLineItemConnection { """ A list of edges. """ edges: [OrderLineItemEdge!]! """ A list of the nodes contained in OrderLineItemEdge. """ nodes: [OrderLineItem!]! """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An auto-generated type which holds one OrderLineItem and a cursor during pagination. """ type OrderLineItemEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of OrderLineItemEdge. """ node: OrderLineItem! } """ A [custom content page](https://help.shopify.com/manual/online-store/add-edit-pages) on a merchant's store. Pages display HTML-formatted content, such as "About Us", contact details, or store policies. Each page has a unique [`handle`](https://shopify.dev/docs/api/storefront/current/objects/Page#field-Page.fields.handle) for URL routing and includes [`SEO`](https://shopify.dev/docs/api/storefront/current/objects/SEO) information for search engine optimization. Pages support [`Metafield`](https://shopify.dev/docs/api/storefront/current/objects/Metafield) attachments for storing additional custom data. """ type Page implements HasMetafields & Node & OnlineStorePublishable & Trackable { """ The description of the page, complete with HTML formatting. """ body: HTML! """ Summary of the page body. """ bodySummary: String! """ The timestamp of the page creation. """ createdAt: DateTime! """ A human-friendly unique string for the page automatically generated from its title. """ handle: String! """ A globally-unique ID. """ id: ID! """ A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. """ metafield(namespace: String, key: String!): Metafield """ A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. """ 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 """ The page's SEO information. """ seo: SEO """ The title of the page. """ title: String! """ URL parameters to be added to a page URL to track the origin of on-site search traffic for [analytics reporting](https://help.shopify.com/manual/reports-and-analytics/shopify-reports/report-types/default-reports/behaviour-reports). Returns a result when accessed through the [search](https://shopify.dev/docs/api/storefront/current/queries/search) or [predictiveSearch](https://shopify.dev/docs/api/storefront/current/queries/predictiveSearch) queries, otherwise returns null. """ trackingParameters: String """ The timestamp of the latest page update. """ updatedAt: DateTime! } """ An auto-generated type for paginating through multiple Pages. """ type PageConnection { """ A list of edges. """ edges: [PageEdge!]! """ A list of the nodes contained in PageEdge. """ nodes: [Page!]! """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An auto-generated type which holds one Page and a cursor during pagination. """ type PageEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of PageEdge. """ node: Page! } """ Returns information about pagination in a connection, in accordance with the [Relay specification](https://relay.dev/graphql/connections.htm#sec-undefined.PageInfo). For more information, please read our [GraphQL Pagination Usage Guide](https://shopify.dev/api/usage/pagination-graphql). """ 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 for paginating through multiple sitemap's resources. """ type PaginatedSitemapResources { """ Whether there are more pages to fetch following the current page. """ hasNextPage: Boolean! """ List of sitemap resources for the current page. Note: The number of items varies between 0 and 250 per page. """ items: [SitemapResourceInterface!]! } """ Settings related to payments. """ type PaymentSettings { """ List of the card brands which the business entity accepts. """ acceptedCardBrands: [CardBrand!]! """ The url pointing to the endpoint to vault credit cards. """ cardVaultUrl: URL! """ The country where the shop is located. When multiple business entities operate within the shop, then this will represent the country of the business entity that's serving the specified buyer context. """ countryCode: CountryCode! """ The three-letter code for the shop's primary currency. """ currencyCode: CurrencyCode! """ A list of enabled currencies (ISO 4217 format) that the shop accepts. Merchants can enable currencies from their Shopify Payments settings in the Shopify admin. """ enabledPresentmentCurrencies: [CurrencyCode!]! """ The shop’s Shopify Payments account ID. """ shopifyPaymentsAccountId: String """ List of the digital wallets which the business entity supports. """ supportedDigitalWallets: [DigitalWallet!]! } """ Returned by the [`predictiveSearch`](https://shopify.dev/docs/api/storefront/current/queries/predictiveSearch) query to power type-ahead search experiences. Includes matching [`Product`](https://shopify.dev/docs/api/storefront/current/objects/Product), [`Collection`](https://shopify.dev/docs/api/storefront/current/objects/Collection), [`Page`](https://shopify.dev/docs/api/storefront/current/objects/Page), and [`Article`](https://shopify.dev/docs/api/storefront/current/objects/Article) objects, along with query suggestions that help customers refine their search. """ type PredictiveSearchResult { """ The articles that match the search query. """ articles: [Article!]! """ The articles that match the search query. """ collections: [Collection!]! """ The pages that match the search query. """ pages: [Page!]! """ The products that match the search query. """ products: [Product!]! """ The query suggestions that are relevant to the search query. """ queries: [SearchQuerySuggestion!]! } """ A percentage discount value applied to cart items or orders. Returned as part of the [`PricingValue`](https://shopify.dev/docs/api/storefront/current/unions/PricingValue) union on [discount applications](https://shopify.dev/docs/api/storefront/current/interfaces/DiscountApplication), where it represents discounts calculated as a percentage off rather than a [fixed amount](https://shopify.dev/docs/api/storefront/current/objects/MoneyV2). """ type PricingPercentageValue { """ The percentage value of the object. """ percentage: Float! } """ Represents an item listed in a shop's catalog. Products support multiple [product variants](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant), representing different versions of the same product, and can include various [media](https://shopify.dev/docs/api/storefront/current/interfaces/Media) types. Use the [`selectedOrFirstAvailableVariant`](https://shopify.dev/docs/api/storefront/current/objects/Product#field-Product.fields.selectedOrFirstAvailableVariant) or [`variantBySelectedOptions`](https://shopify.dev/docs/api/storefront/current/objects/Product#field-Product.fields.variantBySelectedOptions) fields to help customers find the right variant based on their selections. Products can be organized into [collections](https://shopify.dev/docs/api/storefront/current/objects/Collection), associated with [selling plans](https://shopify.dev/docs/api/storefront/current/objects/SellingPlanGroup) for subscriptions, and extended with custom data through [metafields](https://shopify.dev/docs/api/storefront/current/objects/Metafield). Learn more about working with [products and collections](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/products-collections). """ type Product implements HasMetafields & Node & OnlineStorePublishable & Trackable { """ A list of variants whose selected options differ with the provided selected options by one, ordered by variant id. If selected options are not provided, adjacent variants to the first available variant is returned. Note that this field returns an array of variants. In most cases, the number of variants in this array will be low. However, with a low number of options and a high number of values per option, the number of variants returned here can be high. In such cases, it recommended to avoid using this field. This list of variants can be used in combination with the `options` field to build a rich variant picker that includes variant availability or other variant information. """ adjacentVariants(selectedOptions: [SelectedOptionInput!], ignoreUnknownOptions: Boolean = true, caseInsensitiveMatch: Boolean = false): [ProductVariant!]! """ Indicates if at least one product variant is available for sale. """ availableForSale: Boolean! """ The category of a product from [Shopify's Standard Product Taxonomy](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17). """ category: TaxonomyCategory """ A list of [collections](/docs/api/storefront/latest/objects/Collection) that include the product. """ collections(first: Int, after: String, last: Int, before: String, reverse: Boolean = false): CollectionConnection! """ The [compare-at price range](https://help.shopify.com/manual/products/details/product-pricing/sale-pricing) of the product in the shop's default currency. """ compareAtPriceRange: ProductPriceRange! """ The date and time when the product was created. """ createdAt: DateTime! """ A single-line description of the product, with [HTML tags](https://developer.mozilla.org/en-US/docs/Web/HTML) removed. """ description(truncateAt: Int): String! """ The description of the product, with HTML tags. For example, the description might include bold `` and italic `` text. """ descriptionHtml: HTML! """ An encoded string containing all option value combinations with a corresponding variant that is currently available for sale. Integers represent option and values: [0,1] represents option_value at array index 0 for the option at array index 0 `:`, `,`, ` ` and `-` are control characters. `:` indicates a new option. ex: 0:1 indicates value 0 for the option in position 1, value 1 for the option in position 2. `,` indicates the end of a repeated prefix, mulitple consecutive commas indicate the end of multiple repeated prefixes. ` ` indicates a gap in the sequence of option values. ex: 0 4 indicates option values in position 0 and 4 are present. `-` indicates a continuous range of option values. ex: 0 1-3 4 Decoding process: Example options: [Size, Color, Material] Example values: [[Small, Medium, Large], [Red, Blue], [Cotton, Wool]] Example encoded string: "0:0:0,1:0-1,,1:0:0-1,1:1,,2:0:1,1:0,," Step 1: Expand ranges into the numbers they represent: "0:0:0,1:0 1,,1:0:0 1,1:1,,2:0:1,1:0,," Step 2: Expand repeated prefixes: "0:0:0,0:1:0 1,1:0:0 1,1:1:1,2:0:1,2:1:0," Step 3: Expand shared prefixes so data is encoded as a string: "0:0:0,0:1:0,0:1:1,1:0:0,1:0:1,1:1:1,2:0:1,2:1:0," Step 4: Map to options + option values to determine existing variants: [Small, Red, Cotton] (0:0:0), [Small, Blue, Cotton] (0:1:0), [Small, Blue, Wool] (0:1:1), [Medium, Red, Cotton] (1:0:0), [Medium, Red, Wool] (1:0:1), [Medium, Blue, Wool] (1:1:1), [Large, Red, Wool] (2:0:1), [Large, Blue, Cotton] (2:1:0). """ encodedVariantAvailability: String """ An encoded string containing all option value combinations with a corresponding variant. Integers represent option and values: [0,1] represents option_value at array index 0 for the option at array index 0 `:`, `,`, ` ` and `-` are control characters. `:` indicates a new option. ex: 0:1 indicates value 0 for the option in position 1, value 1 for the option in position 2. `,` indicates the end of a repeated prefix, mulitple consecutive commas indicate the end of multiple repeated prefixes. ` ` indicates a gap in the sequence of option values. ex: 0 4 indicates option values in position 0 and 4 are present. `-` indicates a continuous range of option values. ex: 0 1-3 4 Decoding process: Example options: [Size, Color, Material] Example values: [[Small, Medium, Large], [Red, Blue], [Cotton, Wool]] Example encoded string: "0:0:0,1:0-1,,1:0:0-1,1:1,,2:0:1,1:0,," Step 1: Expand ranges into the numbers they represent: "0:0:0,1:0 1,,1:0:0 1,1:1,,2:0:1,1:0,," Step 2: Expand repeated prefixes: "0:0:0,0:1:0 1,1:0:0 1,1:1:1,2:0:1,2:1:0," Step 3: Expand shared prefixes so data is encoded as a string: "0:0:0,0:1:0,0:1:1,1:0:0,1:0:1,1:1:1,2:0:1,2:1:0," Step 4: Map to options + option values to determine existing variants: [Small, Red, Cotton] (0:0:0), [Small, Blue, Cotton] (0:1:0), [Small, Blue, Wool] (0:1:1), [Medium, Red, Cotton] (1:0:0), [Medium, Red, Wool] (1:0:1), [Medium, Blue, Wool] (1:1:1), [Large, Red, Wool] (2:0:1), [Large, Blue, Cotton] (2:1:0). """ encodedVariantExistence: String """ The featured image for the product. This field is functionally equivalent to `images(first: 1)`. """ featuredImage: Image """ A unique, human-readable string of the product's title. A handle can contain letters, hyphens (`-`), and numbers, but no spaces. The handle is used in the online store URL for the product. """ handle: String! """ A globally-unique ID. """ id: ID! """ List of images associated with the product. """ images(first: Int, after: String, last: Int, before: String, reverse: Boolean = false, sortKey: ProductImageSortKeys = POSITION): ImageConnection! """ Whether the product is a gift card. """ isGiftCard: Boolean! """ The [media](/docs/apps/build/online-store/product-media) that are associated with the product. Valid media are images, 3D models, videos. """ media(first: Int, after: String, last: Int, before: String, reverse: Boolean = false, sortKey: ProductMediaSortKeys = POSITION): MediaConnection! """ A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. """ metafield(namespace: String, key: String!): Metafield """ A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. """ metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]! """ The product's URL on the online store. If `null`, then the product isn't published to the online store sales channel. """ onlineStoreUrl: URL """ A list of product options. The limit is defined by the [shop's resource limits for product options](/docs/api/admin-graphql/latest/objects/Shop#field-resourcelimits) (`Shop.resourceLimits.maxProductOptions`). """ options(first: Int): [ProductOption!]! """ The minimum and maximum prices of a product, expressed in decimal numbers. For example, if the product is priced between $10.00 and $50.00, then the price range is $10.00 - $50.00. """ priceRange: ProductPriceRange! """ The [product type](https://help.shopify.com/manual/products/details/product-type) that merchants define. """ 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](/docs/apps/build/purchase-options/subscriptions/selling-plans). Products that are sold on subscription (`requiresSellingPlan: true`) can be updated only for online stores. If you update a product to be subscription-only (`requiresSellingPlan:false`), then the product is unpublished from all channels, except the online store. """ requiresSellingPlan: Boolean! """ Find an active product variant based on selected options, availability or the first variant. All arguments are optional. If no selected options are provided, the first available variant is returned. If no variants are available, the first variant is returned. """ selectedOrFirstAvailableVariant(selectedOptions: [SelectedOptionInput!], ignoreUnknownOptions: Boolean = true, caseInsensitiveMatch: Boolean = false): ProductVariant """ A list of all [selling plan groups](/docs/apps/build/purchase-options/subscriptions/selling-plans/build-a-selling-plan) that are associated with the product either directly, or through the product's variants. """ sellingPlanGroups(first: Int, after: String, last: Int, before: String, reverse: Boolean = false): SellingPlanGroupConnection! """ The [SEO title and description](https://help.shopify.com/manual/promoting-marketing/seo/adding-keywords) that are associated with a product. """ seo: SEO! """ A comma-separated list of searchable keywords that are associated with the product. For example, a merchant might apply the `sports` and `summer` tags to products that are associated with sportwear for summer. Updating `tags` overwrites any existing tags that were previously added to the product. To add new tags without overwriting existing tags, use the GraphQL Admin API's [`tagsAdd`](/docs/api/admin-graphql/latest/mutations/tagsadd) mutation. """ tags: [String!]! """ The name for the product that displays to customers. The title is used to construct the product's handle. For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`. """ title: String! """ The quantity of inventory that's in stock. """ totalInventory: Int """ URL parameters to be added to a page URL to track the origin of on-site search traffic for [analytics reporting](https://help.shopify.com/manual/reports-and-analytics/shopify-reports/report-types/default-reports/behaviour-reports). Returns a result when accessed through the [search](https://shopify.dev/docs/api/storefront/current/queries/search) or [predictiveSearch](https://shopify.dev/docs/api/storefront/current/queries/predictiveSearch) queries, otherwise returns null. """ trackingParameters: String """ 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!]!, ignoreUnknownOptions: Boolean = false, caseInsensitiveMatch: Boolean = false): ProductVariant """ A list of [variants](/docs/api/storefront/latest/objects/ProductVariant) that are associated with the product. """ variants(first: Int, after: String, last: Int, before: String, reverse: Boolean = false, sortKey: ProductVariantSortKeys = POSITION): ProductVariantConnection! """ The number of [variants](/docs/api/storefront/latest/objects/ProductVariant) that are associated with the product. """ variantsCount: Count """ The name of the product's vendor. """ vendor: String! } """ An auto-generated type for paginating through multiple Products. """ 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! } """ An auto-generated type which holds one Product and a cursor during pagination. """ type ProductEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of ProductEdge. """ node: Product! } """ A customizable product attribute that customers select when purchasing, such as "Size", "Color", or "Material". Each option has a name and a set of [`ProductOptionValue`](https://shopify.dev/docs/api/storefront/current/objects/ProductOptionValue) objects representing the available choices. Different combinations of option values create distinct [`ProductVariant`](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant) objects. Option values can include visual swatches that display colors or images to help customers make selections. Option names have a 255-character limit. Learn more about [Shopify's product model](https://shopify.dev/docs/apps/build/product-merchandising/products-and-collections). """ type ProductOption implements Node { """ A globally-unique ID. """ id: ID! """ The product option’s name. """ name: String! """ The corresponding option value to the product option. """ optionValues: [ProductOptionValue!]! """ The corresponding value to the product option name. """ values: [String!]! @deprecated } """ A specific value for a [`ProductOption`](https://shopify.dev/docs/api/storefront/current/objects/ProductOption), such as "Red" or "Blue" for a "Color" option. Option values combine across different options to create [`ProductVariant`](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant) objects. Each value can include a visual swatch that displays a color or image. The [`firstSelectableVariant`](https://shopify.dev/docs/api/storefront/current/objects/ProductOptionValue#field-ProductOptionValue.fields.firstSelectableVariant) field returns the variant that combines this option value with the lowest-position values for all other options. This is useful for building product selection interfaces. Learn more about [Shopify's product model](https://shopify.dev/docs/apps/build/product-merchandising/products-and-collections). """ type ProductOptionValue implements Node { """ The product variant that combines this option value with the lowest-position option values for all other options. This field will always return a variant, provided a variant including this option value exists. """ firstSelectableVariant: ProductVariant """ A globally-unique ID. """ id: ID! """ The name of the product option value. """ name: String! """ The swatch of the product option value. """ swatch: ProductOptionValueSwatch } """ A visual representation for a [`ProductOptionValue`](https://shopify.dev/docs/api/storefront/current/objects/ProductOptionValue), such as a color or image. Swatches help customers visualize options like "Red" or "Blue" without relying solely on text labels. """ type ProductOptionValueSwatch { """ The swatch color. """ color: Color """ The swatch image. """ image: Media } """ The minimum and maximum prices across all variants of a [`Product`](https://shopify.dev/docs/api/storefront/current/objects/Product). """ type ProductPriceRange { """ The highest variant's price. """ maxVariantPrice: MoneyV2! """ The lowest variant's price. """ minVariantPrice: MoneyV2! } """ A specific version of a [product](https://shopify.dev/docs/api/storefront/current/objects/Product) available for sale, differentiated by options like size or color. For example, a small blue t-shirt and a large blue t-shirt are separate variants of the same product. For more information, see the docs on [Shopify's product model](https://shopify.dev/docs/apps/build/product-merchandising/products-and-collections). For products with quantity rules, variants enforce minimum, maximum, and increment constraints on purchases. Variants also support subscriptions and pre-orders through [selling plan allocations](https://shopify.dev/docs/api/storefront/current/objects/SellingPlanAllocation) objects, bundle configurations through [product variant components](https://shopify.dev/docs/api/storefront/current/objects/ProductVariantComponent) objects, and [shop pay installments pricing](https://shopify.dev/docs/api/storefront/current/objects/ShopPayInstallmentsPricing) for flexible payment options. """ type ProductVariant implements HasMetafields & Node { """ 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 """ The compare at price of the variant. This can be used to mark a variant as on sale, when `compareAtPriceV2` is higher than `priceV2`. """ compareAtPriceV2: MoneyV2 @deprecated """ List of bundles components included in the variant considering only fixed bundles. """ components(first: Int, after: String, last: Int, before: String): ProductVariantComponentConnection! """ Whether a product is out of stock but still available for purchase (used for backorders). """ currentlyNotInStock: Boolean! """ List of bundles that include this variant considering only fixed bundles. """ groupedBy(first: Int, after: String, last: Int, before: String): ProductVariantConnection! """ A globally-unique ID. """ id: ID! """ Image associated with the product variant. This field falls back to the product image if no image is available. """ image: Image """ A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. """ metafield(namespace: String, key: String!): Metafield """ A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. """ metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]! """ The product variant’s price. """ price: MoneyV2! """ The product variant’s price. """ priceV2: MoneyV2! @deprecated """ The product object that the product variant belongs to. """ product: Product! """ The total sellable quantity of the variant for online sales channels. """ quantityAvailable: Int """ A list of quantity breaks for the product variant. """ quantityPriceBreaks(first: Int, after: String, last: Int, before: String): QuantityPriceBreakConnection! """ The quantity rule for the product variant in a given context. """ quantityRule: QuantityRule! """ Whether a product variant requires components. The default value is `false`. If `true`, then the product variant can only be purchased as a parent bundle with components. """ requiresComponents: Boolean! """ 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!]! """ 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 Shop Pay Installments pricing information for the product variant. """ shopPayInstallmentsPricing: ShopPayInstallmentsProductVariantPricing """ The SKU (stock keeping unit) associated with the variant. """ sku: String """ The in-store pickup availability of this variant by location. """ storeAvailability(near: GeoCoordinateInput, first: Int, after: String, last: Int, before: String, reverse: Boolean = false): StoreAvailabilityConnection! """ Whether tax is charged when the product variant is sold. """ taxable: Boolean! """ The product variant’s title. """ title: String! """ 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! } """ An individual product variant included in a [fixed bundle](https://shopify.dev/docs/apps/build/product-merchandising/bundles). Fixed bundles group multiple products together and sell them as a single unit, with the bundle's inventory determined by its components. Access components through the `ProductVariant` object's [`components`](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant#field-ProductVariant.fields.components) field. """ type ProductVariantComponent { """ The product variant object that the component belongs to. """ productVariant: ProductVariant! """ The quantity of component present in the bundle. """ quantity: Int! } """ An auto-generated type for paginating through multiple ProductVariantComponents. """ type ProductVariantComponentConnection { """ A list of edges. """ edges: [ProductVariantComponentEdge!]! """ A list of the nodes contained in ProductVariantComponentEdge. """ nodes: [ProductVariantComponent!]! """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An auto-generated type which holds one ProductVariantComponent and a cursor during pagination. """ type ProductVariantComponentEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of ProductVariantComponentEdge. """ node: ProductVariantComponent! } """ An auto-generated type for paginating through multiple ProductVariants. """ 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! } """ An auto-generated type which holds one ProductVariant and a cursor during pagination. """ type ProductVariantEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of ProductVariantEdge. """ node: ProductVariant! } """ Represents information about the buyer that is interacting with the cart. """ type PurchasingCompany { """ The company associated to the order or draft order. """ company: Company! """ The company contact associated to the order or draft order. """ contact: CompanyContact """ The company location associated to the order or draft order. """ location: CompanyLocation! } """ Quantity price breaks lets you offer different rates that are based on the amount of a specific variant being ordered. """ type QuantityPriceBreak { """ Minimum quantity required to reach new quantity break price. """ minimumQuantity: Int! """ The price of variant after reaching the minimum quanity. """ price: MoneyV2! } """ An auto-generated type for paginating through multiple QuantityPriceBreaks. """ type QuantityPriceBreakConnection { """ A list of edges. """ edges: [QuantityPriceBreakEdge!]! """ A list of the nodes contained in QuantityPriceBreakEdge. """ nodes: [QuantityPriceBreak!]! """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An auto-generated type which holds one QuantityPriceBreak and a cursor during pagination. """ type QuantityPriceBreakEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of QuantityPriceBreakEdge. """ node: QuantityPriceBreak! } """ The quantity rule for the product variant in a given context. """ type QuantityRule { """ The value that specifies the quantity increment between minimum and maximum of the rule. Only quantities divisible by this value will be considered valid. The increment must be lower than or equal to the minimum and the maximum, and both minimum and maximum must be divisible by this value. """ increment: Int! """ An optional value that defines the highest allowed quantity purchased by the customer. If defined, maximum must be lower than or equal to the minimum and must be a multiple of the increment. """ maximum: Int """ The value that defines the lowest allowed quantity purchased by the customer. The minimum must be a multiple of the quantity rule's increment. """ minimum: Int! } """ The entry point for all Storefront API queries. Provides access to shop resources including products, collections, carts, and customer data, as well as content like articles and pages. This query acts as the public, top-level type from which all queries must start. Use individual queries like [`product`](https://shopify.dev/docs/api/storefront/current/queries/product) or [`collection`](https://shopify.dev/docs/api/storefront/current/queries/collection) to fetch specific resources by ID or handle. Use plural queries like [`products`](https://shopify.dev/docs/api/storefront/current/queries/products) or [`collections`](https://shopify.dev/docs/api/storefront/current/queries/collections) to retrieve paginated lists with optional filtering and sorting. The [`search`](https://shopify.dev/docs/api/storefront/current/queries/search) and [`predictiveSearch`](https://shopify.dev/docs/api/storefront/current/queries/predictiveSearch) queries enable storefront search functionality. Explore queries interactively with the [GraphiQL explorer and sample query kit](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/api-exploration). """ type QueryRoot { """ Returns an [`Article`](https://shopify.dev/docs/api/storefront/current/objects/Article) by its ID. Each article belongs to a [`Blog`](https://shopify.dev/docs/api/storefront/current/objects/Blog) and includes content in both plain text and HTML formats, [`ArticleAuthor`](https://shopify.dev/docs/api/storefront/current/objects/ArticleAuthor) information, [`Comment`](https://shopify.dev/docs/api/storefront/current/objects/Comment) objects, tags, and [`SEO`](https://shopify.dev/docs/api/storefront/current/objects/SEO) data. """ article(id: ID!): Article """ Returns a paginated list of [`Article`](https://shopify.dev/docs/api/storefront/current/objects/Article) objects from the shop's [`Blog`](https://shopify.dev/docs/api/storefront/current/objects/Blog) objects. Each article is a blog post containing content, author information, tags, and optional images. Use the `query` argument to filter results by author, blog title, tags, or date fields. Sort results using the `sortKey` argument and reverse them with the `reverse` argument. """ articles(first: Int, after: String, last: Int, before: String, reverse: Boolean = false, sortKey: ArticleSortKeys = ID, query: String): ArticleConnection! """ Retrieves a [`Blog`](https://shopify.dev/docs/api/storefront/current/objects/Blog) by its handle or ID. A blog organizes [`Article`](https://shopify.dev/docs/api/storefront/current/objects/Article) objects for the online store and includes author information, [`SEO`](https://shopify.dev/docs/api/storefront/current/objects/SEO) settings, and custom [`Metafield`](https://shopify.dev/docs/api/storefront/current/objects/Metafield) objects. """ blog(handle: String, id: ID): Blog """ Retrieves a [`Blog`](https://shopify.dev/docs/api/storefront/current/objects/Blog) by its handle. A blog organizes [`Article`](https://shopify.dev/docs/api/storefront/current/objects/Article) objects for the online store and includes author information, [`SEO`](https://shopify.dev/docs/api/storefront/current/objects/SEO) settings, and custom [`Metafield`](https://shopify.dev/docs/api/storefront/current/objects/Metafield) objects. """ blogByHandle(handle: String!): Blog @deprecated """ Returns a paginated list of the shop's [`Blog`](https://shopify.dev/docs/api/storefront/current/objects/Blog) objects. Each blog serves as a container for [`Article`](https://shopify.dev/docs/api/storefront/current/objects/Article) objects. """ blogs(first: Int, after: String, last: Int, before: String, reverse: Boolean = false, sortKey: BlogSortKeys = ID, query: String): BlogConnection! """ Returns a [`Cart`](https://shopify.dev/docs/api/storefront/current/objects/Cart) by its ID. The cart contains the merchandise lines a buyer intends to purchase, along with estimated costs, applied discounts, gift cards, and delivery options. Use the [`checkoutUrl`](https://shopify.dev/docs/api/storefront/latest/queries/cart#returns-Cart.fields.checkoutUrl) field to redirect buyers to Shopify's web checkout when they're ready to complete their purchase. For more information, refer to [Manage a cart with the Storefront API](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/cart/manage). """ cart(id: ID!): Cart """ A poll for the status of the cart checkout completion and order creation. """ cartCompletionAttempt(attemptId: String!): CartCompletionAttemptResult """ Retrieves a single [`Collection`](https://shopify.dev/docs/api/storefront/current/objects/Collection) by its ID or handle. Use the [`products`](https://shopify.dev/docs/api/storefront/current/objects/Collection#field-Collection.fields.products) field to access items in the collection. """ collection(id: ID, handle: String): Collection """ Retrieves a [`Collection`](https://shopify.dev/docs/api/storefront/current/objects/Collection) by its URL-friendly handle. Handles are automatically generated from collection titles but merchants can customize them. """ collectionByHandle(handle: String!): Collection @deprecated """ Returns a paginated list of the shop's [collections](https://shopify.dev/docs/api/storefront/current/objects/Collection). Each `Collection` object includes a nested connection to its [products](https://shopify.dev/docs/api/storefront/current/objects/Collection#field-Collection.fields.products). """ collections(first: Int, after: String, last: Int, before: String, reverse: Boolean = false, sortKey: CollectionSortKeys = ID, query: String): CollectionConnection! """ Retrieves the [`Customer`](https://shopify.dev/docs/api/storefront/current/objects/Customer) associated with the provided access token. Use the [`customerAccessTokenCreate`](https://shopify.dev/docs/api/storefront/current/mutations/customerAccessTokenCreate) mutation to obtain an access token using legacy customer account authentication (email and password). The returned customer includes data such as contact information, [addresses](https://shopify.dev/docs/api/storefront/current/objects/MailingAddress), [orders](https://shopify.dev/docs/api/storefront/current/objects/Order), and [custom data](https://shopify.dev/docs/apps/build/custom-data) associated with the customer. """ customer(customerAccessToken: String!): Customer """ Returns the shop's localization settings. Use this query to build [country and language selectors](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/markets) for your storefront. The [`country`](https://shopify.dev/docs/api/storefront/latest/queries/localization#returns-Localization.fields.country) and [`language`](https://shopify.dev/docs/api/storefront/latest/queries/localization#returns-Localization.fields.language) fields reflect the active localized experience. To change the context, use the [`@inContext`](https://shopify.dev/docs/api/storefront#directives) directive with your desired country or language code. """ localization: Localization! """ Returns shop locations that support in-store pickup. Use the `near` argument with [`GeoCoordinateInput`](https://shopify.dev/docs/api/storefront/current/input-objects/GeoCoordinateInput) to sort results by proximity to the customer's location. When sorting by distance, set `sortKey` to [`DISTANCE`](https://shopify.dev/docs/api/storefront/current/queries/locations#arguments-sortKey.enums.DISTANCE) and provide coordinates using the [`near`](https://shopify.dev/docs/api/storefront/current/queries/locations#arguments-near) argument. Learn more about [supporting local pickup on storefronts](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/products-collections/local-pickup). """ locations(first: Int, after: String, last: Int, before: String, reverse: Boolean = false, sortKey: LocationSortKeys = ID, near: GeoCoordinateInput): LocationConnection! """ Retrieves a [`Menu`](https://shopify.dev/docs/api/storefront/current/objects/Menu) by its handle. Menus are [hierarchical navigation structures](https://help.shopify.com/manual/online-store/menus-and-links) that merchants configure for their storefront, such as header and footer navigation. Each menu contains [`MenuItem`](https://shopify.dev/docs/api/storefront/current/objects/MenuItem) objects that can nest up to three levels deep, with each item linking to [collections](https://shopify.dev/docs/api/storefront/current/objects/Collection), [products](https://shopify.dev/docs/api/storefront/current/objects/Product), [pages](https://shopify.dev/docs/api/storefront/current/objects/Page), [blogs](https://shopify.dev/docs/api/storefront/current/objects/Blog), or external URLs. """ menu(handle: String!): Menu """ Retrieves a single [`Metaobject`](https://shopify.dev/docs/api/storefront/current/objects/Metaobject) by either its [`global ID`](https://shopify.dev/docs/api/storefront/current/queries/metaobject#arguments-id) or its [`handle`](https://shopify.dev/docs/api/storefront/current/queries/metaobject#arguments-handle). > Note: > When using the handle, you must also provide the metaobject type because handles are only unique within a type. """ metaobject(id: ID, handle: MetaobjectHandleInput): Metaobject """ Returns a paginated list of [`Metaobject`](https://shopify.dev/docs/api/storefront/current/objects/Metaobject) entries for a specific type. Metaobjects are [custom data structures](https://shopify.dev/docs/apps/build/metaobjects) that extend Shopify's data model with merchant-defined or app-defined content like size charts, product highlights, or custom sections. The required `type` argument specifies which metaobject type to retrieve. You can sort results by `id` or `updated_at` using the `sortKey` argument. """ metaobjects(type: String!, sortKey: String, first: Int, after: String, last: Int, before: String, reverse: Boolean = false): MetaobjectConnection! """ Retrieves any object that implements the [`Node`](https://shopify.dev/docs/api/storefront/current/interfaces/Node) interface by its globally-unique ID. Use inline fragments to access type-specific fields on the returned object. This query follows the [Relay specification](https://relay.dev/graphql/objectidentification.htm#sec-Node-Interface) and is commonly used for refetching objects when you have their ID but need updated data. """ node(id: ID!): Node """ Retrieves multiple objects by their global IDs in a single request. Any object that implements the [`Node`](https://shopify.dev/docs/api/storefront/current/interfaces/Node) interface can be fetched, including [products](https://shopify.dev/docs/api/storefront/current/objects/Product), [collections](https://shopify.dev/docs/api/storefront/current/objects/Collection), and [pages](https://shopify.dev/docs/api/storefront/current/objects/Page). Use inline fragments to access type-specific fields on the returned objects. The input accepts up to 250 IDs. """ nodes(ids: [ID!]!): [Node]! """ Retrieves a [`Page`](https://shopify.dev/docs/api/storefront/current/objects/Page) by its [`handle`](https://shopify.dev/docs/api/storefront/current/queries/page#arguments-handle) or [`id`](https://shopify.dev/docs/api/storefront/current/queries/page#arguments-id). Pages are static content pages that merchants display outside their product catalog, such as "About Us," "Contact," or policy pages. The returned page includes information such as the [HTML body content](https://shopify.dev/docs/api/storefront/current/queries/page#returns-Page.fields.body), [`SEO`](https://shopify.dev/docs/api/storefront/current/objects/SEO) information, and any associated [`Metafield`](https://shopify.dev/docs/api/storefront/current/objects/Metafield) objects. """ page(handle: String, id: ID): Page """ Retrieves a [`Page`](https://shopify.dev/docs/api/storefront/current/objects/Page) by its handle. """ pageByHandle(handle: String!): Page @deprecated """ Returns a paginated list of the shop's content [pages](https://shopify.dev/docs/api/storefront/current/objects/Page). Pages are custom HTML content like "About Us", "Contact", or policy information that merchants display outside their product catalog. """ pages(first: Int, after: String, last: Int, before: String, reverse: Boolean = false, sortKey: PageSortKeys = ID, query: String): PageConnection! """ Settings related to payments. """ paymentSettings: PaymentSettings! """ Returns suggested results as customers type in a search field, enabling type-ahead search experiences. The query matches [products](https://shopify.dev/docs/api/storefront/current/objects/Product), [collections](https://shopify.dev/docs/api/storefront/current/objects/Collection), [pages](https://shopify.dev/docs/api/storefront/current/objects/Page), and [articles](https://shopify.dev/docs/api/storefront/current/objects/Article) based on partial search terms, and also provides [search query suggestions](https://shopify.dev/docs/api/storefront/current/objects/SearchQuerySuggestion) to help customers refine their search. You can filter results by resource type and limit the quantity. The [`limitScope`](https://shopify.dev/docs/api/storefront/current/queries/predictiveSearch#arguments-limitScope) argument controls whether limits apply across all result types or per type. Use [`unavailableProducts`](https://shopify.dev/docs/api/storefront/current/queries/predictiveSearch#arguments-unavailableProducts) to control how out-of-stock products appear in results. """ predictiveSearch(limit: Int, limitScope: PredictiveSearchLimitScope, query: String!, searchableFields: [SearchableField!], types: [PredictiveSearchType!], unavailableProducts: SearchUnavailableProductsType): PredictiveSearchResult """ Retrieves a single [`Product`](https://shopify.dev/docs/api/storefront/current/objects/Product) by its ID or handle. Use this query to build product detail pages, access variant and pricing information, or fetch product media and [metafields](https://shopify.dev/docs/api/storefront/current/objects/Metafield). See some [examples of querying products](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/products-collections/getting-started). """ product(id: ID, handle: String): Product """ Retrieves a [`Product`](https://shopify.dev/docs/api/storefront/current/objects/Product) by its handle. The handle is a URL-friendly identifier that's automatically generated from the product's title. If no product exists with the specified handle, returns `null`. """ productByHandle(handle: String!): Product @deprecated """ Returns recommended products for a given product, identified by either ID or handle. Use the [`intent`](https://shopify.dev/docs/api/storefront/current/enums/ProductRecommendationIntent) argument to control the recommendation strategy. Shopify [auto-generates related recommendations](https://shopify.dev/docs/storefronts/themes/product-merchandising/recommendations) based on sales data, product descriptions, and collection relationships. Complementary recommendations require [manual configuration](https://help.shopify.com/manual/online-store/storefront-search/search-and-discovery-recommendations) through the Shopify Search & Discovery app. Returns up to ten [`Product`](https://shopify.dev/docs/api/storefront/current/objects/Product) objects. """ productRecommendations(productId: ID, productHandle: String, intent: ProductRecommendationIntent = RELATED): [Product!] """ Returns a paginated list of all tags that have been added to [products](https://shopify.dev/docs/api/storefront/current/objects/Product) in the shop. Useful for building tag-based product filtering or navigation in a storefront. """ productTags(first: Int!): StringConnection! """ Returns a list of product types from the shop's [`Product`](https://shopify.dev/docs/api/storefront/current/objects/Product) objects that are published to your app. Use this query to build [filtering interfaces](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/products-collections/filter-products) or navigation menus based on product categorization. """ productTypes(first: Int!): StringConnection! """ Returns a paginated list of the shop's [products](https://shopify.dev/docs/api/storefront/current/objects/Product). For full-text storefront search, use the [`search`](https://shopify.dev/docs/api/storefront/current/queries/search) query instead. """ products(first: Int, after: String, last: Int, before: String, reverse: Boolean = false, sortKey: ProductSortKeys = ID, query: String): ProductConnection! """ Returns all public Storefront [API versions](https://shopify.dev/docs/api/storefront/current/objects/ApiVersion), including supported, release candidate, and unstable versions. """ publicApiVersions: [ApiVersion!]! """ Returns paginated search results for [`Product`](https://shopify.dev/docs/api/storefront/current/objects/Product), [`Page`](https://shopify.dev/docs/api/storefront/current/objects/Page), and [`Article`](https://shopify.dev/docs/api/storefront/current/objects/Article) resources based on a query string. Results are sorted by relevance by default. The response includes the total result count and available product filters for building [faceted search interfaces](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/products-collections/filter-products). Use the [`prefix`](https://shopify.dev/docs/api/storefront/current/enums/SearchPrefixQueryType) argument to enable partial word matching on the last search term, allowing queries like "winter snow" to match "snowboard" or "snowshoe". """ search(first: Int, after: String, last: Int, before: String, reverse: Boolean = false, sortKey: SearchSortKeys = RELEVANCE, query: String!, prefix: SearchPrefixQueryType, productFilters: [ProductFilter!], types: [SearchType!], unavailableProducts: SearchUnavailableProductsType): SearchResultItemConnection! """ Returns the [`Shop`](https://shopify.dev/docs/api/storefront/current/objects/Shop) associated with the storefront access token. The `Shop` object provides general store information such as the shop name, description, and primary domain. Use this query to access data like store policies, [`PaymentSettings`](https://shopify.dev/docs/api/storefront/current/objects/PaymentSettings), [`Brand`](https://shopify.dev/docs/api/storefront/current/objects/Brand) configuration, and shipping destinations. It also exposes [`ShopPayInstallmentsPricing`](https://shopify.dev/docs/api/storefront/current/objects/ShopPayInstallmentsPricing) and [`SocialLoginProvider`](https://shopify.dev/docs/api/storefront/current/objects/SocialLoginProvider) options for customer accounts. """ shop: Shop! """ Returns the shop's Shop Pay Installments pricing information. """ shopPayInstallmentsPricing: ShopPayInstallmentsPricing """ Returns sitemap data for a specific resource type, enabling headless storefronts to generate XML sitemaps for search engine optimization. The query provides a page count and paginated access to resources like [`Product`](https://shopify.dev/docs/api/storefront/current/objects/Product), [`Collection`](https://shopify.dev/docs/api/storefront/current/objects/Collection), [`Page`](https://shopify.dev/docs/api/storefront/current/objects/Page), and [`Blog`](https://shopify.dev/docs/api/storefront/current/objects/Blog) objects. When paginating through resources, the number of items per page varies from 0 to 250, and empty pages can occur without indicating the end of results. Always check [`hasNextPage`](https://shopify.dev/docs/api/storefront/current/objects/PaginatedSitemapResources#field-PaginatedSitemapResources.fields.hasNextPage) to determine if more pages are available. """ sitemap(type: SitemapType!): Sitemap! """ Returns a paginated list of [`UrlRedirect`](https://shopify.dev/docs/api/storefront/current/objects/UrlRedirect) objects configured for the shop. Each redirect maps an old path to a target location. """ urlRedirects(first: Int, after: String, last: Int, before: String, reverse: Boolean = false, query: String): UrlRedirectConnection! } """ Search engine optimization metadata for a resource. The title and description appear in search engine results and browser tabs. """ type SEO { """ The meta description. """ description: String """ The SEO title. """ title: String } """ A discount application created by a Shopify Script. Implements the [`DiscountApplication`](https://shopify.dev/docs/api/storefront/current/interfaces/DiscountApplication) interface and captures the discount's value, allocation method, and targeting rules at the time the script applied it. """ type ScriptDiscountApplication implements DiscountApplication { """ The method by which the discount's value is allocated to its entitled items. """ allocationMethod: DiscountApplicationAllocationMethod! """ Which lines of targetType that the discount is allocated over. """ targetSelection: DiscountApplicationTargetSelection! """ The type of line that the discount is applicable towards. """ targetType: DiscountApplicationTargetType! """ The title of the application as defined by the Script. """ title: String! """ The value of the discount application. """ value: PricingValue! } """ A suggested search term returned by the [`predictiveSearch`](https://shopify.dev/docs/api/storefront/current/queries/predictiveSearch) query. Query suggestions help customers refine their searches by showing relevant terms as they type. The [`text`](https://shopify.dev/docs/api/storefront/current/objects/SearchQuerySuggestion#field-SearchQuerySuggestion.fields.text) field provides the plain suggestion, while [`styledText`](https://shopify.dev/docs/api/storefront/current/objects/SearchQuerySuggestion#field-SearchQuerySuggestion.fields.styledText) includes HTML tags to highlight matching portions. Implements [`Trackable`](https://shopify.dev/docs/api/storefront/current/interfaces/Trackable) for analytics reporting on search traffic origins. """ type SearchQuerySuggestion implements Trackable { """ The text of the search query suggestion with highlighted HTML tags. """ styledText: String! """ The text of the search query suggestion. """ text: String! """ URL parameters to be added to a page URL to track the origin of on-site search traffic for [analytics reporting](https://help.shopify.com/manual/reports-and-analytics/shopify-reports/report-types/default-reports/behaviour-reports). Returns a result when accessed through the [search](https://shopify.dev/docs/api/storefront/current/queries/search) or [predictiveSearch](https://shopify.dev/docs/api/storefront/current/queries/predictiveSearch) queries, otherwise returns null. """ trackingParameters: String } """ An auto-generated type for paginating through multiple SearchResultItems. """ type SearchResultItemConnection { """ A list of edges. """ edges: [SearchResultItemEdge!]! """ A list of the nodes contained in SearchResultItemEdge. """ nodes: [SearchResultItem!]! """ Information to aid in pagination. """ pageInfo: PageInfo! """ A list of available filters. """ productFilters: [Filter!]! """ The total number of results. """ totalCount: Int! } """ An auto-generated type which holds one SearchResultItem and a cursor during pagination. """ type SearchResultItemEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of SearchResultItemEdge. """ node: SearchResultItem! } """ A name/value pair representing a product option selection on a variant. The [`ProductVariant`](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant) object's [`selectedOptions`](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant#field-ProductVariant.fields.selectedOptions) field returns this to indicate which options define that variant, such as "Size: Large" or "Color: Red". """ type SelectedOption { """ The product option’s name. """ name: String! """ The product option’s value. """ value: String! } """ Represents deferred or recurring purchase options for [products](https://shopify.dev/docs/api/storefront/current/objects/Product) and [product variants](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant), such as subscriptions, pre-orders, or try-before-you-buy. Each selling plan belongs to a [`SellingPlanGroup`](https://shopify.dev/docs/api/storefront/current/objects/SellingPlanGroup) and defines billing, pricing, inventory, and delivery policies. """ type SellingPlan implements HasMetafields { """ The billing policy for the selling plan. """ billingPolicy: SellingPlanBillingPolicy """ The initial payment due for the purchase. """ checkoutCharge: SellingPlanCheckoutCharge! """ The delivery policy for the selling plan. """ deliveryPolicy: SellingPlanDeliveryPolicy """ The description of the selling plan. """ description: String """ A globally-unique ID. """ id: ID! """ A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. """ metafield(namespace: String, key: String!): Metafield """ A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. """ metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]! """ 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! } """ Links a [`ProductVariant`](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant) to a [`SellingPlan`](https://shopify.dev/docs/api/storefront/current/objects/SellingPlan), providing the pricing details for that specific combination. Each allocation includes the checkout charge amount, any remaining balance due for the purchase, and up to two price adjustments that show how the selling plan affects the variant's price. Selling plan allocations are available on product variants and [cart lines](https://shopify.dev/docs/api/storefront/current/objects/CartLine), enabling storefronts to display information such as subscription or purchase option pricing before and during checkout. """ 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! } """ 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! } """ 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 } """ 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 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! } """ 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 selling method that defines how products can be sold through purchase options like subscriptions, pre-orders, or try-before-you-buy. Groups one or more [`SellingPlan`](https://shopify.dev/docs/api/storefront/current/objects/SellingPlan) objects that share the same selling method and options. The `SellingPlanGroup` acts as a container for one or more individual `SellingPlan` objects, enabling merchants to offer multiple options (like weekly or monthly deliveries) under one, unified category on a product page. """ 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! } """ 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 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 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 } """ 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: Float! } """ 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 } """ The recurring billing policy for the selling plan. """ type SellingPlanRecurringBillingPolicy { """ The billing frequency, it can be either: day, week, month or year. """ interval: SellingPlanInterval! """ The number of intervals between billings. """ intervalCount: Int! } """ The recurring delivery policy for the selling plan. """ type SellingPlanRecurringDeliveryPolicy { """ The delivery frequency, it can be either: day, week, month or year. """ interval: SellingPlanInterval! """ The number of intervals between deliveries. """ intervalCount: Int! } """ The central hub for store-wide settings and information accessible through the Storefront API. Provides the shop's name, description, and branding configuration including logos and colors through the [`Brand`](https://shopify.dev/docs/api/storefront/current/objects/Brand) object. Access store policies such as privacy, refund, shipping, and terms of service via [`ShopPolicy`](https://shopify.dev/docs/api/storefront/current/objects/ShopPolicy), and the subscription policy via [`ShopPolicyWithDefault`](https://shopify.dev/docs/api/storefront/current/objects/ShopPolicyWithDefault). [`PaymentSettings`](https://shopify.dev/docs/api/storefront/current/objects/PaymentSettings) expose accepted card brands, supported digital wallets, and enabled presentment currencies. The object also includes the primary [`Domain`](https://shopify.dev/docs/api/storefront/current/objects/Domain), countries the shop ships to, [`ShopPayInstallmentsPricing`](https://shopify.dev/docs/api/storefront/current/objects/ShopPayInstallmentsPricing), and [`SocialLoginProvider`](https://shopify.dev/docs/api/storefront/current/objects/SocialLoginProvider) options for customer accounts. """ type Shop implements HasMetafields & Node { """ The shop's branding configuration. """ brand: Brand """ The shop's contact information. """ contactInformation: ShopPolicy """ Translations for customer accounts. """ customerAccountTranslations: [Translation!] """ The URL for the customer account (only present if shop has a customer account vanity domain). """ customerAccountUrl: String """ A description of the shop. """ description: String """ A globally-unique ID. """ id: ID! """ The shop's legal notice. """ legalNotice: ShopPolicy """ A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. """ metafield(namespace: String, key: String!): Metafield """ A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. """ metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]! """ A string representing the way currency is formatted when the currency isn’t specified. """ moneyFormat: String! """ The shop’s name. """ name: String! """ Settings related to payments. """ paymentSettings: PaymentSettings! """ The primary domain of the shop’s Online Store. """ primaryDomain: Domain! """ The shop’s privacy policy. """ privacyPolicy: ShopPolicy """ The shop’s refund policy. """ refundPolicy: ShopPolicy """ The shop’s shipping policy. """ shippingPolicy: ShopPolicy """ Countries that the shop ships to. """ shipsToCountries: [CountryCode!]! """ The Shop Pay Installments pricing information for the shop. """ shopPayInstallmentsPricing: ShopPayInstallmentsPricing """ The social login providers for customer accounts. """ socialLoginProviders: [SocialLoginProvider!]! """ The shop’s subscription policy. """ subscriptionPolicy: ShopPolicyWithDefault """ The shop's terms of sale. """ termsOfSale: ShopPolicy """ The shop’s terms of service. """ termsOfService: ShopPolicy } """ The financing plan in Shop Pay Installments. """ type ShopPayInstallmentsFinancingPlan implements Node { """ A globally-unique ID. """ id: ID! """ The maximum price to qualify for the financing plan. """ maxPrice: MoneyV2! """ The minimum price to qualify for the financing plan. """ minPrice: MoneyV2! """ The terms of the financing plan. """ terms: [ShopPayInstallmentsFinancingPlanTerm!]! } """ The terms of the financing plan in Shop Pay Installments. """ type ShopPayInstallmentsFinancingPlanTerm implements Node { """ The annual percentage rate (APR) of the financing plan. """ apr: Int! """ The payment frequency for the financing plan. """ frequency: ShopPayInstallmentsFinancingPlanFrequency! """ A globally-unique ID. """ id: ID! """ The number of installments for the financing plan. """ installmentsCount: Count """ The type of loan for the financing plan. """ loanType: ShopPayInstallmentsLoan! } """ The result for a Shop Pay Installments pricing request. """ type ShopPayInstallmentsPricing { """ The financing plans available for the given price range. """ financingPlans: [ShopPayInstallmentsFinancingPlan!]! """ The maximum price to qualify for financing. """ maxPrice: MoneyV2! """ The minimum price to qualify for financing. """ minPrice: MoneyV2! """ The pricing information for a product variant. """ productVariantPricing(variantId: ID!): ShopPayInstallmentsProductVariantPricing } """ The shop pay installments pricing information for a product variant. """ type ShopPayInstallmentsProductVariantPricing implements Node { """ Whether the product variant is available. """ available: Boolean! """ Whether the product variant is eligible for Shop Pay Installments. """ eligible: Boolean! """ The full price of the product variant. """ fullPrice: MoneyV2! """ The ID of the product variant. """ id: ID! """ The number of payment terms available for the product variant. """ installmentsCount: Count """ The price per term for the product variant. """ pricePerTerm: MoneyV2! } """ Represents a Shop Pay payment request. """ type ShopPayPaymentRequest { """ The delivery methods for the payment request. """ deliveryMethods: [ShopPayPaymentRequestDeliveryMethod!]! @deprecated """ The discount codes for the payment request. """ discountCodes: [String!]! """ The discounts for the payment request order. """ discounts: [ShopPayPaymentRequestDiscount!] """ The line items for the payment request. """ lineItems: [ShopPayPaymentRequestLineItem!]! """ The locale for the payment request. """ locale: String! """ The presentment currency for the payment request. """ presentmentCurrency: CurrencyCode! """ The delivery method type for the payment request. """ selectedDeliveryMethodType: ShopPayPaymentRequestDeliveryMethodType! """ The shipping address for the payment request. """ shippingAddress: ShopPayPaymentRequestContactField """ The shipping lines for the payment request. """ shippingLines: [ShopPayPaymentRequestShippingLine!]! """ The subtotal amount for the payment request. """ subtotal: MoneyV2! """ The total amount for the payment request. """ total: MoneyV2! """ The total shipping price for the payment request. """ totalShippingPrice: ShopPayPaymentRequestTotalShippingPrice """ The total tax for the payment request. """ totalTax: MoneyV2 } """ Represents a contact field for a Shop Pay payment request. """ type ShopPayPaymentRequestContactField { """ The first address line of the contact field. """ address1: String! """ The second address line of the contact field. """ address2: String """ The city of the contact field. """ city: String! """ The company name of the contact field. """ companyName: String """ The country of the contact field. """ countryCode: String! """ The email of the contact field. """ email: String """ The first name of the contact field. """ firstName: String! """ The first name of the contact field. """ lastName: String! """ The phone number of the contact field. """ phone: String """ The postal code of the contact field. """ postalCode: String """ The province of the contact field. """ provinceCode: String } """ Represents a delivery method for a Shop Pay payment request. """ type ShopPayPaymentRequestDeliveryMethod { """ The amount for the delivery method. """ amount: MoneyV2! """ The code of the delivery method. """ code: String! """ The detail about when the delivery may be expected. """ deliveryExpectationLabel: String """ The detail of the delivery method. """ detail: String """ The label of the delivery method. """ label: String! """ The maximum delivery date for the delivery method. """ maxDeliveryDate: ISO8601DateTime """ The minimum delivery date for the delivery method. """ minDeliveryDate: ISO8601DateTime } """ Represents a discount for a Shop Pay payment request. """ type ShopPayPaymentRequestDiscount { """ The amount of the discount. """ amount: MoneyV2! """ The label of the discount. """ label: String! } """ Represents an image for a Shop Pay payment request line item. """ type ShopPayPaymentRequestImage { """ The alt text of the image. """ alt: String """ The source URL of the image. """ url: String! } """ Represents a line item for a Shop Pay payment request. """ type ShopPayPaymentRequestLineItem { """ The final item price for the line item. """ finalItemPrice: MoneyV2! """ The final line price for the line item. """ finalLinePrice: MoneyV2! """ The image of the line item. """ image: ShopPayPaymentRequestImage """ The item discounts for the line item. """ itemDiscounts: [ShopPayPaymentRequestDiscount!] """ The label of the line item. """ label: String! """ The line discounts for the line item. """ lineDiscounts: [ShopPayPaymentRequestDiscount!] """ The original item price for the line item. """ originalItemPrice: MoneyV2 """ The original line price for the line item. """ originalLinePrice: MoneyV2 """ The quantity of the line item. """ quantity: Int! """ Whether the line item requires shipping. """ requiresShipping: Boolean """ The SKU of the line item. """ sku: String } """ Represents a receipt for a Shop Pay payment request. """ type ShopPayPaymentRequestReceipt { """ The payment request object. """ paymentRequest: ShopPayPaymentRequest! """ The processing status. """ processingStatusType: String! """ The token of the receipt. """ token: String! } """ Represents a Shop Pay payment request session. """ type ShopPayPaymentRequestSession { """ The checkout URL of the Shop Pay payment request session. """ checkoutUrl: URL! """ The payment request associated with the Shop Pay payment request session. """ paymentRequest: ShopPayPaymentRequest! """ The source identifier of the Shop Pay payment request session. """ sourceIdentifier: String! """ The token of the Shop Pay payment request session. """ token: String! } """ Return type for `shopPayPaymentRequestSessionCreate` mutation. """ type ShopPayPaymentRequestSessionCreatePayload { """ The new Shop Pay payment request session object. """ shopPayPaymentRequestSession: ShopPayPaymentRequestSession """ Error codes for failed Shop Pay payment request session mutations. """ userErrors: [UserErrorsShopPayPaymentRequestSessionUserErrors!]! } """ Return type for `shopPayPaymentRequestSessionSubmit` mutation. """ type ShopPayPaymentRequestSessionSubmitPayload { """ The checkout on which the payment was applied. """ paymentRequestReceipt: ShopPayPaymentRequestReceipt """ Error codes for failed Shop Pay payment request session mutations. """ userErrors: [UserErrorsShopPayPaymentRequestSessionUserErrors!]! } """ Represents a shipping line for a Shop Pay payment request. """ type ShopPayPaymentRequestShippingLine { """ The amount for the shipping line. """ amount: MoneyV2! """ The code of the shipping line. """ code: String! """ The label of the shipping line. """ label: String! } """ Represents a shipping total for a Shop Pay payment request. """ type ShopPayPaymentRequestTotalShippingPrice { """ The discounts for the shipping total. """ discounts: [ShopPayPaymentRequestDiscount!]! """ The final total for the shipping total. """ finalTotal: MoneyV2! """ The original total for the shipping total. """ originalTotal: MoneyV2 } """ Policy that a merchant has configured for their store, such as their refund or privacy policy. """ type ShopPolicy implements Node { """ Policy text, maximum size of 64kb. """ body: String! """ Policy’s handle. """ handle: String! """ A globally-unique ID. """ id: ID! """ Policy’s title. """ title: String! """ Public URL to the policy. """ url: URL! } """ A policy for the store that comes with a default value, such as a subscription policy. If the merchant hasn't configured a policy for their store, then the policy will return the default value. Otherwise, the policy will return the merchant-configured value. """ type ShopPolicyWithDefault { """ The text of the policy. Maximum size: 64KB. """ body: String! """ The handle of the policy. """ handle: String! """ The unique ID of the policy. A default policy doesn't have an ID. """ id: ID """ The title of the policy. """ title: String! """ Public URL to the policy. """ url: URL! } """ Contains all fields required to generate sitemaps. """ type Sitemap { """ The number of sitemap's pages for a given type. """ pagesCount: Count """ A list of sitemap's resources for a given type. Important Notes: - The number of items per page varies from 0 to 250. - Empty pages (0 items) may occur and do not necessarily indicate the end of results. - Always check `hasNextPage` to determine if more pages are available. """ resources(page: Int!): PaginatedSitemapResources } """ Represents a sitemap's image. """ type SitemapImage { """ Image's alt text. """ alt: String """ Path to the image. """ filepath: String """ The date and time when the image was updated. """ updatedAt: DateTime! } """ Represents a sitemap resource that is not a metaobject. """ type SitemapResource implements SitemapResourceInterface { """ Resource's handle. """ handle: String! """ Resource's image. """ image: SitemapImage """ Resource's title. """ title: String """ The date and time when the resource was updated. """ updatedAt: DateTime! } """ A SitemapResourceMetaobject represents a metaobject with [the `renderable` capability](https://shopify.dev/docs/apps/build/custom-data/metaobjects/use-metaobject-capabilities#render-metaobjects-as-web-pages). """ type SitemapResourceMetaobject implements SitemapResourceInterface { """ Resource's handle. """ handle: String! """ The URL handle for accessing pages of this metaobject type in the Online Store. """ onlineStoreUrlHandle: String """ The type of the metaobject. """ type: String! """ The date and time when the resource was updated. """ updatedAt: DateTime! } """ A social login provider for customer accounts. """ type SocialLoginProvider { """ The handle of the social login provider. """ handle: String! } """ Inventory information for a product variant at a physical store location that offers local pickup. Includes stock availability, quantity on hand, and estimated pickup readiness time. Availability also includes inventory that can be moved to the location through a store transfer route, so a variant can be available for pickup with no on-hand stock at the location. Local pickup must be [enabled in the store's shipping settings](https://help.shopify.com/manual/shipping/setting-up-and-managing-your-shipping/local-methods/local-pickup) for this data to be returned. Results can be sorted by proximity to a customer's location using the `near` argument on the [`ProductVariant.storeAvailability`](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant#field-ProductVariant.fields.storeAvailability) connection. Learn more about [supporting local pickup on storefronts](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/products-collections/local-pickup). """ type StoreAvailability { """ Whether the product variant can be picked up at this location. This is `true` when the variant is in stock here, can be supplied through a store transfer from another location, or is sold with untracked or oversellable inventory (its inventory isn't tracked, or its inventory policy allows continuing to sell when out of stock). As a result, `available` can be `true` even when `quantityAvailable` is `0`. """ available: Boolean! """ The location where this product variant is stocked at. """ location: Location! """ Returns the estimated amount of time it takes for pickup to be ready (Example: Usually ready in 24 hours). When the variant is out of stock at this location and supplied through a store transfer, this reflects the estimated transfer transit time when available, otherwise it falls back to the location's standard pickup processing time. """ pickUpTime: String! """ The quantity of the product variant physically in stock at this location. This counts on-hand inventory only and excludes inventory available through a store transfer, so it can be `0` while `available` is `true`. """ quantityAvailable: Int! } """ 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! } """ An auto-generated type for paginating through multiple Strings. """ type StringConnection { """ A list of edges. """ edges: [StringEdge!]! """ A list of the nodes contained in StringEdge. """ nodes: [String!]! """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An auto-generated type which holds one String and a cursor during pagination. """ type StringEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of StringEdge. """ node: String! } """ An error that occurred during cart submit for completion. """ type SubmissionError { """ The error code. """ code: SubmissionErrorCode! """ The error message. """ message: String } """ Cart submit for checkout completion is successful. """ type SubmitAlreadyAccepted { """ The ID of the cart completion attempt that will be used for polling for the result. """ attemptId: String! } """ Cart submit for checkout completion failed. """ type SubmitFailed { """ The URL of the checkout for the cart. """ checkoutUrl: URL """ The list of errors that occurred from executing the mutation. """ errors: [SubmissionError!]! } """ Cart submit for checkout completion is already accepted. """ type SubmitSuccess { """ The ID of the cart completion attempt that will be used for polling for the result. """ attemptId: String! """ The url to which the buyer should be redirected after the cart is successfully submitted. """ redirectUrl: URL! } """ Cart submit for checkout completion is throttled. """ type SubmitThrottled { """ UTC date time string that indicates the time after which clients should make their next poll request. Any poll requests sent before this time will be ignored. Use this value to schedule the next poll request. """ pollAfter: DateTime! } """ A visual representation for filter values, containing a color, an image, or both. The [`FilterValue`](https://shopify.dev/docs/api/storefront/current/objects/FilterValue) object's [`swatch`](https://shopify.dev/docs/api/storefront/current/objects/FilterValue#field-FilterValue.fields.swatch) field returns this when the filter's presentation is set to `SWATCH`. """ type Swatch { """ The swatch color. """ color: Color """ The swatch image. """ image: MediaImage } """ A category from Shopify's [Standard Product Taxonomy](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) assigned to a [`Product`](https://shopify.dev/docs/api/storefront/current/objects/Product). Categories provide hierarchical classification through the `ancestors` field. The [`ancestors`](https://shopify.dev/docs/api/storefront/current/objects/TaxonomyCategory#field-TaxonomyCategory.fields.ancestors) field returns the parent chain from the immediate parent up to the root. Each ancestor category also includes its own `ancestors`. The [`name`](https://shopify.dev/docs/api/storefront/latest/objects/TaxonomyCategory#field-TaxonomyCategory.fields.name) field returns the localized category name based on the storefront's request language with shop locale fallbacks. If a translation isn't available for the resolved locale, the English taxonomy name is returned. """ type TaxonomyCategory implements Node { """ All parent nodes of the current taxonomy category. """ ancestors: [TaxonomyCategory!]! """ A static identifier for the taxonomy category. """ id: ID! """ The localized name of the taxonomy category. """ name: String! } """ Translation represents a translation of a key-value pair. """ type Translation { """ The key of the translation. """ key: String! """ The value of the translation. """ value: String! } """ The measurement data used to calculate unit prices for a [`ProductVariant`](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant). Unit pricing helps customers compare costs across different package sizes by showing a standardized price, such as "$9.99 / 100ml". The object includes the quantity being sold (value and unit) and the reference measurement used for price comparison. Use this alongside the variant's [`unitPrice`](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant#field-ProductVariant.fields.unitPrice) field to display complete unit pricing information. """ 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! } """ A redirect on the online store. """ type UrlRedirect implements Node { """ The ID of the URL redirect. """ id: ID! """ The old path to be redirected from. When the user visits this path, they'll be redirected to the target location. """ path: String! """ The target location where the user will be redirected to. """ target: String! } """ An auto-generated type for paginating through multiple UrlRedirects. """ type UrlRedirectConnection { """ A list of edges. """ edges: [UrlRedirectEdge!]! """ A list of the nodes contained in UrlRedirectEdge. """ nodes: [UrlRedirect!]! """ Information to aid in pagination. """ pageInfo: PageInfo! } """ An auto-generated type which holds one UrlRedirect and a cursor during pagination. """ type UrlRedirectEdge { """ A cursor for use in pagination. """ cursor: String! """ The item at the end of UrlRedirectEdge. """ node: UrlRedirect! } """ Represents an error in the input of a mutation. """ type UserError implements DisplayableError { """ The path to the input field that caused the error. """ field: [String!] """ The error message. """ message: String! } """ Error codes for failed Shop Pay payment request session mutations. """ type UserErrorsShopPayPaymentRequestSessionUserErrors implements DisplayableError { """ The error code. """ code: UserErrorsShopPayPaymentRequestSessionUserErrorsCode """ The path to the input field that caused the error. """ field: [String!] """ The error message. """ message: String! } """ A video hosted on Shopify's servers. Implements the [`Media`](https://shopify.dev/docs/api/storefront/current/interfaces/Media) interface and provides multiple video sources through the [`sources`](https://shopify.dev/docs/api/storefront/current/objects/Video#field-Video.fields.sources) field, each with [format](https://shopify.dev/docs/api/storefront/current/objects/Video#field-Video.fields.sources.format), dimensions, and [URL information](https://shopify.dev/docs/api/storefront/current/objects/Video#field-Video.fields.sources.url) for adaptive playback. For videos hosted on external platforms like YouTube or Vimeo, use [`ExternalVideo`](https://shopify.dev/docs/api/storefront/current/objects/ExternalVideo) instead. """ type Video implements Media & Node { """ A word or phrase to share the nature or contents of a media. """ alt: String """ A globally-unique ID. """ id: ID! """ The media content type. """ mediaContentType: MediaContentType! """ The presentation for a media. """ presentation: MediaPresentation """ The preview image for the media. """ previewImage: Image """ The sources for a video. """ sources: [VideoSource!]! } """ Represents a source for a Shopify hosted video. """ type VideoSource { """ The format of the video source. """ format: String! """ The height of the video. """ height: Int! """ The video MIME type. """ mimeType: String! """ The URL of the video. """ url: String! """ The width of the video. """ width: Int! } """ Represents `true` or `false` values. """ scalar Boolean """ A string containing a hexadecimal representation of a color. For example, "#6A8D48". """ scalar Color """ Represents an [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)-encoded date and time string. For example, 3:50 pm on September 7, 2019 in the time zone of UTC (Coordinated Universal Time) is represented as `"2019-09-07T15:50:00Z`". """ scalar DateTime """ A signed decimal number, which supports arbitrary precision and is serialized as a string. Example values: `"29.99"`, `"29.999"`. """ scalar Decimal """ Represents signed double-precision fractional values as specified by [IEEE 754](https://en.wikipedia.org/wiki/IEEE_floating_point). """ scalar Float """ A string containing HTML code. Refer to the [HTML spec](https://html.spec.whatwg.org/#elements-3) for a complete list of HTML elements. Example value: `"

Grey cotton knit sweater.

"` """ scalar HTML """ Represents a unique identifier, often used to refetch an object. The ID type appears in a JSON response as a String, but it is not intended to be human-readable. Example value: `"gid://shopify/Product/10079785100"` """ scalar ID """ An ISO 8601-encoded datetime """ scalar ISO8601DateTime """ Represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1. """ scalar Int """ A [JSON](https://www.json.org/json-en.html) object. Example value: `{ "product": { "id": "gid://shopify/Product/1346443542550", "title": "White T-shirt", "options": [{ "name": "Size", "values": ["M", "L"] }] } }` """ scalar JSON """ Represents textual data as UTF-8 character sequences. This type is most often used by GraphQL to represent free-form human-readable text. """ scalar String """ Represents an [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986) and [RFC 3987](https://datatracker.ietf.org/doc/html/rfc3987)-compliant URI string. For example, `"https://example.myshopify.com"` is a valid URL. It includes a scheme (`https`) and a host (`example.myshopify.com`). """ scalar URL """ An unsigned 64-bit integer. Represents whole numeric values between 0 and 2^64 - 1 encoded as a string of base-10 digits. Example value: `"50"`. """ scalar UnsignedInt64 """ A delivery address of the buyer that is interacting with the cart. """ union CartAddress = CartDeliveryAddress """ The completion action to checkout a cart. """ union CartCompletionAction = CompletePaymentChallenge """ The result of a cart completion attempt. """ union CartCompletionAttemptResult = CartCompletionActionRequired | CartCompletionFailed | CartCompletionProcessing | CartCompletionSuccess """ The result of cart preparation. """ union CartPrepareForCompletionResult = CartStatusNotReady | CartStatusReady | CartThrottled """ The result of cart submit completion. """ union CartSubmitForCompletionResult = SubmitAlreadyAccepted | SubmitFailed | SubmitSuccess | SubmitThrottled """ A delivery address of the buyer that is interacting with the cart. """ union DeliveryAddress = MailingAddress """ The list of possible resources a `MenuItem` can reference. """ union MenuItemResource = Article | Blog | Collection | Metaobject | Page | Product | ShopPolicy """ A [`ProductVariant`](https://shopify.dev/docs/api/storefront/current/objects/ProductVariant) that a buyer intends to purchase at checkout. """ union Merchandise = ProductVariant """ The Shopify resource that owns a metafield. Returned by the `Metafield` object's [`parentResource`](https://shopify.dev/docs/api/storefront/current/objects/Metafield#field-Metafield.fields.parentResource) field, enabling traversal from a metafield back to the resource it's attached to. """ union MetafieldParentResource = Article | Blog | Cart | Collection | Company | CompanyLocation | Customer | Location | Market | Order | Page | Product | ProductVariant | SellingPlan | Shop """ The resource that a metafield points to when its type is a resource reference. Metafields can store references to other Shopify resources, and this union provides access to the actual referenced object. Returned by the `Metafield` object's [`reference`](https://shopify.dev/docs/api/storefront/current/objects/Metafield#field-Metafield.fields.reference) field for single references or the [`references`](https://shopify.dev/docs/api/storefront/current/objects/Metafield#field-Metafield.fields.references) field for lists. """ union MetafieldReference = Article | Collection | GenericFile | MediaImage | Metaobject | Model3d | Page | Product | ProductVariant | Video """ The price value (fixed or percentage) for a discount application. """ union PricingValue = MoneyV2 | PricingPercentageValue """ A search result that matches the search query. """ union SearchResultItem = Article | Page | Product """ The selling plan billing policy. """ union SellingPlanBillingPolicy = SellingPlanRecurringBillingPolicy """ The portion of the price to be charged at checkout. """ union SellingPlanCheckoutChargeValue = MoneyV2 | SellingPlanCheckoutChargePercentageValue """ The selling plan delivery policy. """ union SellingPlanDeliveryPolicy = SellingPlanRecurringDeliveryPolicy """ 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 | SellingPlanPercentagePriceAdjustment