@shopify/hydrogen
Version:
<div align="center">
1,296 lines (1,212 loc) • 327 kB
TypeScript
/**
* 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