UNPKG

@shopify/hydrogen

Version:
1,296 lines (1,212 loc) 327 kB
/** * THIS FILE IS AUTO-GENERATED, DO NOT EDIT * Based on Storefront API 2025-01 * If changes need to happen to the types defined in this file, then generally the Storefront API needs to update. After it's updated, you can run `npm run graphql-types`. * Except custom Scalars, which are defined in the `codegen.ts` file */ /* eslint-disable */ export type Maybe<T> = T | null; export type InputMaybe<T> = Maybe<T>; export type Exact<T extends {[key: string]: unknown}> = {[K in keyof T]: T[K]}; export type MakeOptional<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]?: Maybe<T[SubKey]>; }; export type MakeMaybe<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]: Maybe<T[SubKey]>; }; export type MakeEmpty<T extends {[key: string]: unknown}, K extends keyof T> = { [_ in K]?: never; }; export type Incremental<T> = | T | {[P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never}; /** All built-in and custom scalars, mapped to their actual values */ export type Scalars = { ID: {input: string; output: string}; String: {input: string; output: string}; Boolean: {input: boolean; output: boolean}; Int: {input: number; output: number}; Float: {input: number; output: number}; Color: {input: string; output: string}; DateTime: {input: string; output: string}; Decimal: {input: string; output: string}; HTML: {input: string; output: string}; ISO8601DateTime: {input: unknown; output: unknown}; JSON: {input: unknown; output: unknown}; URL: {input: string; output: string}; UnsignedInt64: {input: string; output: string}; }; /** * A version of the API, as defined by [Shopify API versioning](https://shopify.dev/api/usage/versioning). * Versions are commonly referred to by their handle (for example, `2021-10`). * */ export type ApiVersion = { __typename?: 'ApiVersion'; /** The human-readable name of the version. */ displayName: Scalars['String']['output']; /** The unique identifier of an ApiVersion. All supported API versions have a date-based (YYYY-MM) or `unstable` handle. */ handle: Scalars['String']['output']; /** 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: Scalars['Boolean']['output']; }; /** * The input fields for submitting Apple Pay payment method information for checkout. * */ export type ApplePayWalletContentInput = { /** The customer's billing address. */ billingAddress: MailingAddressInput; /** The data for the Apple Pay wallet. */ data: Scalars['String']['input']; /** The header data for the Apple Pay wallet. */ header: ApplePayWalletHeaderInput; /** The last digits of the card used to create the payment. */ lastDigits?: InputMaybe<Scalars['String']['input']>; /** The signature for the Apple Pay wallet. */ signature: Scalars['String']['input']; /** The version for the Apple Pay wallet. */ version: Scalars['String']['input']; }; /** * The input fields for submitting wallet payment method information for checkout. * */ export type ApplePayWalletHeaderInput = { /** The application data for the Apple Pay wallet. */ applicationData?: InputMaybe<Scalars['String']['input']>; /** The ephemeral public key for the Apple Pay wallet. */ ephemeralPublicKey: Scalars['String']['input']; /** The public key hash for the Apple Pay wallet. */ publicKeyHash: Scalars['String']['input']; /** The transaction ID for the Apple Pay wallet. */ transactionId: Scalars['String']['input']; }; /** Details about the gift card used on the checkout. */ export type AppliedGiftCard = Node & { __typename?: 'AppliedGiftCard'; /** 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. * @deprecated Use `amountUsed` instead. */ amountUsedV2: MoneyV2; /** The amount left on the gift card. */ balance: MoneyV2; /** * The amount left on the gift card. * @deprecated Use `balance` instead. */ balanceV2: MoneyV2; /** A globally-unique ID. */ id: Scalars['ID']['output']; /** The last characters of the gift card. */ lastCharacters: Scalars['String']['output']; /** The amount that was applied to the checkout in its currency. */ presentmentAmountUsed: MoneyV2; }; /** An article in an online store blog. */ export type Article = HasMetafields & Node & OnlineStorePublishable & Trackable & { __typename?: 'Article'; /** * The article's author. * @deprecated Use `authorV2` instead. */ author: ArticleAuthor; /** The article's author. */ authorV2?: Maybe<ArticleAuthor>; /** The blog that the article belongs to. */ blog: Blog; /** List of comments posted on the article. */ comments: CommentConnection; /** Stripped content of the article, single line with HTML tags removed. */ content: Scalars['String']['output']; /** The content of the article, complete with HTML formatting. */ contentHtml: Scalars['HTML']['output']; /** Stripped excerpt of the article, single line with HTML tags removed. */ excerpt?: Maybe<Scalars['String']['output']>; /** The excerpt of the article, complete with HTML formatting. */ excerptHtml?: Maybe<Scalars['HTML']['output']>; /** A human-friendly unique string for the Article automatically generated from its title. */ handle: Scalars['String']['output']; /** A globally-unique ID. */ id: Scalars['ID']['output']; /** The image associated with the article. */ image?: Maybe<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?: Maybe<Metafield>; /** A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. */ metafields: Array<Maybe<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?: Maybe<Scalars['URL']['output']>; /** The date and time when the article was published. */ publishedAt: Scalars['DateTime']['output']; /** The article’s SEO information. */ seo?: Maybe<Seo>; /** * A categorization that a article can be tagged with. * */ tags: Array<Scalars['String']['output']>; /** The article’s name. */ title: Scalars['String']['output']; /** 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?: Maybe<Scalars['String']['output']>; }; /** An article in an online store blog. */ export type ArticleCommentsArgs = { after?: InputMaybe<Scalars['String']['input']>; before?: InputMaybe<Scalars['String']['input']>; first?: InputMaybe<Scalars['Int']['input']>; last?: InputMaybe<Scalars['Int']['input']>; reverse?: InputMaybe<Scalars['Boolean']['input']>; }; /** An article in an online store blog. */ export type ArticleContentArgs = { truncateAt?: InputMaybe<Scalars['Int']['input']>; }; /** An article in an online store blog. */ export type ArticleExcerptArgs = { truncateAt?: InputMaybe<Scalars['Int']['input']>; }; /** An article in an online store blog. */ export type ArticleMetafieldArgs = { key: Scalars['String']['input']; namespace?: InputMaybe<Scalars['String']['input']>; }; /** An article in an online store blog. */ export type ArticleMetafieldsArgs = { identifiers: Array<HasMetafieldsIdentifier>; }; /** The author of an article. */ export type ArticleAuthor = { __typename?: 'ArticleAuthor'; /** The author's bio. */ bio?: Maybe<Scalars['String']['output']>; /** The author’s email. */ email: Scalars['String']['output']; /** The author's first name. */ firstName: Scalars['String']['output']; /** The author's last name. */ lastName: Scalars['String']['output']; /** The author's full name. */ name: Scalars['String']['output']; }; /** * An auto-generated type for paginating through multiple Articles. * */ export type ArticleConnection = { __typename?: 'ArticleConnection'; /** A list of edges. */ edges: Array<ArticleEdge>; /** A list of the nodes contained in ArticleEdge. */ nodes: Array<Article>; /** Information to aid in pagination. */ pageInfo: PageInfo; }; /** * An auto-generated type which holds one Article and a cursor during pagination. * */ export type ArticleEdge = { __typename?: 'ArticleEdge'; /** A cursor for use in pagination. */ cursor: Scalars['String']['output']; /** The item at the end of ArticleEdge. */ node: Article; }; /** The set of valid sort keys for the Article query. */ export type ArticleSortKeys = /** Sort by the `author` value. */ | 'AUTHOR' /** Sort by the `blog_title` value. */ | 'BLOG_TITLE' /** Sort by the `id` value. */ | 'ID' /** Sort by the `published_at` value. */ | 'PUBLISHED_AT' /** * Sort by relevance to the search terms when the `query` parameter is specified on the connection. * Don't use this sort key when no search query is specified. * */ | 'RELEVANCE' /** Sort by the `title` value. */ | 'TITLE' /** Sort by the `updated_at` value. */ | 'UPDATED_AT'; /** Represents a generic custom attribute, such as whether an order is a customer's first. */ export type Attribute = { __typename?: 'Attribute'; /** * The key or name of the attribute. For example, `"customersFirstOrder"`. * */ key: Scalars['String']['output']; /** * The value of the attribute. For example, `"true"`. * */ value?: Maybe<Scalars['String']['output']>; }; /** The input fields for an attribute. */ export type AttributeInput = { /** Key or name of the attribute. */ key: Scalars['String']['input']; /** Value of the attribute. */ value: Scalars['String']['input']; }; /** * Automatic discount applications capture the intentions of a discount that was automatically applied. * */ export type AutomaticDiscountApplication = DiscountApplication & { __typename?: 'AutomaticDiscountApplication'; /** 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: Scalars['String']['output']; /** The value of the discount application. */ value: PricingValue; }; /** Represents a cart line common fields. */ export type BaseCartLine = { /** An attribute associated with the cart line. */ attribute?: Maybe<Attribute>; /** The attributes associated with the cart line. Attributes are represented as key-value pairs. */ attributes: Array<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: Array< | CartAutomaticDiscountAllocation | CartCodeDiscountAllocation | CartCustomDiscountAllocation >; /** * 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. * @deprecated Use `cost` instead. */ estimatedCost: CartLineEstimatedCost; /** A globally-unique ID. */ id: Scalars['ID']['output']; /** The merchandise that the buyer intends to purchase. */ merchandise: Merchandise; /** The quantity of the merchandise that the customer intends to purchase. */ quantity: Scalars['Int']['output']; /** The selling plan associated with the cart line and the effect that each selling plan has on variants when they're purchased. */ sellingPlanAllocation?: Maybe<SellingPlanAllocation>; }; /** Represents a cart line common fields. */ export type BaseCartLineAttributeArgs = { key: Scalars['String']['input']; }; /** * An auto-generated type for paginating through multiple BaseCartLines. * */ export type BaseCartLineConnection = { __typename?: 'BaseCartLineConnection'; /** A list of edges. */ edges: Array<BaseCartLineEdge>; /** A list of the nodes contained in BaseCartLineEdge. */ nodes: Array<CartLine | ComponentizableCartLine>; /** Information to aid in pagination. */ pageInfo: PageInfo; }; /** * An auto-generated type which holds one BaseCartLine and a cursor during pagination. * */ export type BaseCartLineEdge = { __typename?: 'BaseCartLineEdge'; /** A cursor for use in pagination. */ cursor: Scalars['String']['output']; /** The item at the end of BaseCartLineEdge. */ node: CartLine | ComponentizableCartLine; }; /** An online store blog. */ export type Blog = HasMetafields & Node & OnlineStorePublishable & { __typename?: 'Blog'; /** Find an article by its handle. */ articleByHandle?: Maybe<Article>; /** List of the blog's articles. */ articles: ArticleConnection; /** The authors who have contributed to the blog. */ authors: Array<ArticleAuthor>; /** * A human-friendly unique string for the Blog automatically generated from its title. * */ handle: Scalars['String']['output']; /** A globally-unique ID. */ id: Scalars['ID']['output']; /** 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?: Maybe<Metafield>; /** A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. */ metafields: Array<Maybe<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?: Maybe<Scalars['URL']['output']>; /** The blog's SEO information. */ seo?: Maybe<Seo>; /** The blogs’s title. */ title: Scalars['String']['output']; }; /** An online store blog. */ export type BlogArticleByHandleArgs = { handle: Scalars['String']['input']; }; /** An online store blog. */ export type BlogArticlesArgs = { after?: InputMaybe<Scalars['String']['input']>; before?: InputMaybe<Scalars['String']['input']>; first?: InputMaybe<Scalars['Int']['input']>; last?: InputMaybe<Scalars['Int']['input']>; query?: InputMaybe<Scalars['String']['input']>; reverse?: InputMaybe<Scalars['Boolean']['input']>; sortKey?: InputMaybe<ArticleSortKeys>; }; /** An online store blog. */ export type BlogMetafieldArgs = { key: Scalars['String']['input']; namespace?: InputMaybe<Scalars['String']['input']>; }; /** An online store blog. */ export type BlogMetafieldsArgs = { identifiers: Array<HasMetafieldsIdentifier>; }; /** * An auto-generated type for paginating through multiple Blogs. * */ export type BlogConnection = { __typename?: 'BlogConnection'; /** A list of edges. */ edges: Array<BlogEdge>; /** A list of the nodes contained in BlogEdge. */ nodes: Array<Blog>; /** Information to aid in pagination. */ pageInfo: PageInfo; }; /** * An auto-generated type which holds one Blog and a cursor during pagination. * */ export type BlogEdge = { __typename?: 'BlogEdge'; /** A cursor for use in pagination. */ cursor: Scalars['String']['output']; /** The item at the end of BlogEdge. */ node: Blog; }; /** The set of valid sort keys for the Blog query. */ export type BlogSortKeys = /** Sort by the `handle` value. */ | 'HANDLE' /** Sort by the `id` value. */ | 'ID' /** * Sort by relevance to the search terms when the `query` parameter is specified on the connection. * Don't use this sort key when no search query is specified. * */ | 'RELEVANCE' /** Sort by the `title` value. */ | 'TITLE'; /** * The store's [branding configuration](https://help.shopify.com/en/manual/promoting-marketing/managing-brand-assets). * */ export type Brand = { __typename?: 'Brand'; /** The colors of the store's brand. */ colors: BrandColors; /** The store's cover image. */ coverImage?: Maybe<MediaImage>; /** The store's default logo. */ logo?: Maybe<MediaImage>; /** The store's short description. */ shortDescription?: Maybe<Scalars['String']['output']>; /** The store's slogan. */ slogan?: Maybe<Scalars['String']['output']>; /** The store's preferred logo for square UI elements. */ squareLogo?: Maybe<MediaImage>; }; /** * A group of related colors for the shop's brand. * */ export type BrandColorGroup = { __typename?: 'BrandColorGroup'; /** The background color. */ background?: Maybe<Scalars['Color']['output']>; /** The foreground color. */ foreground?: Maybe<Scalars['Color']['output']>; }; /** * The colors of the shop's brand. * */ export type BrandColors = { __typename?: 'BrandColors'; /** The shop's primary brand colors. */ primary: Array<BrandColorGroup>; /** The shop's secondary brand colors. */ secondary: Array<BrandColorGroup>; }; /** * The input fields for obtaining the buyer's identity. * */ export type BuyerInput = { /** The identifier of the company location. */ companyLocationId?: InputMaybe<Scalars['ID']['input']>; /** The customer access token retrieved from the [Customer Accounts API](https://shopify.dev/docs/api/customer#step-obtain-access-token). */ customerAccessToken: Scalars['String']['input']; }; /** Card brand, such as Visa or Mastercard, which can be used for payments. */ export type CardBrand = /** American Express. */ | 'AMERICAN_EXPRESS' /** Diners Club. */ | 'DINERS_CLUB' /** Discover. */ | 'DISCOVER' /** JCB. */ | 'JCB' /** Mastercard. */ | 'MASTERCARD' /** Visa. */ | 'VISA'; /** * A cart represents the merchandise that a buyer intends to purchase, * and the estimated cost associated with the cart. Learn how to * [interact with a cart](https://shopify.dev/custom-storefronts/internationalization/international-pricing) * during a customer's session. * */ export type Cart = HasMetafields & Node & { __typename?: 'Cart'; /** The gift cards that have been applied to the cart. */ appliedGiftCards: Array<AppliedGiftCard>; /** An attribute associated with the cart. */ attribute?: Maybe<Attribute>; /** The attributes associated with the cart. Attributes are represented as key-value pairs. */ attributes: Array<Attribute>; /** Information about the buyer that's interacting with the cart. */ buyerIdentity: CartBuyerIdentity; /** The URL of the checkout for the cart. */ checkoutUrl: Scalars['URL']['output']; /** 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: Scalars['DateTime']['output']; /** 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: CartDeliveryGroupConnection; /** The discounts that have been applied to the entire cart. */ discountAllocations: Array< | CartAutomaticDiscountAllocation | CartCodeDiscountAllocation | CartCustomDiscountAllocation >; /** The case-insensitive discount codes that the customer added at checkout. */ discountCodes: Array<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). * @deprecated Use `cost` instead. */ estimatedCost: CartEstimatedCost; /** A globally-unique ID. */ id: Scalars['ID']['output']; /** A list of lines containing information about the items the customer intends to purchase. */ lines: 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?: Maybe<Metafield>; /** A list of [custom fields](/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. */ metafields: Array<Maybe<Metafield>>; /** A note that's associated with the cart. For example, the note can be a personalized message to the buyer. */ note?: Maybe<Scalars['String']['output']>; /** The total number of items in the cart. */ totalQuantity: Scalars['Int']['output']; /** The date and time when the cart was updated. */ updatedAt: Scalars['DateTime']['output']; }; /** * A cart represents the merchandise that a buyer intends to purchase, * and the estimated cost associated with the cart. Learn how to * [interact with a cart](https://shopify.dev/custom-storefronts/internationalization/international-pricing) * during a customer's session. * */ export type CartAttributeArgs = { key: Scalars['String']['input']; }; /** * A cart represents the merchandise that a buyer intends to purchase, * and the estimated cost associated with the cart. Learn how to * [interact with a cart](https://shopify.dev/custom-storefronts/internationalization/international-pricing) * during a customer's session. * */ export type CartDeliveryGroupsArgs = { after?: InputMaybe<Scalars['String']['input']>; before?: InputMaybe<Scalars['String']['input']>; first?: InputMaybe<Scalars['Int']['input']>; last?: InputMaybe<Scalars['Int']['input']>; reverse?: InputMaybe<Scalars['Boolean']['input']>; withCarrierRates?: InputMaybe<Scalars['Boolean']['input']>; }; /** * A cart represents the merchandise that a buyer intends to purchase, * and the estimated cost associated with the cart. Learn how to * [interact with a cart](https://shopify.dev/custom-storefronts/internationalization/international-pricing) * during a customer's session. * */ export type CartLinesArgs = { after?: InputMaybe<Scalars['String']['input']>; before?: InputMaybe<Scalars['String']['input']>; first?: InputMaybe<Scalars['Int']['input']>; last?: InputMaybe<Scalars['Int']['input']>; reverse?: InputMaybe<Scalars['Boolean']['input']>; }; /** * A cart represents the merchandise that a buyer intends to purchase, * and the estimated cost associated with the cart. Learn how to * [interact with a cart](https://shopify.dev/custom-storefronts/internationalization/international-pricing) * during a customer's session. * */ export type CartMetafieldArgs = { key: Scalars['String']['input']; namespace?: InputMaybe<Scalars['String']['input']>; }; /** * A cart represents the merchandise that a buyer intends to purchase, * and the estimated cost associated with the cart. Learn how to * [interact with a cart](https://shopify.dev/custom-storefronts/internationalization/international-pricing) * during a customer's session. * */ export type CartMetafieldsArgs = { identifiers: Array<HasMetafieldsIdentifier>; }; /** A delivery address of the buyer that is interacting with the cart. */ export type CartAddress = CartDeliveryAddress; /** The input fields to provide exactly one of a variety of delivery address types. */ export type CartAddressInput = { /** Copies details from the customer address to an address on this cart. */ copyFromCustomerAddressId?: InputMaybe<Scalars['ID']['input']>; /** A delivery address stored on this cart. */ deliveryAddress?: InputMaybe<CartDeliveryAddressInput>; }; /** Return type for `cartAttributesUpdate` mutation. */ export type CartAttributesUpdatePayload = { __typename?: 'CartAttributesUpdatePayload'; /** The updated cart. */ cart?: Maybe<Cart>; /** The list of errors that occurred from executing the mutation. */ userErrors: Array<CartUserError>; /** A list of warnings that occurred during the mutation. */ warnings: Array<CartWarning>; }; /** The discounts automatically applied to the cart line based on prerequisites that have been met. */ export type CartAutomaticDiscountAllocation = CartDiscountAllocation & { __typename?: 'CartAutomaticDiscountAllocation'; /** The discount that have been applied on the cart line. */ discountApplication: CartDiscountApplication; /** 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: Scalars['String']['output']; }; /** Return type for `cartBillingAddressUpdate` mutation. */ export type CartBillingAddressUpdatePayload = { __typename?: 'CartBillingAddressUpdatePayload'; /** The updated cart. */ cart?: Maybe<Cart>; /** The list of errors that occurred from executing the mutation. */ userErrors: Array<CartUserError>; /** A list of warnings that occurred during the mutation. */ warnings: Array<CartWarning>; }; /** Represents information about the buyer that is interacting with the cart. */ export type CartBuyerIdentity = { __typename?: 'CartBuyerIdentity'; /** The country where the buyer is located. */ countryCode?: Maybe<CountryCode>; /** The customer account associated with the cart. */ customer?: Maybe<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` * * @deprecated Use `cart.delivery` instead. */ deliveryAddressPreferences: Array<DeliveryAddress>; /** The email address of the buyer that's interacting with the cart. */ email?: Maybe<Scalars['String']['output']>; /** The phone number of the buyer that's interacting with the cart. */ phone?: Maybe<Scalars['String']['output']>; /** * 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?: Maybe<CartPreferences>; /** The purchasing company associated with the cart. */ purchasingCompany?: Maybe<PurchasingCompany>; }; /** * Specifies the input fields to update the buyer information associated with a cart. * Buyer identity is used to determine * [international pricing](https://shopify.dev/custom-storefronts/internationalization/international-pricing) * and should match the customer's shipping address. * */ export type CartBuyerIdentityInput = { /** The company location of the buyer that is interacting with the cart. */ companyLocationId?: InputMaybe<Scalars['ID']['input']>; /** The country where the buyer is located. */ countryCode?: InputMaybe<CountryCode>; /** The access token used to identify the customer associated with the cart. */ customerAccessToken?: InputMaybe<Scalars['String']['input']>; /** The email address of the buyer that is interacting with the cart. */ email?: InputMaybe<Scalars['String']['input']>; /** The phone number of the buyer that is interacting with the cart. */ phone?: InputMaybe<Scalars['String']['input']>; /** * 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?: InputMaybe<CartPreferencesInput>; }; /** Return type for `cartBuyerIdentityUpdate` mutation. */ export type CartBuyerIdentityUpdatePayload = { __typename?: 'CartBuyerIdentityUpdatePayload'; /** The updated cart. */ cart?: Maybe<Cart>; /** The list of errors that occurred from executing the mutation. */ userErrors: Array<CartUserError>; /** A list of warnings that occurred during the mutation. */ warnings: Array<CartWarning>; }; /** * Represents how credit card details are provided for a direct payment. * */ export type 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'; /** The discount that has been applied to the cart line using a discount code. */ export type CartCodeDiscountAllocation = CartDiscountAllocation & { __typename?: 'CartCodeDiscountAllocation'; /** The code used to apply the discount. */ code: Scalars['String']['output']; /** The discount that have been applied on the cart line. */ discountApplication: CartDiscountApplication; /** 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 completion action to checkout a cart. */ export type CartCompletionAction = CompletePaymentChallenge; /** The required completion action to checkout a cart. */ export type CartCompletionActionRequired = { __typename?: 'CartCompletionActionRequired'; /** The action required to complete the cart completion attempt. */ action?: Maybe<CartCompletionAction>; /** The ID of the cart completion attempt. */ id: Scalars['String']['output']; }; /** The result of a cart completion attempt. */ export type CartCompletionAttemptResult = | CartCompletionActionRequired | CartCompletionFailed | CartCompletionProcessing | CartCompletionSuccess; /** A failed completion to checkout a cart. */ export type CartCompletionFailed = { __typename?: 'CartCompletionFailed'; /** The errors that caused the checkout to fail. */ errors: Array<CompletionError>; /** The ID of the cart completion attempt. */ id: Scalars['String']['output']; }; /** A cart checkout completion that's still processing. */ export type CartCompletionProcessing = { __typename?: 'CartCompletionProcessing'; /** The ID of the cart completion attempt. */ id: Scalars['String']['output']; /** The number of milliseconds to wait before polling again. */ pollDelay: Scalars['Int']['output']; }; /** A successful completion to checkout a cart and a created order. */ export type CartCompletionSuccess = { __typename?: 'CartCompletionSuccess'; /** The date and time when the job completed. */ completedAt?: Maybe<Scalars['DateTime']['output']>; /** The ID of the cart completion attempt. */ id: Scalars['String']['output']; /** The ID of the order that's created in Shopify. */ orderId: Scalars['ID']['output']; /** The URL of the order confirmation in Shopify. */ orderUrl: Scalars['URL']['output']; }; /** * The costs that the buyer will pay at checkout. * The cart cost uses [`CartBuyerIdentity`](https://shopify.dev/api/storefront/reference/cart/cartbuyeridentity) to determine * [international pricing](https://shopify.dev/custom-storefronts/internationalization/international-pricing). * */ export type CartCost = { __typename?: '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: Scalars['Boolean']['output']; /** The total amount for the customer to pay. */ totalAmount: MoneyV2; /** Whether the total amount is estimated. */ totalAmountEstimated: Scalars['Boolean']['output']; /** * The duty amount for the customer to pay at checkout. * @deprecated Tax and duty amounts are no longer available and will be removed in a future version. * Please see [the changelog](https://shopify.dev/changelog/tax-and-duties-are-deprecated-in-storefront-cart-api) * for more information. * */ totalDutyAmount?: Maybe<MoneyV2>; /** * Whether the total duty amount is estimated. * @deprecated Tax and duty amounts are no longer available and will be removed in a future version. * Please see [the changelog](https://shopify.dev/changelog/tax-and-duties-are-deprecated-in-storefront-cart-api) * for more information. * */ totalDutyAmountEstimated: Scalars['Boolean']['output']; /** * The tax amount for the customer to pay at checkout. * @deprecated Tax and duty amounts are no longer available and will be removed in a future version. * Please see [the changelog](https://shopify.dev/changelog/tax-and-duties-are-deprecated-in-storefront-cart-api) * for more information. * */ totalTaxAmount?: Maybe<MoneyV2>; /** * Whether the total tax amount is estimated. * @deprecated Tax and duty amounts are no longer available and will be removed in a future version. * Please see [the changelog](https://shopify.dev/changelog/tax-and-duties-are-deprecated-in-storefront-cart-api) * for more information. * */ totalTaxAmountEstimated: Scalars['Boolean']['output']; }; /** Return type for `cartCreate` mutation. */ export type CartCreatePayload = { __typename?: 'CartCreatePayload'; /** The new cart. */ cart?: Maybe<Cart>; /** The list of errors that occurred from executing the mutation. */ userErrors: Array<CartUserError>; /** A list of warnings that occurred during the mutation. */ warnings: Array<CartWarning>; }; /** The discounts automatically applied to the cart line based on prerequisites that have been met. */ export type CartCustomDiscountAllocation = CartDiscountAllocation & { __typename?: 'CartCustomDiscountAllocation'; /** The discount that have been applied on the cart line. */ discountApplication: CartDiscountApplication; /** 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: Scalars['String']['output']; }; /** * The delivery properties of the cart. * */ export type CartDelivery = { __typename?: 'CartDelivery'; /** Selectable addresses to present to the buyer on the cart. */ addresses: Array<CartSelectableAddress>; }; /** * The delivery properties of the cart. * */ export type CartDeliveryAddressesArgs = { selected?: InputMaybe<Scalars['Boolean']['input']>; }; /** Represents a mailing address for customers and shipping. */ export type CartDeliveryAddress = { __typename?: 'CartDeliveryAddress'; /** The first line of the address. Typically the street address or PO Box number. */ address1?: Maybe<Scalars['String']['output']>; /** * The second line of the address. Typically the number of the apartment, suite, or unit. * */ address2?: Maybe<Scalars['String']['output']>; /** The name of the city, district, village, or town. */ city?: Maybe<Scalars['String']['output']>; /** The name of the customer's company or organization. */ company?: Maybe<Scalars['String']['output']>; /** * The two-letter code for the country of the address. * * For example, US. * */ countryCode?: Maybe<Scalars['String']['output']>; /** The first name of the customer. */ firstName?: Maybe<Scalars['String']['output']>; /** A formatted version of the address, customized by the provided arguments. */ formatted: Array<Scalars['String']['output']>; /** A comma-separated list of the values for city, province, and country. */ formattedArea?: Maybe<Scalars['String']['output']>; /** The last name of the customer. */ lastName?: Maybe<Scalars['String']['output']>; /** The latitude coordinate of the customer address. */ latitude?: Maybe<Scalars['Float']['output']>; /** The longitude coordinate of the customer address. */ longitude?: Maybe<Scalars['Float']['output']>; /** The full name of the customer, based on firstName and lastName. */ name?: Maybe<Scalars['String']['output']>; /** * A unique phone number for the customer. * * Formatted using E.164 standard. For example, _+16135551111_. * */ phone?: Maybe<Scalars['String']['output']>; /** * The alphanumeric code for the region. * * For example, ON. * */ provinceCode?: Maybe<Scalars['String']['output']>; /** The zip or postal code of the address. */ zip?: Maybe<Scalars['String']['output']>; }; /** Represents a mailing address for customers and shipping. */ export type CartDeliveryAddressFormattedArgs = { withCompany?: InputMaybe<Scalars['Boolean']['input']>; withName?: InputMaybe<Scalars['Boolean']['input']>; }; /** The input fields to create or update a cart address. */ export type CartDeliveryAddressInput = { /** * The first line of the address. Typically the street address or PO Box number. * */ address1?: InputMaybe<Scalars['String']['input']>; /** * The second line of the address. Typically the number of the apartment, suite, or unit. * */ address2?: InputMaybe<Scalars['String']['input']>; /** * The name of the city, district, village, or town. * */ city?: InputMaybe<Scalars['String']['input']>; /** * The name of the customer's company or organization. * */ company?: InputMaybe<Scalars['String']['input']>; /** The name of the country. */ countryCode?: InputMaybe<CountryCode>; /** The first name of the customer. */ firstName?: InputMaybe<Scalars['String']['input']>; /** The last name of the customer. */ lastName?: InputMaybe<Scalars['String']['input']>; /** * A unique phone number for the customer. * * Formatted using E.164 standard. For example, _+16135551111_. * */ phone?: InputMaybe<Scalars['String']['input']>; /** The region of the address, such as the province, state, or district. */ provinceCode?: InputMaybe<Scalars['String']['input']>; /** The zip or postal code of the address. */ zip?: InputMaybe<Scalars['String']['input']>; }; /** Return type for `cartDeliveryAddressesAdd` mutation. */ export type CartDeliveryAddressesAddPayload = { __typename?: 'CartDeliveryAddressesAddPayload'; /** The updated cart. */ cart?: Maybe<Cart>; /** The list of errors that occurred from executing the mutation. */ userErrors: Array<CartUserError>; /** A list of warnings that occurred during the mutation. */ warnings: Array<CartWarning>; }; /** Return type for `cartDeliveryAddressesRemove` mutation. */ export type CartDeliveryAddressesRemovePayload = { __typename?: 'CartDeliveryAddressesRemovePayload'; /** The updated cart. */ cart?: Maybe<Cart>; /** The list of errors that occurred from executing the mutation. */ userErrors: Array<CartUserError>; /** A list of warnings that occurred during the mutation. */ warnings: Array<CartWarning>; }; /** Return type for `cartDeliveryAddressesUpdate` mutation. */ export type CartDeliveryAddressesUpdatePayload = { __typename?: 'CartDeliveryAddressesUpdatePayload'; /** The updated cart. */ cart?: Maybe<Cart>; /** The list of errors that occurred from executing the mutation. */ userErrors: Array<CartUserError>; /** A list of warnings that occurred during the mutation. */ warnings: Array<CartWarning>; }; /** Preferred location used to find the closest pick up point based on coordinates. */ export type CartDeliveryCoordinatesPreference = { __typename?: '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: Scalars['Float']['output']; /** The geographic longitude for a given location. Coordinates are required in order to set pickUpHandle for pickup points. */ longitude: Scalars['Float']['output']; }; /** Preferred location used to find the closest pick up point based on coordinates. */ export type CartDeliveryCoordinatesPreferenceInput = { /** * 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: Scalars['Float']['input']; /** The geographic longitude for a given location. Coordinates are required in order to set pickUpHandle for pickup points. */ longitude: Scalars['Float']['input']; }; /** Information about the options available for one or more line items to be delivered to a specific address. */ export type CartDeliveryGroup = { __typename?: 'CartDeliveryGroup'; /** A list of cart lines for the delivery group. */ cartLines: BaseCartLineConnection; /** The destination address for the delivery group. */ deliveryAddress: MailingAddress; /** The delivery options available for the delivery group. */ deliveryOptions: Array<CartDeliveryOption>; /** The type of merchandise in the delivery group. */ groupType: CartDeliveryGroupType; /** The ID for the delivery group. */ id: Scalars['ID']['output']; /** The selected delivery option for the delivery group. */ selectedDeliveryOption?: Maybe<CartDeliveryOption>; }; /** Information about the options available for one or more line items to be delivered to a specific address. */ export type CartDeliveryGroupCartLinesArgs = { after?: InputMaybe<Scalars['String']['input']>; before?: InputMaybe<Scalars['String']['input']>; first?: InputMaybe<Scalars['Int']['input']>; last?: InputMaybe<Scalars['Int']['input']>; reverse?: InputMaybe<Scalars['Boolean']['input']>; }; /** * An auto-generated type for paginating through multiple CartDeliveryGroups. * */ export type CartDeliveryGroupConnection = { __typename?: 'CartDeliveryGroupConnection'; /** A list of edges. */ edges: Array<CartDeliveryGroupEdge>; /** A list of the nodes contained in CartDeliveryGroupEdge. */ nodes: Array<CartDeliveryGroup>; /** Information to aid in pagination. */ pageInfo: PageInfo; }; /** * An auto-generated type which holds one CartDeliveryGroup and a cursor during pagination. * */ export type CartDeliveryGroupEdge = { __typename?: 'CartDeliveryGroupEdge'; /** A cursor for use in pagination. */ cursor: Scalars['String']['output']; /** The item at the end of CartDeliveryGroupEdge. */ node: CartDeliveryGroup; }; /** * Defines what type of merchandise is in the delivery group. * */ export type CartDeliveryGroupType = /** * The delivery group only contains merchandise that is either a one time purchase or a first delivery of * subscription merchandise. * */ | 'ONE_TIME_PURCHASE' /** The delivery group only contains subscription merchandise. */ | 'SUBSCRIPTION'; /** The input fields for the cart's delivery properties. */ export type CartDeliveryInput = { /** * Selectable addresses to present to the buyer on the cart. * * The input must not contain more than `250` values. */ addresses?: InputMaybe<Array<CartSelectableAddressInput>>; }; /** Information about a delivery option. */ export type CartDeliveryOption = { __typename?: 'CartDeliveryOption'; /** The code of the delivery option. */ code?: Maybe<Scalars['String']['output']>; /** The method for the delivery option. */ deliveryMethodType: DeliveryMethodType; /** The description of the delivery option. */ description?: Maybe<Scalars['String']['output']>; /** The estimated cost for the delivery option. */ estimatedCost: MoneyV2; /** The unique identifier of the delivery option. */ handle: Scalars['String']['output']; /** The title of the delivery option. */ title?: Maybe<Scalars['String']['output']>; }; /** * 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. * */ export type CartDeliveryPreference = { __typename?: 'CartDeliveryPreference'; /** Preferred location used to find the closest pick up point based on coordinates. */ coordinates?: Maybe<CartDeliveryCoordinatesPreference>; /** The preferred delivery methods such as shipping, local pickup or through pickup points. */ deliveryMethod: Array<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: Array<Scalars['String']['output']>; }; /** Delivery preferences can be used to prefill the delivery section at checkout. */ export type CartDeliveryPreferenceInput = { /** The coordinates of a delivery location in order of preference. */ coordinates?: InputMaybe<CartDeliveryCoordinatesPreferenceInput>; /** * The preferred delivery methods such as shipping, local pickup or through pickup points. * * The input must not contain more than `250` values. */ deliveryMethod?: InputMaybe<Array<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?: InputMaybe<Array<Scalars['String']['input']>>; }; /** * The input fields for submitting direct payment method information for checkout. * */ export type CartDirectPaymentMethodInput = { /** Indicates if the customer has accepted the subscription terms. Defaults to false. */ acceptedSubscriptionTerms?: InputMaybe<Scalars['Boolean']['input']>; /** The customer's billing address. */ billingAddress: MailingAddressInput; /** The source of the credit card payment. */ cardSource?: InputMaybe<CartCardSource>; /** The session ID for the direct payment method used to create the payment. */ sessionId: Scalars['String']['input']; }; /** The discounts that have been applied to the cart line. */ export type CartDiscountAllocation = { /** The discount that have been applied on the cart line. */ discountApplication: CartDiscountApplication; /** 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 discount application capture the intentions of a discount source at * the time of application. */ export type CartDiscountApplication = { __typename?: '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; }; /** The discount codes applied to the cart. */ export type CartDiscountCode = { __typename?: 'CartDiscountCode'; /** Whether the discount code is applicable to the cart's current contents. */ applicable: Scalars['Boolean']['output']; /** The code for the discount. */ code: Scalars['String']['output']; }; /** Return type for `cartDiscountCodesUpdate` mutation. */ export type CartDiscountCodesUpdatePayload = { __typename?: 'CartDiscountCodesUpdatePayload'; /** The updated cart. */ cart?: Maybe<Cart>; /** The list of errors that occurred from executing the mutation. */ userErrors: Array<CartUserError>; /** A list of warnings that occurred during the mutation. */ warnings: Array<CartWarning>; }; /** Possible error codes that can be returned by `Cart