@syncify/codegen
Version:
Shopify GraphQL codegen handling for the sane developer.
1,112 lines (1,032 loc) • 2.59 MB
TypeScript
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; }
ARN: { input: any; output: any; }
BigInt: { input: any; output: any; }
Color: { input: any; output: any; }
Date: { input: any; output: any; }
DateTime: { input: any; output: any; }
Decimal: { input: any; output: any; }
FormattedString: { input: any; output: any; }
HTML: { input: any; output: any; }
JSON: { input: any; output: any; }
Money: { input: any; output: any; }
StorefrontID: { input: any; output: any; }
URL: { input: any; output: any; }
UnsignedInt64: { input: any; output: any; }
UtcOffset: { input: any; output: any; }
};
/** A checkout that was abandoned by the customer. */
export type AbandonedCheckout = Navigable & Node & {
/** The URL for the buyer to recover their checkout. */
abandonedCheckoutUrl: Scalars['URL']['output'];
/**
* The billing address provided by the buyer.
* Null if the user did not provide a billing address.
*/
billingAddress?: Maybe<MailingAddress>;
/**
* The date and time when the buyer completed the checkout.
* Null if the checkout has not been completed.
*/
completedAt?: Maybe<Scalars['DateTime']['output']>;
/** The date and time when the checkout was created. */
createdAt: Scalars['DateTime']['output'];
/** A list of extra information that has been added to the checkout. */
customAttributes: Array<Attribute>;
/**
* The customer who created this checkout.
* May be null if the checkout was created from a draft order or via an app.
*/
customer?: Maybe<Customer>;
/** A default [cursor](https://shopify.dev/api/usage/pagination-graphql) that returns the single next record, sorted ascending by ID. */
defaultCursor: Scalars['String']['output'];
/** The discount codes entered by the buyer at checkout. */
discountCodes: Array<Scalars['String']['output']>;
/** A globally-unique ID. */
id: Scalars['ID']['output'];
/** A list of the line items in this checkout. */
lineItems: AbandonedCheckoutLineItemConnection;
/**
* The number of products in the checkout.
* @deprecated Use [AbandonedCheckoutLineItem.quantity](https://shopify.dev/api/admin-graphql/unstable/objects/AbandonedCheckoutLineItem#field-quantity) instead.
*/
lineItemsQuantity: Scalars['Int']['output'];
/** Unique merchant-facing identifier for the checkout. */
name: Scalars['String']['output'];
/** A merchant-facing note added to the checkout. Not visible to the buyer. */
note: Scalars['String']['output'];
/**
* The shipping address to where the line items will be shipped.
* Null if the user did not provide a shipping address.
*/
shippingAddress?: Maybe<MailingAddress>;
/** The sum of all items in the checkout, including discounts but excluding shipping, taxes and tips. */
subtotalPriceSet: MoneyBag;
/** Individual taxes charged on the checkout. */
taxLines: Array<TaxLine>;
/** Whether taxes are included in line item and shipping line prices. */
taxesIncluded: Scalars['Boolean']['output'];
/** The total amount of discounts to be applied. */
totalDiscountSet: MoneyBag;
/** The total duties applied to the checkout. */
totalDutiesSet?: Maybe<MoneyBag>;
/** The sum of the prices of all line items in the checkout. */
totalLineItemsPriceSet: MoneyBag;
/** The sum of all items in the checkout, including discounts, shipping, taxes, and tips. */
totalPriceSet: MoneyBag;
/** The total tax applied to the checkout. */
totalTaxSet?: Maybe<MoneyBag>;
/** The date and time when the checkout was most recently updated. */
updatedAt: Scalars['DateTime']['output'];
};
/** A checkout that was abandoned by the customer. */
export type AbandonedCheckoutLineItemsArgs = {
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 AbandonedCheckouts. */
export type AbandonedCheckoutConnection = {
/** The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. */
edges: Array<AbandonedCheckoutEdge>;
/** A list of nodes that are contained in AbandonedCheckoutEdge. You can fetch data about an individual node, or you can follow the edges to fetch data about a collection of related nodes. At each node, you specify the fields that you want to retrieve. */
nodes: Array<AbandonedCheckout>;
/** An object that’s used to retrieve [cursor information](https://shopify.dev/api/usage/pagination-graphql) about the current page. */
pageInfo: PageInfo;
};
/** An auto-generated type which holds one AbandonedCheckout and a cursor during pagination. */
export type AbandonedCheckoutEdge = {
/** The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). */
cursor: Scalars['String']['output'];
/** The item at the end of AbandonedCheckoutEdge. */
node: AbandonedCheckout;
};
/** A single line item in an abandoned checkout. */
export type AbandonedCheckoutLineItem = Node & {
/** A list of line item components for this line item. */
components?: Maybe<Array<AbandonedCheckoutLineItemComponent>>;
/** A list of extra information that has been added to the line item. */
customAttributes: Array<Attribute>;
/** Discount allocations that have been applied on the line item. */
discountAllocations: DiscountAllocationConnection;
/** Final total price for the entire quantity of this line item, including discounts. */
discountedTotalPriceSet: MoneyBag;
/** The total price for the entire quantity of this line item, after all discounts are applied, at both the line item and code-based line item level. */
discountedTotalPriceWithCodeDiscount: MoneyBag;
/** The price of a single variant unit after discounts are applied at the line item level, in shop and presentment currencies. */
discountedUnitPriceSet: MoneyBag;
/** The price of a single variant unit after all discounts are applied, at both the line item and code-based line item level. */
discountedUnitPriceWithCodeDiscount: MoneyBag;
/** A globally-unique ID. */
id: Scalars['ID']['output'];
/**
* The image associated with the line item's variant or product.
* NULL if the line item has no product, or if neither the variant nor the product have an image.
*/
image?: Maybe<Image>;
/** Original total price for the entire quantity of this line item, before discounts. */
originalTotalPriceSet: MoneyBag;
/** Original price for a single unit of this line item, before discounts. */
originalUnitPriceSet: MoneyBag;
/**
* Product for this line item.
* NULL for custom line items and products that were deleted after checkout began.
*/
product?: Maybe<Product>;
/** The quantity of the line item. */
quantity: Scalars['Int']['output'];
/** SKU for the inventory item associated with the variant, if any. */
sku?: Maybe<Scalars['String']['output']>;
/** Title of the line item. Defaults to the product's title. */
title?: Maybe<Scalars['String']['output']>;
/**
* Product variant for this line item.
* NULL for custom line items and variants that were deleted after checkout began.
*/
variant?: Maybe<ProductVariant>;
/**
* Title of the variant for this line item.
* NULL for custom line items and products that don't have distinct variants.
*/
variantTitle?: Maybe<Scalars['String']['output']>;
};
/** A single line item in an abandoned checkout. */
export type AbandonedCheckoutLineItemDiscountAllocationsArgs = {
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']>;
};
/** The list of line item components that belong to a line item. */
export type AbandonedCheckoutLineItemComponent = {
/** A globally-unique ID. */
id: Scalars['ID']['output'];
/**
* The variant image associated with the line item component.
* NULL if the variant associated doesn't have an image.
*/
image?: Maybe<Image>;
/** The quantity of the line item component. */
quantity: Scalars['Int']['output'];
/** Title of the line item component. */
title: Scalars['String']['output'];
/** The name of the variant. */
variantTitle?: Maybe<Scalars['String']['output']>;
};
/** An auto-generated type for paginating through multiple AbandonedCheckoutLineItems. */
export type AbandonedCheckoutLineItemConnection = {
/** The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. */
edges: Array<AbandonedCheckoutLineItemEdge>;
/** A list of nodes that are contained in AbandonedCheckoutLineItemEdge. You can fetch data about an individual node, or you can follow the edges to fetch data about a collection of related nodes. At each node, you specify the fields that you want to retrieve. */
nodes: Array<AbandonedCheckoutLineItem>;
/** An object that’s used to retrieve [cursor information](https://shopify.dev/api/usage/pagination-graphql) about the current page. */
pageInfo: PageInfo;
};
/** An auto-generated type which holds one AbandonedCheckoutLineItem and a cursor during pagination. */
export type AbandonedCheckoutLineItemEdge = {
/** The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). */
cursor: Scalars['String']['output'];
/** The item at the end of AbandonedCheckoutLineItemEdge. */
node: AbandonedCheckoutLineItem;
};
/** The set of valid sort keys for the AbandonedCheckout query. */
export enum AbandonedCheckoutSortKeys {
/** Sort by the `checkout_id` value. */
CheckoutId = 'CHECKOUT_ID',
/** Sort by the `created_at` value. */
CreatedAt = 'CREATED_AT',
/** Sort by the `customer_name` value. */
CustomerName = 'CUSTOMER_NAME',
/** Sort by the `id` value. */
Id = '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 = 'RELEVANCE',
/** Sort by the `total_price` value. */
TotalPrice = 'TOTAL_PRICE'
}
/** A browse, cart, or checkout that was abandoned by a customer. */
export type Abandonment = Node & {
/** The abandonment payload for the abandoned checkout. */
abandonedCheckoutPayload?: Maybe<AbandonedCheckout>;
/** The abandonment type. */
abandonmentType: AbandonmentAbandonmentType;
/** The app associated with an abandoned checkout. */
app: App;
/** Permalink to the cart page. */
cartUrl?: Maybe<Scalars['URL']['output']>;
/** The date and time when the abandonment was created. */
createdAt: Scalars['DateTime']['output'];
/** The customer who abandoned this event. */
customer: Customer;
/** Whether the customer has a draft order since this abandonment has been abandoned. */
customerHasNoDraftOrderSinceAbandonment: Scalars['Boolean']['output'];
/** Whether the customer has completed an order since this checkout has been abandoned. */
customerHasNoOrderSinceAbandonment: Scalars['Boolean']['output'];
/** The number of days since the last abandonment email was sent to the customer. */
daysSinceLastAbandonmentEmail: Scalars['Int']['output'];
/** When the email was sent, if that's the case. */
emailSentAt?: Maybe<Scalars['DateTime']['output']>;
/** The email state (e.g., sent or not sent). */
emailState?: Maybe<AbandonmentEmailState>;
/** The number of hours since the customer has last abandoned a checkout. */
hoursSinceLastAbandonedCheckout?: Maybe<Scalars['Float']['output']>;
/** A globally-unique ID. */
id: Scalars['ID']['output'];
/** Whether the products in abandonment are available. */
inventoryAvailable: Scalars['Boolean']['output'];
/** Whether the abandonment event comes from a custom storefront channel. */
isFromCustomStorefront: Scalars['Boolean']['output'];
/** Whether the abandonment event comes from the Online Store sales channel. */
isFromOnlineStore: Scalars['Boolean']['output'];
/** Whether the abandonment event comes from the Shop app sales channel. */
isFromShopApp: Scalars['Boolean']['output'];
/** Whether the abandonment event comes from Shop Pay. */
isFromShopPay: Scalars['Boolean']['output'];
/** Whether the customer didn't complete another most significant step since this abandonment. */
isMostSignificantAbandonment: Scalars['Boolean']['output'];
/** The date for the latest browse abandonment. */
lastBrowseAbandonmentDate: Scalars['DateTime']['output'];
/** The date for the latest cart abandonment. */
lastCartAbandonmentDate: Scalars['DateTime']['output'];
/** The date for the latest checkout abandonment. */
lastCheckoutAbandonmentDate: Scalars['DateTime']['output'];
/** The most recent step type. */
mostRecentStep: AbandonmentAbandonmentType;
/** The products added to the cart during the customer abandoned visit. */
productsAddedToCart: CustomerVisitProductInfoConnection;
/** The products viewed during the customer abandoned visit. */
productsViewed: CustomerVisitProductInfoConnection;
/** The date and time when the visit started. */
visitStartedAt?: Maybe<Scalars['DateTime']['output']>;
};
/** A browse, cart, or checkout that was abandoned by a customer. */
export type AbandonmentProductsAddedToCartArgs = {
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 browse, cart, or checkout that was abandoned by a customer. */
export type AbandonmentProductsViewedArgs = {
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']>;
};
/** Specifies the abandonment type. */
export enum AbandonmentAbandonmentType {
/** The abandonment event is an abandoned browse. */
Browse = 'BROWSE',
/** The abandonment event is an abandoned cart. */
Cart = 'CART',
/** The abandonment event is an abandoned checkout. */
Checkout = 'CHECKOUT'
}
/** Specifies the delivery state of a marketing activity. */
export enum AbandonmentDeliveryState {
/** The marketing activity action has not yet been sent. */
NotSent = 'NOT_SENT',
/** The marketing activity action has been scheduled for later delivery. */
Scheduled = 'SCHEDULED',
/** The marketing activity action has been sent. */
Sent = 'SENT'
}
/** Specifies the email state. */
export enum AbandonmentEmailState {
/** The email has not yet been sent. */
NotSent = 'NOT_SENT',
/** The email has been scheduled for later delivery. */
Scheduled = 'SCHEDULED',
/** The email has been sent. */
Sent = 'SENT'
}
/** Return type for `abandonmentEmailStateUpdate` mutation. */
export type AbandonmentEmailStateUpdatePayload = {
/** The updated abandonment. */
abandonment?: Maybe<Abandonment>;
/** The list of errors that occurred from executing the mutation. */
userErrors: Array<AbandonmentEmailStateUpdateUserError>;
};
/** An error that occurs during the execution of `AbandonmentEmailStateUpdate`. */
export type AbandonmentEmailStateUpdateUserError = DisplayableError & {
/** The error code. */
code?: Maybe<AbandonmentEmailStateUpdateUserErrorCode>;
/** The path to the input field that caused the error. */
field?: Maybe<Array<Scalars['String']['output']>>;
/** The error message. */
message: Scalars['String']['output'];
};
/** Possible error codes that can be returned by `AbandonmentEmailStateUpdateUserError`. */
export enum AbandonmentEmailStateUpdateUserErrorCode {
/** Unable to find an Abandonment for the provided ID. */
AbandonmentNotFound = 'ABANDONMENT_NOT_FOUND'
}
/** Return type for `abandonmentUpdateActivitiesDeliveryStatuses` mutation. */
export type AbandonmentUpdateActivitiesDeliveryStatusesPayload = {
/** The updated abandonment. */
abandonment?: Maybe<Abandonment>;
/** The list of errors that occurred from executing the mutation. */
userErrors: Array<AbandonmentUpdateActivitiesDeliveryStatusesUserError>;
};
/** An error that occurs during the execution of `AbandonmentUpdateActivitiesDeliveryStatuses`. */
export type AbandonmentUpdateActivitiesDeliveryStatusesUserError = DisplayableError & {
/** The error code. */
code?: Maybe<AbandonmentUpdateActivitiesDeliveryStatusesUserErrorCode>;
/** The path to the input field that caused the error. */
field?: Maybe<Array<Scalars['String']['output']>>;
/** The error message. */
message: Scalars['String']['output'];
};
/** Possible error codes that can be returned by `AbandonmentUpdateActivitiesDeliveryStatusesUserError`. */
export enum AbandonmentUpdateActivitiesDeliveryStatusesUserErrorCode {
/** Unable to find an Abandonment for the provided ID. */
AbandonmentNotFound = 'ABANDONMENT_NOT_FOUND',
/** Unable to find delivery status info for the provided ID. */
DeliveryStatusInfoNotFound = 'DELIVERY_STATUS_INFO_NOT_FOUND',
/** Unable to find a marketing activity for the provided ID. */
MarketingActivityNotFound = 'MARKETING_ACTIVITY_NOT_FOUND'
}
/** The permission required to access a Shopify Admin API or Storefront API resource for a shop. Merchants grant access scopes that are requested by applications. */
export type AccessScope = {
/** A description of the actions that the access scope allows an app to perform. */
description: Scalars['String']['output'];
/** A readable string that represents the access scope. The string usually follows the format `{action}_{resource}`. `{action}` is `read` or `write`, and `{resource}` is the resource that the action can be performed on. `{action}` and `{resource}` are separated by an underscore. For example, `read_orders` or `write_products`. */
handle: Scalars['String']['output'];
};
/** Possible account types that a staff member can have. */
export enum AccountType {
/** The account of a partner who collaborates with the merchant. */
Collaborator = 'COLLABORATOR',
/** The account of a partner collaborator team member. */
CollaboratorTeamMember = 'COLLABORATOR_TEAM_MEMBER',
/** The user has not yet accepted the invitation to create an account. */
Invited = 'INVITED',
/** The user has not yet accepted the invitation to become the store owner. */
InvitedStoreOwner = 'INVITED_STORE_OWNER',
/** The account can access the Shopify admin. */
Regular = 'REGULAR',
/** The admin has not yet accepted the request to create a collaborator account. */
Requested = 'REQUESTED',
/** The account cannot access the Shopify admin. */
Restricted = 'RESTRICTED',
/** The account can be signed into via a SAML provider. */
Saml = 'SAML'
}
/** Represents an operation publishing all products to a publication. */
export type AddAllProductsOperation = Node & ResourceOperation & {
/** A globally-unique ID. */
id: Scalars['ID']['output'];
/** The count of processed rows, summing imported, failed, and skipped rows. */
processedRowCount?: Maybe<Scalars['Int']['output']>;
/** Represents a rows objects within this background operation. */
rowCount?: Maybe<RowCount>;
/** The status of this operation. */
status: ResourceOperationStatus;
};
/** The additional fees that have been applied to the order. */
export type AdditionalFee = Node & {
/** A globally-unique ID. */
id: Scalars['ID']['output'];
/** The name of the additional fee. */
name: Scalars['String']['output'];
/** The price of the additional fee. */
price: MoneyBag;
/** A list of taxes charged on the additional fee. */
taxLines: Array<TaxLine>;
};
/** A sale associated with an additional fee charge. */
export type AdditionalFeeSale = Sale & {
/** The type of order action that the sale represents. */
actionType: SaleActionType;
/** The additional fees for the associated sale. */
additionalFee: SaleAdditionalFee;
/** The unique ID for the sale. */
id: Scalars['ID']['output'];
/** The line type assocated with the sale. */
lineType: SaleLineType;
/** The number of units either ordered or intended to be returned. */
quantity?: Maybe<Scalars['Int']['output']>;
/** All individual taxes associated with the sale. */
taxes: Array<SaleTax>;
/** The total sale amount after taxes and discounts. */
totalAmount: MoneyBag;
/** The total discounts allocated to the sale after taxes. */
totalDiscountAmountAfterTaxes: MoneyBag;
/** The total discounts allocated to the sale before taxes. */
totalDiscountAmountBeforeTaxes: MoneyBag;
/** The total amount of taxes for the sale. */
totalTaxAmount: MoneyBag;
};
/** A sale associated with an order price adjustment. */
export type AdjustmentSale = Sale & {
/** The type of order action that the sale represents. */
actionType: SaleActionType;
/** The unique ID for the sale. */
id: Scalars['ID']['output'];
/** The line type assocated with the sale. */
lineType: SaleLineType;
/** The number of units either ordered or intended to be returned. */
quantity?: Maybe<Scalars['Int']['output']>;
/** All individual taxes associated with the sale. */
taxes: Array<SaleTax>;
/** The total sale amount after taxes and discounts. */
totalAmount: MoneyBag;
/** The total discounts allocated to the sale after taxes. */
totalDiscountAmountAfterTaxes: MoneyBag;
/** The total discounts allocated to the sale before taxes. */
totalDiscountAmountBeforeTaxes: MoneyBag;
/** The total amount of taxes for the sale. */
totalTaxAmount: MoneyBag;
};
/** The set of valid sort keys for the Adjustments query. */
export enum AdjustmentsSortKeys {
/** Sort by the `id` value. */
Id = '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 = 'RELEVANCE',
/** Sort by the `time` value. */
Time = 'TIME'
}
/** Targets all items the cart for a specified discount. */
export type AllDiscountItems = {
/** Whether all items are eligible for the discount. This value always returns `true`. */
allItems: Scalars['Boolean']['output'];
};
/** The Android mobile platform application. */
export type AndroidApplication = {
/** Whether Android App Links are supported by this app. */
appLinksEnabled: Scalars['Boolean']['output'];
/** The Android application ID. */
applicationId?: Maybe<Scalars['String']['output']>;
/** A globally-unique ID. */
id: Scalars['ID']['output'];
/** The SHA256 fingerprints of the app's signing certificate. */
sha256CertFingerprints: Array<Scalars['String']['output']>;
};
/**
* 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 = {
/** 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'];
};
/** A Shopify application. */
export type App = Node & {
/** A unique application API identifier. */
apiKey: Scalars['String']['output'];
/** App store page URL of the app. */
appStoreAppUrl?: Maybe<Scalars['URL']['output']>;
/** App store page URL of the developer who created the app. */
appStoreDeveloperUrl?: Maybe<Scalars['URL']['output']>;
/** All requestable access scopes available to the app. */
availableAccessScopes: Array<AccessScope>;
/** Banner image for the app. */
banner: Image;
/** Description of the app. */
description?: Maybe<Scalars['String']['output']>;
/** The name of the app developer. */
developerName?: Maybe<Scalars['String']['output']>;
/** The type of app developer. */
developerType: AppDeveloperType;
/**
* Website of the developer who created the app.
* @deprecated Use `appStoreDeveloperUrl` instead.
*/
developerUrl: Scalars['URL']['output'];
/** Whether the app uses the Embedded App SDK. */
embedded: Scalars['Boolean']['output'];
/** Requirements that must be met before the app can be installed. */
failedRequirements: Array<FailedRequirement>;
/** A list of app features that are shown in the Shopify App Store listing. */
features: Array<Scalars['String']['output']>;
/** Feedback from this app about the store. */
feedback?: Maybe<AppFeedback>;
/** Handle of the app. */
handle?: Maybe<Scalars['String']['output']>;
/** Icon that represents the app. */
icon: Image;
/** A globally-unique ID. */
id: Scalars['ID']['output'];
/** Webpage where you can install the app. */
installUrl?: Maybe<Scalars['URL']['output']>;
/**
* Corresponding AppInstallation for this shop and App.
* Returns null if the App is not installed.
*/
installation?: Maybe<AppInstallation>;
/** Whether the app is the [post purchase](https://shopify.dev/apps/checkout/post-purchase) app in use. */
isPostPurchaseAppInUse: Scalars['Boolean']['output'];
/**
* Webpage that the app starts in.
* @deprecated Use AppInstallation.launchUrl instead
*/
launchUrl: Scalars['URL']['output'];
/**
* Menu items for the app, which also appear as submenu items in left navigation sidebar in the Shopify admin.
* @deprecated Use AppInstallation.navigationItems instead
*/
navigationItems: Array<NavigationItem>;
/** The optional scopes requested by the app. Lists the optional access scopes the app has declared in its configuration. These scopes are optionally requested by the app after installation. */
optionalAccessScopes: Array<AccessScope>;
/** Whether the app was previously installed on the current shop. */
previouslyInstalled: Scalars['Boolean']['output'];
/** Detailed information about the app pricing. */
pricingDetails?: Maybe<Scalars['String']['output']>;
/** Summary of the app pricing details. */
pricingDetailsSummary: Scalars['String']['output'];
/** Link to app privacy policy. */
privacyPolicyUrl?: Maybe<Scalars['URL']['output']>;
/** The public category for the app. */
publicCategory: AppPublicCategory;
/** Whether the app is published to the Shopify App Store. */
published: Scalars['Boolean']['output'];
/** The access scopes requested by the app. Lists the access scopes the app has declared in its configuration. Merchant must grant approval to these scopes for the app to be installed. */
requestedAccessScopes: Array<AccessScope>;
/** Screenshots of the app. */
screenshots: Array<Image>;
/** Whether the app was developed by Shopify. */
shopifyDeveloped: Scalars['Boolean']['output'];
/** Name of the app. */
title: Scalars['String']['output'];
/**
* Message that appears when the app is uninstalled. For example:
* By removing this app, you will no longer be able to publish products to MySocialSite or view this app in your Shopify admin. You can re-enable this channel at any time.
*/
uninstallMessage: Scalars['String']['output'];
/**
* Webpage where you can uninstall the app.
* @deprecated Use AppInstallation.uninstallUrl instead
*/
uninstallUrl?: Maybe<Scalars['URL']['output']>;
/** The webhook API version for the app. */
webhookApiVersion: Scalars['String']['output'];
};
/** A catalog that defines the publication associated with an app. */
export type AppCatalog = Catalog & Node & {
/** The apps associated with the catalog. */
apps: AppConnection;
/** A globally-unique ID. */
id: Scalars['ID']['output'];
/** Most recent catalog operations. */
operations: Array<ResourceOperation>;
/** The price list associated with the catalog. */
priceList?: Maybe<PriceList>;
/** A group of products and collections that's published to a catalog. */
publication?: Maybe<Publication>;
/** The status of the catalog. */
status: CatalogStatus;
/** The name of the catalog. */
title: Scalars['String']['output'];
};
/** A catalog that defines the publication associated with an app. */
export type AppCatalogAppsArgs = {
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 Apps. */
export type AppConnection = {
/** The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. */
edges: Array<AppEdge>;
/** A list of nodes that are contained in AppEdge. You can fetch data about an individual node, or you can follow the edges to fetch data about a collection of related nodes. At each node, you specify the fields that you want to retrieve. */
nodes: Array<App>;
/** An object that’s used to retrieve [cursor information](https://shopify.dev/api/usage/pagination-graphql) about the current page. */
pageInfo: PageInfo;
};
/** App credits can be applied by the merchant towards future app purchases, subscriptions, or usage records in Shopify. */
export type AppCredit = Node & {
/** The amount that can be used towards future app purchases in Shopify. */
amount: MoneyV2;
/** The date and time when the app credit was created. */
createdAt: Scalars['DateTime']['output'];
/** The description of the app credit. */
description: Scalars['String']['output'];
/** A globally-unique ID. */
id: Scalars['ID']['output'];
/** Whether the app credit is a test transaction. */
test: Scalars['Boolean']['output'];
};
/** An auto-generated type for paginating through multiple AppCredits. */
export type AppCreditConnection = {
/** The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. */
edges: Array<AppCreditEdge>;
/** A list of nodes that are contained in AppCreditEdge. You can fetch data about an individual node, or you can follow the edges to fetch data about a collection of related nodes. At each node, you specify the fields that you want to retrieve. */
nodes: Array<AppCredit>;
/** An object that’s used to retrieve [cursor information](https://shopify.dev/api/usage/pagination-graphql) about the current page. */
pageInfo: PageInfo;
};
/** An auto-generated type which holds one AppCredit and a cursor during pagination. */
export type AppCreditEdge = {
/** The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). */
cursor: Scalars['String']['output'];
/** The item at the end of AppCreditEdge. */
node: AppCredit;
};
/** Possible types of app developer. */
export enum AppDeveloperType {
/** Indicates the app developer works directly for a Merchant. */
Merchant = 'MERCHANT',
/** Indicates the app developer is a Partner. */
Partner = 'PARTNER',
/** Indicates the app developer is Shopify. */
Shopify = 'SHOPIFY',
/** Indicates the app developer is unknown. It is not categorized as any of the other developer types. */
Unknown = 'UNKNOWN'
}
/**
* The details about the app extension that's providing the
* [discount type](https://help.shopify.com/manual/discounts/discount-types).
* This information includes the app extension's name and
* [client ID](https://shopify.dev/docs/apps/build/authentication-authorization/client-secrets),
* [App Bridge configuration](https://shopify.dev/docs/api/app-bridge),
* [discount class](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations),
* [function ID](https://shopify.dev/docs/apps/build/functions/input-output/metafields-for-input-queries),
* and other metadata about the discount type, including the discount type's name and description.
*/
export type AppDiscountType = {
/**
* The name of the app extension that's providing the
* [discount type](https://help.shopify.com/manual/discounts/discount-types).
*/
app: App;
/**
* The [App Bridge configuration](https://shopify.dev/docs/api/app-bridge)
* for the [discount type](https://help.shopify.com/manual/discounts/discount-types).
*/
appBridge: FunctionsAppBridge;
/**
* The [client ID](https://shopify.dev/docs/apps/build/authentication-authorization/client-secrets)
* of the app extension that's providing the [discount type](https://help.shopify.com/manual/discounts/discount-types).
*/
appKey: Scalars['String']['output'];
/**
* A description of the
* [discount type](https://help.shopify.com/manual/discounts/discount-types)
* provided by the app extension.
*/
description?: Maybe<Scalars['String']['output']>;
/**
* The [discount class](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations)
* that's used to control how discounts can be combined.
*/
discountClass: DiscountClass;
/**
* The
* [function ID](https://shopify.dev/docs/apps/build/functions/input-output/metafields-for-input-queries)
* associated with the app extension providing the
* [discount type](https://help.shopify.com/manual/discounts/discount-types).
*/
functionId: Scalars['String']['output'];
/**
* The type of line item on an order that the
* [discount type](https://help.shopify.com/manual/discounts/discount-types) applies to.
* Valid values: `SHIPPING_LINE` and `LINE_ITEM`.
*/
targetType: DiscountApplicationTargetType;
/**
* The name of the [discount type](https://help.shopify.com/manual/discounts/discount-types)
* that the app extension is providing.
*/
title: Scalars['String']['output'];
};
/** An auto-generated type which holds one App and a cursor during pagination. */
export type AppEdge = {
/** The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). */
cursor: Scalars['String']['output'];
/** The item at the end of AppEdge. */
node: App;
};
/**
* Reports the status of shops and their resources and displays this information
* within Shopify admin. AppFeedback is used to notify merchants about steps they need to take
* to set up an app on their store.
*/
export type AppFeedback = {
/** The application associated to the feedback. */
app: App;
/** The date and time when the app feedback was generated. */
feedbackGeneratedAt: Scalars['DateTime']['output'];
/** A link to where merchants can resolve errors. */
link?: Maybe<Link>;
/** The feedback message presented to the merchant. */
messages: Array<UserError>;
/** Conveys the state of the feedback and whether it requires merchant action or not. */
state: ResourceFeedbackState;
};
/** Represents an installed application on a shop. */
export type AppInstallation = HasMetafields & Node & {
/** The access scopes granted to the application by a merchant during installation. */
accessScopes: Array<AccessScope>;
/** The active application subscriptions billed to the shop on a recurring basis. */
activeSubscriptions: Array<AppSubscription>;
/** All subscriptions created for a shop. */
allSubscriptions: AppSubscriptionConnection;
/** Application which is installed. */
app: App;
/**
* Channel associated with the installed application.
* @deprecated Use `publication` instead.
*/
channel?: Maybe<Channel>;
/** Credits that can be used towards future app purchases. */
credits: AppCreditConnection;
/** A globally-unique ID. */
id: Scalars['ID']['output'];
/** The URL to launch the application. */
launchUrl: Scalars['URL']['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](https://shopify.dev/docs/apps/build/custom-data)
* that a merchant associates with a Shopify resource.
*/
metafields: MetafieldConnection;
/** One-time purchases to a shop. */
oneTimePurchases: AppPurchaseOneTimeConnection;
/** The publication associated with the installed application. */
publication?: Maybe<Publication>;
/** The records that track the externally-captured revenue for the app. The records are used for revenue attribution purposes. */
revenueAttributionRecords: AppRevenueAttributionRecordConnection;
/**
* Subscriptions charge to a shop on a recurring basis.
* @deprecated Use `activeSubscriptions` instead.
*/
subscriptions: Array<AppSubscription>;
/** The URL to uninstall the application. */
uninstallUrl?: Maybe<Scalars['URL']['output']>;
};
/** Represents an installed application on a shop. */
export type AppInstallationAllSubscriptionsArgs = {
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']>;
sortKey?: InputMaybe<AppSubscriptionSortKeys>;
};
/** Represents an installed application on a shop. */
export type AppInstallationCreditsArgs = {
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']>;
sortKey?: InputMaybe<AppTransactionSortKeys>;
};
/** Represents an installed application on a shop. */
export type AppInstallationMetafieldArgs = {
key: Scalars['String']['input'];
namespace?: InputMaybe<Scalars['String']['input']>;
};
/** Represents an installed application on a shop. */
export type AppInstallationMetafieldsArgs = {
after?: InputMaybe<Scalars['String']['input']>;
before?: InputMaybe<Scalars['String']['input']>;
first?: InputMaybe<Scalars['Int']['input']>;
keys?: InputMaybe<Array<Scalars['String']['input']>>;
last?: InputMaybe<Scalars['Int']['input']>;
namespace?: InputMaybe<Scalars['String']['input']>;
reverse?: InputMaybe<Scalars['Boolean']['input']>;
};
/** Represents an installed application on a shop. */
export type AppInstallationOneTimePurchasesArgs = {
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']>;
sortKey?: InputMaybe<AppTransactionSortKeys>;
};
/** Represents an installed application on a shop. */
export type AppInstallationRevenueAttributionRecordsArgs = {
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']>;
sortKey?: InputMaybe<AppRevenueAttributionRecordSortKeys>;
};
/**
* The possible categories of an app installation, based on their purpose
* or the environment they can run in.
*/
export enum AppInstallationCategory {
/** Apps that serve as channels through which sales are made, such as the online store. */
Channel = 'CHANNEL',
/** Apps that can be used in the POS mobile client. */
PosEmbedded = 'POS_EMBEDDED'
}
/** An auto-generated type for paginating through multiple AppInstallations. */
export type AppInstallationConnection = {
/** The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. */
edges: Array<AppInstallationEdge>;
/** A list of nodes that are contained in AppInstallationEdge. You can fetch data about an individual node, or you can follow the edges to fetch data about a collection of related nodes. At each node, you specify the fields that you want to retrieve. */
nodes: Array<AppInstallation>;
/** An object that’s used to retrieve [cursor information](https://shopify.dev/api/usage/pagination-graphql) about the current page. */
pageInfo: PageInfo;
};
/** An auto-generated type which holds one AppInstallation and a cursor during pagination. */
export type AppInstallationEdge = {
/** The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). */
cursor: Scalars['String']['output'];
/** The item at the end of AppInstallationEdge. */
node: AppInstallation;
};
/** The levels of privacy of an app installation. */
export enum AppInstallationPrivacy {
Private = 'PRIVATE',
Public = 'PUBLIC'
}
/** The set of valid sort keys for the AppInstallation query. */
export enum AppInstallationSortKeys {
/** Sort by the `app_title` value. */
AppTitle = 'APP_TITLE',
/** Sort by the `id` value. */
Id = 'ID',
/** Sort by the `installed_at` value. */
InstalledAt = 'INSTALLED_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 = 'RELEVANCE'
}
/**
* The pricing model for the app subscription.
* The pricing model input can be either `appRecurringPricingDetails` or `appUsagePricingDetails`.
*/
export type AppPlanInput = {
/** The pricing details for recurring billing. */
appRecurringPricingDetails?: InputMaybe<AppRecurringPricingInput>;
/** The pricing details for usage-based billing. */
appUsagePricingDetails?: InputMaybe<AppUsagePricingInput>;
};
/** The app plan that the merchant is subscribed to. */
export type AppPlanV2 = {
/** The plan billed to a shop on a recurring basis. */
pricingDetails: AppPricingDetails;
};
/**
* The information about the price that's charged to a shop every plan period.
* The concrete type can be `AppRecurringPricing` for recurring billing or `AppUsagePricing` for usage-based billing.
*/
export type AppPricingDetails = AppRecurringPricing | AppUsagePricing;
/** The frequency at which the shop is billed for an app subscription. */
export enum AppPricingInterval {
/** The app subscription bills the shop annually. */
Annual = 'ANNUAL',
/** The app subscription bills the shop every 30 days. */
Every_30Days = 'EVERY_30_DAYS'
}
/** The public-facing category for an app. */
export enum AppPublicCategory {
/** The app's public category is [custom](https://shopify.dev/apps/distribution#capabilities-and-requirements). */
Custom = 'CUSTOM',
/** The app's public category is other. An app is in this category if it's not classified under any of the other app types (private, public, or custom). */
Other = 'OTHER',
/** The app's public category is [private](https://shopify.dev/apps/distribution#deprecated-app-types). */
Private = 'PRIVATE',
/** The app's public category is [public](https://shopify.dev/apps/distribution#capabilities-and-requirements). */
Public = 'PUBLIC'
}
/** Services and features purchased once by the store. */
export type AppPurchase = {
/** The date and time when the app purchase occurred. */
createdAt: Scalars['DateTime']['output'];
/** The name of the app purchase. */
name: Scalars['String']['output'];
/** The amount to be charged to the store for the app purchase. */
price: MoneyV2;
/** The status of the app purchase. */
status: AppPurchaseStatus;
/** Whether the app purchase is a test transaction. */
test: Scalars['Boolean']['output'];
};
/** Services and features purchased once by a store. */
export type AppPurchaseOneTime = AppPurchase & Node & {
/** The date and time when the app purchase occurred. */
createdAt: Scalars['DateTime']['output'];
/** A globally-unique ID. */
id: Scalars['ID']['output'];
/** The name of the app purchase. */
name: Scalars['String']['output'];
/** The amount to be charged to the store for the app purchase. */
price: MoneyV2;
/** The status of the app purchase. */
status: AppPurchaseStatus;
/** Whether the app purchase is a test transaction. */
test: Scalars['Boolean']['output'];
};
/** An auto-generated type for paginating through multiple AppPurchaseOneTimes. */
export type AppPurchaseOneTimeConnection = {
/** The connection between the node and its parent. Each edge contains a minimum of the edge's cursor and the node. */
edges: Array<AppPurchaseOneTimeEdge>;
/** A list of nodes that are contained in AppPurchaseOneTimeEdge. You can fetch data about an individual node, or you can follow the edges to fetch data about a collection of related nodes. At each node, you specify the fields that you want to retrieve. */
nodes: Array<AppPurchaseOneTime>;
/** An object that’s used to retrieve [cursor information](https://shopify.dev/api/usage/pagination-graphql) about the current page. */
pageInfo: PageInfo;
};
/** Return type for `appPurchaseOneTimeCreate` mutation. */
export type AppPurchaseOneTimeCreatePayload = {
/** The newly created app one-time purchase. */
appPurchaseOneTime?: Maybe<AppPurchaseOneTime>;
/**
* The URL that the merchant can access to approve or decline the newly created app one-time purchase.
*
* If the merchant declines, then the merchant is redirected to the app and receives a notification message stating that the charge was declined.
* If the merchant approves and they're successfully invoiced, then the state of the charge changes from `pending` to `active`.
*
* You get paid after the charge is activated.
*/
confirmationUrl?: Maybe<Scalars['URL']['output']>;
/** The list of errors that occurred from executing the mutation. */
userErrors: Array<UserError>;
};
/** An auto-generated type which holds one AppPurchaseOneTime and a cursor during pagination. */
export type AppPurchaseOneTimeEdge = {
/** The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). */
cursor: Scalars['String']['output'];
/** The item at the end of AppPurchaseOneTimeEdge. */
node: AppPurchaseOneTime;
};
/**
* The approval status of the app purchase.
*
* The merchant is charged for the purchase immediately after approval, and the status changes to `active`.
* If the payment fails, then the app purchase remains `pending`.
*
* Purchases start as `pending` and can change to: `active`, `declined`, `expired`. After a purchase changes, it
* remains in that final state.
*/
export enum AppPurchaseStatus {
/**
* The app purchase has been approved by the merchant and is ready to be activated by the app. App purchases created through the GraphQL Admin API are activated upon approval.
* @deprecated As of API version 2021-01, when a merchant accepts an app purchase, the status immediately changes from `pending` to `active`.
*/
Accepted = 'ACCEPTED',
/** The app purchase was approved by the merchant and has been activated by the app. Active app purchases are charged to the merchant and are paid out to the partner. */
Active = 'ACTIVE',
/** The app purchase was declined by the merchant. */
Declined = 'DECLINED',
/** The app purchase was not accepted within two days of being created. */
Expired = 'EXPIRED',
/** The app purchase is pending approval by the merchant. */
Pending = 'PENDING'
}
/**
* The pricing information about a subscription app.
* The object contains an interval (the frequency at which the shop is billed for an app subscription) and
* a price (the amount to be charged to the subscribing shop at each interval).
*/
export type AppRecurringPricing = {
/** The discount applied to the subscription for a given number of billing intervals. */
discount?: Maybe<AppSubscriptionDiscount>;
/** The frequency at which the subscribing shop is billed for an app subscription. */
interval: AppPricingInterval;
/** The amount and currency to be charged to the subscribing shop every billing interval. */
price: MoneyV2;
};
/** Instructs the app subscription to generate a fixed charge on a recurring basis. The frequency is specified by the billing interval. */
export type AppRecurringPricingInput = {
/** The discount applied to the subscription for a given number of billing intervals. */
discount?: InputMaybe<AppSubscriptionDiscountInput>;
/** How often the app subscription generates a charge. */
interval?: InputMaybe<AppPricingInterval>;
/** The amount to be charged to the store every billing interval. */
price: MoneyInput;
};
/** Repres