# Shopify Storefront API schema as deployed at shop.katefarms.com # Retrieved by anonymous GraphQL introspection 2026-08-04 # Endpoint: https://shop.katefarms.com/api/2026-01/graphql.json schema { query: QueryRoot mutation: Mutation } enum ArticleSortKeys { TITLE BLOG_TITLE AUTHOR UPDATED_AT PUBLISHED_AT ID RELEVANCE } enum BlogSortKeys { HANDLE TITLE ID RELEVANCE } enum CardBrand { VISA MASTERCARD DISCOVER AMERICAN_EXPRESS DINERS_CLUB JCB } enum CartCardSource { SAVED_CREDIT_CARD } enum CartDeliveryGroupType { SUBSCRIPTION ONE_TIME_PURCHASE } enum CartErrorCode { INVALID LESS_THAN INVALID_MERCHANDISE_LINE MERCHANDISE_NOT_APPLICABLE MISSING_DISCOUNT_CODE MISSING_NOTE NOTE_TOO_LONG INVALID_DELIVERY_GROUP INVALID_DELIVERY_OPTION PENDING_DELIVERY_GROUPS INVALID_PAYMENT PAYMENT_METHOD_NOT_SUPPORTED PAYMENT_METHOD_NOT_APPLICABLE INVALID_PAYMENT_DEFERRED_PAYMENT_REQUIRED INVALID_PAYMENT_EMPTY_CART VALIDATION_CUSTOM INVALID_METAFIELDS MISSING_CUSTOMER_ACCESS_TOKEN INVALID_COMPANY_LOCATION INVALID_INCREMENT MINIMUM_NOT_MET MAXIMUM_EXCEEDED TOO_MANY_DELIVERY_ADDRESSES ONLY_ONE_DELIVERY_ADDRESS_CAN_BE_SELECTED INVALID_DELIVERY_ADDRESS_ID BUYER_CANNOT_PURCHASE_FOR_COMPANY_LOCATION BUNDLES_AND_ADDONS_CANNOT_BE_MIXED PARENT_LINE_INVALID_REFERENCE PARENT_LINE_NOT_FOUND PARENT_LINE_NESTING_TOO_DEEP PARENT_LINE_OPERATION_BLOCKED GIFT_CARD_RECIPIENT_INVALID ADDRESS_FIELD_IS_REQUIRED ADDRESS_FIELD_IS_TOO_LONG ADDRESS_FIELD_CONTAINS_EMOJIS ADDRESS_FIELD_CONTAINS_HTML_TAGS ADDRESS_FIELD_CONTAINS_URL ADDRESS_FIELD_DOES_NOT_MATCH_EXPECTED_PATTERN INVALID_ZIP_CODE_FOR_PROVINCE INVALID_ZIP_CODE_FOR_COUNTRY ZIP_CODE_NOT_SUPPORTED PROVINCE_NOT_FOUND UNSPECIFIED_ADDRESS_ERROR PAYMENTS_CREDIT_CARD_BASE_EXPIRED PAYMENTS_CREDIT_CARD_BASE_GATEWAY_NOT_SUPPORTED PAYMENTS_CREDIT_CARD_GENERIC PAYMENTS_CREDIT_CARD_MONTH_INCLUSION PAYMENTS_CREDIT_CARD_NUMBER_INVALID PAYMENTS_CREDIT_CARD_NUMBER_INVALID_FORMAT 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 VARIANT_REQUIRES_SELLING_PLAN SELLING_PLAN_NOT_APPLICABLE SERVICE_UNAVAILABLE CART_TOO_LARGE } enum CartWarningCode { MERCHANDISE_NOT_ENOUGH_STOCK MERCHANDISE_OUT_OF_STOCK PAYMENTS_GIFT_CARDS_UNAVAILABLE DUPLICATE_DELIVERY_ADDRESS DISCOUNT_CODE_NOT_HONOURED DISCOUNT_NOT_FOUND DISCOUNT_CURRENTLY_INACTIVE DISCOUNT_USAGE_LIMIT_REACHED DISCOUNT_CUSTOMER_USAGE_LIMIT_REACHED DISCOUNT_CUSTOMER_NOT_ELIGIBLE DISCOUNT_ELIGIBLE_CUSTOMER_MISSING DISCOUNT_QUANTITY_NOT_IN_RANGE DISCOUNT_PURCHASE_NOT_IN_RANGE DISCOUNT_NO_ENTITLED_LINE_ITEMS DISCOUNT_NO_ENTITLED_SHIPPING_LINES DISCOUNT_INCOMPATIBLE_PURCHASE_TYPE MERCHANDISE_SELLING_PLAN_NOT_APPLICABLE_ON_COMPANY_LOCATION } enum CollectionSortKeys { TITLE UPDATED_AT ID RELEVANCE } 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 } enum CountPrecision { EXACT AT_LEAST } enum CountryCode { AF AX AL DZ AD AO AI AG AR AM AW AC AU AT AZ BS BH BD BB BY BE BZ BJ BM BT BO BA BW BV BR IO BN BG BF BI KH CA CV BQ KY CF TD CL CN CX CC CO KM CG CD CK CR HR CU CW CY CZ CI DK DJ DM DO EC EG SV GQ ER EE SZ ET FK FO FJ FI FR GF PF TF GA GM GE DE GH GI GR GL GD GP GT GG GN GW GY HT HM VA HN HK HU IS IN ID IR IQ IE IM IL IT JM JP JE JO KZ KE KI KP XK KW KG LA LV LB LS LR LY LI LT LU MO MG MW MY MV ML MT MQ MR MU YT MX MD MC MN ME MS MA MZ MM NA NR NP NL AN NC NZ NI NE NG NU NF MK NO OM PK PS PA PG PY PE PH PN PL PT QA CM RE RO RU RW BL SH KN LC MF PM WS SM ST SA SN RS SC SL SG SX SK SI SB SO ZA GS KR SS ES LK VC SD SR SJ SE CH SY TW TJ TZ TH TL TG TK TO TT TA TN TR TM TC TV UG UA AE GB US UM UY UZ VU VE VN VG WF EH YE ZM ZW ZZ } enum CropRegion { CENTER TOP BOTTOM LEFT RIGHT } enum CurrencyCode { USD EUR GBP CAD AFN ALL DZD AOA ARS AMD AWG AUD BBD AZN BDT BSD BHD BIF BZD BMD BTN BAM BRL BOB BWP BND BGN MMK KHR CVE KYD XAF CLP CNY COP KMF CDF CRC HRK CZK DKK DOP XCD EGP ERN ETB FKP XPF FJD GIP GMD GHS GTQ GYD GEL HTG HNL HKD HUF ISK INR IDR ILS IQD JMD JPY JEP JOD KZT KES KID KWD KGS LAK LVL LBP LSL LRD LTL MGA MKD MOP MWK MVR MRU MXN MYR MUR MDL MAD MNT MZN NAD NPR ANG NZD NIO NGN NOK OMR PAB PKR PGK PYG PEN PHP PLN QAR RON RUB RWF WST SHP SAR RSD SCR SGD SDG SOS SYP ZAR KRW SSP SBD LKR SRD SZL SEK CHF TWD THB TZS TTD TND TRY TMT UGX UAH AED UYU UZS VUV VES VND XOF YER ZMW BYN BYR @deprecated DJF GNF IRR LYD SLL STD @deprecated STN TJS TOP VED VEF @deprecated XXX } enum CustomerErrorCode { BLANK INVALID TAKEN TOO_LONG TOO_SHORT UNIDENTIFIED_CUSTOMER CUSTOMER_DISABLED PASSWORD_STARTS_OR_ENDS_WITH_WHITESPACE CONTAINS_HTML_TAGS CONTAINS_URL TOKEN_INVALID ALREADY_ENABLED NOT_FOUND BAD_DOMAIN INVALID_MULTIPASS_REQUEST } enum DeliveryAddressValidationStrategy { COUNTRY_CODE_ONLY STRICT } enum DeliveryMethodType { SHIPPING PICK_UP RETAIL LOCAL PICKUP_POINT NONE } enum DigitalWallet { APPLE_PAY ANDROID_PAY GOOGLE_PAY SHOPIFY_PAY } enum DiscountApplicationAllocationMethod { ACROSS EACH ONE @deprecated } enum DiscountApplicationTargetSelection { ALL ENTITLED EXPLICIT } enum DiscountApplicationTargetType { LINE_ITEM SHIPPING_LINE } enum FilterPresentation { IMAGE SWATCH TEXT } enum FilterType { LIST PRICE_RANGE BOOLEAN } enum ImageContentType { PNG JPG WEBP } enum LanguageCode { AF AK AM AR AS AZ BE BG BM BN BO BR BS CA CE CKB CS CY DA DE DZ EE EL EN EO ES ET EU FA FF FI FIL FO FR FY GA GD GL GU GV HA HE HI HR HU HY IA ID IG II IS IT JA JV KA KI KK KL KM KN KO KS KU KW KY LB LG LN LO LT LU LV MG MI MK ML MN MR MS MT MY NB ND NE NL NN NO OM OR OS PA PL PS PT_BR PT_PT QU RM RN RO RU RW SA SC SD SE SG SI SK SL SN SO SQ SR SU SV SW TA TE TG TH TI TK TO TR TT UG UK UR UZ VI WO XH YI YO ZH_CN ZH_TW ZU ZH PT CU VO LA SH MO } enum LocationSortKeys { ID NAME CITY DISTANCE } enum MediaContentType { EXTERNAL_VIDEO IMAGE MODEL_3D VIDEO } enum MediaHost { YOUTUBE VIMEO } enum MediaPresentationFormat { MODEL_VIEWER IMAGE } enum MenuItemType { FRONTPAGE COLLECTION COLLECTIONS PRODUCT CATALOG PAGE BLOG ARTICLE SEARCH SHOP_POLICY HTTP METAOBJECT CUSTOMER_ACCOUNT_PAGE } enum MetafieldDeleteErrorCode { INVALID_OWNER METAFIELD_DOES_NOT_EXIST APP_NOT_AUTHORIZED } enum MetafieldsSetUserErrorCode { BLANK INCLUSION LESS_THAN_OR_EQUAL_TO PRESENT TOO_SHORT TOO_LONG INVALID_OWNER INVALID_VALUE INVALID_TYPE APP_NOT_AUTHORIZED } enum OrderCancelReason { CUSTOMER DECLINED FRAUD INVENTORY STAFF OTHER } enum OrderFinancialStatus { PENDING AUTHORIZED PARTIALLY_PAID PARTIALLY_REFUNDED VOIDED PAID REFUNDED } enum OrderFulfillmentStatus { UNFULFILLED PARTIALLY_FULFILLED FULFILLED RESTOCKED PENDING_FULFILLMENT OPEN IN_PROGRESS ON_HOLD SCHEDULED READY_FOR_DELIVERY } enum OrderSortKeys { PROCESSED_AT TOTAL_PRICE ID RELEVANCE } enum PageSortKeys { TITLE UPDATED_AT ID RELEVANCE } enum PredictiveSearchLimitScope { ALL EACH } enum PredictiveSearchType { COLLECTION PRODUCT PAGE ARTICLE QUERY } enum PreferenceDeliveryMethodType { SHIPPING PICK_UP PICKUP_POINT } enum ProductCollectionSortKeys { TITLE PRICE BEST_SELLING CREATED ID MANUAL COLLECTION_DEFAULT RELEVANCE } enum ProductImageSortKeys { CREATED_AT POSITION ID RELEVANCE } enum ProductMediaSortKeys { POSITION ID RELEVANCE } enum ProductRecommendationIntent { RELATED COMPLEMENTARY } enum ProductSortKeys { TITLE PRODUCT_TYPE VENDOR UPDATED_AT CREATED_AT BEST_SELLING PRICE ID RELEVANCE } enum ProductVariantSortKeys { TITLE SKU POSITION ID RELEVANCE } enum SearchPrefixQueryType { LAST NONE } enum SearchSortKeys { PRICE RELEVANCE } enum SearchType { PRODUCT PAGE ARTICLE } enum SearchUnavailableProductsType { SHOW HIDE LAST } enum SearchableField { AUTHOR BODY PRODUCT_TYPE TAG TITLE VARIANTS_BARCODE VARIANTS_SKU VARIANTS_TITLE VENDOR } enum SellingPlanCheckoutChargeType { PERCENTAGE PRICE } enum SellingPlanInterval { DAY MONTH WEEK YEAR } enum ShopPayInstallmentsFinancingPlanFrequency { WEEKLY MONTHLY } enum ShopPayInstallmentsLoan { INTEREST SPLIT_PAY ZERO_PERCENT } enum ShopPayPaymentRequestDeliveryMethodType { SHIPPING PICKUP } enum SitemapType { PRODUCT COLLECTION PAGE METAOBJECT BLOG ARTICLE } 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 TAXES_MUST_BE_DEFINED TAXES_LINE_ID_NOT_FOUND TAXES_DELIVERY_GROUP_ID_NOT_FOUND VALIDATION_CUSTOM } enum UnitPriceMeasurementMeasuredType { VOLUME WEIGHT LENGTH AREA COUNT UNKNOWN } enum UnitPriceMeasurementMeasuredUnit { ML CL L M3 FLOZ PT QT GAL MG G KG LB OZ MM CM M IN FT YD M2 FT2 ITEM UNKNOWN } enum UnitSystem { IMPERIAL_SYSTEM METRIC_SYSTEM } enum UserErrorsShopPayPaymentRequestSessionUserErrorsCode { PAYMENT_REQUEST_INVALID_INPUT PAYMENT_REQUEST_NOT_FOUND IDEMPOTENCY_KEY_ALREADY_USED } enum WeightUnit { KILOGRAMS GRAMS POUNDS OUNCES } input ApplePayWalletContentInput { billingAddress: MailingAddressInput! data: String! header: ApplePayWalletHeaderInput! lastDigits: String signature: String! version: String! } input ApplePayWalletHeaderInput { applicationData: String ephemeralPublicKey: String! publicKeyHash: String! transactionId: String! } input AttributeInput { key: String! value: String! } input BuyerInput { customerAccessToken: String! companyLocationId: ID } input CartAddressInput { deliveryAddress: CartDeliveryAddressInput copyFromCustomerAddressId: ID } input CartBuyerIdentityInput { email: String phone: String companyLocationId: ID countryCode: CountryCode customerAccessToken: String preferences: CartPreferencesInput } input CartDeliveryAddressInput { address1: String address2: String city: String company: String countryCode: CountryCode firstName: String lastName: String phone: String provinceCode: String zip: String } input CartDeliveryCoordinatesPreferenceInput { latitude: Float! longitude: Float! countryCode: CountryCode! } input CartDeliveryInput { addresses: [CartSelectableAddressInput!] } input CartDeliveryPreferenceInput { deliveryMethod: [PreferenceDeliveryMethodType!] pickupHandle: [String!] coordinates: CartDeliveryCoordinatesPreferenceInput } input CartDirectPaymentMethodInput { billingAddress: MailingAddressInput! sessionId: String! cardSource: CartCardSource acceptedSubscriptionTerms: Boolean = false } input CartFreePaymentMethodInput { billingAddress: MailingAddressInput! } input CartInput { attributes: [AttributeInput!] lines: [CartLineInput!] discountCodes: [String!] giftCardCodes: [String!] note: String buyerIdentity: CartBuyerIdentityInput delivery: CartDeliveryInput metafields: [CartInputMetafieldInput!] } input CartInputMetafieldInput { key: String! value: String! type: String! } input CartLineInput { attributes: [AttributeInput!] quantity: Int = 1 merchandiseId: ID! sellingPlanId: ID parent: CartLineParentInput } input CartLineParentInput { lineId: ID merchandiseId: ID } input CartLineUpdateInput { id: ID! quantity: Int merchandiseId: ID attributes: [AttributeInput!] sellingPlanId: ID } input CartMetafieldDeleteInput { ownerId: ID! key: String! } input CartMetafieldsSetInput { ownerId: ID! key: String! value: String! type: String! } input CartPaymentInput { amount: MoneyInput! sourceIdentifier: String freePaymentMethod: CartFreePaymentMethodInput directPaymentMethod: CartDirectPaymentMethodInput walletPaymentMethod: CartWalletPaymentMethodInput } input CartPreferencesInput { delivery: CartDeliveryPreferenceInput wallet: [String!] } input CartSelectableAddressInput { address: CartAddressInput! selected: Boolean oneTimeUse: Boolean validationStrategy: DeliveryAddressValidationStrategy = COUNTRY_CODE_ONLY } input CartSelectableAddressUpdateInput { id: ID! address: CartAddressInput selected: Boolean oneTimeUse: Boolean validationStrategy: DeliveryAddressValidationStrategy = COUNTRY_CODE_ONLY } input CartSelectedDeliveryOptionInput { deliveryGroupId: ID! deliveryOptionHandle: String! } input CartWalletPaymentMethodInput { applePayWalletContent: ApplePayWalletContentInput shopPayWalletContent: ShopPayWalletContentInput } input CategoryFilter { id: String! } input CustomerAccessTokenCreateInput { email: String! password: String! } input CustomerActivateInput { activationToken: String! password: String! } input CustomerCreateInput { firstName: String lastName: String email: String! phone: String password: String! acceptsMarketing: Boolean } input CustomerResetInput { resetToken: String! password: String! } input CustomerUpdateInput { firstName: String lastName: String email: String phone: String password: String acceptsMarketing: Boolean } input DeliveryAddressInput { deliveryAddress: MailingAddressInput oneTimeUse: Boolean = false deliveryAddressValidationStrategy: DeliveryAddressValidationStrategy = COUNTRY_CODE_ONLY customerAddressId: ID } input GeoCoordinateInput { latitude: Float! longitude: Float! } input HasMetafieldsIdentifier { namespace: String key: String! } input ImageTransformInput { crop: CropRegion maxWidth: Int maxHeight: Int scale: Int = 1 preferredContentType: ImageContentType } input MailingAddressInput { address1: String address2: String city: String company: String country: String firstName: String lastName: String phone: String province: String zip: String } input MetafieldFilter { namespace: String! key: String! value: String! } input MetaobjectHandleInput { handle: String! type: String! } input MoneyInput { amount: Decimal! currencyCode: CurrencyCode! } input PriceRangeFilter { min: Float = 0.0 max: Float } input ProductFilter { available: Boolean variantOption: VariantOptionFilter category: CategoryFilter taxonomyMetafield: TaxonomyMetafieldFilter productType: String productVendor: String price: PriceRangeFilter productMetafield: MetafieldFilter variantMetafield: MetafieldFilter tag: String } input SelectedOptionInput { name: String! value: String! } input ShopPayPaymentRequestDeliveryMethodInput { code: String label: String detail: String amount: MoneyInput minDeliveryDate: ISO8601DateTime maxDeliveryDate: ISO8601DateTime deliveryExpectationLabel: String } input ShopPayPaymentRequestDiscountInput { label: String amount: MoneyInput } input ShopPayPaymentRequestImageInput { url: String! alt: String } input ShopPayPaymentRequestInput { discountCodes: [String!] lineItems: [ShopPayPaymentRequestLineItemInput!] shippingLines: [ShopPayPaymentRequestShippingLineInput!] total: MoneyInput! subtotal: MoneyInput! discounts: [ShopPayPaymentRequestDiscountInput!] totalShippingPrice: ShopPayPaymentRequestTotalShippingPriceInput totalTax: MoneyInput selectedDeliveryMethodType: ShopPayPaymentRequestDeliveryMethodType locale: String! presentmentCurrency: CurrencyCode! paymentMethod: String } input ShopPayPaymentRequestLineItemInput { label: String quantity: Int! sku: String requiresShipping: Boolean image: ShopPayPaymentRequestImageInput originalLinePrice: MoneyInput finalLinePrice: MoneyInput lineDiscounts: [ShopPayPaymentRequestDiscountInput!] originalItemPrice: MoneyInput finalItemPrice: MoneyInput itemDiscounts: [ShopPayPaymentRequestDiscountInput!] } input ShopPayPaymentRequestShippingLineInput { code: String label: String amount: MoneyInput } input ShopPayPaymentRequestTotalShippingPriceInput { discounts: [ShopPayPaymentRequestDiscountInput!] originalTotal: MoneyInput finalTotal: MoneyInput } input ShopPayWalletContentInput { billingAddress: MailingAddressInput! sessionToken: String! } input TaxonomyMetafieldFilter { namespace: String! key: String! value: String! } input VariantOptionFilter { name: String! value: String! } input VisitorConsent { preferences: Boolean analytics: Boolean marketing: Boolean saleOfData: Boolean } interface BaseCartLine implements Node { attribute(key: String!): Attribute attributes: [Attribute!]! cost: CartLineCost! discountAllocations: [CartDiscountAllocation!]! estimatedCost: CartLineEstimatedCost! @deprecated id: ID! merchandise: Merchandise! quantity: Int! sellingPlanAllocation: SellingPlanAllocation } interface CartDiscountAllocation { discountApplication: CartDiscountApplication! @deprecated discountedAmount: MoneyV2! targetType: DiscountApplicationTargetType! } interface DiscountApplication { allocationMethod: DiscountApplicationAllocationMethod! targetSelection: DiscountApplicationTargetSelection! targetType: DiscountApplicationTargetType! value: PricingValue! } interface DisplayableError { field: [String!] message: String! } interface HasMetafields { metafield(namespace: String, key: String!): Metafield metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]! } interface Media { alt: String id: ID! mediaContentType: MediaContentType! presentation: MediaPresentation previewImage: Image } interface Node { id: ID! } interface OnlineStorePublishable { onlineStoreUrl: URL } interface SitemapResourceInterface { handle: String! updatedAt: DateTime! } interface Trackable { trackingParameters: String } type ApiVersion { displayName: String! handle: String! supported: Boolean! } type AppliedGiftCard implements Node { amountUsed: MoneyV2! amountUsedV2: MoneyV2! @deprecated balance: MoneyV2! balanceV2: MoneyV2! @deprecated id: ID! lastCharacters: String! presentmentAmountUsed: MoneyV2! } type Article implements HasMetafields & Node & OnlineStorePublishable & Trackable { author: ArticleAuthor! @deprecated authorV2: ArticleAuthor blog: Blog! comments(first: Int, after: String, last: Int, before: String, reverse: Boolean = false): CommentConnection! content(truncateAt: Int): String! contentHtml: HTML! excerpt(truncateAt: Int): String excerptHtml: HTML handle: String! id: ID! image: Image metafield(namespace: String, key: String!): Metafield metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]! onlineStoreUrl: URL publishedAt: DateTime! seo: SEO tags: [String!]! title: String! trackingParameters: String } type ArticleAuthor { bio: String email: String! firstName: String! lastName: String! name: String! } type ArticleConnection { edges: [ArticleEdge!]! nodes: [Article!]! pageInfo: PageInfo! } type ArticleEdge { cursor: String! node: Article! } type Attribute { key: String! value: String } type AutomaticDiscountApplication implements DiscountApplication { allocationMethod: DiscountApplicationAllocationMethod! targetSelection: DiscountApplicationTargetSelection! targetType: DiscountApplicationTargetType! title: String! value: PricingValue! } type BaseCartLineConnection { edges: [BaseCartLineEdge!]! nodes: [BaseCartLine!]! pageInfo: PageInfo! } type BaseCartLineEdge { cursor: String! node: BaseCartLine! } type Blog implements HasMetafields & Node & OnlineStorePublishable { articleByHandle(handle: String!): Article articles(first: Int, after: String, last: Int, before: String, reverse: Boolean = false, sortKey: ArticleSortKeys = ID, query: String): ArticleConnection! authors: [ArticleAuthor!]! handle: String! id: ID! metafield(namespace: String, key: String!): Metafield metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]! onlineStoreUrl: URL seo: SEO title: String! } type BlogConnection { edges: [BlogEdge!]! nodes: [Blog!]! pageInfo: PageInfo! } type BlogEdge { cursor: String! node: Blog! } type Brand { colors: BrandColors! coverImage: MediaImage logo: MediaImage shortDescription: String slogan: String squareLogo: MediaImage } type BrandColorGroup { background: Color foreground: Color } type BrandColors { primary: [BrandColorGroup!]! secondary: [BrandColorGroup!]! } type Cart implements HasMetafields & Node { appliedGiftCards: [AppliedGiftCard!]! attribute(key: String!): Attribute attributes: [Attribute!]! buyerIdentity: CartBuyerIdentity! checkoutUrl: URL! cost: CartCost! createdAt: DateTime! delivery: CartDelivery! deliveryGroups(first: Int, after: String, last: Int, before: String, reverse: Boolean = false, withCarrierRates: Boolean = false): CartDeliveryGroupConnection! discountAllocations: [CartDiscountAllocation!]! @deprecated discountCodes: [CartDiscountCode!]! estimatedCost: CartEstimatedCost! @deprecated id: ID! lines(first: Int, after: String, last: Int, before: String, reverse: Boolean = false): BaseCartLineConnection! metafield(namespace: String, key: String!): Metafield metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]! note: String totalQuantity: Int! updatedAt: DateTime! } type CartAttributesUpdatePayload { cart: Cart userErrors: [CartUserError!]! warnings: [CartWarning!]! } type CartAutomaticDiscountAllocation implements CartDiscountAllocation { discountApplication: CartDiscountApplication! @deprecated discountedAmount: MoneyV2! targetType: DiscountApplicationTargetType! title: String! } type CartBillingAddressUpdatePayload { cart: Cart userErrors: [CartUserError!]! warnings: [CartWarning!]! } type CartBuyerIdentity { countryCode: CountryCode customer: Customer deliveryAddressPreferences: [DeliveryAddress!]! @deprecated email: String phone: String preferences: CartPreferences purchasingCompany: PurchasingCompany } type CartBuyerIdentityUpdatePayload { cart: Cart userErrors: [CartUserError!]! warnings: [CartWarning!]! } type CartClonePayload { cart: Cart userErrors: [CartUserError!]! warnings: [CartWarning!]! } type CartCodeDiscountAllocation implements CartDiscountAllocation { code: String! discountApplication: CartDiscountApplication! @deprecated discountedAmount: MoneyV2! targetType: DiscountApplicationTargetType! } type CartCompletionActionRequired { action: CartCompletionAction id: String! } type CartCompletionFailed { errors: [CompletionError!]! id: String! } type CartCompletionProcessing { id: String! pollDelay: Int! } type CartCompletionSuccess { completedAt: DateTime id: String! orderId: ID! orderUrl: URL! } type CartCost { checkoutChargeAmount: MoneyV2! subtotalAmount: MoneyV2! subtotalAmountEstimated: Boolean! totalAmount: MoneyV2! totalAmountEstimated: Boolean! totalDutyAmount: MoneyV2 @deprecated totalDutyAmountEstimated: Boolean! @deprecated totalTaxAmount: MoneyV2 @deprecated totalTaxAmountEstimated: Boolean! @deprecated } type CartCreatePayload { cart: Cart userErrors: [CartUserError!]! warnings: [CartWarning!]! } type CartCustomDiscountAllocation implements CartDiscountAllocation { discountApplication: CartDiscountApplication! @deprecated discountedAmount: MoneyV2! targetType: DiscountApplicationTargetType! title: String! } type CartDelivery { addresses(selected: Boolean = false): [CartSelectableAddress!]! } type CartDeliveryAddress { address1: String address2: String city: String company: String countryCode: String firstName: String formatted(withName: Boolean = false, withCompany: Boolean = true): [String!]! formattedArea: String lastName: String latitude: Float longitude: Float name: String phone: String provinceCode: String zip: String } type CartDeliveryAddressesAddPayload { cart: Cart userErrors: [CartUserError!]! warnings: [CartWarning!]! } type CartDeliveryAddressesRemovePayload { cart: Cart userErrors: [CartUserError!]! warnings: [CartWarning!]! } type CartDeliveryAddressesReplacePayload { cart: Cart userErrors: [CartUserError!]! warnings: [CartWarning!]! } type CartDeliveryAddressesUpdatePayload { cart: Cart userErrors: [CartUserError!]! warnings: [CartWarning!]! } type CartDeliveryCoordinatesPreference { countryCode: CountryCode! latitude: Float! longitude: Float! } type CartDeliveryGroup { cartLines(first: Int, after: String, last: Int, before: String, reverse: Boolean = false): BaseCartLineConnection! deliveryAddress: MailingAddress! deliveryOptions: [CartDeliveryOption!]! groupType: CartDeliveryGroupType! id: ID! selectedDeliveryOption: CartDeliveryOption } type CartDeliveryGroupConnection { edges: [CartDeliveryGroupEdge!]! nodes: [CartDeliveryGroup!]! pageInfo: PageInfo! } type CartDeliveryGroupEdge { cursor: String! node: CartDeliveryGroup! } type CartDeliveryOption { code: String deliveryMethodType: DeliveryMethodType! description: String estimatedCost: MoneyV2! handle: String! title: String } type CartDeliveryPreference { coordinates: CartDeliveryCoordinatesPreference deliveryMethod: [PreferenceDeliveryMethodType!]! pickupHandle: [String!]! } type CartDiscountApplication { allocationMethod: DiscountApplicationAllocationMethod! targetSelection: DiscountApplicationTargetSelection! targetType: DiscountApplicationTargetType! value: PricingValue! } type CartDiscountCode { applicable: Boolean! code: String! } type CartDiscountCodesUpdatePayload { cart: Cart userErrors: [CartUserError!]! warnings: [CartWarning!]! } type CartEstimatedCost { checkoutChargeAmount: MoneyV2! subtotalAmount: MoneyV2! totalAmount: MoneyV2! totalDutyAmount: MoneyV2 totalTaxAmount: MoneyV2 } type CartGiftCardCodesAddPayload { cart: Cart userErrors: [CartUserError!]! warnings: [CartWarning!]! } type CartGiftCardCodesRemovePayload { cart: Cart userErrors: [CartUserError!]! warnings: [CartWarning!]! } type CartGiftCardCodesUpdatePayload { cart: Cart userErrors: [CartUserError!]! warnings: [CartWarning!]! } type CartLine implements BaseCartLine & Node { attribute(key: String!): Attribute attributes: [Attribute!]! cost: CartLineCost! discountAllocations: [CartDiscountAllocation!]! estimatedCost: CartLineEstimatedCost! @deprecated id: ID! instructions: CartLineInstructions! merchandise: Merchandise! parentRelationship: CartLineParentRelationship quantity: Int! sellingPlanAllocation: SellingPlanAllocation } type CartLineCost { amountPerQuantity: MoneyV2! compareAtAmountPerQuantity: MoneyV2 subtotalAmount: MoneyV2! totalAmount: MoneyV2! } type CartLineEstimatedCost { amount: MoneyV2! compareAtAmount: MoneyV2 subtotalAmount: MoneyV2! totalAmount: MoneyV2! } type CartLineInstructions { canRemove: Boolean! canUpdateQuantity: Boolean! } type CartLineParentRelationship { parent: CartLine! } type CartLinesAddPayload { cart: Cart userErrors: [CartUserError!]! warnings: [CartWarning!]! } type CartLinesRemovePayload { cart: Cart userErrors: [CartUserError!]! warnings: [CartWarning!]! } type CartLinesUpdatePayload { cart: Cart userErrors: [CartUserError!]! warnings: [CartWarning!]! } type CartMetafieldDeletePayload { deletedId: ID userErrors: [MetafieldDeleteUserError!]! } type CartMetafieldsSetPayload { metafields: [Metafield!] userErrors: [MetafieldsSetUserError!]! } type CartNoteUpdatePayload { cart: Cart userErrors: [CartUserError!]! warnings: [CartWarning!]! } type CartOperationError { code: String! message: String } type CartPaymentUpdatePayload { cart: Cart userErrors: [CartUserError!]! warnings: [CartWarning!]! } type CartPreferences { delivery: CartDeliveryPreference wallet: [String!] } type CartPrepareForCompletionPayload { result: CartPrepareForCompletionResult userErrors: [CartUserError!]! } type CartRemovePersonalDataPayload { cart: Cart userErrors: [CartUserError!]! warnings: [CartWarning!]! } type CartSelectableAddress { address: CartAddress! id: ID! oneTimeUse: Boolean! selected: Boolean! } type CartSelectedDeliveryOptionsUpdatePayload { cart: Cart userErrors: [CartUserError!]! warnings: [CartWarning!]! } type CartStatusNotReady { cart: Cart errors: [CartOperationError!]! } type CartStatusReady { cart: Cart } type CartSubmitForCompletionPayload { result: CartSubmitForCompletionResult userErrors: [CartUserError!]! } type CartThrottled { cart: Cart pollAfter: DateTime! } type CartUserError implements DisplayableError { code: CartErrorCode field: [String!] message: String! } type CartWarning { code: CartWarningCode! message: String! target: ID! } type Collection implements HasMetafields & Node & OnlineStorePublishable & Trackable { description(truncateAt: Int): String! descriptionHtml: HTML! handle: String! id: ID! image: Image metafield(namespace: String, key: String!): Metafield metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]! onlineStoreUrl: URL products(first: Int, after: String, last: Int, before: String, reverse: Boolean = false, sortKey: ProductCollectionSortKeys = COLLECTION_DEFAULT, filters: [ProductFilter!]): ProductConnection! seo: SEO! title: String! trackingParameters: String updatedAt: DateTime! } type CollectionConnection { edges: [CollectionEdge!]! nodes: [Collection!]! pageInfo: PageInfo! totalCount: UnsignedInt64! } type CollectionEdge { cursor: String! node: Collection! } type Comment implements Node { author: CommentAuthor! content(truncateAt: Int): String! contentHtml: HTML! id: ID! } type CommentAuthor { email: String! name: String! } type CommentConnection { edges: [CommentEdge!]! nodes: [Comment!]! pageInfo: PageInfo! } type CommentEdge { cursor: String! node: Comment! } type Company implements HasMetafields & Node { createdAt: DateTime! externalId: String id: ID! metafield(namespace: String, key: String!): Metafield metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]! name: String! updatedAt: DateTime! } type CompanyContact implements Node { createdAt: DateTime! id: ID! locale: String title: String updatedAt: DateTime! } type CompanyLocation implements HasMetafields & Node { createdAt: DateTime! externalId: String id: ID! locale: String metafield(namespace: String, key: String!): Metafield metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]! name: String! updatedAt: DateTime! } type CompletePaymentChallenge { redirectUrl: URL } type CompletionError { code: CompletionErrorCode! message: String } type ComponentizableCartLine implements BaseCartLine & Node { attribute(key: String!): Attribute attributes: [Attribute!]! cost: CartLineCost! discountAllocations: [CartDiscountAllocation!]! estimatedCost: CartLineEstimatedCost! @deprecated id: ID! lineComponents: [CartLine!]! merchandise: Merchandise! quantity: Int! sellingPlanAllocation: SellingPlanAllocation } type Count { count: Int! precision: CountPrecision! } type Country { availableLanguages: [Language!]! currency: Currency! defaultLanguage: Language! isoCode: CountryCode! market: Market @deprecated name: String! unitSystem: UnitSystem! } type Currency { isoCode: CurrencyCode! name: String! symbol: String! } type Customer implements HasMetafields { acceptsMarketing: Boolean! addresses(first: Int, after: String, last: Int, before: String, reverse: Boolean = false): MailingAddressConnection! avatarUrl: String createdAt: DateTime! defaultAddress: MailingAddress displayName: String! email: String firstName: String id: ID! lastName: String metafield(namespace: String, key: String!): Metafield metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]! numberOfOrders: UnsignedInt64! orders(first: Int, after: String, last: Int, before: String, reverse: Boolean = false, sortKey: OrderSortKeys = ID, query: String): OrderConnection! phone: String socialLoginProvider: SocialLoginProvider tags: [String!]! updatedAt: DateTime! } type CustomerAccessToken { accessToken: String! expiresAt: DateTime! } type CustomerAccessTokenCreatePayload { customerAccessToken: CustomerAccessToken customerUserErrors: [CustomerUserError!]! userErrors: [UserError!]! @deprecated } type CustomerAccessTokenCreateWithMultipassPayload { customerAccessToken: CustomerAccessToken customerUserErrors: [CustomerUserError!]! userErrors: [UserError!]! @deprecated } type CustomerAccessTokenDeletePayload { deletedAccessToken: String deletedCustomerAccessTokenId: String userErrors: [UserError!]! } type CustomerAccessTokenRenewPayload { customerAccessToken: CustomerAccessToken userErrors: [UserError!]! } type CustomerActivateByUrlPayload { customer: Customer customerAccessToken: CustomerAccessToken customerUserErrors: [CustomerUserError!]! userErrors: [UserError!]! @deprecated } type CustomerActivatePayload { customer: Customer customerAccessToken: CustomerAccessToken customerUserErrors: [CustomerUserError!]! userErrors: [UserError!]! @deprecated } type CustomerAddressCreatePayload { customerAddress: MailingAddress customerUserErrors: [CustomerUserError!]! userErrors: [UserError!]! @deprecated } type CustomerAddressDeletePayload { customerUserErrors: [CustomerUserError!]! deletedCustomerAddressId: String userErrors: [UserError!]! @deprecated } type CustomerAddressUpdatePayload { customerAddress: MailingAddress customerUserErrors: [CustomerUserError!]! userErrors: [UserError!]! @deprecated } type CustomerCreatePayload { customer: Customer customerUserErrors: [CustomerUserError!]! userErrors: [UserError!]! @deprecated } type CustomerDefaultAddressUpdatePayload { customer: Customer customerUserErrors: [CustomerUserError!]! userErrors: [UserError!]! @deprecated } type CustomerRecoverPayload { customerUserErrors: [CustomerUserError!]! userErrors: [UserError!]! @deprecated } type CustomerResetByUrlPayload { customer: Customer customerAccessToken: CustomerAccessToken customerUserErrors: [CustomerUserError!]! userErrors: [UserError!]! @deprecated } type CustomerResetPayload { customer: Customer customerAccessToken: CustomerAccessToken customerUserErrors: [CustomerUserError!]! userErrors: [UserError!]! @deprecated } type CustomerUpdatePayload { customer: Customer customerAccessToken: CustomerAccessToken customerUserErrors: [CustomerUserError!]! userErrors: [UserError!]! @deprecated } type CustomerUserError implements DisplayableError { code: CustomerErrorCode field: [String!] message: String! } type DiscountAllocation { allocatedAmount: MoneyV2! discountApplication: DiscountApplication! } type DiscountApplicationConnection { edges: [DiscountApplicationEdge!]! nodes: [DiscountApplication!]! pageInfo: PageInfo! } type DiscountApplicationEdge { cursor: String! node: DiscountApplication! } type DiscountCodeApplication implements DiscountApplication { allocationMethod: DiscountApplicationAllocationMethod! applicable: Boolean! code: String! targetSelection: DiscountApplicationTargetSelection! targetType: DiscountApplicationTargetType! value: PricingValue! } type Domain { host: String! sslEnabled: Boolean! url: URL! } type ExternalVideo implements Media & Node { alt: String embedUrl: URL! embeddedUrl: URL! @deprecated host: MediaHost! id: ID! mediaContentType: MediaContentType! originUrl: URL! presentation: MediaPresentation previewImage: Image } type Filter { id: String! label: String! presentation: FilterPresentation type: FilterType! values: [FilterValue!]! } type FilterValue { count: Int! id: String! image: MediaImage input: JSON! label: String! swatch: Swatch } type Fulfillment { fulfillmentLineItems(first: Int, after: String, last: Int, before: String, reverse: Boolean = false): FulfillmentLineItemConnection! trackingCompany: String trackingInfo(first: Int): [FulfillmentTrackingInfo!]! } type FulfillmentLineItem { lineItem: OrderLineItem! quantity: Int! } type FulfillmentLineItemConnection { edges: [FulfillmentLineItemEdge!]! nodes: [FulfillmentLineItem!]! pageInfo: PageInfo! } type FulfillmentLineItemEdge { cursor: String! node: FulfillmentLineItem! } type FulfillmentTrackingInfo { number: String url: URL } type GenericFile implements Node { alt: String id: ID! mimeType: String originalFileSize: Int previewImage: Image url: URL } type Image { altText: String height: Int id: ID originalSrc: URL! @deprecated src: URL! @deprecated thumbhash: String transformedSrc(maxWidth: Int, maxHeight: Int, crop: CropRegion, scale: Int = 1, preferredContentType: ImageContentType): URL! @deprecated url(transform: ImageTransformInput): URL! width: Int } type ImageConnection { edges: [ImageEdge!]! nodes: [Image!]! pageInfo: PageInfo! } type ImageEdge { cursor: String! node: Image! } type InContextAnnotation { description: String! type: InContextAnnotationType! } type InContextAnnotationType { kind: String! name: String! } type Language { endonymName: String! isoCode: LanguageCode! name: String! } type Localization { availableCountries: [Country!]! availableLanguages: [Language!]! country: Country! language: Language! market: Market! @deprecated } type Location implements HasMetafields & Node { address: LocationAddress! id: ID! metafield(namespace: String, key: String!): Metafield metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]! name: String! } type LocationAddress { address1: String address2: String city: String country: String countryCode: String formatted: [String!]! latitude: Float longitude: Float phone: String province: String provinceCode: String zip: String } type LocationConnection { edges: [LocationEdge!]! nodes: [Location!]! pageInfo: PageInfo! } type LocationEdge { cursor: String! node: Location! } type MailingAddress implements Node { address1: String address2: String city: String company: String country: String countryCode: String @deprecated countryCodeV2: CountryCode firstName: String formatted(withName: Boolean = false, withCompany: Boolean = true): [String!]! formattedArea: String id: ID! lastName: String latitude: Float longitude: Float name: String phone: String province: String provinceCode: String zip: String } type MailingAddressConnection { edges: [MailingAddressEdge!]! nodes: [MailingAddress!]! pageInfo: PageInfo! } type MailingAddressEdge { cursor: String! node: MailingAddress! } type ManualDiscountApplication implements DiscountApplication { allocationMethod: DiscountApplicationAllocationMethod! description: String targetSelection: DiscountApplicationTargetSelection! targetType: DiscountApplicationTargetType! title: String! value: PricingValue! } type Market implements HasMetafields & Node { handle: String! id: ID! metafield(namespace: String, key: String!): Metafield metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]! } type MediaConnection { edges: [MediaEdge!]! nodes: [Media!]! pageInfo: PageInfo! } type MediaEdge { cursor: String! node: Media! } type MediaImage implements Media & Node { alt: String id: ID! image: Image mediaContentType: MediaContentType! presentation: MediaPresentation previewImage: Image } type MediaPresentation implements Node { asJson(format: MediaPresentationFormat!): JSON id: ID! @deprecated } type Menu implements Node { handle: String! id: ID! items: [MenuItem!]! itemsCount: Int! title: String! } type MenuItem implements Node { id: ID! items: [MenuItem!]! resource: MenuItemResource resourceId: ID tags: [String!]! title: String! type: MenuItemType! url: URL } type Metafield implements Node { createdAt: DateTime! description: String id: ID! key: String! list: Boolean! namespace: String! parentResource: MetafieldParentResource! reference: MetafieldReference references(first: Int, after: String, last: Int, before: String): MetafieldReferenceConnection type: String! updatedAt: DateTime! value: String! } type MetafieldDeleteUserError implements DisplayableError { code: MetafieldDeleteErrorCode field: [String!] message: String! } type MetafieldReferenceConnection { edges: [MetafieldReferenceEdge!]! nodes: [MetafieldReference!]! pageInfo: PageInfo! } type MetafieldReferenceEdge { cursor: String! node: MetafieldReference! } type MetafieldsSetUserError implements DisplayableError { code: MetafieldsSetUserErrorCode elementIndex: Int field: [String!] message: String! } type Metaobject implements Node & OnlineStorePublishable { field(key: String!): MetaobjectField fields: [MetaobjectField!]! handle: String! id: ID! onlineStoreUrl: URL seo: MetaobjectSEO type: String! updatedAt: DateTime! } type MetaobjectConnection { edges: [MetaobjectEdge!]! nodes: [Metaobject!]! pageInfo: PageInfo! } type MetaobjectEdge { cursor: String! node: Metaobject! } type MetaobjectField { key: String! reference: MetafieldReference references(first: Int, after: String, last: Int, before: String): MetafieldReferenceConnection type: String! value: String } type MetaobjectSEO { description: MetaobjectField title: MetaobjectField } type Model3d implements Media & Node { alt: String id: ID! mediaContentType: MediaContentType! presentation: MediaPresentation previewImage: Image sources: [Model3dSource!]! } type Model3dSource { filesize: Int! format: String! mimeType: String! url: String! } type MoneyV2 { amount: Decimal! currencyCode: CurrencyCode! } type Mutation { cartAttributesUpdate(attributes: [AttributeInput!]!, cartId: ID!): CartAttributesUpdatePayload cartBillingAddressUpdate(cartId: ID!, billingAddress: MailingAddressInput): CartBillingAddressUpdatePayload cartBuyerIdentityUpdate(cartId: ID!, buyerIdentity: CartBuyerIdentityInput!): CartBuyerIdentityUpdatePayload cartClone(cartId: ID!): CartClonePayload cartCreate(input: CartInput): CartCreatePayload cartDeliveryAddressesAdd(cartId: ID!, addresses: [CartSelectableAddressInput!]!): CartDeliveryAddressesAddPayload cartDeliveryAddressesRemove(cartId: ID!, addressIds: [ID!]!): CartDeliveryAddressesRemovePayload cartDeliveryAddressesReplace(cartId: ID!, addresses: [CartSelectableAddressInput!]!): CartDeliveryAddressesReplacePayload cartDeliveryAddressesUpdate(cartId: ID!, addresses: [CartSelectableAddressUpdateInput!]!): CartDeliveryAddressesUpdatePayload cartDiscountCodesUpdate(cartId: ID!, discountCodes: [String!]!): CartDiscountCodesUpdatePayload cartGiftCardCodesAdd(cartId: ID!, giftCardCodes: [String!]!): CartGiftCardCodesAddPayload cartGiftCardCodesRemove(cartId: ID!, appliedGiftCardIds: [ID!]!): CartGiftCardCodesRemovePayload cartGiftCardCodesUpdate(cartId: ID!, giftCardCodes: [String!]!): CartGiftCardCodesUpdatePayload cartLinesAdd(cartId: ID!, lines: [CartLineInput!]!): CartLinesAddPayload cartLinesRemove(cartId: ID!, lineIds: [ID!]!): CartLinesRemovePayload cartLinesUpdate(cartId: ID!, lines: [CartLineUpdateInput!]!): CartLinesUpdatePayload cartMetafieldDelete(input: CartMetafieldDeleteInput!): CartMetafieldDeletePayload cartMetafieldsSet(metafields: [CartMetafieldsSetInput!]!): CartMetafieldsSetPayload cartNoteUpdate(cartId: ID!, note: String!): CartNoteUpdatePayload cartPaymentUpdate(cartId: ID!, payment: CartPaymentInput!): CartPaymentUpdatePayload cartPrepareForCompletion(cartId: ID!): CartPrepareForCompletionPayload cartRemovePersonalData(cartId: ID!): CartRemovePersonalDataPayload cartSelectedDeliveryOptionsUpdate(cartId: ID!, selectedDeliveryOptions: [CartSelectedDeliveryOptionInput!]!): CartSelectedDeliveryOptionsUpdatePayload cartSubmitForCompletion(cartId: ID!, attemptToken: String!): CartSubmitForCompletionPayload customerAccessTokenCreate(input: CustomerAccessTokenCreateInput!): CustomerAccessTokenCreatePayload customerAccessTokenCreateWithMultipass(multipassToken: String!): CustomerAccessTokenCreateWithMultipassPayload customerAccessTokenDelete(customerAccessToken: String!): CustomerAccessTokenDeletePayload customerAccessTokenRenew(customerAccessToken: String!): CustomerAccessTokenRenewPayload customerActivate(id: ID!, input: CustomerActivateInput!): CustomerActivatePayload customerActivateByUrl(activationUrl: URL!, password: String!): CustomerActivateByUrlPayload customerAddressCreate(customerAccessToken: String!, address: MailingAddressInput!): CustomerAddressCreatePayload customerAddressDelete(id: ID!, customerAccessToken: String!): CustomerAddressDeletePayload customerAddressUpdate(customerAccessToken: String!, id: ID!, address: MailingAddressInput!): CustomerAddressUpdatePayload customerCreate(input: CustomerCreateInput!): CustomerCreatePayload customerDefaultAddressUpdate(customerAccessToken: String!, addressId: ID!): CustomerDefaultAddressUpdatePayload customerRecover(email: String!): CustomerRecoverPayload customerReset(id: ID!, input: CustomerResetInput!): CustomerResetPayload customerResetByUrl(resetUrl: URL!, password: String!): CustomerResetByUrlPayload customerUpdate(customerAccessToken: String!, customer: CustomerUpdateInput!): CustomerUpdatePayload shopPayPaymentRequestSessionCreate(sourceIdentifier: String!, paymentRequest: ShopPayPaymentRequestInput!): ShopPayPaymentRequestSessionCreatePayload shopPayPaymentRequestSessionSubmit(token: String!, paymentRequest: ShopPayPaymentRequestInput!, idempotencyKey: String!, orderName: String): ShopPayPaymentRequestSessionSubmitPayload } type Order implements HasMetafields & Node { billingAddress: MailingAddress cancelReason: OrderCancelReason canceledAt: DateTime currencyCode: CurrencyCode! currentSubtotalPrice: MoneyV2! currentTotalDuties: MoneyV2 currentTotalPrice: MoneyV2! currentTotalShippingPrice: MoneyV2! currentTotalTax: MoneyV2! customAttributes: [Attribute!]! customerLocale: String customerUrl: URL discountApplications(first: Int, after: String, last: Int, before: String, reverse: Boolean = false): DiscountApplicationConnection! edited: Boolean! email: String financialStatus: OrderFinancialStatus fulfillmentStatus: OrderFulfillmentStatus! id: ID! lineItems(first: Int, after: String, last: Int, before: String, reverse: Boolean = false): OrderLineItemConnection! metafield(namespace: String, key: String!): Metafield metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]! name: String! orderNumber: Int! originalTotalDuties: MoneyV2 originalTotalPrice: MoneyV2! phone: String processedAt: DateTime! shippingAddress: MailingAddress shippingDiscountAllocations: [DiscountAllocation!]! statusUrl: URL! subtotalPrice: MoneyV2 subtotalPriceV2: MoneyV2 @deprecated successfulFulfillments(first: Int): [Fulfillment!] totalPrice: MoneyV2! totalPriceV2: MoneyV2! @deprecated totalRefunded: MoneyV2! totalRefundedV2: MoneyV2! @deprecated totalShippingPrice: MoneyV2! totalShippingPriceV2: MoneyV2! @deprecated totalTax: MoneyV2 totalTaxV2: MoneyV2 @deprecated } type OrderConnection { edges: [OrderEdge!]! nodes: [Order!]! pageInfo: PageInfo! totalCount: UnsignedInt64! } type OrderEdge { cursor: String! node: Order! } type OrderLineItem { currentQuantity: Int! customAttributes: [Attribute!]! discountAllocations: [DiscountAllocation!]! discountedTotalPrice: MoneyV2! originalTotalPrice: MoneyV2! quantity: Int! title: String! variant: ProductVariant } type OrderLineItemConnection { edges: [OrderLineItemEdge!]! nodes: [OrderLineItem!]! pageInfo: PageInfo! } type OrderLineItemEdge { cursor: String! node: OrderLineItem! } type Page implements HasMetafields & Node & OnlineStorePublishable & Trackable { body: HTML! bodySummary: String! createdAt: DateTime! handle: String! id: ID! metafield(namespace: String, key: String!): Metafield metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]! onlineStoreUrl: URL seo: SEO title: String! trackingParameters: String updatedAt: DateTime! } type PageConnection { edges: [PageEdge!]! nodes: [Page!]! pageInfo: PageInfo! } type PageEdge { cursor: String! node: Page! } type PageInfo { endCursor: String hasNextPage: Boolean! hasPreviousPage: Boolean! startCursor: String } type PaginatedSitemapResources { hasNextPage: Boolean! items: [SitemapResourceInterface!]! } type PaymentSettings { acceptedCardBrands: [CardBrand!]! cardVaultUrl: URL! countryCode: CountryCode! currencyCode: CurrencyCode! enabledPresentmentCurrencies: [CurrencyCode!]! shopifyPaymentsAccountId: String supportedDigitalWallets: [DigitalWallet!]! } type PredictiveSearchResult { articles: [Article!]! collections: [Collection!]! pages: [Page!]! products: [Product!]! queries: [SearchQuerySuggestion!]! } type PricingPercentageValue { percentage: Float! } type Product implements HasMetafields & Node & OnlineStorePublishable & Trackable { adjacentVariants(selectedOptions: [SelectedOptionInput!], ignoreUnknownOptions: Boolean = true, caseInsensitiveMatch: Boolean = false): [ProductVariant!]! availableForSale: Boolean! category: TaxonomyCategory collections(first: Int, after: String, last: Int, before: String, reverse: Boolean = false): CollectionConnection! compareAtPriceRange: ProductPriceRange! createdAt: DateTime! description(truncateAt: Int): String! descriptionHtml: HTML! encodedVariantAvailability: String encodedVariantExistence: String featuredImage: Image handle: String! id: ID! images(first: Int, after: String, last: Int, before: String, reverse: Boolean = false, sortKey: ProductImageSortKeys = POSITION): ImageConnection! isGiftCard: Boolean! media(first: Int, after: String, last: Int, before: String, reverse: Boolean = false, sortKey: ProductMediaSortKeys = POSITION): MediaConnection! metafield(namespace: String, key: String!): Metafield metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]! onlineStoreUrl: URL options(first: Int): [ProductOption!]! priceRange: ProductPriceRange! productType: String! publishedAt: DateTime! requiresSellingPlan: Boolean! selectedOrFirstAvailableVariant(selectedOptions: [SelectedOptionInput!], ignoreUnknownOptions: Boolean = true, caseInsensitiveMatch: Boolean = false): ProductVariant sellingPlanGroups(first: Int, after: String, last: Int, before: String, reverse: Boolean = false): SellingPlanGroupConnection! seo: SEO! tags: [String!]! title: String! totalInventory: Int trackingParameters: String updatedAt: DateTime! variantBySelectedOptions(selectedOptions: [SelectedOptionInput!]!, ignoreUnknownOptions: Boolean = false, caseInsensitiveMatch: Boolean = false): ProductVariant variants(first: Int, after: String, last: Int, before: String, reverse: Boolean = false, sortKey: ProductVariantSortKeys = POSITION): ProductVariantConnection! variantsCount: Count vendor: String! } type ProductConnection { edges: [ProductEdge!]! filters: [Filter!]! nodes: [Product!]! pageInfo: PageInfo! } type ProductEdge { cursor: String! node: Product! } type ProductOption implements Node { id: ID! name: String! optionValues: [ProductOptionValue!]! values: [String!]! @deprecated } type ProductOptionValue implements Node { firstSelectableVariant: ProductVariant id: ID! name: String! swatch: ProductOptionValueSwatch } type ProductOptionValueSwatch { color: Color image: Media } type ProductPriceRange { maxVariantPrice: MoneyV2! minVariantPrice: MoneyV2! } type ProductVariant implements HasMetafields & Node { availableForSale: Boolean! barcode: String compareAtPrice: MoneyV2 compareAtPriceV2: MoneyV2 @deprecated components(first: Int, after: String, last: Int, before: String): ProductVariantComponentConnection! currentlyNotInStock: Boolean! groupedBy(first: Int, after: String, last: Int, before: String): ProductVariantConnection! id: ID! image: Image metafield(namespace: String, key: String!): Metafield metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]! price: MoneyV2! priceV2: MoneyV2! @deprecated product: Product! quantityAvailable: Int quantityPriceBreaks(first: Int, after: String, last: Int, before: String): QuantityPriceBreakConnection! quantityRule: QuantityRule! requiresComponents: Boolean! requiresShipping: Boolean! selectedOptions: [SelectedOption!]! sellingPlanAllocations(first: Int, after: String, last: Int, before: String, reverse: Boolean = false): SellingPlanAllocationConnection! shopPayInstallmentsPricing: ShopPayInstallmentsProductVariantPricing sku: String storeAvailability(near: GeoCoordinateInput, first: Int, after: String, last: Int, before: String, reverse: Boolean = false): StoreAvailabilityConnection! taxable: Boolean! title: String! unitPrice: MoneyV2 unitPriceMeasurement: UnitPriceMeasurement weight: Float weightUnit: WeightUnit! } type ProductVariantComponent { productVariant: ProductVariant! quantity: Int! } type ProductVariantComponentConnection { edges: [ProductVariantComponentEdge!]! nodes: [ProductVariantComponent!]! pageInfo: PageInfo! } type ProductVariantComponentEdge { cursor: String! node: ProductVariantComponent! } type ProductVariantConnection { edges: [ProductVariantEdge!]! nodes: [ProductVariant!]! pageInfo: PageInfo! } type ProductVariantEdge { cursor: String! node: ProductVariant! } type PurchasingCompany { company: Company! contact: CompanyContact location: CompanyLocation! } type QuantityPriceBreak { minimumQuantity: Int! price: MoneyV2! } type QuantityPriceBreakConnection { edges: [QuantityPriceBreakEdge!]! nodes: [QuantityPriceBreak!]! pageInfo: PageInfo! } type QuantityPriceBreakEdge { cursor: String! node: QuantityPriceBreak! } type QuantityRule { increment: Int! maximum: Int minimum: Int! } type QueryRoot { article(id: ID!): Article articles(first: Int, after: String, last: Int, before: String, reverse: Boolean = false, sortKey: ArticleSortKeys = ID, query: String): ArticleConnection! blog(handle: String, id: ID): Blog blogByHandle(handle: String!): Blog @deprecated blogs(first: Int, after: String, last: Int, before: String, reverse: Boolean = false, sortKey: BlogSortKeys = ID, query: String): BlogConnection! cart(id: ID!): Cart cartCompletionAttempt(attemptId: String!): CartCompletionAttemptResult collection(id: ID, handle: String): Collection collectionByHandle(handle: String!): Collection @deprecated collections(first: Int, after: String, last: Int, before: String, reverse: Boolean = false, sortKey: CollectionSortKeys = ID, query: String): CollectionConnection! customer(customerAccessToken: String!): Customer localization: Localization! locations(first: Int, after: String, last: Int, before: String, reverse: Boolean = false, sortKey: LocationSortKeys = ID, near: GeoCoordinateInput): LocationConnection! menu(handle: String!): Menu metaobject(id: ID, handle: MetaobjectHandleInput): Metaobject metaobjects(type: String!, sortKey: String, first: Int, after: String, last: Int, before: String, reverse: Boolean = false): MetaobjectConnection! node(id: ID!): Node nodes(ids: [ID!]!): [Node]! page(handle: String, id: ID): Page pageByHandle(handle: String!): Page @deprecated pages(first: Int, after: String, last: Int, before: String, reverse: Boolean = false, sortKey: PageSortKeys = ID, query: String): PageConnection! paymentSettings: PaymentSettings! predictiveSearch(limit: Int, limitScope: PredictiveSearchLimitScope, query: String!, searchableFields: [SearchableField!], types: [PredictiveSearchType!], unavailableProducts: SearchUnavailableProductsType): PredictiveSearchResult product(id: ID, handle: String): Product productByHandle(handle: String!): Product @deprecated productRecommendations(productId: ID, productHandle: String, intent: ProductRecommendationIntent = RELATED): [Product!] productTags(first: Int!): StringConnection! productTypes(first: Int!): StringConnection! products(first: Int, after: String, last: Int, before: String, reverse: Boolean = false, sortKey: ProductSortKeys = ID, query: String): ProductConnection! publicApiVersions: [ApiVersion!]! 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! shop: Shop! shopPayInstallmentsPricing: ShopPayInstallmentsPricing sitemap(type: SitemapType!): Sitemap! urlRedirects(first: Int, after: String, last: Int, before: String, reverse: Boolean = false, query: String): UrlRedirectConnection! } type SEO { description: String title: String } type ScriptDiscountApplication implements DiscountApplication { allocationMethod: DiscountApplicationAllocationMethod! targetSelection: DiscountApplicationTargetSelection! targetType: DiscountApplicationTargetType! title: String! value: PricingValue! } type SearchQuerySuggestion implements Trackable { styledText: String! text: String! trackingParameters: String } type SearchResultItemConnection { edges: [SearchResultItemEdge!]! nodes: [SearchResultItem!]! pageInfo: PageInfo! productFilters: [Filter!]! totalCount: Int! } type SearchResultItemEdge { cursor: String! node: SearchResultItem! } type SelectedOption { name: String! value: String! } type SellingPlan implements HasMetafields { billingPolicy: SellingPlanBillingPolicy checkoutCharge: SellingPlanCheckoutCharge! deliveryPolicy: SellingPlanDeliveryPolicy description: String id: ID! metafield(namespace: String, key: String!): Metafield metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]! name: String! options: [SellingPlanOption!]! priceAdjustments: [SellingPlanPriceAdjustment!]! recurringDeliveries: Boolean! } type SellingPlanAllocation { checkoutChargeAmount: MoneyV2! priceAdjustments: [SellingPlanAllocationPriceAdjustment!]! remainingBalanceChargeAmount: MoneyV2! sellingPlan: SellingPlan! } type SellingPlanAllocationConnection { edges: [SellingPlanAllocationEdge!]! nodes: [SellingPlanAllocation!]! pageInfo: PageInfo! } type SellingPlanAllocationEdge { cursor: String! node: SellingPlanAllocation! } type SellingPlanAllocationPriceAdjustment { compareAtPrice: MoneyV2! perDeliveryPrice: MoneyV2! price: MoneyV2! unitPrice: MoneyV2 } type SellingPlanCheckoutCharge { type: SellingPlanCheckoutChargeType! value: SellingPlanCheckoutChargeValue! } type SellingPlanCheckoutChargePercentageValue { percentage: Float! } type SellingPlanConnection { edges: [SellingPlanEdge!]! nodes: [SellingPlan!]! pageInfo: PageInfo! } type SellingPlanEdge { cursor: String! node: SellingPlan! } type SellingPlanFixedAmountPriceAdjustment { adjustmentAmount: MoneyV2! } type SellingPlanFixedPriceAdjustment { price: MoneyV2! } type SellingPlanGroup { appName: String name: String! options: [SellingPlanGroupOption!]! sellingPlans(first: Int, after: String, last: Int, before: String, reverse: Boolean = false): SellingPlanConnection! } type SellingPlanGroupConnection { edges: [SellingPlanGroupEdge!]! nodes: [SellingPlanGroup!]! pageInfo: PageInfo! } type SellingPlanGroupEdge { cursor: String! node: SellingPlanGroup! } type SellingPlanGroupOption { name: String! values: [String!]! } type SellingPlanOption { name: String value: String } type SellingPlanPercentagePriceAdjustment { adjustmentPercentage: Float! } type SellingPlanPriceAdjustment { adjustmentValue: SellingPlanPriceAdjustmentValue! orderCount: Int } type SellingPlanRecurringBillingPolicy { interval: SellingPlanInterval! intervalCount: Int! } type SellingPlanRecurringDeliveryPolicy { interval: SellingPlanInterval! intervalCount: Int! } type Shop implements HasMetafields & Node { brand: Brand customerAccountTranslations: [Translation!] customerAccountUrl: String description: String id: ID! metafield(namespace: String, key: String!): Metafield metafields(identifiers: [HasMetafieldsIdentifier!]!): [Metafield]! moneyFormat: String! name: String! paymentSettings: PaymentSettings! primaryDomain: Domain! privacyPolicy: ShopPolicy refundPolicy: ShopPolicy shippingPolicy: ShopPolicy shipsToCountries: [CountryCode!]! shopPayInstallmentsPricing: ShopPayInstallmentsPricing socialLoginProviders: [SocialLoginProvider!]! subscriptionPolicy: ShopPolicyWithDefault termsOfService: ShopPolicy } type ShopPayInstallmentsFinancingPlan implements Node { id: ID! maxPrice: MoneyV2! minPrice: MoneyV2! terms: [ShopPayInstallmentsFinancingPlanTerm!]! } type ShopPayInstallmentsFinancingPlanTerm implements Node { apr: Int! frequency: ShopPayInstallmentsFinancingPlanFrequency! id: ID! installmentsCount: Count loanType: ShopPayInstallmentsLoan! } type ShopPayInstallmentsPricing { financingPlans: [ShopPayInstallmentsFinancingPlan!]! maxPrice: MoneyV2! minPrice: MoneyV2! productVariantPricing(variantId: ID!): ShopPayInstallmentsProductVariantPricing } type ShopPayInstallmentsProductVariantPricing implements Node { available: Boolean! eligible: Boolean! fullPrice: MoneyV2! id: ID! installmentsCount: Count pricePerTerm: MoneyV2! } type ShopPayPaymentRequest { deliveryMethods: [ShopPayPaymentRequestDeliveryMethod!]! @deprecated discountCodes: [String!]! discounts: [ShopPayPaymentRequestDiscount!] lineItems: [ShopPayPaymentRequestLineItem!]! locale: String! presentmentCurrency: CurrencyCode! selectedDeliveryMethodType: ShopPayPaymentRequestDeliveryMethodType! shippingAddress: ShopPayPaymentRequestContactField shippingLines: [ShopPayPaymentRequestShippingLine!]! subtotal: MoneyV2! total: MoneyV2! totalShippingPrice: ShopPayPaymentRequestTotalShippingPrice totalTax: MoneyV2 } type ShopPayPaymentRequestContactField { address1: String! address2: String city: String! companyName: String countryCode: String! email: String firstName: String! lastName: String! phone: String postalCode: String provinceCode: String } type ShopPayPaymentRequestDeliveryMethod { amount: MoneyV2! code: String! deliveryExpectationLabel: String detail: String label: String! maxDeliveryDate: ISO8601DateTime minDeliveryDate: ISO8601DateTime } type ShopPayPaymentRequestDiscount { amount: MoneyV2! label: String! } type ShopPayPaymentRequestImage { alt: String url: String! } type ShopPayPaymentRequestLineItem { finalItemPrice: MoneyV2! finalLinePrice: MoneyV2! image: ShopPayPaymentRequestImage itemDiscounts: [ShopPayPaymentRequestDiscount!] label: String! lineDiscounts: [ShopPayPaymentRequestDiscount!] originalItemPrice: MoneyV2 originalLinePrice: MoneyV2 quantity: Int! requiresShipping: Boolean sku: String } type ShopPayPaymentRequestReceipt { paymentRequest: ShopPayPaymentRequest! processingStatusType: String! token: String! } type ShopPayPaymentRequestSession { checkoutUrl: URL! paymentRequest: ShopPayPaymentRequest! sourceIdentifier: String! token: String! } type ShopPayPaymentRequestSessionCreatePayload { shopPayPaymentRequestSession: ShopPayPaymentRequestSession userErrors: [UserErrorsShopPayPaymentRequestSessionUserErrors!]! } type ShopPayPaymentRequestSessionSubmitPayload { paymentRequestReceipt: ShopPayPaymentRequestReceipt userErrors: [UserErrorsShopPayPaymentRequestSessionUserErrors!]! } type ShopPayPaymentRequestShippingLine { amount: MoneyV2! code: String! label: String! } type ShopPayPaymentRequestTotalShippingPrice { discounts: [ShopPayPaymentRequestDiscount!]! finalTotal: MoneyV2! originalTotal: MoneyV2 } type ShopPolicy implements Node { body: String! handle: String! id: ID! title: String! url: URL! } type ShopPolicyWithDefault { body: String! handle: String! id: ID title: String! url: URL! } type Sitemap { pagesCount: Count resources(page: Int!): PaginatedSitemapResources } type SitemapImage { alt: String filepath: String updatedAt: DateTime! } type SitemapResource implements SitemapResourceInterface { handle: String! image: SitemapImage title: String updatedAt: DateTime! } type SitemapResourceMetaobject implements SitemapResourceInterface { handle: String! onlineStoreUrlHandle: String type: String! updatedAt: DateTime! } type SocialLoginProvider { handle: String! } type StoreAvailability { available: Boolean! location: Location! pickUpTime: String! quantityAvailable: Int! } type StoreAvailabilityConnection { edges: [StoreAvailabilityEdge!]! nodes: [StoreAvailability!]! pageInfo: PageInfo! } type StoreAvailabilityEdge { cursor: String! node: StoreAvailability! } type StringConnection { edges: [StringEdge!]! nodes: [String!]! pageInfo: PageInfo! } type StringEdge { cursor: String! node: String! } type SubmissionError { code: SubmissionErrorCode! message: String } type SubmitAlreadyAccepted { attemptId: String! } type SubmitFailed { checkoutUrl: URL errors: [SubmissionError!]! } type SubmitSuccess { attemptId: String! redirectUrl: URL! } type SubmitThrottled { pollAfter: DateTime! } type Swatch { color: Color image: MediaImage } type TaxonomyCategory implements Node { ancestors: [TaxonomyCategory!]! id: ID! name: String! } type Translation { key: String! value: String! } type UnitPriceMeasurement { measuredType: UnitPriceMeasurementMeasuredType quantityUnit: UnitPriceMeasurementMeasuredUnit quantityValue: Float! referenceUnit: UnitPriceMeasurementMeasuredUnit referenceValue: Int! } type UrlRedirect implements Node { id: ID! path: String! target: String! } type UrlRedirectConnection { edges: [UrlRedirectEdge!]! nodes: [UrlRedirect!]! pageInfo: PageInfo! } type UrlRedirectEdge { cursor: String! node: UrlRedirect! } type UserError implements DisplayableError { field: [String!] message: String! } type UserErrorsShopPayPaymentRequestSessionUserErrors implements DisplayableError { code: UserErrorsShopPayPaymentRequestSessionUserErrorsCode field: [String!] message: String! } type Video implements Media & Node { alt: String id: ID! mediaContentType: MediaContentType! presentation: MediaPresentation previewImage: Image sources: [VideoSource!]! } type VideoSource { format: String! height: Int! mimeType: String! url: String! width: Int! } scalar Boolean scalar Color scalar DateTime scalar Decimal scalar Float scalar HTML scalar ID scalar ISO8601DateTime scalar Int scalar JSON scalar String scalar URL scalar UnsignedInt64 union CartAddress = CartDeliveryAddress union CartCompletionAction = CompletePaymentChallenge union CartCompletionAttemptResult = CartCompletionActionRequired | CartCompletionFailed | CartCompletionProcessing | CartCompletionSuccess union CartPrepareForCompletionResult = CartStatusNotReady | CartStatusReady | CartThrottled union CartSubmitForCompletionResult = SubmitAlreadyAccepted | SubmitFailed | SubmitSuccess | SubmitThrottled union DeliveryAddress = MailingAddress union MenuItemResource = Article | Blog | Collection | Metaobject | Page | Product | ShopPolicy union Merchandise = ProductVariant union MetafieldParentResource = Article | Blog | Cart | Collection | Company | CompanyLocation | Customer | Location | Market | Order | Page | Product | ProductVariant | SellingPlan | Shop union MetafieldReference = Article | Collection | GenericFile | MediaImage | Metaobject | Model3d | Page | Product | ProductVariant | Video union PricingValue = MoneyV2 | PricingPercentageValue union SearchResultItem = Article | Page | Product union SellingPlanBillingPolicy = SellingPlanRecurringBillingPolicy union SellingPlanCheckoutChargeValue = MoneyV2 | SellingPlanCheckoutChargePercentageValue union SellingPlanDeliveryPolicy = SellingPlanRecurringDeliveryPolicy union SellingPlanPriceAdjustmentValue = SellingPlanFixedAmountPriceAdjustment | SellingPlanFixedPriceAdjustment | SellingPlanPercentagePriceAdjustment