schema { query: QueryRoot mutation: Mutation } type SubscriptionIntervalInfoPayload { contract: SubscriptionContract sellingPlanGroups(after: String, before: String, first: Int, last: Int, reverse: Boolean = false): SellingPlanGroupConnection! } """Represents a Subscription Contract.""" type SubscriptionContract implements Node & SubscriptionContractBase { """The subscription app that the subscription contract is registered to.""" app: App """The URL of the subscription contract page on the subscription app.""" appAdminUrl: URL """ The list of billing attempts associated with the subscription contract. """ billingAttempts( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): SubscriptionBillingAttemptConnection! """The billing policy associated with the subscription contract.""" billingPolicy: SubscriptionBillingPolicy! """The date and time when the subscription contract was created.""" createdAt: DateTime! """The currency that's used for the subscription contract.""" currencyCode: CurrencyCode! """A list of the custom attributes to be added to the generated orders.""" customAttributes: [Attribute!]! """The customer to whom the subscription contract belongs.""" customer: Customer """The customer payment method that's used for the subscription contract.""" customerPaymentMethod( """Whether to show the customer's revoked payment method.""" showRevoked: Boolean = false ): CustomerPaymentMethod """The delivery method for each billing of the subscription contract.""" deliveryMethod: SubscriptionDeliveryMethod """The delivery policy associated with the subscription contract.""" deliveryPolicy: SubscriptionDeliveryPolicy! """The delivery price for each billing of the subscription contract.""" deliveryPrice: MoneyV2! """ The list of subscription discounts associated with the subscription contract. """ discounts( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): SubscriptionManualDiscountConnection! """A globally-unique ID.""" id: ID! """The last billing error type of the contract.""" lastBillingAttemptErrorType: SubscriptionContractLastBillingErrorType """The current status of the last payment.""" lastPaymentStatus: SubscriptionContractLastPaymentStatus """The number of lines associated with the subscription contract.""" lineCount: Int! @deprecated(reason: "Use `linesCount` instead.") """ The list of subscription lines associated with the subscription contract. """ lines( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): SubscriptionLineConnection! """The number of lines associated with the subscription contract.""" linesCount: Count """ The next billing date for the subscription contract. This field is managed by the apps. Alternatively you can utilize our [Billing Cycles APIs](https://shopify.dev/docs/apps/selling-strategies/subscriptions/billing-cycles), which provide auto-computed billing dates and additional functionalities. """ nextBillingDate: DateTime """The note field that will be applied to the generated orders.""" note: String """A list of the subscription contract's orders.""" orders( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): OrderConnection! """The order from which this contract originated.""" originOrder: Order """The revision id of the contract.""" revisionId: UnsignedInt64! """The current status of the subscription contract.""" status: SubscriptionContractSubscriptionStatus! """The date and time when the subscription contract was updated.""" updatedAt: DateTime! """Information about the current pause state of the subscription.""" currentPause: SubscriptionPauseInfo } """A Shopify application.""" type App implements Node { """A unique application API identifier.""" apiKey: String! """App store page URL of the app.""" appStoreAppUrl: URL """App store page URL of the developer who created the app.""" appStoreDeveloperUrl: URL """All requestable access scopes available to the app.""" availableAccessScopes: [AccessScope!]! """Banner image for the app.""" banner: Image! """Description of the app.""" description: String """The name of the app developer.""" developerName: String """The type of app developer.""" developerType: AppDeveloperType! """Website of the developer who created the app.""" developerUrl: URL! @deprecated(reason: "Use `appStoreDeveloperUrl` instead.") """Whether the app uses the Embedded App SDK.""" embedded: Boolean! """Requirements that must be met before the app can be installed.""" failedRequirements: [FailedRequirement!]! """ A list of app features that are shown in the Shopify App Store listing. """ features: [String!]! """Feedback from this app about the store.""" feedback: AppFeedback """Handle of the app.""" handle: String """Icon that represents the app.""" icon: Image! """A globally-unique ID.""" id: ID! """Webpage where you can install the app.""" installUrl: URL """ Corresponding AppInstallation for this shop and App. Returns null if the App is not installed. """ installation: AppInstallation """ Whether the app is the [post purchase](https://shopify.dev/apps/checkout/post-purchase) app in use. """ isPostPurchaseAppInUse: Boolean! """Webpage that the app starts in.""" launchUrl: URL! @deprecated(reason: "Use AppInstallation.launchUrl instead") """ Menu items for the app, which also appear as submenu items in left navigation sidebar in the Shopify admin. """ navigationItems: [NavigationItem!]! @deprecated(reason: "Use AppInstallation.navigationItems instead") """ 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: [AccessScope!]! """Whether the app was previously installed on the current shop.""" previouslyInstalled: Boolean! """Detailed information about the app pricing.""" pricingDetails: String """Summary of the app pricing details.""" pricingDetailsSummary: String! """Link to app privacy policy.""" privacyPolicyUrl: URL """The public category for the app.""" publicCategory: AppPublicCategory! """Whether the app is published to the Shopify App Store.""" published: Boolean! """ 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: [AccessScope!]! """Screenshots of the app.""" screenshots: [Image!]! """Whether the app was developed by Shopify.""" shopifyDeveloped: Boolean! """Name of the app.""" title: String! """ 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: String! """Webpage where you can uninstall the app.""" uninstallUrl: URL @deprecated(reason: "Use AppInstallation.uninstallUrl instead") """The webhook API version for the app.""" webhookApiVersion: String! } """ Represents an [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986) and [RFC 3987](https://datatracker.ietf.org/doc/html/rfc3987)-compliant URI string. For example, `"https://example.myshopify.com"` is a valid URL. It includes a scheme (`https`) and a host (`example.myshopify.com`). """ scalar URL """ 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. """ type AccessScope { """ A description of the actions that the access scope allows an app to perform. """ description: String! """ 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: String! } """Represents an image resource.""" type Image implements HasMetafields & HasPublishedTranslations { """A word or phrase to share the nature or contents of an image.""" altText: String """ The original height of the image in pixels. Returns `null` if the image isn't hosted by Shopify. """ height: Int """A unique ID for the image.""" id: ID """ 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( """The key for the metafield.""" key: String! """ The container the metafield belongs to. If omitted, the app-reserved namespace will be used. """ namespace: String ): Metafield """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. """ metafields( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ List of keys of metafields in the format `namespace.key`, will be returned in the same format. """ keys: [String!] """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. """ namespace: String """Reverse the order of the underlying list.""" reverse: Boolean = false ): MetafieldConnection! """ The location of the original image as a URL. If there are any existing transformations in the original source URL, they will remain and not be stripped. """ originalSrc: URL! @deprecated(reason: "Use `url` instead.") """The location of the image as a URL.""" src: URL! @deprecated(reason: "Use `url` instead.") """ The location of the transformed image as a URL. All transformation arguments are considered "best-effort". If they can be applied to an image, they will be. Otherwise any transformations which an image type doesn't support will be ignored. """ transformedSrc( """Crops the image according to the specified region.""" crop: CropRegion """Image height in pixels between 1 and 5760.""" maxHeight: Int """Image width in pixels between 1 and 5760.""" maxWidth: Int """ Best effort conversion of image into content type (SVG -> PNG, Anything -> JPG, Anything -> WEBP are supported). """ preferredContentType: ImageContentType """ Image size multiplier for high-resolution retina displays. Must be between 1 and 3. """ scale: Int = 1 ): URL! @deprecated(reason: "Use `url(transform:)` instead") """The published translations associated with the resource.""" translations( """Filters translations locale.""" locale: String! """ Filters translations by market ID. Use this argument to retrieve content specific to a market. """ marketId: ID ): [Translation!]! """ The location of the image as a URL. If no transform options are specified, then the original image will be preserved including any pre-applied transforms. All transformation options are considered "best-effort". Any transformation that the original image type doesn't support will be ignored. If you need multiple variations of the same image, then you can use [GraphQL aliases](https://graphql.org/learn/queries/#aliases). """ url( """A set of options to transform the original image.""" transform: ImageTransformInput ): URL! """ The original width of the image in pixels. Returns `null` if the image isn't hosted by Shopify. """ width: Int } """ Metafields enable you to attach additional information to a Shopify resource, such as a [Product](https://shopify.dev/api/admin-graphql/latest/objects/product) or a [Collection](https://shopify.dev/api/admin-graphql/latest/objects/collection). For more information about where you can attach metafields refer to [HasMetafields](https://shopify.dev/api/admin/graphql/reference/common-objects/HasMetafields). Some examples of the data that metafields enable you to store are specifications, size charts, downloadable documents, release dates, images, or part numbers. Metafields are identified by an owner resource, namespace, and key. and store a value along with type information for that value. """ type Metafield implements HasCompareDigest & HasPublishedTranslations & LegacyInteroperability & Node { """The data stored in the resource, represented as a digest.""" compareDigest: String! """The date and time when the metafield was created.""" createdAt: DateTime! """The metafield definition that the metafield belongs to, if any.""" definition: MetafieldDefinition """The description of the metafield.""" description: String """A globally-unique ID.""" id: ID! """The data stored in the metafield in JSON format.""" jsonValue: JSON! """The unique identifier for the metafield within its namespace.""" key: String! """The ID of the corresponding resource in the REST Admin API.""" legacyResourceId: UnsignedInt64! """ The container for a group of metafields that the metafield is associated with. """ namespace: String! """The resource that the metafield is attached to.""" owner: HasMetafields! """The type of resource that the metafield is attached to.""" ownerType: MetafieldOwnerType! """ Returns a reference object if the metafield definition's type is a resource reference. """ reference: MetafieldReference """ A list of reference objects if the metafield's type is a resource reference list. """ references( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int ): MetafieldReferenceConnection """The published translations associated with the resource.""" translations( """Filters translations locale.""" locale: String! """ Filters translations by market ID. Use this argument to retrieve content specific to a market. """ marketId: ID ): [Translation!]! """ The type of data that is stored in the metafield. Refer to the list of [supported types](https://shopify.dev/apps/metafields/types). """ type: String! """The date and time when the metafield was updated.""" updatedAt: DateTime! """ The data stored in the metafield. Always stored as a string, regardless of the metafield's type. """ value: String! } """ Represents an [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)-encoded date and time string. For example, 3:50 pm on September 7, 2019 in the time zone of UTC (Coordinated Universal Time) is represented as `"2019-09-07T15:50:00Z`". """ scalar DateTime """ Metafield definitions enable you to define additional validation constraints for metafields, and enable the merchant to edit metafield values in context. """ type MetafieldDefinition implements Node { """The access settings associated with the metafield definition.""" access: MetafieldAccess! """The capabilities of the metafield definition.""" capabilities: MetafieldCapabilities! """ The constraints that determine what subtypes of resources a metafield definition applies to. """ constraints: MetafieldDefinitionConstraints """The description of the metafield definition.""" description: String """A globally-unique ID.""" id: ID! """ The unique identifier for the metafield definition within its namespace. """ key: String! """The metafields that belong to the metafield definition.""" metafields( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false """Returns the metafields filtered by the validation status.""" validationStatus: MetafieldValidationStatus = ANY ): MetafieldConnection! """The count of the metafields that belong to the metafield definition.""" metafieldsCount( """The current validation status.""" validationStatus: MetafieldValidationStatus ): Int! """The human-readable name of the metafield definition.""" name: String! """ The container for a group of metafields that the metafield definition is associated with. """ namespace: String! """The resource type that the metafield definition is attached to.""" ownerType: MetafieldOwnerType! """The position of the metafield definition in the pinned list.""" pinnedPosition: Int """ The standard metafield definition template associated with the metafield definition. """ standardTemplate: StandardMetafieldDefinitionTemplate """ The type of data that each of the metafields that belong to the metafield definition will store. Refer to the list of [supported types](https://shopify.dev/apps/metafields/types). """ type: MetafieldDefinitionType! """ Whether the metafield definition can be used as a collection condition. """ useAsCollectionCondition: Boolean! """ The validation status for the metafields that belong to the metafield definition. """ validationStatus: MetafieldDefinitionValidationStatus! """ A list of [validation options](https://shopify.dev/apps/metafields/definitions/validation) for the metafields that belong to the metafield definition. For example, for a metafield definition with the type `date`, you can set a minimum date validation so that each of the metafields that belong to it can only store dates after the specified minimum. """ validations: [MetafieldDefinitionValidation!]! } """The access settings for this metafield definition.""" type MetafieldAccess { """ The default admin access setting used for the metafields under this definition. """ admin: MetafieldAdminAccess """ The customer account access setting used for the metafields under this definition. """ customerAccount: MetafieldCustomerAccountAccess! """ The storefront access setting used for the metafields under this definition. """ storefront: MetafieldStorefrontAccess } """Possible admin access settings for metafields.""" enum MetafieldAdminAccess { """ Owner gets full access. The merchant has read-only access. No one else has access rights. """ MERCHANT_READ """ Owner gets full access. The merchant has read and write access. No one else has access rights. """ MERCHANT_READ_WRITE """Owner gets full access. No one else has access rights.""" PRIVATE """ Owner gets full access. All applications and the merchant have read-only access. """ PUBLIC_READ """ Owner gets full access. All applications and the merchant have read and write access. """ PUBLIC_READ_WRITE } """ Defines how the metafields of a definition can be accessed in the Customer Account API. """ enum MetafieldCustomerAccountAccess { """The Customer Account API cannot access metafields.""" NONE """The Customer Account API can read metafields.""" READ """The Customer Account API can read and write metafields.""" READ_WRITE } """ Defines how the metafields of a definition can be accessed in Storefront API surface areas, including Liquid and the GraphQL Storefront API. """ enum MetafieldStorefrontAccess { """Metafields are not accessible in any Storefront API surface area.""" NONE """ Metafields are accessible in the GraphQL Storefront API and online store Liquid templates. """ PUBLIC_READ } """Provides the capabilities of a metafield definition.""" type MetafieldCapabilities { """Indicate whether a metafield definition is configured for filtering.""" adminFilterable: MetafieldCapabilityAdminFilterable! """ Indicate whether a metafield definition can be used as a smart collection condition. """ smartCollectionCondition: MetafieldCapabilitySmartCollectionCondition! """ Indicate whether the metafield values for a metafield definition are required to be unique. """ uniqueValues: MetafieldCapabilityUniqueValues! } """ Information about the admin filterable capability on a metafield definition. """ type MetafieldCapabilityAdminFilterable { """Indicates if the definition is eligible to have the capability.""" eligible: Boolean! """Indicates if the capability is enabled.""" enabled: Boolean! """ Determines the metafield definition's filter status for use in admin filtering. """ status: MetafieldDefinitionAdminFilterStatus! } """ Possible filter statuses associated with a metafield definition for use in admin filtering. """ enum MetafieldDefinitionAdminFilterStatus { """The metafield definition has failed to be enabled for admin filtering.""" FAILED """ The metafield definition allows admin filtering by matching metafield values. """ FILTERABLE """ The metafield definition's metafields are currently being processed for admin filtering. """ IN_PROGRESS """The metafield definition cannot be used for admin filtering.""" NOT_FILTERABLE } """ Information about the smart collection condition capability on a metafield definition. """ type MetafieldCapabilitySmartCollectionCondition { """Indicates if the definition is eligible to have the capability.""" eligible: Boolean! """Indicates if the capability is enabled.""" enabled: Boolean! } """ Information about the unique values capability on a metafield definition. """ type MetafieldCapabilityUniqueValues { """Indicates if the definition is eligible to have the capability.""" eligible: Boolean! """Indicates if the capability is enabled.""" enabled: Boolean! } """ The constraints that determine what subtypes of resources a metafield definition applies to. """ type MetafieldDefinitionConstraints { """The category of resource subtypes that the definition applies to.""" key: String """The specific constraint subtype values that the definition applies to.""" values( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): MetafieldDefinitionConstraintValueConnection! } """ An auto-generated type for paginating through multiple MetafieldDefinitionConstraintValues. """ type MetafieldDefinitionConstraintValueConnection { edges: [MetafieldDefinitionConstraintValueEdge!]! """ A list of nodes that are contained in MetafieldDefinitionConstraintValueEdge. 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: [MetafieldDefinitionConstraintValue!]! """ 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 MetafieldDefinitionConstraintValue and a cursor during pagination. """ type MetafieldDefinitionConstraintValueEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of MetafieldDefinitionConstraintValueEdge.""" node: MetafieldDefinitionConstraintValue! } """A constraint subtype value that the metafield definition applies to.""" type MetafieldDefinitionConstraintValue { """The subtype value of the constraint.""" value: String! } """ Returns information about pagination in a connection, in accordance with the [Relay specification](https://relay.dev/graphql/connections.htm#sec-undefined.PageInfo). For more information, please read our [GraphQL Pagination Usage Guide](https://shopify.dev/api/usage/pagination-graphql). """ type PageInfo { """The cursor corresponding to the last node in edges.""" endCursor: String """Whether there are more pages to fetch following the current page.""" hasNextPage: Boolean! """Whether there are any pages prior to the current page.""" hasPreviousPage: Boolean! """The cursor corresponding to the first node in edges.""" startCursor: String } """An auto-generated type for paginating through multiple Metafields.""" type MetafieldConnection { edges: [MetafieldEdge!]! """ A list of nodes that are contained in MetafieldEdge. 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: [Metafield!]! """ 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 Metafield and a cursor during pagination. """ type MetafieldEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of MetafieldEdge.""" node: Metafield! } """Possible metafield validation statuses.""" enum MetafieldValidationStatus { """Any validation status (valid or invalid).""" ANY """Invalid (according to definition).""" INVALID """Valid (according to definition).""" VALID } """Possible types of a metafield's owner resource.""" enum MetafieldOwnerType { """The Api Permission metafield owner type.""" API_PERMISSION """The Article metafield owner type.""" ARTICLE """The Blog metafield owner type.""" BLOG """The Cart Transform metafield owner type.""" CARTTRANSFORM """The Collection metafield owner type.""" COLLECTION """The Company metafield owner type.""" COMPANY """The Company Location metafield owner type.""" COMPANY_LOCATION """The Customer metafield owner type.""" CUSTOMER """The Delivery Customization metafield owner type.""" DELIVERY_CUSTOMIZATION """The Discount metafield owner type.""" DISCOUNT """The draft order metafield owner type.""" DRAFTORDER """The Fulfillment Constraint Rule metafield owner type.""" FULFILLMENT_CONSTRAINT_RULE """The GiftCardTransaction metafield owner type.""" GIFT_CARD_TRANSACTION """The Location metafield owner type.""" LOCATION """The Market metafield owner type.""" MARKET """The Media Image metafield owner type.""" MEDIA_IMAGE @deprecated(reason: "`MEDIA_IMAGE` is deprecated.") """The Order metafield owner type.""" ORDER """The Order Routing Location Rule metafield owner type.""" ORDER_ROUTING_LOCATION_RULE """The Page metafield owner type.""" PAGE """The Payment Customization metafield owner type.""" PAYMENT_CUSTOMIZATION """The Product metafield owner type.""" PRODUCT """The Product Variant metafield owner type.""" PRODUCTVARIANT """The Selling Plan metafield owner type.""" SELLING_PLAN """The Shop metafield owner type.""" SHOP """The Validation metafield owner type.""" VALIDATION """The Transfer metafield owner type.""" TRANSFER } """ Standard metafield definition templates provide preset configurations to create metafield definitions. Each template has a specific namespace and key that we've reserved to have specific meanings for common use cases. Refer to the [list of standard metafield definitions](https://shopify.dev/apps/metafields/definitions/standard-definitions). """ type StandardMetafieldDefinitionTemplate implements Node { """The description of the standard metafield definition.""" description: String """A globally-unique ID.""" id: ID! """ The key owned by the definition after the definition has been activated. """ key: String! """The human-readable name for the standard metafield definition.""" name: String! """ The namespace owned by the definition after the definition has been activated. """ namespace: String! """ The list of resource types that the standard metafield definition can be applied to. """ ownerTypes: [MetafieldOwnerType!]! """ The associated [metafield definition type](https://shopify.dev/apps/metafields/definitions/types) that the metafield stores. """ type: MetafieldDefinitionType! """The configured validations for the standard metafield definition.""" validations: [MetafieldDefinitionValidation!]! """ Whether metafields for the definition are by default visible using the Storefront API. """ visibleToStorefrontApi: Boolean! } """ A metafield definition type provides basic foundation and validation for a metafield. """ type MetafieldDefinitionType { """The category associated with the metafield definition type.""" category: String! """ The name of the type for the metafield definition. See the list of [supported types](https://shopify.dev/apps/metafields/types). """ name: String! """The supported validations for a metafield definition type.""" supportedValidations: [MetafieldDefinitionSupportedValidation!]! """ Whether metafields without a definition can be migrated to a definition of this type. """ supportsDefinitionMigrations: Boolean! """The value type for a metafield created with this definition type.""" valueType: MetafieldValueType! @deprecated(reason: "`valueType` is deprecated and `name` should be used for type information.") } """ The type and name for the optional validation configuration of a metafield. For example, a supported validation might consist of a `max` name and a `number_integer` type. This validation can then be used to enforce a maximum character length for a `single_line_text_field` metafield. """ type MetafieldDefinitionSupportedValidation { """The name of the metafield definition validation.""" name: String! """The type of input for the validation.""" type: String! } """ Legacy type information for the stored value. Replaced by `type`. """ enum MetafieldValueType { """A `true` or `false` value.""" BOOLEAN """A whole number.""" INTEGER """A JSON string.""" JSON_STRING """A text field.""" STRING } """ A configured metafield definition validation. For example, for a metafield definition of `number_integer` type, you can set a validation with the name `max` and a value of `15`. This validation will ensure that the value of the metafield is a number less than or equal to 15. Refer to the [list of supported validations](https://shopify.dev/api/admin/graphql/reference/common-objects/metafieldDefinitionTypes#examples-Fetch_all_metafield_definition_types). """ type MetafieldDefinitionValidation { """The validation name.""" name: String! """The name for the metafield type of this validation.""" type: String! """The validation value.""" value: String } """ An object with an ID field to support global identification, in accordance with the [Relay specification](https://relay.dev/graphql/objectidentification.htm#sec-Node-Interface). This interface is used by the [node](https://shopify.dev/api/admin-graphql/unstable/queries/node) and [nodes](https://shopify.dev/api/admin-graphql/unstable/queries/nodes) queries. """ interface Node { """A globally-unique ID.""" id: ID! } """Possible metafield definition validation statuses.""" enum MetafieldDefinitionValidationStatus { """All of this definition's metafields are valid.""" ALL_VALID """ Asynchronous validation of this definition's metafields is in progress. """ IN_PROGRESS """Some of this definition's metafields are invalid.""" SOME_INVALID } """ A [JSON](https://www.json.org/json-en.html) object. Example value: `{ "product": { "id": "gid://shopify/Product/1346443542550", "title": "White T-shirt", "options": [{ "name": "Size", "values": ["M", "L"] }] } }` """ scalar JSON """ An unsigned 64-bit integer. Represents whole numeric values between 0 and 2^64 - 1 encoded as a string of base-10 digits. Example value: `"50"`. """ scalar UnsignedInt64 """ Represents information about the metafields associated to the specified resource. """ interface HasMetafields { """ A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. """ metafield( """The key for the metafield.""" key: String! """ The container the metafield belongs to. If omitted, the app-reserved namespace will be used. """ namespace: String ): Metafield """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. """ metafields( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ List of keys of metafields in the format `namespace.key`, will be returned in the same format. """ keys: [String!] """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. """ namespace: String """Reverse the order of the underlying list.""" reverse: Boolean = false ): MetafieldConnection! } """The resource referenced by the metafield value.""" union MetafieldReference = Collection | Company | Customer | GenericFile | MediaImage | Metaobject | Model3d | Order | Page | Product | ProductVariant | TaxonomyValue | Video | Article """ Represents a group of products that can be displayed in online stores and other sales channels in categories, which makes it easy for customers to find them. For example, an athletics store might create different collections for running attire, shoes, and accessories. Collections can be defined by conditions, such as whether they match certain product tags. These are called smart or automated collections. Collections can also be created for a custom group of products. These are called custom or manual collections. """ type Collection implements HasEvents & HasMetafieldDefinitions & HasMetafields & HasPublishedTranslations & Node & Publishable { """ The number of [publications](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication) that a resource is published to, without [feedback errors](https://shopify.dev/docs/api/admin-graphql/latest/objects/ResourceFeedback). """ availablePublicationsCount: Count """ A single-line, text-only description of the collection, stripped of any HTML tags and formatting that were included in the description. """ description( """Truncates a string after the given length.""" truncateAt: Int ): String! """ The description of the collection, including any HTML tags and formatting. This content is typically displayed to customers, such as on an online store, depending on the theme. """ descriptionHtml: HTML! """The paginated list of events associated with the host subject.""" events( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | action | string | The action that occured. | | | - `action:create` | | comments | boolean | Whether or not to include [comment-events](https://shopify.dev/api/admin-graphql/latest/objects/CommentEvent) in your search, passing `false` will exclude comment-events, any other value will include comment-events. | | | - `false`
- `true` | | created_at | time | Filter by the date and time when the event happened. | | | - `created_at:>2020-10-21`
- `created_at: - `id:>=1234`
- `id:<=1234` | | subject_type | string | The resource type affected by this event, See [EventSubjectType](https://shopify.dev/api/admin-graphql/latest/enums/EventSubjectType) for possible values. | | | - `COMPANY` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: EventSortKeys = ID ): EventConnection! """ Information about the collection that's provided through resource feedback. """ feedback: ResourceFeedback """ A unique string that identifies the collection. If a handle isn't specified when a collection is created, it's automatically generated from the collection's original title, and typically includes words from the title separated by hyphens. For example, a collection that was created with the title `Summer Catalog 2022` might have the handle `summer-catalog-2022`. If the title is changed, the handle doesn't automatically change. The handle can be used in themes by the Liquid templating language to refer to the collection, but using the ID is preferred because it never changes. """ handle: String! """Whether the collection includes the specified product.""" hasProduct( """The ID of the product to check.""" id: ID! ): Boolean! """A globally-unique ID.""" id: ID! """The image associated with the collection.""" image: Image """The ID of the corresponding resource in the REST Admin API.""" legacyResourceId: UnsignedInt64! """ 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( """The key for the metafield.""" key: String! """ The container the metafield belongs to. If omitted, the app-reserved namespace will be used. """ namespace: String ): Metafield """List of metafield definitions.""" metafieldDefinitions( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Filter metafield definitions by namespace.""" namespace: String """Filter by the definition's pinned status.""" pinnedStatus: MetafieldDefinitionPinnedStatus = ANY """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | created_at | time | Filter by the date and time when the metafield definition was created. | | | - `created_at:>2020-10-21T23:39:20Z`
- `created_at: - `created_at:<=2024` | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | key | string | Filter by the metafield definition [`key`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-key) field. | | | - `key:some-key` | | namespace | string | Filter by the metafield definition [`namespace`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-namespace) field. | | | - `namespace:some-namespace` | | owner_type | string | Filter by the metafield definition [`ownerType`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-ownertype) field. | | | - `owner_type:PRODUCT` | | type | string | Filter by the metafield definition [`type`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-type) field. | | | - `type:single_line_text_field` | | updated_at | time | Filter by the date and time when the metafield definition was last updated. | | | - `updated_at:>2020-10-21T23:39:20Z`
- `updated_at: - `updated_at:<=2024` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: MetafieldDefinitionSortKeys = ID ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use the root `metafieldDefinitions` field instead.") """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. """ metafields( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ List of keys of metafields in the format `namespace.key`, will be returned in the same format. """ keys: [String!] """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. """ namespace: String """Reverse the order of the underlying list.""" reverse: Boolean = false ): MetafieldConnection! """The products that are included in the collection.""" products( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: ProductCollectionSortKeys = COLLECTION_DEFAULT ): ProductConnection! """The number of products in the collection.""" productsCount: Count """ The number of [publications](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication) that a resource is published to, without [feedback errors](https://shopify.dev/docs/api/admin-graphql/latest/objects/ResourceFeedback). """ publicationCount( """ Include only the resource's publications that are published. If false, then return all the resource's publications including future publications. """ onlyPublished: Boolean = true ): Int! @deprecated(reason: "Use `resourcePublicationsCount` instead.") """The channels where the collection is published.""" publications( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ Whether or not to return only the collection publications that are published. """ onlyPublished: Boolean = true """Reverse the order of the underlying list.""" reverse: Boolean = false ): CollectionPublicationConnection! @deprecated(reason: "Use `resourcePublications` instead.") """Whether the resource is published to a specific channel.""" publishedOnChannel( """The ID of the channel to check.""" channelId: ID! ): Boolean! @deprecated(reason: "Use `publishedOnPublication` instead.") """ Whether the resource is published to a [channel](https://shopify.dev/docs/api/admin-graphql/latest/objects/Channel). For example, the resource might be published to the online store channel. """ publishedOnCurrentChannel: Boolean! @deprecated(reason: "Use `publishedOnCurrentPublication` instead.") """ Whether the resource is published to the app's [publication](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication). For example, the resource might be published to the app's online store channel. """ publishedOnCurrentPublication: Boolean! """ Whether the resource is published to a specified [publication](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication). """ publishedOnPublication( """ The ID of the publication to check. For example, `id: "gid://shopify/Publication/123"`. """ publicationId: ID! ): Boolean! """ The list of resources that are published to a [publication](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication). """ resourcePublications( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ Whether to return only the resources that are currently published. If false, then also returns the resources that are scheduled to be published. """ onlyPublished: Boolean = true """Reverse the order of the underlying list.""" reverse: Boolean = false ): ResourcePublicationConnection! """ The number of [publications](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication) that a resource is published to, without [feedback errors](https://shopify.dev/docs/api/admin-graphql/latest/objects/ResourceFeedback). """ resourcePublicationsCount( """ Include only the resource's publications that are published. If false, then return all the resource's publications including future publications. """ onlyPublished: Boolean = true ): Count """ The list of resources that are either published or staged to be published to a [publication](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication). """ resourcePublicationsV2( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """Filter publications by catalog type.""" catalogType: CatalogType """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ Whether to return only the resources that are currently published. If false, then also returns the resources that are scheduled or staged to be published. """ onlyPublished: Boolean = true """Reverse the order of the underlying list.""" reverse: Boolean = false ): ResourcePublicationV2Connection! """ For a smart (automated) collection, specifies the rules that determine whether a product is included. """ ruleSet: CollectionRuleSet """ If the default SEO fields for page title and description have been modified, contains the modified information. """ seo: SEO! """ The order in which the products in the collection are displayed by default in the Shopify admin and in sales channels, such as an online store. """ sortOrder: CollectionSortOrder! """ The Storefront GraphQL API ID of the `Collection`. As of the `2022-04` version release, the Storefront GraphQL API will no longer return Base64 encoded IDs to match the behavior of the Admin GraphQL API. Therefore, you can safely use the `id` field's value instead. """ storefrontId: StorefrontID! @deprecated(reason: "Use `id` instead.") """ The suffix of the Liquid template being used to show the collection in an online store. For example, if the value is `custom`, then the collection is using the `collection.custom.liquid` template. If the value is `null`, then the collection is using the default `collection.liquid` template. """ templateSuffix: String """ The name of the collection. It's displayed in the Shopify admin and is typically displayed in sales channels, such as an online store. """ title: String! """The published translations associated with the resource.""" translations( """Filters translations locale.""" locale: String! """ Filters translations by market ID. Use this argument to retrieve content specific to a market. """ marketId: ID ): [Translation!]! """The list of channels that the resource is not published to.""" unpublishedChannels( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): ChannelConnection! @deprecated(reason: "Use `unpublishedPublications` instead.") """ The list of [publications](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication) that the resource isn't published to. """ unpublishedPublications( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): PublicationConnection! """ The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) when the collection was last modified. """ updatedAt: DateTime! } """Details for count of elements.""" type Count { """The count of elements.""" count: Int! """The count's precision, or the exactness of the value.""" precision: CountPrecision! } """The precision of the value returned by a count field.""" enum CountPrecision { """The count is at least the value. A limit was imposed and reached.""" AT_LEAST """The count is exactly the value.""" EXACT } """ A string containing HTML code. Refer to the [HTML spec](https://html.spec.whatwg.org/#elements-3) for a complete list of HTML elements. Example value: `"

Grey cotton knit sweater.

"` """ scalar HTML """An auto-generated type for paginating through multiple Events.""" type EventConnection { edges: [EventEdge!]! """ A list of nodes that are contained in EventEdge. 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: [Event!]! """ 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 Event and a cursor during pagination. """ type EventEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of EventEdge.""" node: Event! } """ Events chronicle resource activities such as the creation of an article, the fulfillment of an order, or the addition of a product. """ interface Event { """The action that occured.""" action: String! """The name of the app that created the event.""" appTitle: String """Whether the event was created by an app.""" attributeToApp: Boolean! """Whether the event was caused by an admin user.""" attributeToUser: Boolean! """The date and time when the event was created.""" createdAt: DateTime! """Whether the event is critical.""" criticalAlert: Boolean! """A globally-unique ID.""" id: ID! """Human readable text that describes the event.""" message: FormattedString! } """ A string containing a strict subset of HTML code. Non-allowed tags will be stripped out. Allowed tags: * `a` (allowed attributes: `href`, `target`) * `b` * `br` * `em` * `i` * `strong` * `u` Use [HTML](https://shopify.dev/api/admin-graphql/latest/scalars/HTML) instead if you need to include other HTML tags. Example value: `"Your current domain is example.myshopify.com."` """ scalar FormattedString """The set of valid sort keys for the Event query.""" enum EventSortKeys { """Sort by the `created_at` value.""" CREATED_AT """Sort by the `id` value.""" ID } """ Represents feedback from apps about a resource, and the steps required to set up the apps on the shop. """ type ResourceFeedback { """ Feedback from an app about the steps a merchant needs to take to set up the app on their store. """ appFeedback: [AppFeedback!]! @deprecated(reason: "Use `details` instead.") """List of AppFeedback detailing issues regarding a resource.""" details: [AppFeedback!]! """Summary of resource feedback pertaining to the resource.""" summary: String! } """ 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. """ type AppFeedback { """The application associated to the feedback.""" app: App! """The date and time when the app feedback was generated.""" feedbackGeneratedAt: DateTime! """A link to where merchants can resolve errors.""" link: Link """The feedback message presented to the merchant.""" messages: [UserError!]! """ Conveys the state of the feedback and whether it requires merchant action or not. """ state: ResourceFeedbackState! } """A link to direct users to.""" type Link implements HasPublishedTranslations { """A context-sensitive label for the link.""" label: String! """The published translations associated with the resource.""" translations( """Filters translations locale.""" locale: String! """ Filters translations by market ID. Use this argument to retrieve content specific to a market. """ marketId: ID ): [Translation!]! """The URL that the link visits.""" url: URL! } """Translation of a field of a resource.""" type Translation { """ On the resource that this translation belongs to, the reference to the value being translated. """ key: String! """ISO code of the translation locale.""" locale: String! """ The market that the translation is specific to. Null value means the translation is available in all markets. """ market: Market """ Whether the original content has changed since this translation was updated. """ outdated: Boolean! """The date and time when the translation was updated.""" updatedAt: DateTime """Translation value.""" value: String } """ A market is a group of one or more regions that you want to target for international sales. By creating a market, you can configure a distinct, localized shopping experience for customers from a specific area of the world. For example, you can [change currency](https://shopify.dev/api/admin-graphql/current/mutations/marketCurrencySettingsUpdate), [configure international pricing](https://shopify.dev/apps/internationalization/product-price-lists), or [add market-specific domains or subfolders](https://shopify.dev/api/admin-graphql/current/objects/MarketWebPresence). """ type Market implements HasMetafieldDefinitions & HasMetafields & Node { """The catalogs that belong to the market.""" catalogs( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): MarketCatalogConnection! """The number of catalogs that belong to the market.""" catalogsCount: Count """The market’s currency settings.""" currencySettings: MarketCurrencySettings """ Whether the market is enabled to receive visitors and sales. **Note**: Regions in inactive markets can't be selected on the storefront or in checkout. """ enabled: Boolean! @deprecated(reason: "Use `status` instead.") """ A short, human-readable unique identifier for the market. This is changeable by the merchant. """ handle: String! """The conditions under which a visitor is in the market.""" conditions: MarketConditions """Status of the market. Replaces the enabled field.""" status: MarketStatus """A globally-unique ID.""" id: ID! """ A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. """ metafield( """The key for the metafield.""" key: String! """ The container the metafield belongs to. If omitted, the app-reserved namespace will be used. """ namespace: String ): Metafield """List of metafield definitions.""" metafieldDefinitions( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Filter metafield definitions by namespace.""" namespace: String """Filter by the definition's pinned status.""" pinnedStatus: MetafieldDefinitionPinnedStatus = ANY """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | created_at | time | Filter by the date and time when the metafield definition was created. | | | - `created_at:>2020-10-21T23:39:20Z`
- `created_at: - `created_at:<=2024` | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | key | string | Filter by the metafield definition [`key`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-key) field. | | | - `key:some-key` | | namespace | string | Filter by the metafield definition [`namespace`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-namespace) field. | | | - `namespace:some-namespace` | | owner_type | string | Filter by the metafield definition [`ownerType`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-ownertype) field. | | | - `owner_type:PRODUCT` | | type | string | Filter by the metafield definition [`type`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-type) field. | | | - `type:single_line_text_field` | | updated_at | time | Filter by the date and time when the metafield definition was last updated. | | | - `updated_at:>2020-10-21T23:39:20Z`
- `updated_at: - `updated_at:<=2024` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: MetafieldDefinitionSortKeys = ID ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use the root `metafieldDefinitions` field instead.") """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. """ metafields( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ List of keys of metafields in the format `namespace.key`, will be returned in the same format. """ keys: [String!] """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. """ namespace: String """Reverse the order of the underlying list.""" reverse: Boolean = false ): MetafieldConnection! """The name of the market. Not shown to customers.""" name: String! """ The market’s price list, which specifies a percentage-based price adjustment as well as fixed price overrides for specific variants. Markets with multiple catalogs can have multiple price lists. To query which price lists are connected to a market, please query for price lists through the catalogs connection. """ priceList: PriceList @deprecated(reason: "Use `catalogs` instead.") """Whether the market is the shop’s primary market.""" primary: Boolean! @deprecated(reason: "This field is deprecated and will be removed in the future.") """The regions that comprise the market.""" regions( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): MarketRegionConnection! @deprecated(reason: "This field is deprecated and will be removed in the future. Use `conditions.regionConditions` instead.") """ The market’s web presence, which defines its SEO strategy. This can be a different domain, subdomain, or subfolders of the primary domain. Each web presence comprises one or more language variants. If a market doesn't have its own web presence, then the market is accessible on the primary market's domains using [country selectors](https://shopify.dev/themes/internationalization/multiple-currencies-languages#the-country-selector). If it's the primary market and it has multiple web presences, then this field will return the primary domain web presence. """ webPresence: MarketWebPresence @deprecated(reason: "Use `webPresences` instead.") """ The market’s web presences, which defines its SEO strategy. This can be a different domain, subdomain, or subfolders of the primary domain. Each web presence comprises one or more language variants. If a market doesn't have any web presences, then the market is accessible on the primary market's domains using [country selectors](https://shopify.dev/themes/internationalization/multiple-currencies-languages#the-country-selector). """ webPresences( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): MarketWebPresenceConnection! } """An auto-generated type for paginating through multiple MarketCatalogs.""" type MarketCatalogConnection { edges: [MarketCatalogEdge!]! """ A list of nodes that are contained in MarketCatalogEdge. 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: [MarketCatalog!]! """ 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 MarketCatalog and a cursor during pagination. """ type MarketCatalogEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of MarketCatalogEdge.""" node: MarketCatalog! } """ A list of products with publishing and pricing information associated with markets. """ type MarketCatalog implements Catalog & Node { """A globally-unique ID.""" id: ID! """The markets associated with the catalog.""" markets( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): MarketConnection! """Most recent catalog operations.""" operations: [ResourceOperation!]! """The price list associated with the catalog.""" priceList: PriceList """A group of products and collections that's published to a catalog.""" publication: Publication """The status of the catalog.""" status: CatalogStatus! """The name of the catalog.""" title: String! } """An auto-generated type for paginating through multiple Markets.""" type MarketConnection { edges: [MarketEdge!]! """ A list of nodes that are contained in MarketEdge. 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: [Market!]! """ 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 Market and a cursor during pagination. """ type MarketEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of MarketEdge.""" node: Market! } """Represents a merchandising background operation interface.""" interface ResourceOperation { """A globally-unique ID.""" id: ID! """ The count of processed rows, summing imported, failed, and skipped rows. """ processedRowCount: Int """Represents a rows objects within this background operation.""" rowCount: RowCount """The status of this operation.""" status: ResourceOperationStatus! } """A row count represents rows on background operation.""" type RowCount { """Estimated number of rows contained within this background operation.""" count: Int! """Whether the operation exceeds max number of reportable rows.""" exceedsMax: Boolean! } """Represents the state of this catalog operation.""" enum ResourceOperationStatus { """Operation is currently running.""" ACTIVE """Operation is complete.""" COMPLETE """Operation has been created.""" CREATED } """ Represents a price list, including information about related prices and eligibility rules. You can use price lists to specify either fixed prices or adjusted relative prices that override initial product variant prices. Price lists are applied to customers using context rules, which determine price list eligibility. For more information on price lists, refer to [Support different pricing models](https://shopify.dev/apps/internationalization/product-price-lists). """ type PriceList implements Node { """The catalog that the price list is associated with.""" catalog: Catalog """The currency for fixed prices associated with this price list.""" currency: CurrencyCode! """The number of fixed prices on the price list.""" fixedPricesCount: Int! """A globally-unique ID.""" id: ID! """ The unique name of the price list, used as a human-readable identifier. """ name: String! """Relative adjustments to other prices.""" parent: PriceListParent """A list of prices associated with the price list.""" prices( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ The origin of this price, either fixed (defined on the price list) or relative (calculated using an adjustment via a price list parent configuration). """ originType: PriceListPriceOriginType """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | product_id | id | | variant_id | id | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false ): PriceListPriceConnection! """ A list of quantity rules associated with the price list, ordered by product variants. """ quantityRules( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ Whether the quantity rule is fixed (defined on the price list) or relative (the default quantity rule for the shop). """ originType: QuantityRuleOriginType """Reverse the order of the underlying list.""" reverse: Boolean = false ): QuantityRuleConnection! } """ A list of products with publishing and pricing information. A catalog can be associated with a specific context, such as a [`Market`](https://shopify.dev/api/admin-graphql/current/objects/market), [`CompanyLocation`](https://shopify.dev/api/admin-graphql/current/objects/companylocation), or [`App`](https://shopify.dev/api/admin-graphql/current/objects/app). """ interface Catalog { """A globally-unique ID.""" id: ID! """Most recent catalog operations.""" operations: [ResourceOperation!]! """The price list associated with the catalog.""" priceList: PriceList """A group of products and collections that's published to a catalog.""" publication: Publication """The status of the catalog.""" status: CatalogStatus! """The name of the catalog.""" title: String! } """ A publication is a group of products and collections that is published to an app. """ type Publication implements Node { """The app associated with the publication.""" app: App! @deprecated(reason: "Use [AppCatalog.apps](https://shopify.dev/api/admin-graphql/unstable/objects/AppCatalog#connection-appcatalog-apps) instead.") """Whether new products are automatically published to this publication.""" autoPublish: Boolean! """The catalog associated with the publication.""" catalog: Catalog """ The collection publications for the list of collections published to the publication. """ collectionPublicationsV3( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): ResourcePublicationConnection! """The list of collections published to the publication.""" collections( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): CollectionConnection! """Whether the collection is available to the publication.""" hasCollection( """Collection ID to check.""" id: ID! ): Boolean! """A globally-unique ID.""" id: ID! """Name of the publication.""" name: String! @deprecated(reason: "Use [Catalog.title](https://shopify.dev/api/admin-graphql/unstable/interfaces/Catalog#field-catalog-title) instead.") """A background operation associated with this publication.""" operation: PublicationOperation """ The product publications for the list of products published to the publication. """ productPublicationsV3( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): ResourcePublicationConnection! """The list of products published to the publication.""" products( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): ProductConnection! """Whether the publication supports future publishing.""" supportsFuturePublishing: Boolean! } """ An auto-generated type for paginating through multiple ResourcePublications. """ type ResourcePublicationConnection { edges: [ResourcePublicationEdge!]! """ A list of nodes that are contained in ResourcePublicationEdge. 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: [ResourcePublication!]! """ 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 ResourcePublication and a cursor during pagination. """ type ResourcePublicationEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of ResourcePublicationEdge.""" node: ResourcePublication! } """ A resource publication represents information about the publication of a resource. An instance of `ResourcePublication`, unlike `ResourcePublicationV2`, can be neither published or scheduled to be published. See [ResourcePublicationV2](/api/admin-graphql/latest/objects/ResourcePublicationV2) for more context. """ type ResourcePublication { """The channel the resource publication is published to.""" channel: Channel! @deprecated(reason: "Use `publication` instead.") """ Whether the resource publication is published. Also returns true if the resource publication is scheduled to be published. If false, then the resource publication is neither published nor scheduled to be published. """ isPublished: Boolean! """The publication the resource publication is published to.""" publication: Publication! """ The date that the resource publication was or is going to be published to the publication. If the product isn't published, then this field returns an epoch timestamp. """ publishDate: DateTime! """The resource published to the publication.""" publishable: Publishable! } """ A channel represents an app where you sell a group of products and collections. A channel can be a platform or marketplace such as Facebook or Pinterest, an online store, or POS. """ type Channel implements Node { """The underlying app used by the channel.""" app: App! """ The collection publications for the list of collections published to the channel. """ collectionPublicationsV3( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): ResourcePublicationConnection! """The list of collections published to the channel.""" collections( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): CollectionConnection! """The unique identifier for the channel.""" handle: String! @deprecated(reason: "Use `id` instead.") """Whether the collection is available to the channel.""" hasCollection( """The collection ID to check.""" id: ID! ): Boolean! """A globally-unique ID.""" id: ID! """The name of the channel.""" name: String! """ The menu items for the channel, which also appear as submenu items in the left navigation sidebar in the Shopify admin. """ navigationItems: [NavigationItem!]! @deprecated(reason: "Use [AppInstallation.navigationItems](\n https://shopify.dev/api/admin-graphql/current/objects/AppInstallation#field-appinstallation-navigationitems) instead.") """Home page for the channel.""" overviewPath: URL @deprecated(reason: "Use [AppInstallation.launchUrl](\n https://shopify.dev/api/admin-graphql/current/objects/AppInstallation#field-appinstallation-launchurl) instead.") """The product publications for the products published to the channel.""" productPublications( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): ProductPublicationConnection! @deprecated(reason: "Use `productPublicationsV3` instead.") """ The product publications for the list of products published to the channel. """ productPublicationsV3( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): ResourcePublicationConnection! """The list of products published to the channel.""" products( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): ProductConnection! """ The count of products published to the channel. Limited to a maximum of 10000. """ productsCount( """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | barcode | string | Filter by the product variant [`barcode`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-barcode) field. | | | - `barcode:ABC-abc-1234` | | bundles | boolean | Filter by a [product bundle](https://shopify.dev/docs/apps/build/product-merchandising/bundles). A product bundle is a set of two or more related products, which are commonly offered at a discount. | | | - `bundles:true` | | category_id | string | Filter by the product [category ID](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-category) (`product.category.id`). A product category is the category of a product from [Shopify's Standard Product Taxonomy](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17). | | | - `category_id:sg-4-17-2-17` | | collection_id | id | Filter by the collection [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Collection#field-id) field. | | | - `collection_id:108179161409` | | combined_listing_role | string | Filter by the role of the product in a [combined listing](https://shopify.dev/apps/build/product-merchandising/combined-listings). | - `parent`
- `child`
- `no_role` | | - `combined_listing_role:parent` | | created_at | time | Filter by the date and time when the product was created. | | | - `created_at:>'2020-10-21T23:39:20Z'`
- `created_at: - `created_at:<='2024'` | | delivery_profile_id | id | Filter by the delivery profile [`id`](https://shopify.dev/api/admin-graphql/latest/objects/DeliveryProfile#field-id) field. | | | - `delivery_profile_id:108179161409` | | error_feedback | string | Filter by products with publishing errors. | | gift_card | boolean | Filter by the product [`isGiftCard`](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-isgiftcard) field. | | | - `gift_card:true` | | handle | string | Filter by a comma-separated list of product [handles](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-handle). | | | - `handle:the-minimal-snowboard` | | has_only_composites | boolean | Filter by products that have only composite variants. | | | - `has_only_composites:true` | | has_only_default_variant | boolean | Filter by products that have only a default variant. A default variant is the only variant if no other variants are specified. | | | - `has_only_default_variant:true` | | has_variant_with_components | boolean | Filter by products that have variants with associated components. | | | - `has_variant_with_components:true` | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | inventory_total | integer | Filter by inventory count. | | | - `inventory_total:0`
- `inventory_total:>150`
- `inventory_total:>=200` | | is_price_reduced | boolean | Filter by products that have a reduced price. For more information, refer to the [`CollectionRule`](https://shopify.dev/api/admin-graphql/latest/objects/CollectionRule) object. | | | - `is_price_reduced:true` | | out_of_stock_somewhere | boolean | Filter by products that are out of stock in at least one location. | | | - `out_of_stock_somewhere:true` | | price | bigdecimal | Filter by the product variant [`price`](https://shopify.dev/api/admin-graphql/latest/objects/Productvariant#field-price) field. | | | - `price:100.57` | | product_configuration_owner | string | Filter by the app [`id`](https://shopify.dev/api/admin-graphql/latest/objects/App#field-id) field. | | | - `product_configuration_owner:10001` | | product_publication_status | string | Filter by the publishable status of the resource on a channel, such as the online store. The value is a composite of the [channel `app` ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) (`Channel.app.id`) and one of the valid values. | - `approved`
- `rejected`
- `needs_action`
- `awaiting_review`
- `published`
- `demoted`
- `scheduled`
- `provisionally_published` | | - `publishable_status:189769876-approved` | | product_type | string | Filter by a comma-separated list of [product types](https://help.shopify.com/manual/products/details/product-type). | | | - `product_type:snowboard` | | publication_ids | string | Filter by a comma-separated list of publication IDs that are associated with the product. | | | - `publication_ids:184111530305,184111694145` | | publishable_status | string | Filter by the publishable status of the resource on a channel, such as the online store. The value is a composite of either the [channel `app` ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) (`Channel.app.id`) or [channel `name`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Channel#field-name) and one of the valid values. | - `online_store_channel`
- `published`
- `unpublished`
- `visible`
- `unavailable`
- `hidden`
- `intended`
- `visible` | | - `publishable_status:published`
- `publishable_status:189769876:visible`
- `publishable_status:pos:hidden` | | published_at | time | Filter by the date and time when the product was published to the online store and other sales channels. | | | - `published_at:>2020-10-21T23:39:20Z`
- `published_at: - `published_at:<=2024` | | published_status | string | Filter by the published status of the resource on a channel, such as the online store. | - `unset`
- `pending`
- `approved`
- `not approved` | | - `published_status:approved` | | sku | string | Filter by the product variant [`sku`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-sku) field. [Learn more about SKUs](https://help.shopify.com/manual/products/details/sku). | | | - `sku:XYZ-12345` | | status | string | Filter by a comma-separated list of statuses. You can use statuses to manage inventory. Shopify only displays products with an `ACTIVE` status in online stores, sales channels, and apps. | - `ACTIVE`
- `ARCHIVED`
- `DRAFT` | `ACTIVE` | - `status:ACTIVE,DRAFT` | | tag | string | Filter objects by the `tag` field. | | | - `tag:my_tag` | | tag_not | string | Filter by objects that don’t have the specified tag. | | | - `tag_not:my_tag` | | title | string | Filter by the product [`title`](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-title) field. | | | - `title:The Minimal Snowboard` | | updated_at | time | Filter by the date and time when the product was last updated. | | | - `updated_at:>'2020-10-21T23:39:20Z'`
- `updated_at: - `updated_at:<='2024'` | | variant_id | id | Filter by the product variant [`id`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-id) field. | | | - `variant_id:45779434701121` | | variant_title | string | Filter by the product variant [`title`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-title) field. | | | - `variant_title:'Special ski wax'` | | vendor | string | Filter by the origin or source of the product. Learn more about [vendors and managing vendor information](https://help.shopify.com/manual/products/managing-vendor-info). | | | - `vendor:Snowdevil`
- `vendor:Snowdevil OR vendor:Icedevil` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String ): Count """Whether the channel supports future publishing.""" supportsFuturePublishing: Boolean! } """An auto-generated type for paginating through multiple Collections.""" type CollectionConnection { edges: [CollectionEdge!]! """ A list of nodes that are contained in CollectionEdge. 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: [Collection!]! """ 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 Collection and a cursor during pagination. """ type CollectionEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of CollectionEdge.""" node: Collection! } """A navigation item, holding basic link attributes.""" type NavigationItem { """The unique identifier of the navigation item.""" id: String! """The name of the navigation item.""" title: String! """The URL of the page that the navigation item links to.""" url: URL! } """ An auto-generated type for paginating through multiple ProductPublications. """ type ProductPublicationConnection { edges: [ProductPublicationEdge!]! """ A list of nodes that are contained in ProductPublicationEdge. 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: [ProductPublication!]! """ 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 ProductPublication and a cursor during pagination. """ type ProductPublicationEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of ProductPublicationEdge.""" node: ProductPublication! } """Represents the channels where a product is published.""" type ProductPublication { """The channel where the product was or is published.""" channel: Channel! """Whether the publication is published or not.""" isPublished: Boolean! """The product that was or is going to be published on the channel.""" product: Product! """ The date that the product was or is going to be published on the channel. """ publishDate: DateTime } """ The `Product` object lets you manage products in a merchant’s store. Products are the goods and services that merchants offer to customers. They can include various details such as title, description, price, images, and options such as size or color. You can use [product variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/productvariant) to create or update different versions of the same product. You can also add or update product [media](https://shopify.dev/docs/api/admin-graphql/latest/interfaces/media). Products can be organized by grouping them into a [collection](https://shopify.dev/docs/api/admin-graphql/latest/objects/collection). Learn more about working with [Shopify's product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/product-model-components), including limitations and considerations. """ type Product implements HasEvents & HasMetafieldDefinitions & HasMetafields & HasPublishedTranslations & LegacyInteroperability & Navigable & Node & OnlineStorePreviewable & Publishable { """ The number of [publications](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication) that a resource is published to, without [feedback errors](https://shopify.dev/docs/api/admin-graphql/latest/objects/ResourceFeedback). """ availablePublicationsCount: Count """ The description of the product, with HTML tags. For example, the description might include bold `` and italic `` text. """ bodyHtml: String @deprecated(reason: "Use `descriptionHtml` instead.") """ A list of [components](https://shopify.dev/docs/apps/build/product-merchandising/bundles/add-product-fixed-bundle) that are associated with a product in a bundle. """ bundleComponents( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): ProductBundleComponentConnection! """ The category of a product from [Shopify's Standard Product Taxonomy](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17). """ category: TaxonomyCategory """ A list of [collections](https://shopify.dev/docs/api/admin-graphql/latest/objects/Collection) that include the product. """ collections( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | collection_type | string | | - `custom`
- `smart` | | handle | string | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | product_id | id | Filter by collections containing a product by its ID. | | product_publication_status | string | Filter by the publishable status of the resource on a channel, such as the online store. The value is a composite of the [channel `app` ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) (`Channel.app.id`) and one of the valid values. | - `approved`
- `rejected`
- `needs_action`
- `awaiting_review`
- `published`
- `demoted`
- `scheduled`
- `provisionally_published` | | - `publishable_status:189769876-approved` | | publishable_status | string | Filter by the publishable status of the resource on a channel, such as the online store. The value is a composite of either the [channel `app` ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) (`Channel.app.id`) or [channel `name`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Channel#field-name) and one of the valid values. | - `online_store_channel`
- `published`
- `unpublished`
- `visible`
- `unavailable`
- `hidden`
- `intended`
- `visible` | | - `publishable_status:published`
- `publishable_status:189769876:visible`
- `publishable_status:pos:hidden` | | published_at | time | Filter by the date and time when the collection was published to the Online Store. | | published_status | string | Filter by the published status of the resource on a channel, such as the online store. | - `unset`
- `pending`
- `approved`
- `not approved` | | - `published_status:approved` | | title | string | | updated_at | time | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: CollectionSortKeys = ID ): CollectionConnection! """ A special product type that combines separate products from a store into a single product listing. [Combined listings](https://shopify.dev/apps/build/product-merchandising/combined-listings) are connected by a shared option, such as color, model, or dimension. """ combinedListing: CombinedListing """ The [role of the product](https://shopify.dev/docs/apps/build/product-merchandising/combined-listings/build-for-combined-listings) in a combined listing. If `null`, then the product isn't part of any combined listing. """ combinedListingRole: CombinedListingsRole """ The [compare-at price range](https://help.shopify.com/manual/products/details/product-pricing/sale-pricing) of the product in the shop's default currency. """ compareAtPriceRange: ProductCompareAtPriceRange """ The pricing that applies to a customer in a specific context. For example, a price might vary depending on the customer's location. As of API version 2025-04, only active markets are considered in the price resolution. """ contextualPricing( """The context used to generate contextual pricing for the variant.""" context: ContextualPricingContext! ): ProductContextualPricing! """The date and time when the product was created.""" createdAt: DateTime! """The custom product type specified by the merchant.""" customProductType: String @deprecated(reason: "Deprecated in API version 2022-10. Use `productType` instead.") """ A default [cursor](https://shopify.dev/api/usage/pagination-graphql) that returns the single next record, sorted ascending by ID. """ defaultCursor: String! """ A single-line description of the product, with [HTML tags](https://developer.mozilla.org/en-US/docs/Web/HTML) removed. """ description( """Truncates a string after the given length.""" truncateAt: Int ): String! """ The description of the product, with HTML tags. For example, the description might include bold `` and italic `` text. """ descriptionHtml: HTML! """ Stripped description of the product, single line with HTML tags removed. Truncated to 60 characters. """ descriptionPlainSummary: String! @deprecated(reason: "Use `description` instead.") """The paginated list of events associated with the host subject.""" events( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | action | string | The action that occured. | | | - `action:create` | | comments | boolean | Whether or not to include [comment-events](https://shopify.dev/api/admin-graphql/latest/objects/CommentEvent) in your search, passing `false` will exclude comment-events, any other value will include comment-events. | | | - `false`
- `true` | | created_at | time | Filter by the date and time when the event happened. | | | - `created_at:>2020-10-21`
- `created_at: - `id:>=1234`
- `id:<=1234` | | subject_type | string | The resource type affected by this event, See [EventSubjectType](https://shopify.dev/api/admin-graphql/latest/enums/EventSubjectType) for possible values. | | | - `COMPANY` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: EventSortKeys = ID ): EventConnection! """The featured image for the product.""" featuredImage: Image @deprecated(reason: "Use `featuredMedia` instead.") """ The featured [media](https://shopify.dev/docs/apps/build/online-store/product-media) associated with the product. """ featuredMedia: Media """ The information that lets merchants know what steps they need to take to make sure that the app is set up correctly. For example, if a merchant hasn't set up a product correctly in the app, then the feedback might include a message that says "You need to add a price to this product". """ feedback: ResourceFeedback """ The [theme template](https://shopify.dev/docs/storefronts/themes/architecture/templates) that's used when customers view the gift card in a store. """ giftCardTemplateSuffix: String """ A unique, human-readable string of the product's title. A handle can contain letters, hyphens (`-`), and numbers, but no spaces. The handle is used in the online store URL for the product. """ handle: String! """ Whether the product has only a single variant with the default option and value. """ hasOnlyDefaultVariant: Boolean! """Whether the product has variants that are out of stock.""" hasOutOfStockVariants: Boolean! """ Whether at least one of the product variants requires [bundle components](https://shopify.dev/docs/apps/build/product-merchandising/bundles/add-product-fixed-bundle). Learn more about [store eligibility for bundles](https://shopify.dev/docs/apps/build/product-merchandising/bundles#store-eligibility). """ hasVariantsThatRequiresComponents: Boolean! """A globally-unique ID.""" id: ID! """The images associated with the product.""" images( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: ProductImageSortKeys = POSITION ): ImageConnection! @deprecated(reason: "Use `media` instead.") """ Whether the product is in a specified [collection](https://shopify.dev/docs/api/admin-graphql/latest/objects/collection). """ inCollection( """ The ID of the collection to check. For example, `id: "gid://shopify/Collection/123"`. """ id: ID! ): Boolean! """Whether the product is a gift card.""" isGiftCard: Boolean! """The ID of the corresponding resource in the REST Admin API.""" legacyResourceId: UnsignedInt64! """ The [media](https://shopify.dev/docs/apps/build/online-store/product-media) associated with the product. Valid media are images, 3D models, videos. """ media( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | media_type | string | | - `IMAGE`
- `VIDEO`
- `MODEL_3D`
- `EXTERNAL_VIDEO` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: ProductMediaSortKeys = POSITION ): MediaConnection! """ The total count of [media](https://shopify.dev/docs/apps/build/online-store/product-media) that's associated with a product. """ mediaCount: Count """ 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( """The key for the metafield.""" key: String! """ The container the metafield belongs to. If omitted, the app-reserved namespace will be used. """ namespace: String ): Metafield """List of metafield definitions.""" metafieldDefinitions( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Filter metafield definitions by namespace.""" namespace: String """Filter by the definition's pinned status.""" pinnedStatus: MetafieldDefinitionPinnedStatus = ANY """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | created_at | time | Filter by the date and time when the metafield definition was created. | | | - `created_at:>2020-10-21T23:39:20Z`
- `created_at: - `created_at:<=2024` | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | key | string | Filter by the metafield definition [`key`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-key) field. | | | - `key:some-key` | | namespace | string | Filter by the metafield definition [`namespace`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-namespace) field. | | | - `namespace:some-namespace` | | owner_type | string | Filter by the metafield definition [`ownerType`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-ownertype) field. | | | - `owner_type:PRODUCT` | | type | string | Filter by the metafield definition [`type`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-type) field. | | | - `type:single_line_text_field` | | updated_at | time | Filter by the date and time when the metafield definition was last updated. | | | - `updated_at:>2020-10-21T23:39:20Z`
- `updated_at: - `updated_at:<=2024` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: MetafieldDefinitionSortKeys = ID ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use the root `metafieldDefinitions` field instead.") """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. """ metafields( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ List of keys of metafields in the format `namespace.key`, will be returned in the same format. """ keys: [String!] """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. """ namespace: String """Reverse the order of the underlying list.""" reverse: Boolean = false ): MetafieldConnection! """ The [preview URL](https://help.shopify.com/manual/online-store/setting-up#preview-your-store) for the online store. """ onlineStorePreviewUrl: URL """ The product's URL on the online store. If `null`, then the product isn't published to the online store sales channel. """ onlineStoreUrl: URL """ A list of product options. The limit is defined by the [shop's resource limits for product options](https://shopify.dev/docs/api/admin-graphql/latest/objects/Shop#field-resourcelimits) (`Shop.resourceLimits.maxProductOptions`). """ options( """Truncate the array result to this size.""" first: Int ): [ProductOption!]! """The price range of the product.""" priceRange: ProductPriceRange! @deprecated(reason: "Deprecated in API version 2020-10. Use `priceRangeV2` instead.") """ The minimum and maximum prices of a product, expressed in decimal numbers. For example, if the product is priced between $10.00 and $50.00, then the price range is $10.00 - $50.00. """ priceRangeV2: ProductPriceRangeV2! """The product category specified by the merchant.""" productCategory: ProductCategory @deprecated(reason: "Deprecated in API version 2024-04. Use `category` instead.") """A list of the channels where the product is published.""" productPublications( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): ProductPublicationConnection! @deprecated(reason: "Use `resourcePublications` instead.") """ The [product type](https://help.shopify.com/manual/products/details/product-type) that merchants define. """ productType: String! """ The number of [publications](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication) that a resource is published to, without [feedback errors](https://shopify.dev/docs/api/admin-graphql/latest/objects/ResourceFeedback). """ publicationCount( """ Include only the resource's publications that are published. If false, then return all the resource's publications including future publications. """ onlyPublished: Boolean = true ): Int! @deprecated(reason: "Use `resourcePublicationsCount` instead.") """A list of the channels where the product is published.""" publications( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ Return only the publications that are published. If false, then return all publications. """ onlyPublished: Boolean = true """Reverse the order of the underlying list.""" reverse: Boolean = false ): ProductPublicationConnection! @deprecated(reason: "Use `resourcePublications` instead.") """The date and time when the product was published to the online store.""" publishedAt: DateTime """ Whether the product is published for a customer only in a specified context. For example, a product might be published for a customer only in a specific location. """ publishedInContext( """The context used to determine publication status.""" context: ContextualPublicationContext! ): Boolean! """Whether the resource is published to a specific channel.""" publishedOnChannel( """The ID of the channel to check.""" channelId: ID! ): Boolean! @deprecated(reason: "Use `publishedOnPublication` instead.") """ Whether the resource is published to a [channel](https://shopify.dev/docs/api/admin-graphql/latest/objects/Channel). For example, the resource might be published to the online store channel. """ publishedOnCurrentChannel: Boolean! @deprecated(reason: "Use `publishedOnCurrentPublication` instead.") """ Whether the resource is published to the app's [publication](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication). For example, the resource might be published to the app's online store channel. """ publishedOnCurrentPublication: Boolean! """ Whether the resource is published to a specified [publication](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication). """ publishedOnPublication( """ The ID of the publication to check. For example, `id: "gid://shopify/Publication/123"`. """ publicationId: ID! ): Boolean! """ Whether the product can only be purchased with a [selling plan](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/selling-plans). Products that are sold on subscription (`requiresSellingPlan: true`) can be updated only for online stores. If you update a product to be subscription-only (`requiresSellingPlan:false`), then the product is unpublished from all channels, except the online store. """ requiresSellingPlan: Boolean! """ The resource that's either published or staged to be published to the [publication](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication). """ resourcePublicationOnCurrentPublication: ResourcePublicationV2 """ The list of resources that are published to a [publication](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication). """ resourcePublications( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ Whether to return only the resources that are currently published. If false, then also returns the resources that are scheduled to be published. """ onlyPublished: Boolean = true """Reverse the order of the underlying list.""" reverse: Boolean = false ): ResourcePublicationConnection! """ The number of [publications](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication) that a resource is published to, without [feedback errors](https://shopify.dev/docs/api/admin-graphql/latest/objects/ResourceFeedback). """ resourcePublicationsCount( """ Include only the resource's publications that are published. If false, then return all the resource's publications including future publications. """ onlyPublished: Boolean = true ): Count """ The list of resources that are either published or staged to be published to a [publication](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication). """ resourcePublicationsV2( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """Filter publications by catalog type.""" catalogType: CatalogType """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ Whether to return only the resources that are currently published. If false, then also returns the resources that are scheduled or staged to be published. """ onlyPublished: Boolean = true """Reverse the order of the underlying list.""" reverse: Boolean = false ): ResourcePublicationV2Connection! """ Whether the merchant can make changes to the product when they [edit the order](https://shopify.dev/docs/apps/build/orders-fulfillment/order-management-apps/edit-orders) associated with the product. For example, a merchant might be restricted from changing product details when they edit an order. """ restrictedForResource( """The resource Id of the order with edits applied but not saved.""" calculatedOrderId: ID! ): RestrictedForResource """ A count of [selling plan groups](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/selling-plans/build-a-selling-plan) that are associated with the product. """ sellingPlanGroupCount: Int! @deprecated(reason: "Use `sellingPlanGroupsCount` instead.") """ A list of all [selling plan groups](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/selling-plans/build-a-selling-plan) that are associated with the product either directly, or through the product's variants. """ sellingPlanGroups( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): SellingPlanGroupConnection! """ A count of [selling plan groups](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/selling-plans/build-a-selling-plan) that are associated with the product. """ sellingPlanGroupsCount: Count """ The [SEO title and description](https://help.shopify.com/manual/promoting-marketing/seo/adding-keywords) that are associated with a product. """ seo: SEO! """The standardized product type in the Shopify product taxonomy.""" standardizedProductType: StandardizedProductType @deprecated(reason: "Deprecated in API version 2022-10. Use `productCategory` instead.") """ The [product status](https://help.shopify.com/manual/products/details/product-details-page#product-status), which controls visibility across all sales channels. """ status: ProductStatus! """ The Storefront GraphQL API ID of the `Product`. As of the `2022-04` version release, the Storefront GraphQL API will no longer return Base64 encoded IDs to match the behavior of the Admin GraphQL API. Therefore, you can safely use the `id` field's value instead. """ storefrontId: StorefrontID! @deprecated(reason: "Use `id` instead.") """ A comma-separated list of searchable keywords that are associated with the product. For example, a merchant might apply the `sports` and `summer` tags to products that are associated with sportwear for summer. Updating `tags` overwrites any existing tags that were previously added to the product. To add new tags without overwriting existing tags, use the [`tagsAdd`](https://shopify.dev/api/admin-graphql/latest/mutations/tagsadd) mutation. """ tags: [String!]! """ The [theme template](https://shopify.dev/docs/storefronts/themes/architecture/templates) that's used when customers view the product in a store. """ templateSuffix: String """ The name for the product that displays to customers. The title is used to construct the product's handle. For example, if a product is titled "Black Sunglasses", then the handle is `black-sunglasses`. """ title: String! """The quantity of inventory that's in stock.""" totalInventory: Int! """ The number of [variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) that are associated with the product. """ totalVariants: Int! @deprecated(reason: "Use `variantsCount` instead.") """ Whether [inventory tracking](https://help.shopify.com/manual/products/inventory/getting-started-with-inventory/set-up-inventory-tracking) has been enabled for the product. """ tracksInventory: Boolean! """The published translations associated with the resource.""" translations( """Filters translations locale.""" locale: String! """ Filters translations by market ID. Use this argument to retrieve content specific to a market. """ marketId: ID ): [Translation!]! """The list of channels that the resource is not published to.""" unpublishedChannels( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): ChannelConnection! @deprecated(reason: "Use `unpublishedPublications` instead.") """ The list of [publications](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication) that the resource isn't published to. """ unpublishedPublications( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): PublicationConnection! """ The date and time when the product was last modified. A product's `updatedAt` value can change for different reasons. For example, if an order is placed for a product that has inventory tracking set up, then the inventory adjustment is counted as an update. """ updatedAt: DateTime! """ A list of [variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) associated with the product. If querying a single product at the root, you can fetch up to 2000 variants. """ variants( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: ProductVariantSortKeys = POSITION ): ProductVariantConnection! """ The number of [variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/ProductVariant) that are associated with the product. """ variantsCount: Count """The name of the product's vendor.""" vendor: String! } """ An auto-generated type for paginating through multiple ProductBundleComponents. """ type ProductBundleComponentConnection { edges: [ProductBundleComponentEdge!]! """ A list of nodes that are contained in ProductBundleComponentEdge. 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: [ProductBundleComponent!]! """ 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 ProductBundleComponent and a cursor during pagination. """ type ProductBundleComponentEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of ProductBundleComponentEdge.""" node: ProductBundleComponent! } """The product's component information.""" type ProductBundleComponent { """The product that's related as a component.""" componentProduct: Product! """The list of products' variants that are components.""" componentVariants( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): ProductVariantConnection! """The number of component variants for the product component.""" componentVariantsCount: Count """ The options in the parent and the component options they're connected to, along with the chosen option values that appear in the bundle. """ optionSelections: [ProductBundleComponentOptionSelection!]! """ The quantity of the component product set for this bundle line. It will be null if there's a quantityOption present. """ quantity: Int """ The quantity as option of the component product. It will be null if there's a quantity set. """ quantityOption: ProductBundleComponentQuantityOption } """ An auto-generated type for paginating through multiple ProductVariants. """ type ProductVariantConnection { edges: [ProductVariantEdge!]! """ A list of nodes that are contained in ProductVariantEdge. 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: [ProductVariant!]! """ 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 ProductVariant and a cursor during pagination. """ type ProductVariantEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of ProductVariantEdge.""" node: ProductVariant! } """Represents a product variant.""" type ProductVariant implements HasEvents & HasMetafieldDefinitions & HasMetafields & HasPublishedTranslations & LegacyInteroperability & Navigable & Node & Publishable { """Whether the product variant is available for sale.""" availableForSale: Boolean! """ The number of [publications](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication) that a resource is published to, without [feedback errors](https://shopify.dev/docs/api/admin-graphql/latest/objects/ResourceFeedback). """ availablePublicationsCount: Count """The value of the barcode associated with the product.""" barcode: String """The compare-at price of the variant in the default shop currency.""" compareAtPrice: Money """ The pricing that applies for a customer in a given context. As of API version 2025-04, only active markets are considered in the price resolution. """ contextualPricing( """The context used to generate contextual pricing for the variant.""" context: ContextualPricingContext! ): ProductVariantContextualPricing! """The date and time when the variant was created.""" createdAt: DateTime! """ A default [cursor](https://shopify.dev/api/usage/pagination-graphql) that returns the single next record, sorted ascending by ID. """ defaultCursor: String! """ The [delivery profile](https://shopify.dev/api/admin-graphql/latest/objects/DeliveryProfile) for the variant. """ deliveryProfile: DeliveryProfile """ Display name of the variant, based on product's title + variant's title. """ displayName: String! """The paginated list of events associated with the host subject.""" events( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | action | string | The action that occured. | | | - `action:create` | | comments | boolean | Whether or not to include [comment-events](https://shopify.dev/api/admin-graphql/latest/objects/CommentEvent) in your search, passing `false` will exclude comment-events, any other value will include comment-events. | | | - `false`
- `true` | | created_at | time | Filter by the date and time when the event happened. | | | - `created_at:>2020-10-21`
- `created_at: - `id:>=1234`
- `id:<=1234` | | subject_type | string | The resource type affected by this event, See [EventSubjectType](https://shopify.dev/api/admin-graphql/latest/enums/EventSubjectType) for possible values. | | | - `COMPANY` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: EventSortKeys = ID ): EventConnection! """A globally-unique ID.""" id: ID! """The featured image for the variant.""" image: Image """The inventory item, which is used to query for inventory information.""" inventoryItem: InventoryItem! """ Whether customers are allowed to place an order for the product variant when it's out of stock. """ inventoryPolicy: ProductVariantInventoryPolicy! """The total sellable quantity of the variant.""" inventoryQuantity: Int """The ID of the corresponding resource in the REST Admin API.""" legacyResourceId: UnsignedInt64! """The media associated with the product variant.""" media( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): MediaConnection! """ A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. """ metafield( """The key for the metafield.""" key: String! """ The container the metafield belongs to. If omitted, the app-reserved namespace will be used. """ namespace: String ): Metafield """List of metafield definitions.""" metafieldDefinitions( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Filter metafield definitions by namespace.""" namespace: String """Filter by the definition's pinned status.""" pinnedStatus: MetafieldDefinitionPinnedStatus = ANY """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | created_at | time | Filter by the date and time when the metafield definition was created. | | | - `created_at:>2020-10-21T23:39:20Z`
- `created_at: - `created_at:<=2024` | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | key | string | Filter by the metafield definition [`key`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-key) field. | | | - `key:some-key` | | namespace | string | Filter by the metafield definition [`namespace`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-namespace) field. | | | - `namespace:some-namespace` | | owner_type | string | Filter by the metafield definition [`ownerType`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-ownertype) field. | | | - `owner_type:PRODUCT` | | type | string | Filter by the metafield definition [`type`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-type) field. | | | - `type:single_line_text_field` | | updated_at | time | Filter by the date and time when the metafield definition was last updated. | | | - `updated_at:>2020-10-21T23:39:20Z`
- `updated_at: - `updated_at:<=2024` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: MetafieldDefinitionSortKeys = ID ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use the root `metafieldDefinitions` field instead.") """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. """ metafields( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ List of keys of metafields in the format `namespace.key`, will be returned in the same format. """ keys: [String!] """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. """ namespace: String """Reverse the order of the underlying list.""" reverse: Boolean = false ): MetafieldConnection! """ The order of the product variant in the list of product variants. The first position in the list is 1. """ position: Int! """ List of prices and compare-at prices in the presentment currencies for this shop. """ presentmentPrices( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """The presentment currencies prices should return in.""" presentmentCurrencies: [CurrencyCode!] """Reverse the order of the underlying list.""" reverse: Boolean = false ): ProductVariantPricePairConnection! @deprecated(reason: "Use `contextualPricing` instead.") """The price of the product variant in the default shop currency.""" price: Money! """The product that this variant belongs to.""" product: Product! """A list of the product variant components.""" productVariantComponents( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): ProductVariantComponentConnection! """ The number of [publications](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication) that a resource is published to, without [feedback errors](https://shopify.dev/docs/api/admin-graphql/latest/objects/ResourceFeedback). """ publicationCount( """ Include only the resource's publications that are published. If false, then return all the resource's publications including future publications. """ onlyPublished: Boolean = true ): Int! @deprecated(reason: "Use `resourcePublicationsCount` instead.") """Whether the resource is published to a specific channel.""" publishedOnChannel( """The ID of the channel to check.""" channelId: ID! ): Boolean! @deprecated(reason: "Use `publishedOnPublication` instead.") """ Whether the resource is published to a [channel](https://shopify.dev/docs/api/admin-graphql/latest/objects/Channel). For example, the resource might be published to the online store channel. """ publishedOnCurrentChannel: Boolean! @deprecated(reason: "Use `publishedOnCurrentPublication` instead.") """ Whether the resource is published to the app's [publication](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication). For example, the resource might be published to the app's online store channel. """ publishedOnCurrentPublication: Boolean! @deprecated(reason: "Use `publishedOnPublication` instead.") """ Whether the resource is published to a specified [publication](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication). """ publishedOnPublication( """ The ID of the publication to check. For example, `id: "gid://shopify/Publication/123"`. """ publicationId: ID! ): Boolean! """ Whether a product variant requires components. The default value is `false`. If `true`, then the product variant can only be purchased as a parent bundle with components and it will be omitted from channels that don't support bundles. """ requiresComponents: Boolean! """ The list of resources that are published to a [publication](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication). """ resourcePublications( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ Whether to return only the resources that are currently published. If false, then also returns the resources that are scheduled to be published. """ onlyPublished: Boolean = true """Reverse the order of the underlying list.""" reverse: Boolean = false ): ResourcePublicationConnection! """ The number of [publications](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication) that a resource is published to, without [feedback errors](https://shopify.dev/docs/api/admin-graphql/latest/objects/ResourceFeedback). """ resourcePublicationsCount( """ Include only the resource's publications that are published. If false, then return all the resource's publications including future publications. """ onlyPublished: Boolean = true ): Count """ The list of resources that are either published or staged to be published to a [publication](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication). """ resourcePublicationsV2( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """Filter publications by catalog type.""" catalogType: CatalogType """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ Whether to return only the resources that are currently published. If false, then also returns the resources that are scheduled or staged to be published. """ onlyPublished: Boolean = true """Reverse the order of the underlying list.""" reverse: Boolean = false ): ResourcePublicationV2Connection! """List of product options applied to the variant.""" selectedOptions: [SelectedOption!]! """ The total sellable quantity of the variant for online channels. This doesn't represent the total available inventory or capture [limitations based on customer location](https://help.shopify.com/manual/markets/inventory_and_fulfillment). """ sellableOnlineQuantity: Int! """Count of selling plan groups associated with the product variant.""" sellingPlanGroupCount: Int! @deprecated(reason: "Use `sellingPlanGroupsCount` instead.") """ A list of all selling plan groups defined in the current shop associated with the product variant. """ sellingPlanGroups( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): SellingPlanGroupConnection! """Count of selling plan groups associated with the product variant.""" sellingPlanGroupsCount: Count """ A case-sensitive identifier for the product variant in the shop. Required in order to connect to a fulfillment service. """ sku: String """ The Storefront GraphQL API ID of the `ProductVariant`. As of the `2022-04` version release, the Storefront GraphQL API will no longer return Base64 encoded IDs to match the behavior of the Admin GraphQL API. Therefore, you can safely use the `id` field's value instead. """ storefrontId: StorefrontID! @deprecated(reason: "Use `id` instead.") """The tax code for the product variant.""" taxCode: String """Whether a tax is charged when the product variant is sold.""" taxable: Boolean! """The title of the product variant.""" title: String! """The published translations associated with the resource.""" translations( """Filters translations locale.""" locale: String! """ Filters translations by market ID. Use this argument to retrieve content specific to a market. """ marketId: ID ): [Translation!]! """The unit price measurement for the variant.""" unitPriceMeasurement: UnitPriceMeasurement """The list of channels that the resource is not published to.""" unpublishedChannels( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): ChannelConnection! @deprecated(reason: "Use `unpublishedPublications` instead.") """ The list of [publications](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication) that the resource isn't published to. """ unpublishedPublications( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): PublicationConnection! """ The date and time (ISO 8601 format) when the product variant was last modified. """ updatedAt: DateTime! } """ A monetary value string without a currency symbol or code. Example value: `"100.57"`. """ scalar Money """ The price of a product variant in a specific country. Prices vary between countries. """ type ProductVariantContextualPricing { """The final compare-at price after all adjustments are applied.""" compareAtPrice: MoneyV2 """The final price after all adjustments are applied.""" price: MoneyV2! """A list of quantity breaks for the product variant.""" quantityPriceBreaks( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: QuantityPriceBreakSortKeys = MINIMUM_QUANTITY ): QuantityPriceBreakConnection! """The quantity rule applied for a given context.""" quantityRule: QuantityRule! } """A monetary value with currency.""" type MoneyV2 { """Decimal money amount.""" amount: Decimal! """Currency of the money.""" currencyCode: CurrencyCode! } """ A signed decimal number, which supports arbitrary precision and is serialized as a string. Example values: `"29.99"`, `"29.999"`. """ scalar Decimal """ The three-letter currency codes that represent the world currencies used in stores. These include standard ISO 4217 codes, legacy codes, and non-standard codes. """ enum CurrencyCode { """United Arab Emirates Dirham (AED).""" AED """Afghan Afghani (AFN).""" AFN """Albanian Lek (ALL).""" ALL """Armenian Dram (AMD).""" AMD """Netherlands Antillean Guilder.""" ANG """Angolan Kwanza (AOA).""" AOA """Argentine Pesos (ARS).""" ARS """Australian Dollars (AUD).""" AUD """Aruban Florin (AWG).""" AWG """Azerbaijani Manat (AZN).""" AZN """Bosnia and Herzegovina Convertible Mark (BAM).""" BAM """Barbadian Dollar (BBD).""" BBD """Bangladesh Taka (BDT).""" BDT """Bulgarian Lev (BGN).""" BGN """Bahraini Dinar (BHD).""" BHD """Burundian Franc (BIF).""" BIF """Bermudian Dollar (BMD).""" BMD """Brunei Dollar (BND).""" BND """Bolivian Boliviano (BOB).""" BOB """Brazilian Real (BRL).""" BRL """Bahamian Dollar (BSD).""" BSD """Bhutanese Ngultrum (BTN).""" BTN """Botswana Pula (BWP).""" BWP """Belarusian Ruble (BYN).""" BYN """Belarusian Ruble (BYR).""" BYR @deprecated(reason: "`BYR` is deprecated. Use `BYN` available from version `2021-01` onwards instead.") """Belize Dollar (BZD).""" BZD """Canadian Dollars (CAD).""" CAD """Congolese franc (CDF).""" CDF """Swiss Francs (CHF).""" CHF """Chilean Peso (CLP).""" CLP """Chinese Yuan Renminbi (CNY).""" CNY """Colombian Peso (COP).""" COP """Costa Rican Colones (CRC).""" CRC """Cape Verdean escudo (CVE).""" CVE """Czech Koruny (CZK).""" CZK """Djiboutian Franc (DJF).""" DJF """Danish Kroner (DKK).""" DKK """Dominican Peso (DOP).""" DOP """Algerian Dinar (DZD).""" DZD """Egyptian Pound (EGP).""" EGP """Eritrean Nakfa (ERN).""" ERN """Ethiopian Birr (ETB).""" ETB """Euro (EUR).""" EUR """Fijian Dollars (FJD).""" FJD """Falkland Islands Pounds (FKP).""" FKP """United Kingdom Pounds (GBP).""" GBP """Georgian Lari (GEL).""" GEL """Ghanaian Cedi (GHS).""" GHS """Gibraltar Pounds (GIP).""" GIP """Gambian Dalasi (GMD).""" GMD """Guinean Franc (GNF).""" GNF """Guatemalan Quetzal (GTQ).""" GTQ """Guyanese Dollar (GYD).""" GYD """Hong Kong Dollars (HKD).""" HKD """Honduran Lempira (HNL).""" HNL """Croatian Kuna (HRK).""" HRK """Haitian Gourde (HTG).""" HTG """Hungarian Forint (HUF).""" HUF """Indonesian Rupiah (IDR).""" IDR """Israeli New Shekel (NIS).""" ILS """Indian Rupees (INR).""" INR """Iraqi Dinar (IQD).""" IQD """Iranian Rial (IRR).""" IRR """Icelandic Kronur (ISK).""" ISK """Jersey Pound.""" JEP """Jamaican Dollars (JMD).""" JMD """Jordanian Dinar (JOD).""" JOD """Japanese Yen (JPY).""" JPY """Kenyan Shilling (KES).""" KES """Kyrgyzstani Som (KGS).""" KGS """Cambodian Riel.""" KHR """Kiribati Dollar (KID).""" KID """Comorian Franc (KMF).""" KMF """South Korean Won (KRW).""" KRW """Kuwaiti Dinar (KWD).""" KWD """Cayman Dollars (KYD).""" KYD """Kazakhstani Tenge (KZT).""" KZT """Laotian Kip (LAK).""" LAK """Lebanese Pounds (LBP).""" LBP """Sri Lankan Rupees (LKR).""" LKR """Liberian Dollar (LRD).""" LRD """Lesotho Loti (LSL).""" LSL """Lithuanian Litai (LTL).""" LTL """Latvian Lati (LVL).""" LVL """Libyan Dinar (LYD).""" LYD """Moroccan Dirham.""" MAD """Moldovan Leu (MDL).""" MDL """Malagasy Ariary (MGA).""" MGA """Macedonia Denar (MKD).""" MKD """Burmese Kyat (MMK).""" MMK """Mongolian Tugrik.""" MNT """Macanese Pataca (MOP).""" MOP """Mauritanian Ouguiya (MRU).""" MRU """Mauritian Rupee (MUR).""" MUR """Maldivian Rufiyaa (MVR).""" MVR """Malawian Kwacha (MWK).""" MWK """Mexican Pesos (MXN).""" MXN """Malaysian Ringgits (MYR).""" MYR """Mozambican Metical.""" MZN """Namibian Dollar.""" NAD """Nigerian Naira (NGN).""" NGN """Nicaraguan Córdoba (NIO).""" NIO """Norwegian Kroner (NOK).""" NOK """Nepalese Rupee (NPR).""" NPR """New Zealand Dollars (NZD).""" NZD """Omani Rial (OMR).""" OMR """Panamian Balboa (PAB).""" PAB """Peruvian Nuevo Sol (PEN).""" PEN """Papua New Guinean Kina (PGK).""" PGK """Philippine Peso (PHP).""" PHP """Pakistani Rupee (PKR).""" PKR """Polish Zlotych (PLN).""" PLN """Paraguayan Guarani (PYG).""" PYG """Qatari Rial (QAR).""" QAR """Romanian Lei (RON).""" RON """Serbian dinar (RSD).""" RSD """Russian Rubles (RUB).""" RUB """Rwandan Franc (RWF).""" RWF """Saudi Riyal (SAR).""" SAR """Solomon Islands Dollar (SBD).""" SBD """Seychellois Rupee (SCR).""" SCR """Sudanese Pound (SDG).""" SDG """Swedish Kronor (SEK).""" SEK """Singapore Dollars (SGD).""" SGD """Saint Helena Pounds (SHP).""" SHP """Sierra Leonean Leone (SLL).""" SLL """Somali Shilling (SOS).""" SOS """Surinamese Dollar (SRD).""" SRD """South Sudanese Pound (SSP).""" SSP """Sao Tome And Principe Dobra (STD).""" STD @deprecated(reason: "`STD` is deprecated. Use `STN` available from version `2022-07` onwards instead.") """Sao Tome And Principe Dobra (STN).""" STN """Syrian Pound (SYP).""" SYP """Swazi Lilangeni (SZL).""" SZL """Thai baht (THB).""" THB """Tajikistani Somoni (TJS).""" TJS """Turkmenistani Manat (TMT).""" TMT """Tunisian Dinar (TND).""" TND """Tongan Pa'anga (TOP).""" TOP """Turkish Lira (TRY).""" TRY """Trinidad and Tobago Dollars (TTD).""" TTD """Taiwan Dollars (TWD).""" TWD """Tanzanian Shilling (TZS).""" TZS """Ukrainian Hryvnia (UAH).""" UAH """Ugandan Shilling (UGX).""" UGX """United States Dollars (USD).""" USD """Uruguayan Pesos (UYU).""" UYU """Uzbekistan som (UZS).""" UZS """Venezuelan Bolivares (VED).""" VED """Venezuelan Bolivares (VEF).""" VEF @deprecated(reason: "`VEF` is deprecated. Use `VES` available from version `2020-10` onwards instead.") """Venezuelan Bolivares Soberanos (VES).""" VES """Vietnamese đồng (VND).""" VND """Vanuatu Vatu (VUV).""" VUV """Samoan Tala (WST).""" WST """Central African CFA Franc (XAF).""" XAF """East Caribbean Dollar (XCD).""" XCD """West African CFA franc (XOF).""" XOF """CFP Franc (XPF).""" XPF """Unrecognized currency.""" XXX """Yemeni Rial (YER).""" YER """South African Rand (ZAR).""" ZAR """Zambian Kwacha (ZMW).""" ZMW """United States Dollars Coin (USDC).""" USDC """Caribbean Guilder (XCG).""" XCG } """ An auto-generated type for paginating through multiple QuantityPriceBreaks. """ type QuantityPriceBreakConnection { edges: [QuantityPriceBreakEdge!]! """ A list of nodes that are contained in QuantityPriceBreakEdge. 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: [QuantityPriceBreak!]! """ 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 QuantityPriceBreak and a cursor during pagination. """ type QuantityPriceBreakEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of QuantityPriceBreakEdge.""" node: QuantityPriceBreak! } """ Quantity price breaks lets you offer different rates that are based on the amount of a specific variant being ordered. """ type QuantityPriceBreak implements Node { """A globally-unique ID.""" id: ID! """Minimum quantity required to reach new quantity break price.""" minimumQuantity: Int! """The price of variant after reaching the minimum quanity.""" price: MoneyV2! """The price list associated with this quantity break.""" priceList: PriceList! """The product variant associated with this quantity break.""" variant: ProductVariant! } """The set of valid sort keys for the QuantityPriceBreak query.""" enum QuantityPriceBreakSortKeys { """Sort by the `id` value.""" ID """Sort by the `minimum_quantity` value.""" MINIMUM_QUANTITY } """The quantity rule for the product variant in a given context.""" type QuantityRule { """ The value that specifies the quantity increment between minimum and maximum of the rule. Only quantities divisible by this value will be considered valid. The increment must be lower than or equal to the minimum and the maximum, and both minimum and maximum must be divisible by this value. """ increment: Int! """ Whether the quantity rule fields match one increment, one minimum and no maximum. """ isDefault: Boolean! """ An optional value that defines the highest allowed quantity purchased by the customer. If defined, maximum must be lower than or equal to the minimum and must be a multiple of the increment. """ maximum: Int """ The value that defines the lowest allowed quantity purchased by the customer. The minimum must be a multiple of the quantity rule's increment. """ minimum: Int! """Whether the values of the quantity rule were explicitly set.""" originType: QuantityRuleOriginType! """The product variant for which the quantity rule is applied.""" productVariant: ProductVariant! } """The origin of quantity rule on a price list.""" enum QuantityRuleOriginType { """Quantity rule is explicitly defined.""" FIXED """Quantity rule falls back to the relative rule.""" RELATIVE } """ The input fields for the context data that determines the pricing of a variant. Refer to [Product](https://shopify.dev/docs/api/admin-graphql/latest/queries/product?example=Get+the+price+range+for+a+product+for+buyers+from+Canada)for more information on how to use this input object. """ input ContextualPricingContext { """The CompanyLocation ID used to fetch company location specific prices.""" companyLocationId: ID """The country code used to fetch country-specific prices.""" country: CountryCode } """ The code designating a country/region, which generally follows ISO 3166-1 alpha-2 guidelines. If a territory doesn't have a country code value in the `CountryCode` enum, then it might be considered a subdivision of another country. For example, the territories associated with Spain are represented by the country code `ES`, and the territories associated with the United States of America are represented by the country code `US`. """ enum CountryCode { """Ascension Island.""" AC """Andorra.""" AD """United Arab Emirates.""" AE """Afghanistan.""" AF """Antigua & Barbuda.""" AG """Anguilla.""" AI """Albania.""" AL """Armenia.""" AM """Netherlands Antilles.""" AN """Angola.""" AO """Argentina.""" AR """Austria.""" AT """Australia.""" AU """Aruba.""" AW """Åland Islands.""" AX """Azerbaijan.""" AZ """Bosnia & Herzegovina.""" BA """Barbados.""" BB """Bangladesh.""" BD """Belgium.""" BE """Burkina Faso.""" BF """Bulgaria.""" BG """Bahrain.""" BH """Burundi.""" BI """Benin.""" BJ """St. Barthélemy.""" BL """Bermuda.""" BM """Brunei.""" BN """Bolivia.""" BO """Caribbean Netherlands.""" BQ """Brazil.""" BR """Bahamas.""" BS """Bhutan.""" BT """Bouvet Island.""" BV """Botswana.""" BW """Belarus.""" BY """Belize.""" BZ """Canada.""" CA """Cocos (Keeling) Islands.""" CC """Congo - Kinshasa.""" CD """Central African Republic.""" CF """Congo - Brazzaville.""" CG """Switzerland.""" CH """Côte d’Ivoire.""" CI """Cook Islands.""" CK """Chile.""" CL """Cameroon.""" CM """China.""" CN """Colombia.""" CO """Costa Rica.""" CR """Cuba.""" CU """Cape Verde.""" CV """Curaçao.""" CW """Christmas Island.""" CX """Cyprus.""" CY """Czechia.""" CZ """Germany.""" DE """Djibouti.""" DJ """Denmark.""" DK """Dominica.""" DM """Dominican Republic.""" DO """Algeria.""" DZ """Ecuador.""" EC """Estonia.""" EE """Egypt.""" EG """Western Sahara.""" EH """Eritrea.""" ER """Spain.""" ES """Ethiopia.""" ET """Finland.""" FI """Fiji.""" FJ """Falkland Islands.""" FK """Faroe Islands.""" FO """France.""" FR """Gabon.""" GA """United Kingdom.""" GB """Grenada.""" GD """Georgia.""" GE """French Guiana.""" GF """Guernsey.""" GG """Ghana.""" GH """Gibraltar.""" GI """Greenland.""" GL """Gambia.""" GM """Guinea.""" GN """Guadeloupe.""" GP """Equatorial Guinea.""" GQ """Greece.""" GR """South Georgia & South Sandwich Islands.""" GS """Guatemala.""" GT """Guinea-Bissau.""" GW """Guyana.""" GY """Hong Kong SAR.""" HK """Heard & McDonald Islands.""" HM """Honduras.""" HN """Croatia.""" HR """Haiti.""" HT """Hungary.""" HU """Indonesia.""" ID """Ireland.""" IE """Israel.""" IL """Isle of Man.""" IM """India.""" IN """British Indian Ocean Territory.""" IO """Iraq.""" IQ """Iran.""" IR """Iceland.""" IS """Italy.""" IT """Jersey.""" JE """Jamaica.""" JM """Jordan.""" JO """Japan.""" JP """Kenya.""" KE """Kyrgyzstan.""" KG """Cambodia.""" KH """Kiribati.""" KI """Comoros.""" KM """St. Kitts & Nevis.""" KN """North Korea.""" KP """South Korea.""" KR """Kuwait.""" KW """Cayman Islands.""" KY """Kazakhstan.""" KZ """Laos.""" LA """Lebanon.""" LB """St. Lucia.""" LC """Liechtenstein.""" LI """Sri Lanka.""" LK """Liberia.""" LR """Lesotho.""" LS """Lithuania.""" LT """Luxembourg.""" LU """Latvia.""" LV """Libya.""" LY """Morocco.""" MA """Monaco.""" MC """Moldova.""" MD """Montenegro.""" ME """St. Martin.""" MF """Madagascar.""" MG """North Macedonia.""" MK """Mali.""" ML """Myanmar (Burma).""" MM """Mongolia.""" MN """Macao SAR.""" MO """Martinique.""" MQ """Mauritania.""" MR """Montserrat.""" MS """Malta.""" MT """Mauritius.""" MU """Maldives.""" MV """Malawi.""" MW """Mexico.""" MX """Malaysia.""" MY """Mozambique.""" MZ """Namibia.""" NA """New Caledonia.""" NC """Niger.""" NE """Norfolk Island.""" NF """Nigeria.""" NG """Nicaragua.""" NI """Netherlands.""" NL """Norway.""" NO """Nepal.""" NP """Nauru.""" NR """Niue.""" NU """New Zealand.""" NZ """Oman.""" OM """Panama.""" PA """Peru.""" PE """French Polynesia.""" PF """Papua New Guinea.""" PG """Philippines.""" PH """Pakistan.""" PK """Poland.""" PL """St. Pierre & Miquelon.""" PM """Pitcairn Islands.""" PN """Palestinian Territories.""" PS """Portugal.""" PT """Paraguay.""" PY """Qatar.""" QA """Réunion.""" RE """Romania.""" RO """Serbia.""" RS """Russia.""" RU """Rwanda.""" RW """Saudi Arabia.""" SA """Solomon Islands.""" SB """Seychelles.""" SC """Sudan.""" SD """Sweden.""" SE """Singapore.""" SG """St. Helena.""" SH """Slovenia.""" SI """Svalbard & Jan Mayen.""" SJ """Slovakia.""" SK """Sierra Leone.""" SL """San Marino.""" SM """Senegal.""" SN """Somalia.""" SO """Suriname.""" SR """South Sudan.""" SS """São Tomé & Príncipe.""" ST """El Salvador.""" SV """Sint Maarten.""" SX """Syria.""" SY """Eswatini.""" SZ """Tristan da Cunha.""" TA """Turks & Caicos Islands.""" TC """Chad.""" TD """French Southern Territories.""" TF """Togo.""" TG """Thailand.""" TH """Tajikistan.""" TJ """Tokelau.""" TK """Timor-Leste.""" TL """Turkmenistan.""" TM """Tunisia.""" TN """Tonga.""" TO """Türkiye.""" TR """Trinidad & Tobago.""" TT """Tuvalu.""" TV """Taiwan.""" TW """Tanzania.""" TZ """Ukraine.""" UA """Uganda.""" UG """U.S. Outlying Islands.""" UM """United States.""" US """Uruguay.""" UY """Uzbekistan.""" UZ """Vatican City.""" VA """St. Vincent & Grenadines.""" VC """Venezuela.""" VE """British Virgin Islands.""" VG """Vietnam.""" VN """Vanuatu.""" VU """Wallis & Futuna.""" WF """Samoa.""" WS """Kosovo.""" XK """Yemen.""" YE """Mayotte.""" YT """South Africa.""" ZA """Zambia.""" ZM """Zimbabwe.""" ZW """Unknown Region.""" ZZ } """ A shipping profile. In Shopify, a shipping profile is a set of shipping rates scoped to a set of products or variants that can be shipped from selected locations to zones. Learn more about [building with delivery profiles](https://shopify.dev/apps/build/purchase-options/deferred/delivery-and-deferment/build-delivery-profiles). """ type DeliveryProfile implements Node { """The number of active shipping rates for the profile.""" activeMethodDefinitionsCount: Int! """Whether this is the default profile.""" default: Boolean! """A globally-unique ID.""" id: ID! """The number of locations without rates defined.""" locationsWithoutRatesCount: Int! """The name of the delivery profile.""" name: String! """The number of active origin locations for the profile.""" originLocationCount: Int! """How many product variants are in this profile.""" productVariantsCount: Count """How many product variants are in this profile.""" productVariantsCountV2: DeliveryProductVariantsCount! @deprecated(reason: "Use `productVariantsCount` instead.") """The products and variants associated with this profile.""" profileItems( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): DeliveryProfileItemConnection! """The location groups and associated zones using this profile.""" profileLocationGroups( """Filter the location groups of the profile by location group ID.""" locationGroupId: ID ): [DeliveryProfileLocationGroup!]! """Selling plan groups associated with the specified delivery profile.""" sellingPlanGroups( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): SellingPlanGroupConnection! """ List of locations that haven't been assigned to a location group for this profile. """ unassignedLocations: [Location!]! """ List of locations that have not been assigned to a location group for this profile. """ unassignedLocationsPaginated( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): LocationConnection! """The number of countries with active rates to deliver to.""" zoneCountryCount: Int! } """ How many product variants are in a profile. This count is capped at 500. """ type DeliveryProductVariantsCount { """Whether the count has reached the cap of 500.""" capped: Boolean! """The product variant count.""" count: Int! } """ An auto-generated type for paginating through multiple DeliveryProfileItems. """ type DeliveryProfileItemConnection { edges: [DeliveryProfileItemEdge!]! """ A list of nodes that are contained in DeliveryProfileItemEdge. 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: [DeliveryProfileItem!]! """ 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 DeliveryProfileItem and a cursor during pagination. """ type DeliveryProfileItemEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of DeliveryProfileItemEdge.""" node: DeliveryProfileItem! } """ A product and the subset of associated variants that are part of this delivery profile. """ type DeliveryProfileItem implements Node { """A globally-unique ID.""" id: ID! """A product associated with this profile.""" product: Product! """The product variants associated with this delivery profile.""" variants( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): ProductVariantConnection! } """ Links a location group with zones. Both are associated to a delivery profile. """ type DeliveryProfileLocationGroup { """ The countries already selected in any zone for the specified location group. """ countriesInAnyZone: [DeliveryCountryAndZone!]! """The collection of locations that make up the specified location group.""" locationGroup: DeliveryLocationGroup! """The applicable zones associated to the specified location group.""" locationGroupZones( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): DeliveryLocationGroupZoneConnection! } """The country details and the associated shipping zone.""" type DeliveryCountryAndZone { """The country details.""" country: DeliveryCountry! """The name of the shipping zone.""" zone: String! } """A country that is used to define a shipping zone.""" type DeliveryCountry implements Node { """ A two-letter country code in ISO 3166-1 alpha-2 standard. It also includes a flag indicating whether the country should be a part of the 'Rest Of World' shipping zone. """ code: DeliveryCountryCodeOrRestOfWorld! """A globally-unique ID.""" id: ID! """The full name of the country.""" name: String! """The list of regions associated with this country.""" provinces: [DeliveryProvince!]! """ The translated name of the country. The translation returned is based on the system's locale. """ translatedName: String! } """ The country code and whether the country is a part of the 'Rest Of World' shipping zone. """ type DeliveryCountryCodeOrRestOfWorld { """The country code in the ISO 3166-1 alpha-2 format.""" countryCode: CountryCode """Whether the country is a part of the 'Rest of World' shipping zone.""" restOfWorld: Boolean! } """A region that is used to define a shipping zone.""" type DeliveryProvince implements Node { """The code of the region.""" code: String! """A globally-unique ID.""" id: ID! """The full name of the region.""" name: String! """ The translated name of the region. The translation returned is based on the system's locale. """ translatedName: String! } """ A location group is a collection of locations. They share zones and delivery methods across delivery profiles. """ type DeliveryLocationGroup implements Node { """A globally-unique ID.""" id: ID! """A list of all locations that are part of this location group.""" locations( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """Whether to include the locations that are deactivated.""" includeInactive: Boolean = false """Whether to include the legacy locations of fulfillment services.""" includeLegacy: Boolean = false """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | active | string | | address1 | string | | address2 | string | | city | string | | country | string | | created_at | time | | geolocated | boolean | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | legacy | boolean | | location_id | id | | name | string | | pickup_in_store | string | | - `enabled`
- `disabled` | | province | string | | zip | string | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: LocationSortKeys = NAME ): LocationConnection! """A count of all locations that are part of this location group.""" locationsCount: Count } """An auto-generated type for paginating through multiple Locations.""" type LocationConnection { edges: [LocationEdge!]! """ A list of nodes that are contained in LocationEdge. 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: [Location!]! """ 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 Location and a cursor during pagination. """ type LocationEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of LocationEdge.""" node: Location! } """ Represents the location where the physical good resides. You can stock inventory at active locations. Active locations that have `fulfills_online_orders: true` and are configured with a shipping rate, pickup enabled or local delivery will be able to sell from their storefront. """ type Location implements HasMetafieldDefinitions & HasMetafields & LegacyInteroperability & Node { """ Whether the location can be reactivated. If `false`, then trying to activate the location with the [`LocationActivate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/locationActivate) mutation will return an error that describes why the location can't be activated. """ activatable: Boolean! """The address of this location.""" address: LocationAddress! """Whether the location address has been verified.""" addressVerified: Boolean! """ The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) that the location was added to a shop. """ createdAt: DateTime! """ Whether this location can be deactivated. If `true`, then the location can be deactivated by calling the [`LocationDeactivate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/locationDeactivate) mutation. If `false`, then calling the mutation to deactivate it will return an error that describes why the location can't be deactivated. """ deactivatable: Boolean! """ The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) that the location was deactivated at. For example, 3:30 pm on September 7, 2019 in the time zone of UTC (Universal Time Coordinated) is represented as `"2019-09-07T15:50:00Z`". """ deactivatedAt: String """Whether this location can be deleted.""" deletable: Boolean! """Name of the service provider that fulfills from this location.""" fulfillmentService: FulfillmentService """Whether this location can fulfill online orders.""" fulfillsOnlineOrders: Boolean! """Whether this location has active inventory.""" hasActiveInventory: Boolean! """Whether this location has orders that need to be fulfilled.""" hasUnfulfilledOrders: Boolean! """A globally-unique ID.""" id: ID! """The quantities of an inventory item at this location.""" inventoryLevel( """The ID of the inventory item to obtain the inventory level for.""" inventoryItemId: ID! ): InventoryLevel """ A list of the quantities of the inventory items that can be stocked at this location. """ inventoryLevels( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | created_at | time | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | inventory_group_id | id | | inventory_item_id | id | | updated_at | time | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false ): InventoryLevelConnection! """ Whether the location is active. A deactivated location can be activated (change `isActive: true`) if it has `activatable` set to `true` by calling the [`locationActivate`](https://shopify.dev/docs/api/admin-graphql/latest/mutations/locationActivate) mutation. """ isActive: Boolean! """Whether this location is a fulfillment service.""" isFulfillmentService: Boolean! """Whether the location is your primary location for shipping inventory.""" isPrimary: Boolean! @deprecated(reason: "The concept of a primary location is deprecated, shipsInventory can be used to get a fallback location") """The ID of the corresponding resource in the REST Admin API.""" legacyResourceId: UnsignedInt64! """Local pickup settings for the location.""" localPickupSettingsV2: DeliveryLocalPickupSettings """ 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( """The key for the metafield.""" key: String! """ The container the metafield belongs to. If omitted, the app-reserved namespace will be used. """ namespace: String ): Metafield """List of metafield definitions.""" metafieldDefinitions( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Filter metafield definitions by namespace.""" namespace: String """Filter by the definition's pinned status.""" pinnedStatus: MetafieldDefinitionPinnedStatus = ANY """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | created_at | time | Filter by the date and time when the metafield definition was created. | | | - `created_at:>2020-10-21T23:39:20Z`
- `created_at: - `created_at:<=2024` | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | key | string | Filter by the metafield definition [`key`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-key) field. | | | - `key:some-key` | | namespace | string | Filter by the metafield definition [`namespace`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-namespace) field. | | | - `namespace:some-namespace` | | owner_type | string | Filter by the metafield definition [`ownerType`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-ownertype) field. | | | - `owner_type:PRODUCT` | | type | string | Filter by the metafield definition [`type`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-type) field. | | | - `type:single_line_text_field` | | updated_at | time | Filter by the date and time when the metafield definition was last updated. | | | - `updated_at:>2020-10-21T23:39:20Z`
- `updated_at: - `updated_at:<=2024` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: MetafieldDefinitionSortKeys = ID ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use the root `metafieldDefinitions` field instead.") """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. """ metafields( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ List of keys of metafields in the format `namespace.key`, will be returned in the same format. """ keys: [String!] """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. """ namespace: String """Reverse the order of the underlying list.""" reverse: Boolean = false ): MetafieldConnection! """The name of the location.""" name: String! """ Whether this location is used for calculating shipping rates. In multi-origin shipping mode, this flag is ignored. """ shipsInventory: Boolean! """List of suggested addresses for this location (empty if none).""" suggestedAddresses: [LocationSuggestedAddress!]! """ The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) when the location was last updated. """ updatedAt: DateTime! } """Represents the address of a location.""" type LocationAddress { """The first line of the address for the location.""" address1: String """The second line of the address for the location.""" address2: String """The city of the location.""" city: String """The country of the location.""" country: String """The country code of the location.""" countryCode: String """A formatted version of the address for the location.""" formatted: [String!]! """The approximate latitude coordinates of the location.""" latitude: Float """The approximate longitude coordinates of the location.""" longitude: Float """The phone number of the location.""" phone: String """The province of the location.""" province: String """ The code for the province, state, or district of the address of the location. """ provinceCode: String """The ZIP code of the location.""" zip: String } """ A **Fulfillment Service** is a third party warehouse that prepares and ships orders on behalf of the store owner. Fulfillment services charge a fee to package and ship items and update product inventory levels. Some well known fulfillment services with Shopify integrations include: Amazon, Shipwire, and Rakuten. When an app registers a new `FulfillmentService` on a store, Shopify automatically creates a `Location` that's associated to the fulfillment service. To learn more about fulfillment services, refer to [Manage fulfillments as a fulfillment service app](https://shopify.dev/apps/fulfillment/fulfillment-service-apps) guide. ## Mutations You can work with the `FulfillmentService` object with the [fulfillmentServiceCreate](https://shopify.dev/api/admin-graphql/latest/mutations/fulfillmentServiceCreate), [fulfillmentServiceUpdate](https://shopify.dev/api/admin-graphql/latest/mutations/fulfillmentServiceUpdate), and [fulfillmentServiceDelete](https://shopify.dev/api/admin-graphql/latest/mutations/fulfillmentServiceDelete) mutations. ## Hosted endpoints Fulfillment service providers integrate with Shopify by providing Shopify with a set of hosted endpoints that Shopify can query on certain conditions. These endpoints must have a common prefix, and this prefix should be supplied in the `callbackUrl` parameter in the [fulfillmentServiceCreate](https://shopify.dev/api/admin-graphql/latest/mutations/fulfillmentServiceCreate) mutation. - Shopify sends POST requests to the `/fulfillment_order_notification` endpoint to notify the fulfillment service about fulfillment requests and fulfillment cancellation requests. For more information, refer to [Receive fulfillment requests and cancellations](https://shopify.dev/apps/fulfillment/fulfillment-service-apps/manage-fulfillments#step-2-receive-fulfillment-requests-and-cancellations). - Shopify sends GET requests to the `/fetch_tracking_numbers` endpoint to retrieve tracking numbers for orders, if `trackingSupport` is set to `true`. For more information, refer to [Enable tracking support](https://shopify.dev/apps/fulfillment/fulfillment-service-apps/manage-fulfillments#step-8-enable-tracking-support-optional). Fulfillment services can also update tracking information with the [fulfillmentTrackingInfoUpdate](https://shopify.dev/api/admin-graphql/unstable/mutations/fulfillmentTrackingInfoUpdate) mutation, rather than waiting for Shopify to ask for tracking numbers. - Shopify sends GET requests to the `/fetch_stock` endpoint to retrieve inventory levels, if `inventoryManagement` is set to `true`. For more information, refer to [Sharing inventory levels with Shopify](https://shopify.dev/apps/fulfillment/fulfillment-service-apps/manage-fulfillments#step-9-share-inventory-levels-with-shopify-optional). To make sure you have everything set up correctly, you can test the `callbackUrl`-prefixed endpoints in your development store. ## Resources and webhooks There are a variety of objects and webhooks that enable a fulfillment service to work. To exchange fulfillment information with Shopify, fulfillment services use the [FulfillmentOrder](https://shopify.dev/api/admin-graphql/latest/objects/FulfillmentOrder), [Fulfillment](https://shopify.dev/api/admin-graphql/latest/objects/Fulfillment) and [Order](https://shopify.dev/api/admin-graphql/latest/objects/Order) objects and related mutations. To act on fulfillment process events that happen on the Shopify side, besides awaiting calls to `callbackUrl`-prefixed endpoints, fulfillment services can subscribe to the [fulfillment order](https://shopify.dev/apps/fulfillment/fulfillment-service-apps/manage-fulfillments#webhooks) and [order](https://shopify.dev/api/admin-rest/latest/resources/webhook) webhooks. """ type FulfillmentService { """ The callback URL that the fulfillment service has registered for requests. The following considerations apply: - Shopify queries the `/fetch_tracking_numbers` endpoint to retrieve tracking numbers for orders, if `trackingSupport` is set to `true`. - Shopify queries the `/fetch_stock` endpoint to retrieve inventory levels, if `inventoryManagement` is set to `true`. - Shopify uses the `/fulfillment_order_notification` endpoint to send [fulfillment and cancellation requests](https://shopify.dev/apps/fulfillment/fulfillment-service-apps/manage-fulfillments#step-2-receive-fulfillment-requests-and-cancellations), if the fulfillment service has opted in to the fulfillment order based workflow for managing fulfillments (`fulfillmentOrdersOptIn` is set to `true`). """ callbackUrl: URL """ Whether the fulfillment service uses the [fulfillment order based workflow](https://shopify.dev/apps/fulfillment/fulfillment-service-apps/manage-fulfillments) for managing fulfillments. As the migration is now finished, the `fulfillmentOrdersOptIn` property is [deprecated]( https://shopify.dev/changelog/deprecation-of-the-fulfillmentservice-fulfillmentordersoptin-field) and is always set to `true` on correctly functioning fulfillment services. """ fulfillmentOrdersOptIn: Boolean! @deprecated(reason: "Migration period ended. All correctly functioning fulfillment services have `fulfillmentOrdersOptIn` set to `true`.") """Human-readable unique identifier for this fulfillment service.""" handle: String! """The ID of the fulfillment service.""" id: ID! """ Whether the fulfillment service tracks product inventory and provides updates to Shopify. """ inventoryManagement: Boolean! """Location associated with the fulfillment service.""" location: Location """The name of the fulfillment service as seen by merchants.""" serviceName: String! """ Whether the fulfillment service implemented the /fetch_tracking_numbers endpoint. """ trackingSupport: Boolean! """Type associated with the fulfillment service.""" type: FulfillmentServiceType! } """The type of a fulfillment service.""" enum FulfillmentServiceType { """Fulfillment by gift card.""" GIFT_CARD """Manual fulfillment by the merchant.""" MANUAL """Fullfillment by a third-party fulfillment service.""" THIRD_PARTY } """ The quantities of an inventory item that are related to a specific location. Learn [more about the relationships between inventory objects](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states#inventory-object-relationships). """ type InventoryLevel implements Node { """ Whether the inventory items associated with the inventory level can be deactivated. """ canDeactivate: Boolean! """The date and time when the inventory level was created.""" createdAt: DateTime! """ Describes either the impact of deactivating the inventory level, or why the inventory level can't be deactivated. """ deactivationAlert: String """A globally-unique ID.""" id: ID! """Inventory item associated with the inventory level.""" item: InventoryItem! """The location associated with the inventory level.""" location: Location! """Quantities for the requested names.""" quantities( """ The [names](https://shopify.dev/docs/apps/fulfillment/inventory-management-apps#inventory-states) of the requested inventory quantities. """ names: [String!]! ): [InventoryQuantity!]! """Scheduled changes for the requested quantity names.""" scheduledChanges( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | expected_at | time | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | quantity_names | string | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: ScheduledChangeSortKeys = ID ): InventoryScheduledChangeConnection! """The date and time when the inventory level was updated.""" updatedAt: DateTime! } """ Represents the goods available to be shipped to a customer. It holds essential information about the goods, including SKU and whether it is tracked. Learn [more about the relationships between inventory objects](https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps/manage-quantities-states#inventory-object-relationships). """ type InventoryItem implements LegacyInteroperability & Node { """The ISO 3166-1 alpha-2 country code of where the item originated from.""" countryCodeOfOrigin: CountryCode """A list of country specific harmonized system codes.""" countryHarmonizedSystemCodes( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): CountryHarmonizedSystemCodeConnection! """The date and time when the inventory item was created.""" createdAt: DateTime! """The number of inventory items that share the same SKU with this item.""" duplicateSkuCount: Int! """The harmonized system code of the item.""" harmonizedSystemCode: String """A globally-unique ID.""" id: ID! """The URL that points to the inventory history for the item.""" inventoryHistoryUrl: URL """The inventory item's quantities at the specified location.""" inventoryLevel( """ID of the location for which the inventory level is requested.""" locationId: ID! ): InventoryLevel """ A list of the inventory item's quantities for each location that the inventory item can be stocked at. """ inventoryLevels( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | created_at | time | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | inventory_group_id | id | | inventory_item_id | id | | updated_at | time | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false ): InventoryLevelConnection! """The ID of the corresponding resource in the REST Admin API.""" legacyResourceId: UnsignedInt64! """The number of locations where this inventory item is stocked.""" locationsCount: Count """The packaging dimensions of the inventory item.""" measurement: InventoryItemMeasurement! """ The ISO 3166-2 alpha-2 province code of where the item originated from. """ provinceCodeOfOrigin: String """Whether the inventory item requires shipping.""" requiresShipping: Boolean! """Inventory item SKU. Case-sensitive string.""" sku: String """Whether inventory levels are tracked for the item.""" tracked: Boolean! """ Whether the value of the `tracked` field for the inventory item can be changed. """ trackedEditable: EditableProperty! """ Unit cost associated with the inventory item. Note: the user must have "View product costs" permission granted in order to access this field once product granular permissions are enabled. """ unitCost: MoneyV2 """The date and time when the inventory item was updated.""" updatedAt: DateTime! """The variant that owns this inventory item.""" variant: ProductVariant! } """ An auto-generated type for paginating through multiple CountryHarmonizedSystemCodes. """ type CountryHarmonizedSystemCodeConnection { edges: [CountryHarmonizedSystemCodeEdge!]! """ A list of nodes that are contained in CountryHarmonizedSystemCodeEdge. 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: [CountryHarmonizedSystemCode!]! """ 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 CountryHarmonizedSystemCode and a cursor during pagination. """ type CountryHarmonizedSystemCodeEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of CountryHarmonizedSystemCodeEdge.""" node: CountryHarmonizedSystemCode! } """ The country-specific harmonized system code and ISO country code for an inventory item. """ type CountryHarmonizedSystemCode { """ The ISO 3166-1 alpha-2 country code for the country that issued the specified harmonized system code. """ countryCode: CountryCode! """ The country-specific harmonized system code. These are usually longer than 6 digits. """ harmonizedSystemCode: String! } """ An auto-generated type for paginating through multiple InventoryLevels. """ type InventoryLevelConnection { edges: [InventoryLevelEdge!]! """ A list of nodes that are contained in InventoryLevelEdge. 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: [InventoryLevel!]! """ 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 InventoryLevel and a cursor during pagination. """ type InventoryLevelEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of InventoryLevelEdge.""" node: InventoryLevel! } """Represents the packaged dimension for an inventory item.""" type InventoryItemMeasurement implements Node { """A globally-unique ID.""" id: ID! """The weight of the inventory item.""" weight: Weight } """A weight, which includes a numeric value and a unit of measurement.""" type Weight { """The unit of measurement for `value`.""" unit: WeightUnit! """The weight value using the unit system specified with `unit`.""" value: Float! } """Units of measurement for weight.""" enum WeightUnit { """Metric system unit of mass.""" GRAMS """1 kilogram equals 1000 grams.""" KILOGRAMS """Imperial system unit of mass.""" OUNCES """1 pound equals 16 ounces.""" POUNDS } """The attribute editable information.""" type EditableProperty { """Whether the attribute is locked for editing.""" locked: Boolean! """The reason the attribute is locked for editing.""" reason: FormattedString } """ Interoperability metadata for types that directly correspond to a REST Admin API resource. For example, on the Product type, LegacyInteroperability returns metadata for the corresponding [Product object](https://shopify.dev/api/admin-graphql/latest/objects/product) in the REST Admin API. """ interface LegacyInteroperability { """The ID of the corresponding resource in the REST Admin API.""" legacyResourceId: UnsignedInt64! } """ Represents a quantity of an inventory item at a specific location, for a specific name. """ type InventoryQuantity implements Node { """A globally-unique ID.""" id: ID! """ The [name](https://shopify.dev/docs/apps/fulfillment/inventory-management-apps#inventory-states) that identifies the inventory quantity. """ name: String! """The quantity for the quantity name.""" quantity: Int! """When the quantity was last updated.""" updatedAt: DateTime } """ An auto-generated type for paginating through multiple InventoryScheduledChanges. """ type InventoryScheduledChangeConnection { edges: [InventoryScheduledChangeEdge!]! """ A list of nodes that are contained in InventoryScheduledChangeEdge. 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: [InventoryScheduledChange!]! """ 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 InventoryScheduledChange and a cursor during pagination. """ type InventoryScheduledChangeEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of InventoryScheduledChangeEdge.""" node: InventoryScheduledChange! } """ Returns the scheduled changes to inventory states related to the ledger document. """ type InventoryScheduledChange { """The date and time that the scheduled change is expected to happen.""" expectedAt: DateTime! """ The quantity [name](https://shopify.dev/docs/apps/fulfillment/inventory-management-apps/quantities-states#move-inventory-quantities-between-states) to transition from. """ fromName: String! """ The quantities of an inventory item that are related to a specific location. """ inventoryLevel: InventoryLevel! """A freeform URI that represents what changed the inventory quantities.""" ledgerDocumentUri: URL! """ The quantity of the scheduled change associated with the ledger document in the `fromName` state. """ quantity: Int! """ The quantity [name](https://shopify.dev/docs/apps/fulfillment/inventory-management-apps/quantities-states#move-inventory-quantities-between-states) to transition to. """ toName: String! } """The set of valid sort keys for the ScheduledChange query.""" enum ScheduledChangeSortKeys { """Sort by the `expected_at` value.""" EXPECTED_AT """Sort by the `id` value.""" ID } """Local pickup settings associated with a location.""" type DeliveryLocalPickupSettings { """Additional instructions or information related to the local pickup.""" instructions: String! """The estimated pickup time to show customers at checkout.""" pickupTime: DeliveryLocalPickupTime! } """ Possible pickup time values that a location enabled for local pickup can have. """ enum DeliveryLocalPickupTime { """Usually ready in 5+ days.""" FIVE_OR_MORE_DAYS """Usually ready in 4 hours.""" FOUR_HOURS """Usually ready in 1 hour.""" ONE_HOUR """Usually ready in 24 hours.""" TWENTY_FOUR_HOURS """Usually ready in 2 hours.""" TWO_HOURS """Usually ready in 2-4 days.""" TWO_TO_FOUR_DAYS """Custom pickup time. Unrecognized pickup time enum value.""" CUSTOM @deprecated(reason: "Custom pickup time is no longer supported.") } """ An auto-generated type for paginating through multiple MetafieldDefinitions. """ type MetafieldDefinitionConnection { edges: [MetafieldDefinitionEdge!]! """ A list of nodes that are contained in MetafieldDefinitionEdge. 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: [MetafieldDefinition!]! """ 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 MetafieldDefinition and a cursor during pagination. """ type MetafieldDefinitionEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of MetafieldDefinitionEdge.""" node: MetafieldDefinition! } """Possible metafield definition pinned statuses.""" enum MetafieldDefinitionPinnedStatus { """All metafield definitions.""" ANY """Only metafield definitions that are pinned.""" PINNED """Only metafield definitions that are not pinned.""" UNPINNED } """The set of valid sort keys for the MetafieldDefinition query.""" enum MetafieldDefinitionSortKeys { """Sort by the `id` value.""" ID """Sort by the `name` value.""" NAME """Sort by the `pinned_position` value.""" PINNED_POSITION """ 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 } """Represents a suggested address for a location.""" type LocationSuggestedAddress { """The first line of the suggested address.""" address1: String """The second line of the suggested address.""" address2: String """The city of the suggested address.""" city: String """The country of the suggested address.""" country: String """The country code of the suggested address.""" countryCode: CountryCode """A formatted version of the suggested address.""" formatted: [String!]! """The province of the suggested address.""" province: String """ The code for the province, state, or district of the suggested address. """ provinceCode: String """The ZIP code of the suggested address.""" zip: String } """Resources that metafield definitions can be applied to.""" interface HasMetafieldDefinitions { """List of metafield definitions.""" metafieldDefinitions( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Filter metafield definitions by namespace.""" namespace: String """Filter by the definition's pinned status.""" pinnedStatus: MetafieldDefinitionPinnedStatus = ANY """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | created_at | time | Filter by the date and time when the metafield definition was created. | | | - `created_at:>2020-10-21T23:39:20Z`
- `created_at: - `created_at:<=2024` | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | key | string | Filter by the metafield definition [`key`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-key) field. | | | - `key:some-key` | | namespace | string | Filter by the metafield definition [`namespace`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-namespace) field. | | | - `namespace:some-namespace` | | owner_type | string | Filter by the metafield definition [`ownerType`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-ownertype) field. | | | - `owner_type:PRODUCT` | | type | string | Filter by the metafield definition [`type`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-type) field. | | | - `type:single_line_text_field` | | updated_at | time | Filter by the date and time when the metafield definition was last updated. | | | - `updated_at:>2020-10-21T23:39:20Z`
- `updated_at: - `updated_at:<=2024` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: MetafieldDefinitionSortKeys = ID ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use the root `metafieldDefinitions` field instead.") } """The set of valid sort keys for the Location query.""" enum LocationSortKeys { """Sort by the `id` value.""" ID """Sort by the `name` value.""" NAME """ Sort by 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 } """ An auto-generated type for paginating through multiple DeliveryLocationGroupZones. """ type DeliveryLocationGroupZoneConnection { edges: [DeliveryLocationGroupZoneEdge!]! """ A list of nodes that are contained in DeliveryLocationGroupZoneEdge. 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: [DeliveryLocationGroupZone!]! """ 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 DeliveryLocationGroupZone and a cursor during pagination. """ type DeliveryLocationGroupZoneEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of DeliveryLocationGroupZoneEdge.""" node: DeliveryLocationGroupZone! } """ Links a location group with a zone and the associated method definitions. """ type DeliveryLocationGroupZone { """The number of method definitions for the zone.""" methodDefinitionCounts: DeliveryMethodDefinitionCounts! """The method definitions associated to a zone and location group.""" methodDefinitions( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """Return only eligible or ineligible method definitions.""" eligible: Boolean """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: MethodDefinitionSortKeys = ID """Return only merchant or participant method definitions.""" type: DeliveryMethodDefinitionType ): DeliveryMethodDefinitionConnection! """The zone associated to a location group.""" zone: DeliveryZone! } """ The number of method definitions for a zone, separated into merchant-owned and participant definitions. """ type DeliveryMethodDefinitionCounts { """The number of participant method definitions for the specified zone.""" participantDefinitionsCount: Int! """ The number of merchant-defined method definitions for the specified zone. """ rateDefinitionsCount: Int! } """ An auto-generated type for paginating through multiple DeliveryMethodDefinitions. """ type DeliveryMethodDefinitionConnection { edges: [DeliveryMethodDefinitionEdge!]! """ A list of nodes that are contained in DeliveryMethodDefinitionEdge. 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: [DeliveryMethodDefinition!]! """ 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 DeliveryMethodDefinition and a cursor during pagination. """ type DeliveryMethodDefinitionEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of DeliveryMethodDefinitionEdge.""" node: DeliveryMethodDefinition! } """ A method definition contains the delivery rate and the conditions that must be met for the method to be applied. """ type DeliveryMethodDefinition implements Node { """Whether this method definition is active.""" active: Boolean! """ The description of the method definition. Only available on shipping rates that are custom. """ description: String """A globally-unique ID.""" id: ID! """ The method conditions that must pass for this method definition to be applied to an order. """ methodConditions: [DeliveryCondition!]! """The name of the method definition.""" name: String! """ The provided rate for this method definition, from a rate definition or participant. """ rateProvider: DeliveryRateProvider! } """ A condition that must pass for a delivery method definition to be applied to an order. """ type DeliveryCondition implements Node { """The value (weight or price) that the condition field is compared to.""" conditionCriteria: DeliveryConditionCriteria! """The field to compare the criterion value against, using the operator.""" field: DeliveryConditionField! """A globally-unique ID.""" id: ID! """The operator to compare the field and criterion value.""" operator: DeliveryConditionOperator! } """The value (weight or price) that the condition field is compared to.""" union DeliveryConditionCriteria = MoneyV2 | Weight """The field type that the condition will be applied to.""" enum DeliveryConditionField { """The condition will check against the total price of the order.""" TOTAL_PRICE """The condition will check against the total weight of the order.""" TOTAL_WEIGHT } """The operator to use to determine if the condition passes.""" enum DeliveryConditionOperator { """ The condition will check whether the field is greater than or equal to the criterion. """ GREATER_THAN_OR_EQUAL_TO """ The condition will check if the field is less than or equal to the criterion. """ LESS_THAN_OR_EQUAL_TO } """A rate provided by a merchant-defined rate or a participant.""" union DeliveryRateProvider = DeliveryParticipant | DeliveryRateDefinition """ A participant defines carrier-calculated rates for shipping services with a possible merchant-defined fixed fee or a percentage-of-rate fee. """ type DeliveryParticipant implements Node { """ Whether to display new shipping services automatically to the customer when the service becomes available. """ adaptToNewServicesFlag: Boolean! """The carrier used for this participant.""" carrierService: DeliveryCarrierService! """The merchant-defined fixed fee for this participant.""" fixedFee: MoneyV2 """A globally-unique ID.""" id: ID! """ The carrier-specific services offered by the participant, and whether each service is active. """ participantServices: [DeliveryParticipantService!]! """The merchant-defined percentage-of-rate fee for this participant.""" percentageOfRateFee: Float! } """ A carrier service (also known as a carrier calculated service or shipping service) provides real-time shipping rates to Shopify. Some common carrier services include Canada Post, FedEx, UPS, and USPS. The term **carrier** is often used interchangeably with the terms **shipping company** and **rate provider**. Using the CarrierService resource, you can add a carrier service to a shop and then provide a list of applicable shipping rates at checkout. You can even use the cart data to adjust shipping rates and offer shipping discounts based on what is in the customer's cart. ## Requirements for accessing the CarrierService resource To access the CarrierService resource, add the `write_shipping` permission to your app's requested scopes. For more information, see [API access scopes](https://shopify.dev/docs/admin-api/access-scopes). Your app's request to create a carrier service will fail unless the store installing your carrier service meets one of the following requirements: * It's on the Advanced Shopify plan or higher. * It's on the Shopify plan with yearly billing, or the carrier service feature has been added to the store for a monthly fee. For more information, contact [Shopify Support](https://help.shopify.com/questions). * It's a development store. > Note: > If a store changes its Shopify plan, then the store's association with a carrier service is deactivated if the store no long meets one of the requirements above. ## Providing shipping rates to Shopify When adding a carrier service to a store, you need to provide a POST endpoint rooted in the `callbackUrl` property where Shopify can retrieve applicable shipping rates. The callback URL should be a public endpoint that expects these requests from Shopify. ### Example shipping rate request sent to a carrier service ```json { "rate": { "origin": { "country": "CA", "postal_code": "K2P1L4", "province": "ON", "city": "Ottawa", "name": null, "address1": "150 Elgin St.", "address2": "", "address3": null, "phone": null, "fax": null, "email": null, "address_type": null, "company_name": "Jamie D's Emporium" }, "destination": { "country": "CA", "postal_code": "K1M1M4", "province": "ON", "city": "Ottawa", "name": "Bob Norman", "address1": "24 Sussex Dr.", "address2": "", "address3": null, "phone": null, "fax": null, "email": null, "address_type": null, "company_name": null }, "items": [{ "name": "Short Sleeve T-Shirt", "sku": "", "quantity": 1, "grams": 1000, "price": 1999, "vendor": "Jamie D's Emporium", "requires_shipping": true, "taxable": true, "fulfillment_service": "manual", "properties": null, "product_id": 48447225880, "variant_id": 258644705304 }], "currency": "USD", "locale": "en" } } ``` ### Example response ```json { "rates": [ { "service_name": "canadapost-overnight", "service_code": "ON", "total_price": "1295", "description": "This is the fastest option by far", "currency": "CAD", "min_delivery_date": "2013-04-12 14:48:45 -0400", "max_delivery_date": "2013-04-12 14:48:45 -0400" }, { "service_name": "fedex-2dayground", "service_code": "2D", "total_price": "2934", "currency": "USD", "min_delivery_date": "2013-04-12 14:48:45 -0400", "max_delivery_date": "2013-04-12 14:48:45 -0400" }, { "service_name": "fedex-priorityovernight", "service_code": "1D", "total_price": "3587", "currency": "USD", "min_delivery_date": "2013-04-12 14:48:45 -0400", "max_delivery_date": "2013-04-12 14:48:45 -0400" } ] } ``` The `address3`, `fax`, `address_type`, and `company_name` fields are returned by specific [ActiveShipping](https://github.com/Shopify/active_shipping) providers. For API-created carrier services, you should use only the following shipping address fields: * `address1` * `address2` * `city` * `zip` * `province` * `country` Other values remain as `null` and are not sent to the callback URL. ### Response fields When Shopify requests shipping rates using your callback URL, the response object `rates` must be a JSON array of objects with the following fields. Required fields must be included in the response for the carrier service integration to work properly. | Field | Required | Description | | ----------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `service_name` | Yes | The name of the rate, which customers see at checkout. For example: `Expedited Mail`. | | `description` | Yes | A description of the rate, which customers see at checkout. For example: `Includes tracking and insurance`. | | `service_code` | Yes | A unique code associated with the rate. For example: `expedited_mail`. | | `currency` | Yes | The currency of the shipping rate. | | `total_price` | Yes | The total price expressed in subunits. If the currency doesn't use subunits, then the value must be multiplied by 100. For example: `"total_price": 500` for 5.00 CAD, `"total_price": 100000` for 1000 JPY. | | `phone_required` | No | Whether the customer must provide a phone number at checkout. | | `min_delivery_date` | No | The earliest delivery date for the displayed rate. | | `max_delivery_date` | No | The latest delivery date for the displayed rate to still be valid. | ### Special conditions * To indicate that this carrier service cannot handle this shipping request, return an empty array and any successful (20x) HTTP code. * To force backup rates instead, return a 40x or 50x HTTP code with any content. A good choice is the regular 404 Not Found code. * Redirects (30x codes) will only be followed for the same domain as the original callback URL. Attempting to redirect to a different domain will trigger backup rates. * There is no retry mechanism. The response must be successful on the first try, within the time budget listed below. Timeouts or errors will trigger backup rates. ## Response Timeouts The read timeout for rate requests are dynamic, based on the number of requests per minute (RPM). These limits are applied to each shop-app pair. The timeout values are as follows. | RPM Range | Timeout | | ------------- | ---------- | | Under 1500 | 10s | | 1500 to 3000 | 5s | | Over 3000 | 3s | > Note: > These values are upper limits and should not be interpretted as a goal to develop towards. Shopify is constantly evaluating the performance of the platform and working towards improving resilience as well as app capabilities. As such, these numbers may be adjusted outside of our normal versioning timelines. ## Server-side caching of requests Shopify provides server-side caching to reduce the number of requests it makes. Any shipping rate request that identically matches the following fields will be retrieved from Shopify's cache of the initial response: * variant IDs * default shipping box weight and dimensions * variant quantities * carrier service ID * origin address * destination address * item weights and signatures If any of these fields differ, or if the cache has expired since the original request, then new shipping rates are requested. The cache expires 15 minutes after rates are successfully returned. If an error occurs, then the cache expires after 30 seconds. """ type DeliveryCarrierService implements Node { """Whether the carrier service is active.""" active: Boolean! """The list of services offered for given destinations.""" availableServicesForCountries( """The country codes of the destinations.""" countryCodes: [CountryCode!] """The locations of the possible origins.""" origins: [ID!] """Whether to use 'Rest of World' as the destination.""" restOfWorld: Boolean! ): [DeliveryAvailableService!]! """The URL endpoint that Shopify needs to retrieve shipping rates.""" callbackUrl: URL """ The properly formatted name of the shipping service provider, ready to display. """ formattedName: String """The logo of the service provider.""" icon: Image! """A globally-unique ID.""" id: ID! """The name of the shipping service provider.""" name: String """ Whether merchants are able to send dummy data to your service through the Shopify admin to see shipping rate examples. """ supportsServiceDiscovery: Boolean! } """ A shipping service and a list of countries that the service is available for. """ type DeliveryAvailableService { """The countries the service provider ships to.""" countries: DeliveryCountryCodesOrRestOfWorld! """The name of the service.""" name: String! } """ The list of country codes and information whether the countries are a part of the 'Rest Of World' shipping zone. """ type DeliveryCountryCodesOrRestOfWorld { """List of applicable country codes in the ISO 3166-1 alpha-2 format.""" countryCodes: [CountryCode!]! """Whether the countries are a part of the 'Rest of World' shipping zone.""" restOfWorld: Boolean! } """A mail service provided by the participant.""" type DeliveryParticipantService { """Whether the service is active.""" active: Boolean! """The name of the service.""" name: String! } """ The merchant-defined rate of the [DeliveryMethodDefinition](https://shopify.dev/api/admin-graphql/latest/objects/DeliveryMethodDefinition). """ type DeliveryRateDefinition implements Node { """A globally-unique ID.""" id: ID! """The price of this rate.""" price: MoneyV2! } """The set of valid sort keys for the MethodDefinition query.""" enum MethodDefinitionSortKeys { """Sort by the `id` value.""" ID """Sort by the `rate_provider_type` value.""" RATE_PROVIDER_TYPE } """The different types of method definitions to filter by.""" enum DeliveryMethodDefinitionType { """A static merchant-defined rate.""" MERCHANT """A dynamic participant rate.""" PARTICIPANT } """ A zone is a group of countries that have the same shipping rates. Customers can order products from a store only if they choose a shipping destination that's included in one of the store's zones. """ type DeliveryZone implements Node { """The list of countries within the zone.""" countries: [DeliveryCountry!]! """A globally-unique ID.""" id: ID! """The name of the zone.""" name: String! } """ An auto-generated type for paginating through multiple SellingPlanGroups. """ type SellingPlanGroupConnection { edges: [SellingPlanGroupEdge!]! """ A list of nodes that are contained in SellingPlanGroupEdge. 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: [SellingPlanGroup!]! """ 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 SellingPlanGroup and a cursor during pagination. """ type SellingPlanGroupEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of SellingPlanGroupEdge.""" node: SellingPlanGroup! } """ Represents a selling method (for example, "Subscribe and save" or "Pre-paid"). Selling plan groups and associated records (selling plans and policies) are deleted 48 hours after a merchant uninstalls their subscriptions app. We recommend backing up these records if you need to restore them later. """ type SellingPlanGroup implements HasPublishedTranslations & Node { """The ID for app, exposed in Liquid and product JSON.""" appId: String """ Whether the given product is directly associated to the selling plan group. """ appliesToProduct( """The ID of the product.""" productId: ID! ): Boolean! """ Whether the given product variant is directly associated to the selling plan group. """ appliesToProductVariant( """The ID of the product.""" productVariantId: ID! ): Boolean! """ Whether any of the product variants of the given product are associated to the selling plan group. """ appliesToProductVariants( """The ID of the product.""" productId: ID! ): Boolean! """The date and time when the selling plan group was created.""" createdAt: DateTime! """The merchant-facing description of the selling plan group.""" description: String """A globally-unique ID.""" id: ID! """The merchant-facing label of the selling plan group.""" merchantCode: String! """The buyer-facing label of the selling plan group.""" name: String! """ The values of all options available on the selling plan group. Selling plans are grouped together in Liquid when they're created by the same app, and have the same `selling_plan_group.name` and `selling_plan_group.options` values. """ options: [String!]! """The relative position of the selling plan group for display.""" position: Int """Product variants associated to the selling plan group.""" productVariants( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Filters the product variants by a product ID.""" productId: ID """Reverse the order of the underlying list.""" reverse: Boolean = false ): ProductVariantConnection! """A count of product variants associated to the selling plan group.""" productVariantsCount( """The ID of the product to scope the count to.""" productId: ID ): Count """Products associated to the selling plan group.""" products( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): ProductConnection! """A count of products associated to the selling plan group.""" productsCount: Count """Selling plans associated to the selling plan group.""" sellingPlans( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): SellingPlanConnection! """A summary of the policies associated to the selling plan group.""" summary: String """The published translations associated with the resource.""" translations( """Filters translations locale.""" locale: String! """ Filters translations by market ID. Use this argument to retrieve content specific to a market. """ marketId: ID ): [Translation!]! } """An auto-generated type for paginating through multiple Products.""" type ProductConnection { edges: [ProductEdge!]! """ A list of nodes that are contained in ProductEdge. 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: [Product!]! """ 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 Product and a cursor during pagination. """ type ProductEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of ProductEdge.""" node: Product! } """An auto-generated type for paginating through multiple SellingPlans.""" type SellingPlanConnection { edges: [SellingPlanEdge!]! """ A list of nodes that are contained in SellingPlanEdge. 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: [SellingPlan!]! """ 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 SellingPlan and a cursor during pagination. """ type SellingPlanEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of SellingPlanEdge.""" node: SellingPlan! } """ Represents how a product can be sold and purchased. Selling plans and associated records (selling plan groups and policies) are deleted 48 hours after a merchant uninstalls their subscriptions app. We recommend backing up these records if you need to restore them later. For more information on selling plans, refer to [*Creating and managing selling plans*](https://shopify.dev/docs/apps/selling-strategies/subscriptions/selling-plans). """ type SellingPlan implements HasMetafieldDefinitions & HasMetafields & HasPublishedTranslations & Node { """A selling plan policy which describes the recurring billing details.""" billingPolicy: SellingPlanBillingPolicy! """The category used to classify the selling plan for reporting purposes.""" category: SellingPlanCategory """The date and time when the selling plan was created.""" createdAt: DateTime! """A selling plan policy which describes the delivery details.""" deliveryPolicy: SellingPlanDeliveryPolicy! """Buyer facing string which describes the selling plan commitment.""" description: String """A globally-unique ID.""" id: ID! """When to reserve inventory for a selling plan.""" inventoryPolicy: SellingPlanInventoryPolicy """ 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( """The key for the metafield.""" key: String! """ The container the metafield belongs to. If omitted, the app-reserved namespace will be used. """ namespace: String ): Metafield """List of metafield definitions.""" metafieldDefinitions( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Filter metafield definitions by namespace.""" namespace: String """Filter by the definition's pinned status.""" pinnedStatus: MetafieldDefinitionPinnedStatus = ANY """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | created_at | time | Filter by the date and time when the metafield definition was created. | | | - `created_at:>2020-10-21T23:39:20Z`
- `created_at: - `created_at:<=2024` | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | key | string | Filter by the metafield definition [`key`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-key) field. | | | - `key:some-key` | | namespace | string | Filter by the metafield definition [`namespace`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-namespace) field. | | | - `namespace:some-namespace` | | owner_type | string | Filter by the metafield definition [`ownerType`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-ownertype) field. | | | - `owner_type:PRODUCT` | | type | string | Filter by the metafield definition [`type`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-type) field. | | | - `type:single_line_text_field` | | updated_at | time | Filter by the date and time when the metafield definition was last updated. | | | - `updated_at:>2020-10-21T23:39:20Z`
- `updated_at: - `updated_at:<=2024` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: MetafieldDefinitionSortKeys = ID ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use the root `metafieldDefinitions` field instead.") """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. """ metafields( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ List of keys of metafields in the format `namespace.key`, will be returned in the same format. """ keys: [String!] """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. """ namespace: String """Reverse the order of the underlying list.""" reverse: Boolean = false ): MetafieldConnection! """ A customer-facing description of the selling plan. If your store supports multiple currencies, then don't include country-specific pricing content, such as "Buy monthly, get 10$ CAD off". This field won't be converted to reflect different currencies. """ name: String! """ The values of all options available on the selling plan. Selling plans are grouped together in Liquid when they're created by the same app, and have the same `selling_plan_group.name` and `selling_plan_group.options` values. """ options: [String!]! """ Relative position of the selling plan for display. A lower position will be displayed before a higher position. """ position: Int """Selling plan pricing details.""" pricingPolicies: [SellingPlanPricingPolicy!]! """The published translations associated with the resource.""" translations( """Filters translations locale.""" locale: String! """ Filters translations by market ID. Use this argument to retrieve content specific to a market. """ marketId: ID ): [Translation!]! } """ Represents the billing frequency associated to the selling plan (for example, bill every week, or bill every three months). The selling plan billing policy and associated records (selling plan groups, selling plans, pricing policies, and delivery policy) are deleted 48 hours after a merchant uninstalls their subscriptions app. We recommend backing up these records if you need to restore them later. """ union SellingPlanBillingPolicy = SellingPlanFixedBillingPolicy | SellingPlanRecurringBillingPolicy """ The fixed selling plan billing policy defines how much of the price of the product will be billed to customer at checkout. If there is an outstanding balance, it determines when it will be paid. """ type SellingPlanFixedBillingPolicy { """The checkout charge when the full amount isn't charged at checkout.""" checkoutCharge: SellingPlanCheckoutCharge! """The exact time when to capture the full payment.""" remainingBalanceChargeExactTime: DateTime """ The period after remaining_balance_charge_trigger, before capturing the full payment. Expressed as an ISO8601 duration. """ remainingBalanceChargeTimeAfterCheckout: String """When to capture payment for amount due.""" remainingBalanceChargeTrigger: SellingPlanRemainingBalanceChargeTrigger! } """ The amount charged at checkout when the full amount isn't charged at checkout. """ type SellingPlanCheckoutCharge { """The charge type for the checkout charge.""" type: SellingPlanCheckoutChargeType! """The charge value for the checkout charge.""" value: SellingPlanCheckoutChargeValue! } """The checkout charge when the full amount isn't charged at checkout.""" enum SellingPlanCheckoutChargeType { """The checkout charge is a percentage of the product or variant price.""" PERCENTAGE """The checkout charge is a fixed price amount.""" PRICE } """The portion of the price to be charged at checkout.""" union SellingPlanCheckoutChargeValue = MoneyV2 | SellingPlanCheckoutChargePercentageValue """The percentage value of the price used for checkout charge.""" type SellingPlanCheckoutChargePercentageValue { """The percentage value of the price used for checkout charge.""" percentage: Float! } """When to capture the payment for the remaining amount due.""" enum SellingPlanRemainingBalanceChargeTrigger { """ At an exact time defined by the remaining_balance_charge_exact_time field. """ EXACT_TIME """When there's no remaining balance to be charged after checkout.""" NO_REMAINING_BALANCE """ After the duration defined by the remaining_balance_charge_time_after_checkout field. """ TIME_AFTER_CHECKOUT """When the order is fulfilled.""" ON_FULFILLMENT } """Represents a recurring selling plan billing policy.""" type SellingPlanRecurringBillingPolicy { """ Specific anchor dates upon which the billing interval calculations should be made. """ anchors: [SellingPlanAnchor!]! """The date and time when the selling plan billing policy was created.""" createdAt: DateTime! """The billing frequency, it can be either: day, week, month or year.""" interval: SellingPlanInterval! """The number of intervals between billings.""" intervalCount: Int! """Maximum number of billing iterations.""" maxCycles: Int """Minimum number of billing iterations.""" minCycles: Int } """ Specifies the date when delivery or fulfillment is completed by a merchant for a given time cycle. You can also define a cutoff for which customers are eligible to enter this cycle and the desired behavior for customers who start their subscription inside the cutoff period. Some example scenarios where anchors can be useful to implement advanced delivery behavior: - A merchant starts fulfillment on a specific date every month. - A merchant wants to bill the 1st of every quarter. - A customer expects their delivery every Tuesday. For more details, see [About Selling Plans](https://shopify.dev/docs/apps/build/purchase-options/subscriptions/selling-plans#anchors). """ type SellingPlanAnchor { """ The cutoff day for the anchor. Specifies a buffer period before the anchor date for orders to be included in a delivery or fulfillment cycle. If `type` is WEEKDAY, then the value must be between 1-7. Shopify interprets the days of the week according to ISO 8601, where 1 is Monday. If `type` is MONTHDAY, then the value must be between 1-31. If `type` is YEARDAY, then the value must be `null`. """ cutoffDay: Int """ The day of the anchor. If `type` is WEEKDAY, then the value must be between 1-7. Shopify interprets the days of the week according to ISO 8601, where 1 is Monday. If `type` isn't WEEKDAY, then the value must be between 1-31. """ day: Int! """ The month of the anchor. If type is different than YEARDAY, then the value must be `null` or between 1-12. """ month: Int """ Represents the anchor type, it can be one one of WEEKDAY, MONTHDAY, YEARDAY. """ type: SellingPlanAnchorType! } """Represents the anchor type.""" enum SellingPlanAnchorType { """Which day of the month, between 1-31.""" MONTHDAY """Which day of the week, between 1-7.""" WEEKDAY """ Which days of the month and year, month between 1-12, and day between 1-31. """ YEARDAY } """Represents valid selling plan interval.""" enum SellingPlanInterval { """Day interval.""" DAY """Month interval.""" MONTH """Week interval.""" WEEK """Year interval.""" YEAR } """ The category of the selling plan. For the `OTHER` category, you must fill out our [request form](https://docs.google.com/forms/d/e/1FAIpQLSeU18Xmw0Q61V8wdH-dfGafFqIBfRchQKUO8WAF3yJTvgyyZQ/viewform), where we'll review your request for a new purchase option. """ enum SellingPlanCategory { """The selling plan is for anything not in one of the other categories.""" OTHER """The selling plan is for pre-orders.""" PRE_ORDER """The selling plan is for subscriptions.""" SUBSCRIPTION """The selling plan is for try before you buy purchases.""" TRY_BEFORE_YOU_BUY } """ Represents the delivery frequency associated to the selling plan (for example, deliver every month, or deliver every other week). The selling plan delivery policy and associated records (selling plan groups, selling plans, pricing policies, and billing policy) are deleted 48 hours after a merchant uninstalls their subscriptions app. We recommend backing up these records if you need to restore them later. """ union SellingPlanDeliveryPolicy = SellingPlanFixedDeliveryPolicy | SellingPlanRecurringDeliveryPolicy """Represents a fixed selling plan delivery policy.""" type SellingPlanFixedDeliveryPolicy { """ The specific anchor dates upon which the delivery interval calculations should be made. """ anchors: [SellingPlanAnchor!]! """A buffer period for orders to be included in next fulfillment anchor.""" cutoff: Int """The date and time when the fulfillment should trigger.""" fulfillmentExactTime: DateTime """ What triggers the fulfillment. The value must be one of ANCHOR, ASAP, EXACT_TIME, or UNKNOWN. """ fulfillmentTrigger: SellingPlanFulfillmentTrigger! """ Whether the delivery policy is merchant or buyer-centric. Buyer-centric delivery policies state the time when the buyer will receive the goods. Merchant-centric delivery policies state the time when the fulfillment should be started. Currently, only merchant-centric delivery policies are supported. """ intent: SellingPlanFixedDeliveryPolicyIntent! """ The fulfillment or delivery behavior of the first fulfillment when the order is placed before the anchor. The default value for this field is `ASAP`. """ preAnchorBehavior: SellingPlanFixedDeliveryPolicyPreAnchorBehavior! } """Describes what triggers fulfillment.""" enum SellingPlanFulfillmentTrigger { """Use the anchor values to calculate fulfillment date.""" ANCHOR """As soon as possible.""" ASAP """At an exact time defined by the fulfillment_exact_time field.""" EXACT_TIME """Unknown. Usually to be determined in the future.""" UNKNOWN } """Possible intentions of a Delivery Policy.""" enum SellingPlanFixedDeliveryPolicyIntent { """ A merchant-centric delivery policy. Mark this delivery policy to define when the merchant should start fulfillment. """ FULFILLMENT_BEGIN } """ The fulfillment or delivery behavior of the first fulfillment when the orderis placed before the anchor. """ enum SellingPlanFixedDeliveryPolicyPreAnchorBehavior { """ Orders placed can be fulfilled / delivered immediately. Orders placed inside a cutoff can be fulfilled / delivered at the next anchor. """ ASAP """ Orders placed can be fulfilled / delivered at the next anchor date. Orders placed inside a cutoff will skip the next anchor and can be fulfilled / delivered at the following anchor. """ NEXT } """Represents a recurring selling plan delivery policy.""" type SellingPlanRecurringDeliveryPolicy { """ The specific anchor dates upon which the delivery interval calculations should be made. """ anchors: [SellingPlanAnchor!]! """The date and time when the selling plan delivery policy was created.""" createdAt: DateTime! """ Number of days which represent a buffer period for orders to be included in a cycle. """ cutoff: Int """ Whether the delivery policy is merchant or buyer-centric. Buyer-centric delivery policies state the time when the buyer will receive the goods. Merchant-centric delivery policies state the time when the fulfillment should be started. Currently, only merchant-centric delivery policies are supported. """ intent: SellingPlanRecurringDeliveryPolicyIntent! """The delivery frequency, it can be either: day, week, month or year.""" interval: SellingPlanInterval! """The number of intervals between deliveries.""" intervalCount: Int! """ The fulfillment or delivery behavior of the first fulfillment when the order is placed before the anchor. The default value for this field is `ASAP`. """ preAnchorBehavior: SellingPlanRecurringDeliveryPolicyPreAnchorBehavior! } """Whether the delivery policy is merchant or buyer-centric.""" enum SellingPlanRecurringDeliveryPolicyIntent { """ A merchant-centric delivery policy. Mark this delivery policy to define when the merchant should start fulfillment. """ FULFILLMENT_BEGIN } """ The fulfillment or delivery behaviors of the first fulfillment when the orderis placed before the anchor. """ enum SellingPlanRecurringDeliveryPolicyPreAnchorBehavior { """ The orders placed can be fulfilled or delivered immediately. The orders placed inside a cutoff can be fulfilled or delivered at the next anchor. """ ASAP """ The orders placed can be fulfilled or delivered at the next anchor date. The orders placed inside a cutoff will skip the next anchor and can be fulfilled or delivered at the following anchor. """ NEXT } """The selling plan inventory policy.""" type SellingPlanInventoryPolicy { """When to reserve inventory for the order.""" reserve: SellingPlanReserve! } """When to reserve inventory for a selling plan.""" enum SellingPlanReserve { """Reserve inventory when order is fulfilled.""" ON_FULFILLMENT """Reserve inventory at time of sale.""" ON_SALE } """ Represents the type of pricing associated to the selling plan (for example, a $10 or 20% discount that is set for a limited period or that is fixed for the duration of the subscription). Selling plan pricing policies and associated records (selling plan groups, selling plans, billing policy, and delivery policy) are deleted 48 hours after a merchant uninstalls their subscriptions app. We recommend backing up these records if you need to restore them later. """ union SellingPlanPricingPolicy = SellingPlanFixedPricingPolicy | SellingPlanRecurringPricingPolicy """ Represents the pricing policy of a subscription or deferred purchase option selling plan. The selling plan fixed pricing policy works with the billing and delivery policy to determine the final price. Discounts are divided among fulfillments. For example, a subscription with a $10 discount and two deliveries will have a $5 discount applied to each delivery. """ type SellingPlanFixedPricingPolicy implements SellingPlanPricingPolicyBase { """The price adjustment type.""" adjustmentType: SellingPlanPricingPolicyAdjustmentType! """The price adjustment value.""" adjustmentValue: SellingPlanPricingPolicyAdjustmentValue! """ The date and time when the fixed selling plan pricing policy was created. """ createdAt: DateTime! } """Represents a selling plan pricing policy adjustment type.""" enum SellingPlanPricingPolicyAdjustmentType { """Fixed amount off adjustment.""" FIXED_AMOUNT """Percentage off adjustment.""" PERCENTAGE """Price of the policy.""" PRICE } """Represents a selling plan pricing policy adjustment value type.""" union SellingPlanPricingPolicyAdjustmentValue = MoneyV2 | SellingPlanPricingPolicyPercentageValue """The percentage value of a selling plan pricing policy percentage type.""" type SellingPlanPricingPolicyPercentageValue { """The percentage value.""" percentage: Float! } """Represents selling plan pricing policy common fields.""" interface SellingPlanPricingPolicyBase { """The price adjustment type.""" adjustmentType: SellingPlanPricingPolicyAdjustmentType! """The price adjustment value.""" adjustmentValue: SellingPlanPricingPolicyAdjustmentValue! } """ Represents a recurring selling plan pricing policy. It applies after the fixed pricing policy. By using the afterCycle parameter, you can specify the cycle when the recurring pricing policy comes into effect. Recurring pricing policies are not available for deferred purchase options. """ type SellingPlanRecurringPricingPolicy implements SellingPlanPricingPolicyBase { """The price adjustment type.""" adjustmentType: SellingPlanPricingPolicyAdjustmentType! """The price adjustment value.""" adjustmentValue: SellingPlanPricingPolicyAdjustmentValue! """Cycle after which this pricing policy applies.""" afterCycle: Int """ The date and time when the recurring selling plan pricing policy was created. """ createdAt: DateTime! } """Published translations associated with the resource.""" interface HasPublishedTranslations { """The published translations associated with the resource.""" translations( """Filters translations locale.""" locale: String! """ Filters translations by market ID. Use this argument to retrieve content specific to a market. """ marketId: ID ): [Translation!]! } """ The valid values for the inventory policy of a product variant once it is out of stock. """ enum ProductVariantInventoryPolicy { """Customers can buy this product variant after it's out of stock.""" CONTINUE """Customers can't buy this product variant after it's out of stock.""" DENY } """An auto-generated type for paginating through multiple Media.""" type MediaConnection { edges: [MediaEdge!]! """ A list of nodes that are contained in MediaEdge. 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: [Media!]! """ 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 Media and a cursor during pagination. """ type MediaEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of MediaEdge.""" node: Media! } """Represents a media interface.""" interface Media { """A word or phrase to share the nature or contents of a media.""" alt: String """A globally-unique ID.""" id: ID! """The media content type.""" mediaContentType: MediaContentType! """Any errors which have occurred on the media.""" mediaErrors: [MediaError!]! """The warnings attached to the media.""" mediaWarnings: [MediaWarning!]! """The preview image for the media.""" preview: MediaPreviewImage """Current status of the media.""" status: MediaStatus! } """The possible content types for a media object.""" enum MediaContentType { """An externally hosted video.""" EXTERNAL_VIDEO """A Shopify-hosted image.""" IMAGE """A 3d model.""" MODEL_3D """A Shopify-hosted video.""" VIDEO } """ Represents a media error. This typically occurs when there is an issue with the media itself causing it to fail validation. Check the media before attempting to upload again. """ type MediaError { """Code representing the type of error.""" code: MediaErrorCode! """Additional details regarding the error.""" details: String """Translated error message.""" message: String! } """Error types for media.""" enum MediaErrorCode { """ Media could not be created because a file with the same name already exists. """ DUPLICATE_FILENAME_ERROR """ Media could not be created because embed permissions are disabled for this video. """ EXTERNAL_VIDEO_EMBED_DISABLED """ Media could not be created because video is either not found or still transcoding. """ EXTERNAL_VIDEO_EMBED_NOT_FOUND_OR_TRANSCODING """ Media could not be created because the external video has an invalid aspect ratio. """ EXTERNAL_VIDEO_INVALID_ASPECT_RATIO """ Media could not be created because the external video could not be found. """ EXTERNAL_VIDEO_NOT_FOUND """ Media could not be created because the external video is not listed or is private. """ EXTERNAL_VIDEO_UNLISTED """ Media could not be created because the cumulative file storage limit would be exceeded. """ FILE_STORAGE_LIMIT_EXCEEDED """ File could not be processed because the source could not be downloaded. """ GENERIC_FILE_DOWNLOAD_FAILURE """File could not be created because the size is too large.""" GENERIC_FILE_INVALID_SIZE """ Media could not be processed because the image could not be downloaded. """ IMAGE_DOWNLOAD_FAILURE """Media could not be processed because the image could not be processed.""" IMAGE_PROCESSING_FAILURE """ Media could not be created because the image has an invalid aspect ratio. """ INVALID_IMAGE_ASPECT_RATIO """Media could not be created because the image size is too large.""" INVALID_IMAGE_FILE_SIZE """ Media could not be created because the image's resolution exceeds the max limit. """ INVALID_IMAGE_RESOLUTION """Media could not be processed because the signed URL was invalid.""" INVALID_SIGNED_URL """ Media timed out because it is currently being modified by another operation. """ MEDIA_TIMEOUT_ERROR """Media could not be created because the model file failed processing.""" MODEL3D_GLB_OUTPUT_CREATION_ERROR """ Media could not be created because the model can't be converted to USDZ format. """ MODEL3D_GLB_TO_USDZ_CONVERSION_ERROR """Media could not be created because the model file failed processing.""" MODEL3D_PROCESSING_FAILURE """ Media could not be created because the model's thumbnail generation failed. """ MODEL3D_THUMBNAIL_GENERATION_ERROR """There was an issue while trying to generate a new thumbnail.""" MODEL3D_THUMBNAIL_REGENERATION_ERROR """Model failed validation.""" MODEL3D_VALIDATION_ERROR """Media error has occured for unknown reason.""" UNKNOWN """ Media could not be created because the image is an unsupported file type. """ UNSUPPORTED_IMAGE_FILE_TYPE """Media could not be created because it has an invalid file type.""" VIDEO_INVALID_FILETYPE_ERROR """ Media could not be created because it does not meet the maximum duration requirement. """ VIDEO_MAX_DURATION_ERROR """ Media could not be created because it does not meet the maximum height requirement. """ VIDEO_MAX_HEIGHT_ERROR """ Media could not be created because it does not meet the maximum width requirement. """ VIDEO_MAX_WIDTH_ERROR """Media could not be created because the metadata could not be read.""" VIDEO_METADATA_READ_ERROR """ Media could not be created because it does not meet the minimum duration requirement. """ VIDEO_MIN_DURATION_ERROR """ Media could not be created because it does not meet the minimum height requirement. """ VIDEO_MIN_HEIGHT_ERROR """ Media could not be created because it does not meet the minimum width requirement. """ VIDEO_MIN_WIDTH_ERROR """Video failed validation.""" VIDEO_VALIDATION_ERROR } """ Represents a media warning. This occurs when there is a non-blocking concern regarding your media. Consider reviewing your media to ensure it is correct and its parameters are as expected. """ type MediaWarning { """The code representing the type of warning.""" code: MediaWarningCode! """Translated warning message.""" message: String } """Warning types for media.""" enum MediaWarningCode { """ 3D model physical size might be invalid. The dimensions of your model are very large. Consider reviewing your model to ensure they are correct. """ MODEL_LARGE_PHYSICAL_SIZE """ 3D model physical size might be invalid. The dimensions of your model are very small. Consider reviewing your model to ensure they are correct. """ MODEL_SMALL_PHYSICAL_SIZE """ The thumbnail failed to regenerate.Try applying the changes again to regenerate the thumbnail. """ MODEL_PREVIEW_IMAGE_FAIL } """Represents the preview image for a media.""" type MediaPreviewImage { """ The preview image for the media. Returns `null` until `status` is `READY`. """ image: Image """Current status of the preview image.""" status: MediaPreviewImageStatus! } """The possible statuses for a media preview image.""" enum MediaPreviewImageStatus { """Preview image processing has failed.""" FAILED """Preview image is being processed.""" PROCESSING """Preview image is ready to be displayed.""" READY """Preview image is uploaded but not yet processed.""" UPLOADED } """The possible statuses for a media object.""" enum MediaStatus { """Media processing has failed.""" FAILED """Media is being processed.""" PROCESSING """Media is ready to be displayed.""" READY """Media has been uploaded but not yet processed.""" UPLOADED } """ An auto-generated type for paginating through multiple ProductVariantPricePairs. """ type ProductVariantPricePairConnection { edges: [ProductVariantPricePairEdge!]! """ A list of nodes that are contained in ProductVariantPricePairEdge. 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: [ProductVariantPricePair!]! """ 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 ProductVariantPricePair and a cursor during pagination. """ type ProductVariantPricePairEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of ProductVariantPricePairEdge.""" node: ProductVariantPricePair! } """The compare-at price and price of a variant sharing a currency.""" type ProductVariantPricePair { """The compare-at price of the variant with associated currency.""" compareAtPrice: MoneyV2 """The price of the variant with associated currency.""" price: MoneyV2! } """ An auto-generated type for paginating through multiple ProductVariantComponents. """ type ProductVariantComponentConnection { edges: [ProductVariantComponentEdge!]! """ A list of nodes that are contained in ProductVariantComponentEdge. 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: [ProductVariantComponent!]! """ 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 ProductVariantComponent and a cursor during pagination. """ type ProductVariantComponentEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of ProductVariantComponentEdge.""" node: ProductVariantComponent! } """A product variant component associated with a product variant.""" type ProductVariantComponent implements Node { """A globally-unique ID.""" id: ID! """The product variant associated with the component.""" productVariant: ProductVariant! """The required quantity of the component.""" quantity: Int! } """ An auto-generated type for paginating through multiple ResourcePublicationV2s. """ type ResourcePublicationV2Connection { edges: [ResourcePublicationV2Edge!]! """ A list of nodes that are contained in ResourcePublicationV2Edge. 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: [ResourcePublicationV2!]! """ 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 ResourcePublicationV2 and a cursor during pagination. """ type ResourcePublicationV2Edge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of ResourcePublicationV2Edge.""" node: ResourcePublicationV2! } """ A resource publication represents information about the publication of a resource. Unlike `ResourcePublication`, an instance of `ResourcePublicationV2` can't be unpublished. It must either be published or scheduled to be published. See [ResourcePublication](/api/admin-graphql/latest/objects/ResourcePublication) for more context. """ type ResourcePublicationV2 { """ Whether the resource publication is published. If true, then the resource publication is published to the publication. If false, then the resource publication is staged to be published to the publication. """ isPublished: Boolean! """The publication the resource publication is published to.""" publication: Publication! """ The date that the resource publication was or is going to be published to the publication. """ publishDate: DateTime """The resource published to the publication.""" publishable: Publishable! } """ Represents a resource that can be published to a channel. A publishable resource can be either a Product or Collection. """ interface Publishable { """ The number of [publications](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication) that a resource is published to, without [feedback errors](https://shopify.dev/docs/api/admin-graphql/latest/objects/ResourceFeedback). """ availablePublicationsCount: Count """ The number of [publications](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication) that a resource is published to, without [feedback errors](https://shopify.dev/docs/api/admin-graphql/latest/objects/ResourceFeedback). """ publicationCount( """ Include only the resource's publications that are published. If false, then return all the resource's publications including future publications. """ onlyPublished: Boolean = true ): Int! @deprecated(reason: "Use `resourcePublicationsCount` instead.") """Whether the resource is published to a specific channel.""" publishedOnChannel( """The ID of the channel to check.""" channelId: ID! ): Boolean! @deprecated(reason: "Use `publishedOnPublication` instead.") """ Whether the resource is published to a [channel](https://shopify.dev/docs/api/admin-graphql/latest/objects/Channel). For example, the resource might be published to the online store channel. """ publishedOnCurrentChannel: Boolean! @deprecated(reason: "Use `publishedOnCurrentPublication` instead.") """ Whether the resource is published to the app's [publication](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication). For example, the resource might be published to the app's online store channel. """ publishedOnCurrentPublication: Boolean! """ Whether the resource is published to a specified [publication](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication). """ publishedOnPublication( """ The ID of the publication to check. For example, `id: "gid://shopify/Publication/123"`. """ publicationId: ID! ): Boolean! """ The list of resources that are published to a [publication](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication). """ resourcePublications( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ Whether to return only the resources that are currently published. If false, then also returns the resources that are scheduled to be published. """ onlyPublished: Boolean = true """Reverse the order of the underlying list.""" reverse: Boolean = false ): ResourcePublicationConnection! """ The number of [publications](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication) that a resource is published to, without [feedback errors](https://shopify.dev/docs/api/admin-graphql/latest/objects/ResourceFeedback). """ resourcePublicationsCount( """ Include only the resource's publications that are published. If false, then return all the resource's publications including future publications. """ onlyPublished: Boolean = true ): Count """ The list of resources that are either published or staged to be published to a [publication](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication). """ resourcePublicationsV2( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """Filter publications by catalog type.""" catalogType: CatalogType """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ Whether to return only the resources that are currently published. If false, then also returns the resources that are scheduled or staged to be published. """ onlyPublished: Boolean = true """Reverse the order of the underlying list.""" reverse: Boolean = false ): ResourcePublicationV2Connection! """The list of channels that the resource is not published to.""" unpublishedChannels( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): ChannelConnection! @deprecated(reason: "Use `unpublishedPublications` instead.") """ The list of [publications](https://shopify.dev/docs/api/admin-graphql/latest/objects/Publication) that the resource isn't published to. """ unpublishedPublications( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): PublicationConnection! } """The associated catalog's type.""" enum CatalogType { """Catalogs belonging to apps.""" APP """Catalogs belonging to company locations.""" COMPANY_LOCATION """Catalogs belonging to markets.""" MARKET """Not associated to a catalog.""" NONE } """An auto-generated type for paginating through multiple Channels.""" type ChannelConnection { edges: [ChannelEdge!]! """ A list of nodes that are contained in ChannelEdge. 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: [Channel!]! """ 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 Channel and a cursor during pagination. """ type ChannelEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of ChannelEdge.""" node: Channel! } """An auto-generated type for paginating through multiple Publications.""" type PublicationConnection { edges: [PublicationEdge!]! """ A list of nodes that are contained in PublicationEdge. 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: [Publication!]! """ 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 Publication and a cursor during pagination. """ type PublicationEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of PublicationEdge.""" node: Publication! } """ Properties used by customers to select a product variant. Products can have multiple options, like different sizes or colors. """ type SelectedOption { """The product option’s name.""" name: String! """The product option’s value object.""" optionValue: ProductOptionValue! """The product option’s value.""" value: String! } """ The product option value names. For example, "Red", "Blue", and "Green" for a "Color" option. """ type ProductOptionValue implements HasPublishedTranslations & Node { """Whether the product option value has any linked variants.""" hasVariants: Boolean! """A globally-unique ID.""" id: ID! """The value of the linked metafield.""" linkedMetafieldValue: String """The name of the product option value.""" name: String! """The swatch associated with the product option value.""" swatch: ProductOptionValueSwatch """The published translations associated with the resource.""" translations( """Filters translations locale.""" locale: String! """ Filters translations by market ID. Use this argument to retrieve content specific to a market. """ marketId: ID ): [Translation!]! } """A swatch associated with a product option value.""" type ProductOptionValueSwatch { """The color representation of the swatch.""" color: Color """An image representation of the swatch.""" image: MediaImage } """ A string containing a hexadecimal representation of a color. For example, "#6A8D48". """ scalar Color """An image hosted on Shopify.""" type MediaImage implements File & HasMetafields & HasPublishedTranslations & Media & Node { """A word or phrase to share the nature or contents of a media.""" alt: String """ The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) when the file was created. """ createdAt: DateTime! """Any errors that have occurred on the file.""" fileErrors: [FileError!]! """The status of the file.""" fileStatus: FileStatus! """A globally-unique ID.""" id: ID! """The image for the media. Returns `null` until `status` is `READY`.""" image: Image """The media content type.""" mediaContentType: MediaContentType! """Any errors which have occurred on the media.""" mediaErrors: [MediaError!]! """The warnings attached to the media.""" mediaWarnings: [MediaWarning!]! """ 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( """The key for the metafield.""" key: String! """ The container the metafield belongs to. If omitted, the app-reserved namespace will be used. """ namespace: String ): Metafield """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. """ metafields( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ List of keys of metafields in the format `namespace.key`, will be returned in the same format. """ keys: [String!] """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. """ namespace: String """Reverse the order of the underlying list.""" reverse: Boolean = false ): MetafieldConnection! """The MIME type of the image.""" mimeType: String """The original source of the image.""" originalSource: MediaImageOriginalSource """The preview image for the media.""" preview: MediaPreviewImage """Current status of the media.""" status: MediaStatus! """The published translations associated with the resource.""" translations( """Filters translations locale.""" locale: String! """ Filters translations by market ID. Use this argument to retrieve content specific to a market. """ marketId: ID ): [Translation!]! """ The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) when the file was last updated. """ updatedAt: DateTime! } """ A file error. This typically occurs when there is an issue with the file itself causing it to fail validation. Check the file before attempting to upload again. """ type FileError { """Code representing the type of error.""" code: FileErrorCode! """Additional details regarding the error.""" details: String """Translated error message.""" message: String! } """The error types for a file.""" enum FileErrorCode { """ File could not be created because a file with the same name already exists. """ DUPLICATE_FILENAME_ERROR """ File could not be created because embed permissions are disabled for this video. """ EXTERNAL_VIDEO_EMBED_DISABLED """ File could not be created because video is either not found or still transcoding. """ EXTERNAL_VIDEO_EMBED_NOT_FOUND_OR_TRANSCODING """ File could not be created because the external video has an invalid aspect ratio. """ EXTERNAL_VIDEO_INVALID_ASPECT_RATIO """ File could not be created because the external video could not be found. """ EXTERNAL_VIDEO_NOT_FOUND """ File could not be created because the external video is not listed or is private. """ EXTERNAL_VIDEO_UNLISTED """ File could not be created because the cumulative file storage limit would be exceeded. """ FILE_STORAGE_LIMIT_EXCEEDED """ File could not be processed because the source could not be downloaded. """ GENERIC_FILE_DOWNLOAD_FAILURE """File could not be created because the size is too large.""" GENERIC_FILE_INVALID_SIZE """File could not be processed because the image could not be downloaded.""" IMAGE_DOWNLOAD_FAILURE """File could not be processed because the image could not be processed.""" IMAGE_PROCESSING_FAILURE """ File could not be created because the image has an invalid aspect ratio. """ INVALID_IMAGE_ASPECT_RATIO """File could not be created because the image size is too large.""" INVALID_IMAGE_FILE_SIZE """ File could not be created because the image's resolution exceeds the max limit. """ INVALID_IMAGE_RESOLUTION """File could not be processed because the signed URL was invalid.""" INVALID_SIGNED_URL """ File timed out because it is currently being modified by another operation. """ MEDIA_TIMEOUT_ERROR """File could not be created because the model file failed processing.""" MODEL3D_GLB_OUTPUT_CREATION_ERROR """ File could not be created because the model can't be converted to USDZ format. """ MODEL3D_GLB_TO_USDZ_CONVERSION_ERROR """File could not be created because the model file failed processing.""" MODEL3D_PROCESSING_FAILURE """ File could not be created because the model's thumbnail generation failed. """ MODEL3D_THUMBNAIL_GENERATION_ERROR """There was an issue while trying to generate a new thumbnail.""" MODEL3D_THUMBNAIL_REGENERATION_ERROR """Model failed validation.""" MODEL3D_VALIDATION_ERROR """File error has occurred for an unknown reason.""" UNKNOWN """ File could not be created because the image is an unsupported file type. """ UNSUPPORTED_IMAGE_FILE_TYPE """File could not be created because it has an invalid file type.""" VIDEO_INVALID_FILETYPE_ERROR """ File could not be created because it does not meet the maximum duration requirement. """ VIDEO_MAX_DURATION_ERROR """ File could not be created because it does not meet the maximum height requirement. """ VIDEO_MAX_HEIGHT_ERROR """ File could not be created because it does not meet the maximum width requirement. """ VIDEO_MAX_WIDTH_ERROR """File could not be created because the metadata could not be read.""" VIDEO_METADATA_READ_ERROR """ File could not be created because it does not meet the minimum duration requirement. """ VIDEO_MIN_DURATION_ERROR """ File could not be created because it does not meet the minimum height requirement. """ VIDEO_MIN_HEIGHT_ERROR """ File could not be created because it does not meet the minimum width requirement. """ VIDEO_MIN_WIDTH_ERROR """Video failed validation.""" VIDEO_VALIDATION_ERROR } """The possible statuses for a file object.""" enum FileStatus { """File processing has failed.""" FAILED """File is being processed.""" PROCESSING """File is ready to be displayed.""" READY """File has been uploaded but hasn't been processed.""" UPLOADED } """The original source for an image.""" type MediaImageOriginalSource { """The size of the original file in bytes.""" fileSize: Int """The URL of the original image, valid only for a short period.""" url: URL } """A file interface.""" interface File { """A word or phrase to describe the contents or the function of a file.""" alt: String """ The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) when the file was created. """ createdAt: DateTime! """Any errors that have occurred on the file.""" fileErrors: [FileError!]! """The status of the file.""" fileStatus: FileStatus! """A globally-unique ID.""" id: ID! """The preview image for the media.""" preview: MediaPreviewImage """ The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) when the file was last updated. """ updatedAt: DateTime! } """ Represents a unique identifier in the Storefront API. A `StorefrontID` value can be used wherever an ID is expected in the Storefront API. Example value: `"Z2lkOi8vc2hvcGlmeS9Qcm9kdWN0LzEwMDc5Nzg1MTAw"`. """ scalar StorefrontID """ The measurement used to calculate a unit price for a product variant (e.g. $9.99 / 100ml). """ type UnitPriceMeasurement { """The type of unit of measurement for the unit price measurement.""" measuredType: UnitPriceMeasurementMeasuredType """The quantity unit for the unit price measurement.""" quantityUnit: UnitPriceMeasurementMeasuredUnit """The quantity value for the unit price measurement.""" quantityValue: Float! """The reference unit for the unit price measurement.""" referenceUnit: UnitPriceMeasurementMeasuredUnit """The reference value for the unit price measurement.""" referenceValue: Int! } """The accepted types of unit of measurement.""" enum UnitPriceMeasurementMeasuredType { """Unit of measurements representing areas.""" AREA """Unit of measurements representing lengths.""" LENGTH """Unit of measurements representing volumes.""" VOLUME """Unit of measurements representing weights.""" WEIGHT """Unit of measurements representing counts.""" COUNT """ The type of measurement is unknown. Upgrade to the latest version of the API to resolve this type. """ UNKNOWN } """The valid units of measurement for a unit price measurement.""" enum UnitPriceMeasurementMeasuredUnit { """100 centiliters equals 1 liter.""" CL """100 centimeters equals 1 meter.""" CM """Metric system unit of weight.""" G """1 kilogram equals 1000 grams.""" KG """Metric system unit of volume.""" L """Metric system unit of length.""" M """Metric system unit of area.""" M2 """1 cubic meter equals 1000 liters.""" M3 """1000 milligrams equals 1 gram.""" MG """1000 milliliters equals 1 liter.""" ML """1000 millimeters equals 1 meter.""" MM """Imperial system unit of volume (U.S. customary unit).""" FLOZ """1 foot equals 12 inches.""" FT """Imperial system unit of area.""" FT2 """1 gallon equals 128 fluid ounces (U.S. customary unit).""" GAL """Imperial system unit of length.""" IN """1 item, a unit of count.""" ITEM """Imperial system unit of weight.""" LB """16 ounces equals 1 pound.""" OZ """1 pint equals 16 fluid ounces (U.S. customary unit).""" PT """1 quart equals 32 fluid ounces (U.S. customary unit).""" QT """ The unit of measurement is unknown. Upgrade to the latest version of the API to resolve this unit. """ UNKNOWN """1 yard equals 36 inches.""" YD } """Represents an object that has a list of events.""" interface HasEvents { """The paginated list of events associated with the host subject.""" events( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | action | string | The action that occured. | | | - `action:create` | | comments | boolean | Whether or not to include [comment-events](https://shopify.dev/api/admin-graphql/latest/objects/CommentEvent) in your search, passing `false` will exclude comment-events, any other value will include comment-events. | | | - `false`
- `true` | | created_at | time | Filter by the date and time when the event happened. | | | - `created_at:>2020-10-21`
- `created_at: - `id:>=1234`
- `id:<=1234` | | subject_type | string | The resource type affected by this event, See [EventSubjectType](https://shopify.dev/api/admin-graphql/latest/enums/EventSubjectType) for possible values. | | | - `COMPANY` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: EventSortKeys = ID ): EventConnection! } """ A default cursor that you can use in queries to paginate your results. Each edge in a connection can return a cursor, which is a reference to the edge's position in the connection. You can use an edge's cursor as the starting point to retrieve the nodes before or after it in a connection. To learn more about using cursor-based pagination, refer to [Paginating results with GraphQL](https://shopify.dev/api/usage/pagination-graphql). """ interface Navigable { """ A default [cursor](https://shopify.dev/api/usage/pagination-graphql) that returns the single next record, sorted ascending by ID. """ defaultCursor: String! } """A relationship between a component option and a parent option.""" type ProductBundleComponentOptionSelection { """ The option that existed on the component product prior to the fixed bundle creation. """ componentOption: ProductOption! """The option that was created on the parent product.""" parentOption: ProductOption """ The component option values that are actively selected for this relationship. """ values: [ProductBundleComponentOptionSelectionValue!]! } """ The product property names. For example, "Size", "Color", and "Material". Variants are selected based on permutations of these options. The limit for each product property name is 255 characters. """ type ProductOption implements HasPublishedTranslations & Node { """A globally-unique ID.""" id: ID! """The metafield identifier linked to this option.""" linkedMetafield: LinkedMetafield """The product option’s name.""" name: String! """ Similar to values, option_values returns all the corresponding option value objects to the product option, including values not assigned to any variants. """ optionValues: [ProductOptionValue!]! """The product option's position.""" position: Int! """The published translations associated with the resource.""" translations( """Filters translations locale.""" locale: String! """ Filters translations by market ID. Use this argument to retrieve content specific to a market. """ marketId: ID ): [Translation!]! """The corresponding value to the product option name.""" values: [String!]! } """ The identifier for the metafield linked to this option. This API is currently in early access. See [Metafield-linked product options](https://shopify.dev/docs/api/admin/migrate/new-product-model/metafield-linked) for more details. """ type LinkedMetafield { """Key of the metafield the option is linked to.""" key: String """Namespace of the metafield the option is linked to.""" namespace: String } """A component option value related to a bundle line.""" type ProductBundleComponentOptionSelectionValue { """Selection status of the option.""" selectionStatus: ProductBundleComponentOptionSelectionStatus! """The value of the option.""" value: String! } """The status of a component option value related to a bundle.""" enum ProductBundleComponentOptionSelectionStatus { """The component option value is not selected as sellable in the bundle.""" DESELECTED """ The component option value was not initially selected, but is now available for the bundle. """ NEW """The component option value is selected as sellable in the bundle.""" SELECTED """ The component option value was selected, is no longer available for the bundle. """ UNAVAILABLE } """A quantity option related to a bundle.""" type ProductBundleComponentQuantityOption { """The name of the option value.""" name: String! """The option that was created on the parent product.""" parentOption: ProductOption """The quantity values of the option.""" values: [ProductBundleComponentQuantityOptionValue!]! } """A quantity option value related to a componentized product.""" type ProductBundleComponentQuantityOptionValue { """The name of the option value.""" name: String! """The quantity of the option value.""" quantity: Int! } """ The details of a specific product category within the [Shopify product taxonomy](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17). """ type TaxonomyCategory implements Node { """The IDs of the category's ancestor categories.""" ancestorIds: [ID!]! """The attributes of the taxonomy category.""" attributes( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int ): TaxonomyCategoryAttributeConnection! """The IDs of the category's child categories.""" childrenIds: [ID!]! """ The full name of the taxonomy category. For example, Animals & Pet Supplies > Pet Supplies > Dog Supplies > Dog Beds. """ fullName: String! """The globally-unique ID of the TaxonomyCategory.""" id: ID! """Whether the category is archived. The default value is `false`.""" isArchived: Boolean! """ Whether the category is a leaf category. A leaf category doesn't have any subcategories beneath it. For example, in Animals & Pet Supplies > Pet Supplies > Dog Supplies > Dog Treadmills, Dog Treadmills is a leaf category. The value is `true` when there are no `childrenIds` specified. """ isLeaf: Boolean! """ Whether the category is a root category. A root category is at the top level of the category hierarchy and doesn't have a parent category. For example, Animals & Pet Supplies. The value is `true` when there's no `parentId` specified. """ isRoot: Boolean! """ The level of the category in the taxonomy tree. Levels indicate the depth of the category from the root. For example, in Animals & Pet Supplies > Pet Supplies > Dog Supplies, Animals & Pet Supplies is at level 1, Animals & Pet Supplies > Pet Supplies is at level 2, and Animals & Pet Supplies > Pet Supplies > Dog Supplies is at level 3. """ level: Int! """The name of the taxonomy category. For example, Dog Beds.""" name: String! """The ID of the category's parent category.""" parentId: ID } """ An auto-generated type for paginating through multiple TaxonomyCategoryAttributes. """ type TaxonomyCategoryAttributeConnection { edges: [TaxonomyCategoryAttributeEdge!]! """ A list of nodes that are contained in TaxonomyCategoryAttributeEdge. 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: [TaxonomyCategoryAttribute!]! """ 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 TaxonomyCategoryAttribute and a cursor during pagination. """ type TaxonomyCategoryAttributeEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of TaxonomyCategoryAttributeEdge.""" node: TaxonomyCategoryAttribute! } """A product taxonomy attribute interface.""" union TaxonomyCategoryAttribute = TaxonomyAttribute | TaxonomyChoiceListAttribute | TaxonomyMeasurementAttribute """A Shopify product taxonomy attribute.""" type TaxonomyAttribute implements Node { """A globally-unique ID.""" id: ID! } """A Shopify product taxonomy choice list attribute.""" type TaxonomyChoiceListAttribute implements Node { """The unique ID of the TaxonomyAttribute.""" id: ID! """The name of the product taxonomy attribute. For example, Color.""" name: String! """A list of values on the choice list attribute.""" values( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int ): TaxonomyValueConnection! } """An auto-generated type for paginating through multiple TaxonomyValues.""" type TaxonomyValueConnection { edges: [TaxonomyValueEdge!]! """ A list of nodes that are contained in TaxonomyValueEdge. 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: [TaxonomyValue!]! """ 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 TaxonomyValue and a cursor during pagination. """ type TaxonomyValueEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of TaxonomyValueEdge.""" node: TaxonomyValue! } """Represents a Shopify product taxonomy value.""" type TaxonomyValue implements Node { """A globally-unique ID.""" id: ID! """The name of the product taxonomy value. For example, Red.""" name: String! } """A Shopify product taxonomy measurement attribute.""" type TaxonomyMeasurementAttribute implements Node { """The unique ID of the TaxonomyAttribute.""" id: ID! """The name of the product taxonomy attribute. For example, Color.""" name: String! """The product taxonomy attribute options.""" options: [Attribute!]! } """ Represents a generic custom attribute, such as whether an order is a customer's first. """ type Attribute { """ The key or name of the attribute. For example, `"customersFirstOrder"`. """ key: String! """The value of the attribute. For example, `"true"`.""" value: String } """The set of valid sort keys for the Collection query.""" enum CollectionSortKeys { """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 """Sort by the `updated_at` value.""" UPDATED_AT } """A combined listing of products.""" type CombinedListing { """A list of child products in the combined listing.""" combinedListingChildren( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): CombinedListingChildConnection! """The parent product.""" parentProduct: Product! } """ An auto-generated type for paginating through multiple CombinedListingChildren. """ type CombinedListingChildConnection { edges: [CombinedListingChildEdge!]! """ A list of nodes that are contained in CombinedListingChildEdge. 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: [CombinedListingChild!]! """ 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 CombinedListingChild and a cursor during pagination. """ type CombinedListingChildEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of CombinedListingChildEdge.""" node: CombinedListingChild! } """A child of a combined listing.""" type CombinedListingChild { """The parent variant.""" parentVariant: ProductVariant! """The child product.""" product: Product! } """The role of the combined listing.""" enum CombinedListingsRole { """The product is the child of a combined listing.""" CHILD """The product is the parent of a combined listing.""" PARENT } """The compare-at price range of the product.""" type ProductCompareAtPriceRange { """The highest variant's compare-at price.""" maxVariantCompareAtPrice: MoneyV2! """The lowest variant's compare-at price.""" minVariantCompareAtPrice: MoneyV2! } """ The price of a product in a specific country. Prices vary between countries. Refer to [Product](https://shopify.dev/docs/api/admin-graphql/latest/queries/product?example=Get+the+price+range+for+a+product+for+buyers+from+Canada) for more information on how to use this object. """ type ProductContextualPricing { """ The number of fixed quantity rules for the product's variants on the price list. """ fixedQuantityRulesCount: Int! """ The pricing of the variant with the highest price in the given context. """ maxVariantPricing: ProductVariantContextualPricing """The pricing of the variant with the lowest price in the given context.""" minVariantPricing: ProductVariantContextualPricing """ The minimum and maximum prices of a product, expressed in decimal numbers. For example, if the product is priced between $10.00 and $50.00, then the price range is $10.00 - $50.00. """ priceRange: ProductPriceRangeV2! } """The price range of the product.""" type ProductPriceRangeV2 { """The highest variant's price.""" maxVariantPrice: MoneyV2! """The lowest variant's price.""" minVariantPrice: MoneyV2! } """An auto-generated type for paginating through multiple Images.""" type ImageConnection { edges: [ImageEdge!]! """ A list of nodes that are contained in ImageEdge. 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: [Image!]! """ 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 Image and a cursor during pagination. """ type ImageEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of ImageEdge.""" node: Image! } """The set of valid sort keys for the ProductImage query.""" enum ProductImageSortKeys { """Sort by the `created_at` value.""" CREATED_AT """Sort by the `id` value.""" ID """Sort by the `position` value.""" POSITION } """The set of valid sort keys for the ProductMedia query.""" enum ProductMediaSortKeys { """Sort by the `id` value.""" ID """Sort by the `position` value.""" POSITION } """The price range of the product.""" type ProductPriceRange { """The highest variant's price.""" maxVariantPrice: MoneyV2! """The lowest variant's price.""" minVariantPrice: MoneyV2! } """ The details of a specific product category within the [Shopify product taxonomy](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17). """ type ProductCategory { """The product taxonomy node associated with the product category.""" productTaxonomyNode: ProductTaxonomyNode } """ Represents a [Shopify product taxonomy](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17) node. """ type ProductTaxonomyNode implements Node { """ The full name of the product taxonomy node. For example, Animals & Pet Supplies > Pet Supplies > Dog Supplies > Dog Beds. """ fullName: String! """The ID of the product taxonomy node.""" id: ID! """Whether the node is a leaf node.""" isLeaf: Boolean! """Whether the node is a root node.""" isRoot: Boolean! """The name of the product taxonomy node. For example, Dog Beds.""" name: String! } """The context data that determines the publication status of a product.""" input ContextualPublicationContext { """The company location ID used to fetch company-specific publication.""" companyLocationId: ID """The country code used to fetch country-specific publication.""" country: CountryCode } """Information about product is restricted for a given resource.""" type RestrictedForResource { """Returns true when the product is restricted for the given resource.""" restricted: Boolean! """Restriction reason for the given resource.""" restrictedReason: String! } """SEO information.""" type SEO { """SEO Description.""" description: String """SEO Title.""" title: String } """ Represents the details of a specific type of product within the [Shopify product taxonomy](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17). """ type StandardizedProductType { """ The product taxonomy node associated with the standardized product type. """ productTaxonomyNode: ProductTaxonomyNode } """The possible product statuses.""" enum ProductStatus { """ The product is ready to sell and can be published to sales channels and apps. Products with an active status aren't automatically published to sales channels, such as the online store, or apps. By default, existing products are set to active. """ ACTIVE """ The product is no longer being sold and isn't available to customers on sales channels and apps. """ ARCHIVED """ The product isn't ready to sell and is unavailable to customers on sales channels and apps. By default, duplicated and unarchived products are set to draft. """ DRAFT """ The product is active but you need a direct link to view it. The product doesn't show up in search, collections, or product recommendations. It will be returned in Storefront API and Liquid only when referenced individually by handle, id, or metafield reference.This status is only visible from 2025-10 and up, is translated to active in older versions and can't be changed from unlisted in older versions. """ UNLISTED } """The set of valid sort keys for the ProductVariant query.""" enum ProductVariantSortKeys { """Sort by the `full_title` value.""" FULL_TITLE """Sort by the `id` value.""" ID """ Sort by available inventory quantity in the location specified by the `query:"location_id:"` argument. Don't use this sort key when no `location_id` in query is specified. """ INVENTORY_LEVELS_AVAILABLE """Sort by the `inventory_management` value.""" INVENTORY_MANAGEMENT """Sort by the `inventory_policy` value.""" INVENTORY_POLICY """Sort by the `inventory_quantity` value.""" INVENTORY_QUANTITY """Sort by the `name` value.""" NAME """Sort by the `popular` value.""" POPULAR """Sort by the `position` value.""" POSITION """ 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 `sku` value.""" SKU """Sort by the `title` value.""" TITLE } """Online Store preview URL of the object.""" interface OnlineStorePreviewable { """ The [preview URL](https://help.shopify.com/manual/online-store/setting-up#preview-your-store) for the online store. """ onlineStorePreviewUrl: URL } """The possible types of publication operations.""" union PublicationOperation = AddAllProductsOperation | CatalogCsvOperation | PublicationResourceOperation """Represents an operation publishing all products to a publication.""" type AddAllProductsOperation implements Node & ResourceOperation { """A globally-unique ID.""" id: ID! """ The count of processed rows, summing imported, failed, and skipped rows. """ processedRowCount: Int """Represents a rows objects within this background operation.""" rowCount: RowCount """The status of this operation.""" status: ResourceOperationStatus! } """A catalog csv operation represents a CSV file import.""" type CatalogCsvOperation implements Node & ResourceOperation { """A globally-unique ID.""" id: ID! """ The count of processed rows, summing imported, failed, and skipped rows. """ processedRowCount: Int """Represents a rows objects within this background operation.""" rowCount: RowCount """The status of this operation.""" status: ResourceOperationStatus! } """A bulk update operation on a publication.""" type PublicationResourceOperation implements Node & ResourceOperation { """A globally-unique ID.""" id: ID! """ The count of processed rows, summing imported, failed, and skipped rows. """ processedRowCount: Int """Represents a rows objects within this background operation.""" rowCount: RowCount """The status of this operation.""" status: ResourceOperationStatus! } """The state of a catalog.""" enum CatalogStatus { """The catalog is active.""" ACTIVE """The catalog is archived.""" ARCHIVED """The catalog is in draft.""" DRAFT } """ Represents relative adjustments from one price list to other prices. You can use a `PriceListParent` to specify an adjusted relative price using a percentage-based adjustment. Adjusted prices work in conjunction with exchange rules and rounding. [Adjustment types](https://shopify.dev/api/admin-graphql/latest/enums/pricelistadjustmenttype) support both percentage increases and decreases. """ type PriceListParent { """A price list adjustment.""" adjustment: PriceListAdjustment! """A price list's settings for adjustment.""" settings: PriceListAdjustmentSettings! } """ The type and value of a price list adjustment. For more information on price lists, refer to [Support different pricing models](https://shopify.dev/apps/internationalization/product-price-lists). """ type PriceListAdjustment { """The type of price adjustment, such as percentage increase or decrease.""" type: PriceListAdjustmentType! """ The value of price adjustment, where positive numbers reduce the prices and negative numbers increase them. """ value: Float! } """Represents a percentage price adjustment type.""" enum PriceListAdjustmentType { """Percentage decrease type. Prices will have a lower value.""" PERCENTAGE_DECREASE """Percentage increase type. Prices will have a higher value.""" PERCENTAGE_INCREASE } """Represents the settings of price list adjustments.""" type PriceListAdjustmentSettings { """The type of price list adjustment setting for compare at price.""" compareAtMode: PriceListCompareAtMode! } """ Represents how the compare at price will be determined for a price list. """ enum PriceListCompareAtMode { """ The compare at price is adjusted based on percentage specified in price list. """ ADJUSTED """ The compare at prices are set to `null` unless explicitly defined by a fixed price value. """ NULLIFY } """ An auto-generated type for paginating through multiple PriceListPrices. """ type PriceListPriceConnection { edges: [PriceListPriceEdge!]! """ A list of nodes that are contained in PriceListPriceEdge. 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: [PriceListPrice!]! """ 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 PriceListPrice and a cursor during pagination. """ type PriceListPriceEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of PriceListPriceEdge.""" node: PriceListPrice! } """ Represents information about pricing for a product variant as defined on a price list, such as the price, compare at price, and origin type. You can use a `PriceListPrice` to specify a fixed price for a specific product variant. For examples, refer to [PriceListFixedPricesAdd](https://shopify.dev/api/admin-graphql/latest/mutations/priceListFixedPricesAdd) and [PriceList](https://shopify.dev/api/admin-graphql/latest/queries/priceList#section-examples). """ type PriceListPrice { """The compare-at price of the product variant on this price list.""" compareAtPrice: MoneyV2 """ The origin of a price, either fixed (defined on the price list) or relative (calculated using a price list adjustment configuration). """ originType: PriceListPriceOriginType! """The price of the product variant on this price list.""" price: MoneyV2! """A list of quantity breaks for the product variant.""" quantityPriceBreaks( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: QuantityPriceBreakSortKeys = MINIMUM_QUANTITY ): QuantityPriceBreakConnection! """The product variant associated with this price.""" variant: ProductVariant! } """ Represents the origin of a price, either fixed (defined on the price list) or relative (calculated using a price list adjustment configuration). For examples, refer to [PriceList](https://shopify.dev/api/admin-graphql/latest/queries/priceList#section-examples). """ enum PriceListPriceOriginType { """The price is defined on the price list.""" FIXED """The price is relative to the adjustment type and value.""" RELATIVE } """An auto-generated type for paginating through multiple QuantityRules.""" type QuantityRuleConnection { edges: [QuantityRuleEdge!]! """ A list of nodes that are contained in QuantityRuleEdge. 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: [QuantityRule!]! """ 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 QuantityRule and a cursor during pagination. """ type QuantityRuleEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of QuantityRuleEdge.""" node: QuantityRule! } """A market's currency settings.""" type MarketCurrencySettings { """ The currency which this market's prices are defined in, and the currency which its customers must use if local currencies are disabled. """ baseCurrency: CurrencySetting! """ Whether or not local currencies are enabled. If enabled, then prices will be converted to give each customer the best experience based on their region. If disabled, then all customers in this market will see prices in the market's base currency. For single country markets this will be true when the market's base currency is the same as the default currency for the region. """ localCurrencies: Boolean! } """A setting for a presentment currency.""" type CurrencySetting { """The currency's ISO code.""" currencyCode: CurrencyCode! """The full name of the currency.""" currencyName: String! """ Whether the currency is enabled or not. An enabled currency setting is visible to buyers and allows orders to be generated with that currency as presentment. """ enabled: Boolean! """ The date and time when the active exchange rate for the currency was last modified. It can be the automatic rate's creation date, or the manual rate's last updated at date if active. """ rateUpdatedAt: DateTime } """The conditions under which a visitor is in the market.""" type MarketConditions { """Regions condition for the market.""" regionsCondition: RegionsCondition } """The regions condition for market eligibility.""" type RegionsCondition { """The regions associated with the market.""" regions( """The elements that come after the specified cursor.""" after: String """The elements that come before the specified cursor.""" before: String """The first n elements from the paginated list.""" first: Int """The last n elements from the paginated list.""" last: Int ): MarketRegionConnection! } """An auto-generated type for paginating through multiple MarketRegions.""" type MarketRegionConnection { edges: [MarketRegionEdge!]! """ A list of nodes that are contained in MarketRegionEdge. 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: [MarketRegion!]! """ 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 MarketRegion and a cursor during pagination. """ type MarketRegionEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of MarketRegionEdge.""" node: MarketRegion! } """A geographic region which comprises a market.""" interface MarketRegion { """A globally-unique ID.""" id: ID! """The name of the region.""" name: String! } """The possible market statuses.""" enum MarketStatus { """The market is active.""" ACTIVE """The market is in draft.""" DRAFT } """ The market’s web presence, which defines its SEO strategy. This can be a different domain (e.g. `example.ca`), subdomain (e.g. `ca.example.com`), or subfolders of the primary domain (e.g. `example.com/en-ca`). Each web presence comprises one or more language variants. If a market does not have its own web presence, it is accessible on the shop’s primary domain via [country selectors](https://shopify.dev/themes/internationalization/multiple-currencies-languages#the-country-selector). Note: while the domain/subfolders defined by a market’s web presence are not applicable to custom storefronts, which must manage their own domains and routing, the languages chosen here do govern [the languages available on the Storefront API](https://shopify.dev/custom-storefronts/internationalization/multiple-languages) for the countries in this market. """ type MarketWebPresence implements Node { """ The ShopLocale object for the alternate locales. When a domain is used, these locales will be available as language-specific subfolders. For example, if English is an alternate locale, and `example.ca` is the market’s domain, then `example.ca/en` will load in English. """ alternateLocales: [ShopLocale!]! """ The ShopLocale object for the default locale. When a domain is used, this is the locale that will be used when the domain root is accessed. For example, if French is the default locale, and `example.ca` is the market’s domain, then `example.ca` will load in French. """ defaultLocale: ShopLocale! """ The web presence’s domain. This field will be null if `subfolderSuffix` isn't null. """ domain: Domain """A globally-unique ID.""" id: ID! """The associated market.""" market: Market """ The list of root URLs for each of the web presence’s locales. As of version `2024-04` this value will no longer have a trailing slash. """ rootUrls: [MarketWebPresenceRootUrl!]! """ The market-specific suffix of the subfolders defined by the web presence. Example: in `/en-us` the subfolder suffix is `us`. This field will be null if `domain` isn't null. """ subfolderSuffix: String } """A locale that's been enabled on a shop.""" type ShopLocale { """The locale ISO code.""" locale: String! """The market web presences that use the locale.""" marketWebPresences: [MarketWebPresence!]! """The human-readable locale name.""" name: String! """Whether the locale is the default locale for the shop.""" primary: Boolean! """Whether the locale is visible to buyers.""" published: Boolean! } """ A unique string that represents the address of a Shopify store on the Internet. """ type Domain implements Node { """The host name of the domain. For example, `example.com`.""" host: String! """A globally-unique ID.""" id: ID! """The localization of the domain, if the domain doesn't redirect.""" localization: DomainLocalization """The web presence of the domain.""" marketWebPresence: MarketWebPresence """Whether SSL is enabled.""" sslEnabled: Boolean! """The URL of the domain (for example, `https://example.com`).""" url: URL! } """The country and language settings assigned to a domain.""" type DomainLocalization { """ The ISO codes for the domain’s alternate locales. For example, `["en"]`. """ alternateLocales: [String!]! """ The ISO code for the country assigned to the domain. For example, `"CA"` or "*" for a domain set to "Rest of world". """ country: String """The ISO code for the domain’s default locale. For example, `"en"`.""" defaultLocale: String! } """ The URL for the homepage of the online store in the context of a particular market and a particular locale. """ type MarketWebPresenceRootUrl { """The locale that the storefront loads in.""" locale: String! """The URL.""" url: URL! } """ An auto-generated type for paginating through multiple MarketWebPresences. """ type MarketWebPresenceConnection { edges: [MarketWebPresenceEdge!]! """ A list of nodes that are contained in MarketWebPresenceEdge. 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: [MarketWebPresence!]! """ 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 MarketWebPresence and a cursor during pagination. """ type MarketWebPresenceEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of MarketWebPresenceEdge.""" node: MarketWebPresence! } """Represents an error in the input of a mutation.""" type UserError implements DisplayableError { """The path to the input field that caused the error.""" field: [String!] """The error message.""" message: String! } """Represents an error in the input of a mutation.""" interface DisplayableError { """The path to the input field that caused the error.""" field: [String!] """The error message.""" message: String! } """The state of the resource feedback.""" enum ResourceFeedbackState { """No action required from merchant.""" ACCEPTED """The merchant needs to resolve an issue with the resource.""" REQUIRES_ACTION } """The set of valid sort keys for the ProductCollection query.""" enum ProductCollectionSortKeys { """Sort by the `best-selling` value.""" BEST_SELLING """Sort by the `collection-default` value.""" COLLECTION_DEFAULT """Sort by the `created` value.""" CREATED """Sort by the `id` value.""" ID """Sort by the `manual` value.""" MANUAL """Sort by the `price` value.""" PRICE """ 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 } """ An auto-generated type for paginating through multiple CollectionPublications. """ type CollectionPublicationConnection { edges: [CollectionPublicationEdge!]! """ A list of nodes that are contained in CollectionPublicationEdge. 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: [CollectionPublication!]! """ 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 CollectionPublication and a cursor during pagination. """ type CollectionPublicationEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of CollectionPublicationEdge.""" node: CollectionPublication! } """Represents the publications where a collection is published.""" type CollectionPublication { """The channel where the collection will be published.""" channel: Channel! @deprecated(reason: "Use `publication` instead.") """The collection to be published on the publication.""" collection: Collection! """Whether the publication is published or not.""" isPublished: Boolean! """The publication where the collection will be published.""" publication: Publication! """The date that the publication was or is going to be published.""" publishDate: DateTime! } """ The set of rules that are used to determine which products are included in the collection. """ type CollectionRuleSet { """ Whether products must match any or all of the rules to be included in the collection. If true, then products must match at least one of the rules to be included in the collection. If false, then products must match all of the rules to be included in the collection. """ appliedDisjunctively: Boolean! """The rules used to assign products to the collection.""" rules: [CollectionRule!]! } """Represents at rule that's used to assign products to a collection.""" type CollectionRule { """ The attribute that the rule focuses on. For example, `title` or `product_type`. """ column: CollectionRuleColumn! """The value that the operator is applied to. For example, `Hats`.""" condition: String! """The value that the operator is applied to.""" conditionObject: CollectionRuleConditionObject """ The type of operator that the rule is based on. For example, `equals`, `contains`, or `not_equals`. """ relation: CollectionRuleRelation! } """ Specifies the attribute of a product being used to populate the smart collection. """ enum CollectionRuleColumn { """ An attribute evaluated based on the `compare_at_price` attribute of the product's variants. With `is_set` relation, the rule matches products with at least one variant with `compare_at_price` set. With `is_not_set` relation, the rule matches matches products with at least one variant with `compare_at_price` not set. """ IS_PRICE_REDUCED """ The [`product_category_id`](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-category) attribute. """ PRODUCT_CATEGORY_ID """ This category includes metafield definitions that have the `useAsCollectionCondition` flag set to true. """ PRODUCT_METAFIELD_DEFINITION """ The [`product_taxonomy_node_id`](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-product-productcategory) attribute. """ PRODUCT_TAXONOMY_NODE_ID """ The [`tag`](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-product-producttype) attribute. """ TAG """ The [`title`](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-product-title) attribute. """ TITLE """ The [`type`](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-product-producttype) attribute. """ TYPE """ The [`variant_compare_at_price`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-productvariant-compareatprice) attribute. """ VARIANT_COMPARE_AT_PRICE """ The [`variant_inventory`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-productvariant-inventoryquantity) attribute. """ VARIANT_INVENTORY """ This category includes metafield definitions that have the `useAsCollectionCondition` flag set to true. """ VARIANT_METAFIELD_DEFINITION """ The [`variant_price`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-productvariant-price) attribute. """ VARIANT_PRICE """ The [`variant_title`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-productvariant-title) attribute. """ VARIANT_TITLE """ The [`variant_weight`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-productvariant-weight) attribute. """ VARIANT_WEIGHT """ The [`vendor`](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-product-vendor) attribute. """ VENDOR """ This rule type is designed to dynamically include products in a collection based on their category id. When a specific product category is set as a condition, this rule will not only match products that are directly assigned to the specified category but also include any products categorized under any descendant of that category. """ PRODUCT_CATEGORY_ID_WITH_DESCENDANTS } """Specifies object for the condition of the rule.""" union CollectionRuleConditionObject = CollectionRuleCategoryCondition | CollectionRuleMetafieldCondition | CollectionRuleProductCategoryCondition | CollectionRuleTextCondition """Specifies the taxonomy category to used for the condition.""" type CollectionRuleCategoryCondition { """The taxonomy category used as condition.""" value: TaxonomyCategory! } """ Identifies a metafield definition used as a rule for the smart collection. """ type CollectionRuleMetafieldCondition { """The metafield definition associated with the condition.""" metafieldDefinition: MetafieldDefinition! } """Specifies the condition for a Product Category field.""" type CollectionRuleProductCategoryCondition { """The value of the condition.""" value: ProductTaxonomyNode! } """Specifies the condition for a text field.""" type CollectionRuleTextCondition { """The value of the condition.""" value: String! } """Specifies the relationship between the `column` and the `condition`.""" enum CollectionRuleRelation { """The attribute contains the condition.""" CONTAINS """The attribute ends with the condition.""" ENDS_WITH """The attribute is equal to the condition.""" EQUALS """The attribute is greater than the condition.""" GREATER_THAN """The attribute is not set (equal to `null`).""" IS_NOT_SET """The attribute is set (not equal to `null`).""" IS_SET """The attribute is less than the condition.""" LESS_THAN """The attribute does not contain the condition.""" NOT_CONTAINS """The attribute does not equal the condition.""" NOT_EQUALS """The attribute starts with the condition.""" STARTS_WITH } """Specifies the sort order for the products in the collection.""" enum CollectionSortOrder { """Alphabetically, in ascending order (A - Z).""" ALPHA_ASC """Alphabetically, in descending order (Z - A).""" ALPHA_DESC """By best-selling products.""" BEST_SELLING """By date created, in ascending order (oldest - newest).""" CREATED """By date created, in descending order (newest - oldest).""" CREATED_DESC """In the order set manually by the merchant.""" MANUAL """By price, in ascending order (lowest - highest).""" PRICE_ASC """By price, in descending order (highest - lowest).""" PRICE_DESC """By most relevant products.""" MOST_RELEVANT } """ Represents information about a company which is also a customer of the shop. """ type Company implements CommentEventSubject & HasEvents & HasMetafieldDefinitions & HasMetafields & Navigable & Node { """The number of contacts that belong to the company.""" contactCount: Int! @deprecated(reason: "Use `contactsCount` instead.") """The list of roles for the company contacts.""" contactRoles( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false """Sort the underlying list by the given key.""" sortKey: CompanyContactRoleSortKeys = ID ): CompanyContactRoleConnection! """The list of contacts in the company.""" contacts( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | company_id | id | | company_location_id | id | | created_at | time | | email | string | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | location_name | string | | name | string | | role_name | string | | status | string | | updated_at | time | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """Sort the underlying list by the given key.""" sortKey: CompanyContactSortKeys = ID ): CompanyContactConnection! """The number of contacts that belong to the company.""" contactsCount: Count """ The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) at which the company was created in Shopify. """ createdAt: DateTime! """ The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) at which the company became the customer. """ customerSince: DateTime! """ A default [cursor](https://shopify.dev/api/usage/pagination-graphql) that returns the single next record, sorted ascending by ID. """ defaultCursor: String! """The role proposed by default for a contact at the company.""" defaultRole: CompanyContactRole """The list of the company's draft orders.""" draftOrders( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | created_at | time | | customer_id | id | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | source | string | | status | string | | tag | string | | updated_at | time | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: DraftOrderSortKeys = ID ): DraftOrderConnection! """The paginated list of events associated with the host subject.""" events( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | action | string | The action that occured. | | | - `action:create` | | comments | boolean | Whether or not to include [comment-events](https://shopify.dev/api/admin-graphql/latest/objects/CommentEvent) in your search, passing `false` will exclude comment-events, any other value will include comment-events. | | | - `false`
- `true` | | created_at | time | Filter by the date and time when the event happened. | | | - `created_at:>2020-10-21`
- `created_at: - `id:>=1234`
- `id:<=1234` | | subject_type | string | The resource type affected by this event, See [EventSubjectType](https://shopify.dev/api/admin-graphql/latest/enums/EventSubjectType) for possible values. | | | - `COMPANY` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: EventSortKeys = ID ): EventConnection! """A unique externally-supplied ID for the company.""" externalId: String """Whether the merchant added a timeline comment to the company.""" hasTimelineComment: Boolean! """A globally-unique ID.""" id: ID! """ The lifetime duration of the company, since it became a customer of the shop. Examples: `2 days`, `3 months`, `1 year`. """ lifetimeDuration: String! """The list of locations in the company.""" locations( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | company_id | id | | created_at | time | | external_id | string | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | ids | string | | name | string | | updated_at | time | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """Sort the underlying list by the given key.""" sortKey: CompanyLocationSortKeys = ID ): CompanyLocationConnection! """The number of locations that belong to the company.""" locationsCount: Count """The main contact for the company.""" mainContact: CompanyContact """ 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( """The key for the metafield.""" key: String! """ The container the metafield belongs to. If omitted, the app-reserved namespace will be used. """ namespace: String ): Metafield """List of metafield definitions.""" metafieldDefinitions( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Filter metafield definitions by namespace.""" namespace: String """Filter by the definition's pinned status.""" pinnedStatus: MetafieldDefinitionPinnedStatus = ANY """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | created_at | time | Filter by the date and time when the metafield definition was created. | | | - `created_at:>2020-10-21T23:39:20Z`
- `created_at: - `created_at:<=2024` | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | key | string | Filter by the metafield definition [`key`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-key) field. | | | - `key:some-key` | | namespace | string | Filter by the metafield definition [`namespace`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-namespace) field. | | | - `namespace:some-namespace` | | owner_type | string | Filter by the metafield definition [`ownerType`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-ownertype) field. | | | - `owner_type:PRODUCT` | | type | string | Filter by the metafield definition [`type`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-type) field. | | | - `type:single_line_text_field` | | updated_at | time | Filter by the date and time when the metafield definition was last updated. | | | - `updated_at:>2020-10-21T23:39:20Z`
- `updated_at: - `updated_at:<=2024` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: MetafieldDefinitionSortKeys = ID ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use the root `metafieldDefinitions` field instead.") """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. """ metafields( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ List of keys of metafields in the format `namespace.key`, will be returned in the same format. """ keys: [String!] """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. """ namespace: String """Reverse the order of the underlying list.""" reverse: Boolean = false ): MetafieldConnection! """The name of the company.""" name: String! """A note about the company.""" note: String """The list of the company's orders.""" orders( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: OrderSortKeys = ID ): OrderConnection! """ The total number of orders placed for this company, across all its locations. """ ordersCount: Count """The total amount spent by this company, across all its locations.""" totalSpent: MoneyV2! """ The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) at which the company was last modified. """ updatedAt: DateTime! } """ An auto-generated type for paginating through multiple CompanyContactRoles. """ type CompanyContactRoleConnection { edges: [CompanyContactRoleEdge!]! """ A list of nodes that are contained in CompanyContactRoleEdge. 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: [CompanyContactRole!]! """ 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 CompanyContactRole and a cursor during pagination. """ type CompanyContactRoleEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of CompanyContactRoleEdge.""" node: CompanyContactRole! } """ The role for a [company contact](https://shopify.dev/api/admin-graphql/latest/objects/companycontact). """ type CompanyContactRole implements Node { """A globally-unique ID.""" id: ID! """ The name of a role. For example, `admin` or `buyer`. """ name: String! """A note for the role.""" note: String } """The set of valid sort keys for the CompanyContactRole query.""" enum CompanyContactRoleSortKeys { """Sort by the `created_at` value.""" CREATED_AT """Sort by the `id` value.""" ID """Sort by the `updated_at` value.""" UPDATED_AT } """ An auto-generated type for paginating through multiple CompanyContacts. """ type CompanyContactConnection { edges: [CompanyContactEdge!]! """ A list of nodes that are contained in CompanyContactEdge. 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: [CompanyContact!]! """ 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 CompanyContact and a cursor during pagination. """ type CompanyContactEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of CompanyContactEdge.""" node: CompanyContact! } """ A person that acts on behalf of company associated to [a customer](https://shopify.dev/api/admin-graphql/latest/objects/customer). """ type CompanyContact implements Node { """The company to which the contact belongs.""" company: Company! """ The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) at which the company contact was created at Shopify. """ createdAt: DateTime! """The customer associated to this contact.""" customer: Customer! """The list of draft orders for the company contact.""" draftOrders( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | created_at | time | | customer_id | id | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | source | string | | status | string | | tag | string | | updated_at | time | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: DraftOrderSortKeys = ID ): DraftOrderConnection! """A globally-unique ID.""" id: ID! """Whether the contact is the main contact of the company.""" isMainContact: Boolean! """ The lifetime duration of the company contact, since its creation date on Shopify. Examples: `1 year`, `2 months`, `3 days`. """ lifetimeDuration: String! """The company contact's locale (language).""" locale: String """The list of orders for the company contact.""" orders( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: OrderSortKeys = ID ): OrderConnection! """The list of roles assigned to this company contact.""" roleAssignments( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | company_contact_id | id | | company_contact_role_id | id | | company_id | id | | company_location_id | id | | created_at | time | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | location_name | string | | role_name | string | | updated_at | time | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """Sort the underlying list by the given key.""" sortKey: CompanyContactRoleAssignmentSortKeys = ID ): CompanyContactRoleAssignmentConnection! """The company contact's job title.""" title: String """ The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) at which the company contact was last updated. """ updatedAt: DateTime! } """ Represents information about a customer of the shop, such as the customer's contact details, their order history, and whether they've agreed to receive marketing material by email. **Caution:** Only use this data if it's required for your app's functionality. Shopify will restrict [access to scopes](https://shopify.dev/api/usage/access-scopes) for apps that don't have a legitimate use for the associated data. """ type Customer implements CommentEventSubject & HasEvents & HasMetafieldDefinitions & HasMetafields & HasStoreCreditAccounts & LegacyInteroperability & Node { """A list of addresses associated with the customer.""" addresses( """Truncate the array result to this size.""" first: Int ): [MailingAddress!]! """The addresses associated with the customer.""" addressesV2( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): MailingAddressConnection! """ The total amount that the customer has spent on orders in their lifetime. """ amountSpent: MoneyV2! """ Whether the merchant can delete the customer from their store. A customer can be deleted from a store only if they haven't yet made an order. After a customer makes an order, they can't be deleted from a store. """ canDelete: Boolean! """A list of the customer's company contact profiles.""" companyContactProfiles: [CompanyContact!]! """The date and time when the customer was added to the store.""" createdAt: DateTime! """Whether the customer has opted out of having their data sold.""" dataSaleOptOut: Boolean! """The default address associated with the customer.""" defaultAddress: MailingAddress """ The full name of the customer, based on the values for first_name and last_name. If the first_name and last_name are not available, then this falls back to the customer's email address, and if that is not available, the customer's phone number. """ displayName: String! """The customer's email address.""" email: String """ The current email marketing state for the customer. If the customer doesn't have an email address, then this property is `null`. """ emailMarketingConsent: CustomerEmailMarketingConsentState """A list of events associated with the customer.""" events( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | action | string | The action that occured. | | | - `action:create` | | comments | boolean | Whether or not to include [comment-events](https://shopify.dev/api/admin-graphql/latest/objects/CommentEvent) in your search, passing `false` will exclude comment-events, any other value will include comment-events. | | | - `false`
- `true` | | created_at | time | Filter by the date and time when the event happened. | | | - `created_at:>2020-10-21`
- `created_at: - `id:>=1234`
- `id:<=1234` | | subject_type | string | The resource type affected by this event, See [EventSubjectType](https://shopify.dev/api/admin-graphql/latest/enums/EventSubjectType) for possible values. | | | - `COMPANY` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: EventSortKeys = ID ): EventConnection! """The customer's first name.""" firstName: String """ Whether the merchant has added timeline comments about the customer on the customer's page. """ hasTimelineComment: Boolean! @deprecated(reason: "To query for comments on the timeline, use the events connection and a `query` argument containing `verb:comment`, or look for a `CommentEvent` in the `__typename` of events.") """A globally-unique ID.""" id: ID! """The image associated with the customer.""" image: Image! """The customer's last name.""" lastName: String """The customer's last order.""" lastOrder: Order """The ID of the corresponding resource in the REST Admin API.""" legacyResourceId: UnsignedInt64! """ The amount of time since the customer was first added to the store. Example: 'about 12 years'. """ lifetimeDuration: String! """The customer's locale.""" locale: String! """The market that includes the customer’s default address.""" market: Market """Whether the customer can be merged with another customer.""" mergeable: CustomerMergeable! """ 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( """The key for the metafield.""" key: String! """ The container the metafield belongs to. If omitted, the app-reserved namespace will be used. """ namespace: String ): Metafield """List of metafield definitions.""" metafieldDefinitions( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Filter metafield definitions by namespace.""" namespace: String """Filter by the definition's pinned status.""" pinnedStatus: MetafieldDefinitionPinnedStatus = ANY """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | created_at | time | Filter by the date and time when the metafield definition was created. | | | - `created_at:>2020-10-21T23:39:20Z`
- `created_at: - `created_at:<=2024` | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | key | string | Filter by the metafield definition [`key`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-key) field. | | | - `key:some-key` | | namespace | string | Filter by the metafield definition [`namespace`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-namespace) field. | | | - `namespace:some-namespace` | | owner_type | string | Filter by the metafield definition [`ownerType`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-ownertype) field. | | | - `owner_type:PRODUCT` | | type | string | Filter by the metafield definition [`type`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-type) field. | | | - `type:single_line_text_field` | | updated_at | time | Filter by the date and time when the metafield definition was last updated. | | | - `updated_at:>2020-10-21T23:39:20Z`
- `updated_at: - `updated_at:<=2024` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: MetafieldDefinitionSortKeys = ID ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use the root `metafieldDefinitions` field instead.") """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. """ metafields( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ List of keys of metafields in the format `namespace.key`, will be returned in the same format. """ keys: [String!] """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. """ namespace: String """Reverse the order of the underlying list.""" reverse: Boolean = false ): MetafieldConnection! """A unique identifier for the customer that's used with Multipass login.""" multipassIdentifier: String """A note about the customer.""" note: String """ The number of orders that the customer has made at the store in their lifetime. """ numberOfOrders: UnsignedInt64! """A list of the customer's orders.""" orders( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | cart_token | string | Filter by the cart token's unique value, which references the cart that's associated with an order. | | | - `cart_token:abc123` | | channel | string | Filter by the channel information [`handle`](https://shopify.dev/api/admin-graphql/latest/objects/ChannelInformation#field-channeldefinition) (`ChannelInformation.channelDefinition.handle`) field. | | | - `channel:web`
- `channel:web,pos` | | channel_id | id | Filter by the channel [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Channel#field-id) field. | | | - `channel_id:123` | | chargeback_status | string | Filter by the order's chargeback status. A chargeback occurs when a customer questions the legitimacy of a charge with their financial institution. | - `accepted`
- `charge_refunded`
- `lost`
- `needs_response`
- `under_review`
- `won` | | - `chargeback_status:accepted` | | checkout_token | string | Filter by the checkout token's unique value, which references the checkout that's associated with an order. | | | - `checkout_token:abc123` | | confirmation_number | string | Filter by the randomly generated alpha-numeric identifier for an order that can be displayed to the customer instead of the sequential order name. This value isn't guaranteed to be unique. | | | - `confirmation_number:ABC123` | | created_at | time | Filter by the date and time when the order was created in Shopify's system. | | | - `created_at:2020-10-21T23:39:20Z`
- `created_at: - `created_at:<=2024` | | credit_card_last4 | string | Filter by the last four digits of the credit card that was used to pay for the order. | | | - `credit_card_last4:1234` | | customer_id | id | Filter orders by the customer [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Customer#field-id) field. | | | - `customer_id:123` | | delivery_method | string | Filter by the delivery [`methodType`](https://shopify.dev/api/admin-graphql/2024-07/objects/DeliveryMethod#field-methodtype) field. | - `shipping`
- `pick-up`
- `retail`
- `local`
- `pickup-point`
- `none` | | - `delivery_method:shipping` | | discount_code | string | Filter by the case-insensitive discount code that was applied to the order at checkout. Maximum characters: 255. | | | - `discount_code:ABC123` | | email | string | Filter by the email address that's associated with the order. | | | - `email:example@shopify.com` | | financial_status | string | Filter by the order [`displayFinancialStatus`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-displayfinancialstatus) field. | - `paid`
- `pending`
- `authorized`
- `partially_paid`
- `partially_refunded`
- `refunded`
- `voided`
- `expired` | | - `financial_status:authorized` | | fraud_protection_level | string | Filter by the level of fraud protection that's applied to the order. | - `fully_protected`
- `partially_protected`
- `not_protected`
- `pending`
- `not_eligible`
- `not_available` | | - `fraud_protection_level:fully_protected` | | fulfillment_location_id | id | Filter by the fulfillment location [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Fulfillment#field-location) (`Fulfillment.location.id`) field. | | | - `fulfillment_location_id:123` | | fulfillment_status | string | Filter by the order's fulfillment status. | - `unshipped`
- `shipped`
- `fulfilled`
- `partial`
- `scheduled`
- `on_hold`
- `unfulfilled`
- `request_declined` | | - `fulfillment_status:fulfilled` | | gateway | string | Filter by the order [`paymentGatewayNames`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-paymentgatewaynames) field. | | | - `gateway:shopify_payments` | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | location_id | id | Filter by the ID of the location that's associated with the order. | | | - `location_id:123` | | name | string | Filter by the order [`name`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-name) field. | | | - `name:1001-A` | | payment_id | string | Filter by the ID of the payment that's associated with the order. | | | - `payment_id:abc123` | | payment_provider_id | id | Filter by the ID of the payment provider that's associated with the order. | | | - `payment_provider_id:123` | | po_number | string | Filter by the order [`poNumber`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-ponumber) field. | | | - `po_number:P01001` | | processed_at | time | Filter by the order [`processedAt`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-processedat) field. | | | - `processed_at:2021-01-01T00:00:00Z` | | reference_location_id | id | Filter by the ID of a location that's associated with the order, such as locations from fulfillments, refunds, or the shop's primary location. | | | - `reference_location_id:123` | | return_status | string | Filter by the order's return status. | - `return_requested`
- `in_progress`
- `inspection_complete`
- `returned`
- `return_failed`
- `no_return` | | - `return_status:in_progress` | | risk_level | string | Filter by the order risk assessment [`riskLevel`](https://shopify.dev/api/admin-graphql/latest/objects/OrderRiskAssessment#field-risklevel) field. | - `high`
- `medium`
- `low`
- `none`
- `pending` | | - `risk_level:high` | | sales_channel | string | Filter by the sales channel that the order is attributed to. | | | - `sales_channel: some_sales_channel` | | sku | string | Filter by the product variant [`sku`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-sku) field. [Learn more about SKUs](https://help.shopify.com/manual/products/details/sku). | | | - `sku:ABC123` | | source_identifier | string | Filter by the ID of the order placed on the originating platform, such as a unique POS or third-party identifier. This value doesn't correspond to the Shopify ID that's generated from a completed draft order. | | | - `source_identifier:1234-12-1000` | | source_name | string | Filter by the name of the originating platform that's associated with the checkout for the order. | | | - `source_name:web`
- `source_name:shopify_draft_order` | | status | string | Filter by the order status. | - `open`
- `closed`
- `cancelled`
- `not_closed` | | - `status:open` | | subtotal_line_items_quantity | string | | tag | string | Filter objects by the `tag` field. | | | - `tag:my_tag` | | tag_not | string | Filter by objects that don’t have the specified tag. | | | - `tag_not:my_tag` | | test | boolean | Filter by test orders. Test orders are made using the [Shopify Bogus Gateway](https://help.shopify.com/manual/checkout-settings/test-orders) or a payment provider with test mode enabled. | | | - `test:true` | | updated_at | time | Filter by the date and time when the order was last updated in Shopify's system. | | | - `updated_at:2020-10-21T23:39:20Z`
- `updated_at: - `updated_at:<=2024` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: OrderSortKeys = ID ): OrderConnection! """A list of the customer's payment methods.""" paymentMethods( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false """Whether to show the customer's revoked payment method.""" showRevoked: Boolean = false ): CustomerPaymentMethodConnection! """The customer's phone number.""" phone: String """ Possible subscriber states of a customer defined by their subscription contracts. """ productSubscriberStatus: CustomerProductSubscriberStatus! """ The current SMS marketing state for the customer's phone number. If the customer does not have a phone number, then this property is `null`. """ smsMarketingConsent: CustomerSmsMarketingConsentState """ The state of the customer's account with the shop. Please note that this only meaningful when Classic Customer Accounts is active. """ state: CustomerState! """The statistics for a given customer.""" statistics: CustomerStatistics! """ Returns a list of store credit accounts that belong to the owner resource. A store credit account owner can hold multiple accounts each with a different currency. """ storeCreditAccounts( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | currency_code | string | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String ): StoreCreditAccountConnection! """A list of the customer's subscription contracts.""" subscriptionContracts( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): SubscriptionContractConnection! """A comma separated list of tags that have been added to the customer.""" tags: [String!]! """ Whether the customer is exempt from being charged taxes on their orders. """ taxExempt: Boolean! """The list of tax exemptions applied to the customer.""" taxExemptions: [TaxExemption!]! """The URL to unsubscribe the customer from the mailing list.""" unsubscribeUrl: URL! """The date and time when the customer was last updated.""" updatedAt: DateTime! """ Whether the email address is formatted correctly. Returns `true` when the email is formatted correctly and belongs to an existing domain. This doesn't guarantee that the email address actually exists. """ validEmailAddress: Boolean! """ Whether the customer has verified their email address. Defaults to `true` if the customer is created through the Shopify admin or API. """ verifiedEmail: Boolean! } """ Represents a customer mailing address. For example, a customer's default address and an order's billing address are both mailling addresses. """ type MailingAddress implements Node { """ The first line of the address. Typically the street address or PO Box number. """ address1: String """ The second line of the address. Typically the number of the apartment, suite, or unit. """ address2: String """The name of the city, district, village, or town.""" city: String """The name of the customer's company or organization.""" company: String """ Whether the address corresponds to recognized latitude and longitude values. """ coordinatesValidated: Boolean! """The name of the country.""" country: String """ The two-letter code for the country of the address. For example, US. """ countryCode: String @deprecated(reason: "Use `countryCodeV2` instead.") """ The two-letter code for the country of the address. For example, US. """ countryCodeV2: CountryCode """The first name of the customer.""" firstName: String """ A formatted version of the address, customized by the provided arguments. """ formatted( """Whether to include the customer's company in the formatted address.""" withCompany: Boolean = true """Whether to include the customer's name in the formatted address.""" withName: Boolean = false ): [String!]! """A comma-separated list of the values for city, province, and country.""" formattedArea: String """A globally-unique ID.""" id: ID! """The last name of the customer.""" lastName: String """The latitude coordinate of the customer address.""" latitude: Float """The longitude coordinate of the customer address.""" longitude: Float """The full name of the customer, based on firstName and lastName.""" name: String """A unique phone number for the customer.""" phone: String """The region of the address, such as the province, state, or district.""" province: String """ The alphanumeric code for the region. For example, ON. """ provinceCode: String """The time zone of the address.""" timeZone: String """ The validation status that is leveraged by the address validation feature in the Shopify Admin. See ["Validating addresses in your Shopify admin"](https://help.shopify.com/manual/fulfillment/managing-orders/validating-order-address) for more details. """ validationResultSummary: MailingAddressValidationResult """The zip or postal code of the address.""" zip: String } """Highest level of validation concerns identified for the address.""" enum MailingAddressValidationResult { """ Indicates that the address has been validated and is very likely to contain invalid information. """ ERROR """ Indicates that the address has been validated and no issues were found. """ NO_ISSUES """ Indicates that the address has been validated and might contain invalid information. """ WARNING } """ An auto-generated type for paginating through multiple MailingAddresses. """ type MailingAddressConnection { edges: [MailingAddressEdge!]! """ A list of nodes that are contained in MailingAddressEdge. 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: [MailingAddress!]! """ 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 MailingAddress and a cursor during pagination. """ type MailingAddressEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of MailingAddressEdge.""" node: MailingAddress! } """ The record of when a customer consented to receive marketing material by email. """ type CustomerEmailMarketingConsentState { """ The date and time at which the customer consented to receive marketing material by email. The customer's consent state reflects the consent record with the most recent `consent_updated_at` date. If no date is provided, then the date and time at which the consent information was sent is used. """ consentUpdatedAt: DateTime """ The marketing subscription opt-in level, as described by the M3AAWG best practices guidelines, that the customer gave when they consented to receive marketing material by email. """ marketingOptInLevel: CustomerMarketingOptInLevel """The current email marketing state for the customer.""" marketingState: CustomerEmailMarketingState! } """ The possible values for the marketing subscription opt-in level enabled at the time the customer consented to receive marketing information. The levels are defined by [the M3AAWG best practices guideline document](https://www.m3aawg.org/sites/maawg/files/news/M3AAWG_Senders_BCP_Ver3-2015-02.pdf). """ enum CustomerMarketingOptInLevel { """ After providing their information, the customer receives a confirmation and is required to perform a intermediate step before receiving marketing information. """ CONFIRMED_OPT_IN """ After providing their information, the customer receives marketing information without any intermediate steps. """ SINGLE_OPT_IN """ The customer receives marketing information but how they were opted in is unknown. """ UNKNOWN } """The possible email marketing states for a customer.""" enum CustomerEmailMarketingState { """The customer’s email address marketing state is invalid.""" INVALID """The customer isn't subscribed to email marketing.""" NOT_SUBSCRIBED """The customer is in the process of subscribing to email marketing.""" PENDING """ The customer's personal data is erased. This value is internally-set and read-only. """ REDACTED """The customer is subscribed to email marketing.""" SUBSCRIBED """ The customer isn't currently subscribed to email marketing but was previously subscribed. """ UNSUBSCRIBED } """ An order is a customer's request to purchase one or more products from a shop. You can retrieve and update orders using the `Order` object. Learn more about [editing an existing order with the GraphQL Admin API](https://shopify.dev/apps/fulfillment/order-management-apps/order-editing). Only the last 60 days' worth of orders from a store are accessible from the `Order` object by default. If you want to access older orders, then you need to [request access to all orders](https://shopify.dev/api/usage/access-scopes#orders-permissions). If your app is granted access, then you can add the `read_all_orders` scope to your app along with `read_orders` or `write_orders`. [Private apps](https://shopify.dev/apps/auth/basic-http) are not affected by this change and are automatically granted the scope. **Caution:** Only use this data if it's required for your app's functionality. Shopify will restrict [access to scopes](https://shopify.dev/api/usage/access-scopes) for apps that don't have a legitimate use for the associated data. """ type Order implements CommentEventSubject & HasEvents & HasLocalizationExtensions & HasLocalizedFields & HasMetafieldDefinitions & HasMetafields & LegacyInteroperability & Node { """A list of additional fees applied to the order.""" additionalFees: [AdditionalFee!]! """A list of sales agreements associated with the order.""" agreements( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | happened_at | time | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false ): SalesAgreementConnection! """A list of messages that appear on the order page in the Shopify admin.""" alerts: [ResourceAlert!]! """The application that created the order.""" app: OrderApp """The billing address of the customer.""" billingAddress: MailingAddress """Whether the billing address matches the shipping address.""" billingAddressMatchesShippingAddress: Boolean! """Whether the order can be manually marked as paid.""" canMarkAsPaid: Boolean! """Whether a customer email exists for the order.""" canNotifyCustomer: Boolean! """ The reason provided when the order was canceled. Returns `null` if the order wasn't canceled. """ cancelReason: OrderCancelReason """Cancellation details for the order.""" cancellation: OrderCancellation """ The date and time when the order was canceled. Returns `null` if the order wasn't canceled. """ cancelledAt: DateTime """Whether payment for the order can be captured.""" capturable: Boolean! """ The total order-level discount amount, before returns, in shop currency. """ cartDiscountAmount: Money @deprecated(reason: "Use `cartDiscountAmountSet` instead.") """ The total order-level discount amount, before returns, in shop and presentment currencies. """ cartDiscountAmountSet: MoneyBag """The channel that created the order.""" channel: Channel @deprecated(reason: "Use `publication` instead.") """Details about the channel that created the order.""" channelInformation: ChannelInformation """The IP address of the API client that created the order.""" clientIp: String """Whether the order is closed.""" closed: Boolean! """ The date and time when the order was closed. Returns `null` if the order isn't closed. """ closedAt: DateTime """ A randomly generated alpha-numeric identifier for the order that may be shown to the customer instead of the sequential order name. For example, "XPAV284CT", "R50KELTJP" or "35PKUN0UJ". This value isn't guaranteed to be unique. """ confirmationNumber: String """Whether inventory has been reserved for the order.""" confirmed: Boolean! """Date and time when the order was created in Shopify.""" createdAt: DateTime! """The shop currency when the order was placed.""" currencyCode: CurrencyCode! """ The current order-level discount amount after all order updates, in shop and presentment currencies. """ currentCartDiscountAmountSet: MoneyBag! """ The current shipping price after applying refunds and discounts. If the parent `order.taxesIncluded` field is true, then this price includes taxes. Otherwise, this field is the pre-tax price. """ currentShippingPriceSet: MoneyBag! """ The sum of the quantities for all line items that contribute to the order's current subtotal price. """ currentSubtotalLineItemsQuantity: Int! """ The sum of the prices for all line items after discounts and returns, in shop and presentment currencies. If `taxesIncluded` is `true`, then the subtotal also includes tax. """ currentSubtotalPriceSet: MoneyBag! """ A list of all tax lines applied to line items on the order, after returns. Tax line prices represent the total price for all tax lines with the same `rate` and `title`. """ currentTaxLines: [TaxLine!]! """ The total amount of additional fees after returns, in shop and presentment currencies. Returns `null` if there are no additional fees for the order. """ currentTotalAdditionalFeesSet: MoneyBag """ The total amount discounted on the order after returns, in shop and presentment currencies. This includes both order and line level discounts. """ currentTotalDiscountsSet: MoneyBag! """ The total amount of duties after returns, in shop and presentment currencies. Returns `null` if duties aren't applicable. """ currentTotalDutiesSet: MoneyBag """ The total price of the order, after returns, in shop and presentment currencies. This includes taxes and discounts. """ currentTotalPriceSet: MoneyBag! """ The sum of the prices of all tax lines applied to line items on the order, after returns, in shop and presentment currencies. """ currentTotalTaxSet: MoneyBag! """The total weight of the order after returns, in grams.""" currentTotalWeight: UnsignedInt64! """ A list of additional merchant-facing details that have been added to the order. For example, whether an order is a customer's first. """ customAttributes: [Attribute!]! """The customer that placed the order.""" customer: Customer """Whether the customer agreed to receive marketing materials.""" customerAcceptsMarketing: Boolean! """ The customer's visits and interactions with the online store before placing the order. """ customerJourney: CustomerJourney @deprecated(reason: "Use `customerJourneySummary` instead.") """ The customer's visits and interactions with the online store before placing the order. """ customerJourneySummary: CustomerJourneySummary """ A two-letter or three-letter language code, optionally followed by a region modifier. """ customerLocale: String """ A list of discounts that are applied to the order, not including order edits and refunds. """ discountApplications( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): DiscountApplicationConnection! """The discount code used for the order.""" discountCode: String """The discount codes used for the order.""" discountCodes: [String!]! """ The primary address of the customer. Returns `null` if neither the shipping address nor the billing address was provided. """ displayAddress: MailingAddress """ The financial status of the order that can be shown to the merchant. This field doesn't capture all the details of an order's financial state. It should only be used for display summary purposes. """ displayFinancialStatus: OrderDisplayFinancialStatus """ The fulfillment status for the order that can be shown to the merchant. This field does not capture all the details of an order's fulfillment state. It should only be used for display summary purposes. For a more granular view of the fulfillment status, refer to the [FulfillmentOrder](https://shopify.dev/api/admin-graphql/latest/objects/FulfillmentOrder) object. """ displayFulfillmentStatus: OrderDisplayFulfillmentStatus! """A list of the disputes associated with the order.""" disputes: [OrderDisputeSummary!]! """Whether duties are included in the subtotal price of the order.""" dutiesIncluded: Boolean! """Whether the order has had any edits applied.""" edited: Boolean! """The email address associated with the customer.""" email: String """ Whether taxes on the order are estimated. This field returns `false` when taxes on the order are finalized and aren't subject to any changes. """ estimatedTaxes: Boolean! """A list of events associated with the order.""" events( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | action | string | The action that occured. | | | - `action:create` | | comments | boolean | Whether or not to include [comment-events](https://shopify.dev/api/admin-graphql/latest/objects/CommentEvent) in your search, passing `false` will exclude comment-events, any other value will include comment-events. | | | - `false`
- `true` | | created_at | time | Filter by the date and time when the event happened. | | | - `created_at:>2020-10-21`
- `created_at: - `id:>=1234`
- `id:<=1234` | | subject_type | string | The resource type affected by this event, See [EventSubjectType](https://shopify.dev/api/admin-graphql/latest/enums/EventSubjectType) for possible values. | | | - `COMPANY` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: EventSortKeys = ID ): EventConnection! """A list of ExchangeV2s for the order.""" exchangeV2s( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | completed_at | time | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false ): ExchangeV2Connection! """ Whether there are line items that can be fulfilled. This field returns `false` when the order has no fulfillable line items. For a more granular view of the fulfillment status, refer to the [FulfillmentOrder](https://shopify.dev/api/admin-graphql/latest/objects/FulfillmentOrder) object. """ fulfillable: Boolean! """ A list of fulfillment orders for a specific order. [FulfillmentOrder API access scopes](https://shopify.dev/api/admin-graphql/latest/objects/FulfillmentOrder#api-access-scopes) govern which fulfillments orders are returned. An API client will only receive a subset of the fulfillment orders which belong to an order if they don't have the necessary access scopes to view all of the fulfillment orders. In the case that an API client does not have the access scopes necessary to view any of the fulfillment orders that belong to an order, an empty array will be returned. """ fulfillmentOrders( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ If false, all fulfillment orders will be returned. If true, fulfillment orders that are normally hidden from the merchant will be excluded. For example, fulfillment orders that were closed after being combined or moved are hidden. """ displayable: Boolean = false """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | assigned_location_id | id | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | status | string | | updated_at | time | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false ): FulfillmentOrderConnection! """List of shipments for the order.""" fulfillments( """Truncate the array result to this size.""" first: Int ): [Fulfillment!]! """The count of fulfillments including the cancelled fulfillments.""" fulfillmentsCount: Count """Whether the order has been paid in full.""" fullyPaid: Boolean! """Whether the merchant added a timeline comment to the order.""" hasTimelineComment: Boolean! """A globally-unique ID.""" id: ID! """ The URL of the first page of the online store that the customer visited before they submitted the order. """ landingPageDisplayText: String @deprecated(reason: "Use `customerJourneySummary.lastVisit.landingPageHtml` instead") """ The first page of the online store that the customer visited before they submitted the order. """ landingPageUrl: URL @deprecated(reason: "Use `customerJourneySummary.lastVisit.landingPage` instead") """The ID of the corresponding resource in the REST Admin API.""" legacyResourceId: UnsignedInt64! """A list of the order's line items.""" lineItems( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): LineItemConnection! """List of localization extensions for the resource.""" localizationExtensions( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """The country codes of the extensions.""" countryCodes: [CountryCode!] """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """The purpose of the extensions.""" purposes: [LocalizationExtensionPurpose!] """Reverse the order of the underlying list.""" reverse: Boolean = false ): LocalizationExtensionConnection! @deprecated(reason: "This connection will be removed in a future version. Use `localizedFields` instead.") """List of localized fields for the resource.""" localizedFields( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """The country codes of the extensions.""" countryCodes: [CountryCode!] """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """The purpose of the extensions.""" purposes: [LocalizedFieldPurpose!] """Reverse the order of the underlying list.""" reverse: Boolean = false ): LocalizedFieldConnection! """The merchant's business entity associated with the order.""" merchantBusinessEntity: BusinessEntity! """ Whether the order can be edited by the merchant. For example, canceled orders can’t be edited. """ merchantEditable: Boolean! """ A list of reasons why the order can't be edited. For example, "Canceled orders can't be edited". """ merchantEditableErrors: [String!]! """The application acting as the Merchant of Record for the order.""" merchantOfRecordApp: OrderApp """ 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( """The key for the metafield.""" key: String! """ The container the metafield belongs to. If omitted, the app-reserved namespace will be used. """ namespace: String ): Metafield """List of metafield definitions.""" metafieldDefinitions( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Filter metafield definitions by namespace.""" namespace: String """Filter by the definition's pinned status.""" pinnedStatus: MetafieldDefinitionPinnedStatus = ANY """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | created_at | time | Filter by the date and time when the metafield definition was created. | | | - `created_at:>2020-10-21T23:39:20Z`
- `created_at: - `created_at:<=2024` | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | key | string | Filter by the metafield definition [`key`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-key) field. | | | - `key:some-key` | | namespace | string | Filter by the metafield definition [`namespace`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-namespace) field. | | | - `namespace:some-namespace` | | owner_type | string | Filter by the metafield definition [`ownerType`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-ownertype) field. | | | - `owner_type:PRODUCT` | | type | string | Filter by the metafield definition [`type`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-type) field. | | | - `type:single_line_text_field` | | updated_at | time | Filter by the date and time when the metafield definition was last updated. | | | - `updated_at:>2020-10-21T23:39:20Z`
- `updated_at: - `updated_at:<=2024` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: MetafieldDefinitionSortKeys = ID ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use the root `metafieldDefinitions` field instead.") """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. """ metafields( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ List of keys of metafields in the format `namespace.key`, will be returned in the same format. """ keys: [String!] """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. """ namespace: String """Reverse the order of the underlying list.""" reverse: Boolean = false ): MetafieldConnection! """ The unique identifier for the order that appears on the order page in the Shopify admin and the Order status page. For example, "#1001", "EN1001", or "1001-A". This value isn't unique across multiple stores. """ name: String! """ The net payment for the order, based on the total amount received minus the total amount refunded, in shop currency. """ netPayment: Money! @deprecated(reason: "Use `netPaymentSet` instead.") """ The net payment for the order, based on the total amount received minus the total amount refunded, in shop and presentment currencies. """ netPaymentSet: MoneyBag! """ A list of line items that can't be fulfilled. For example, tips and fully refunded line items can't be fulfilled. For a more granular view of the fulfillment status, refer to the [FulfillmentOrder](https://shopify.dev/api/admin-graphql/latest/objects/FulfillmentOrder) object. """ nonFulfillableLineItems( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): LineItemConnection! """The contents of the note associated with the order.""" note: String """ The total amount of additional fees at the time of order creation, in shop and presentment currencies. Returns `null` if additional fees aren't applicable. """ originalTotalAdditionalFeesSet: MoneyBag """ The total amount of duties at the time of order creation, in shop and presentment currencies. Returns `null` if duties aren't applicable. """ originalTotalDutiesSet: MoneyBag """ The total price of the order at the time of order creation, in shop and presentment currencies. """ originalTotalPriceSet: MoneyBag! """The payment collection details for the order.""" paymentCollectionDetails: OrderPaymentCollectionDetails! """ A list of the names of all payment gateways used for the order. For example, "Shopify Payments" and "Cash on Delivery (COD)". """ paymentGatewayNames: [String!]! """The payment terms associated with the order.""" paymentTerms: PaymentTerms """The phone number associated with the customer.""" phone: String """ The fulfillment location that was assigned when the order was created. Orders can have multiple fulfillment orders. These fulfillment orders can each be assigned to a different location which is responsible for fulfilling a subset of the items in an order. The `Order.physicalLocation` field will only point to one of these locations. Use the [`FulfillmentOrder`](https://shopify.dev/api/admin-graphql/latest/objects/fulfillmentorder) object for up to date fulfillment location information. """ physicalLocation: Location @deprecated(reason: "Use `fulfillmentOrders` to get the fulfillment location for the order") """The PO number associated with the order.""" poNumber: String """The payment `CurrencyCode` of the customer for the order.""" presentmentCurrencyCode: CurrencyCode! """ The date and time when the order was processed. This date and time might not match the date and time when the order was created. """ processedAt: DateTime! """The publication that the order was created from.""" publication: Publication """The purchasing entity for the order.""" purchasingEntity: PurchasingEntity """ The marketing referral code from the link that the customer clicked to visit the store. Supports the following URL attributes: "ref", "source", or "r". For example, if the URL is `{shop}.myshopify.com/products/slide?ref=j2tj1tn2`, then this value is `j2tj1tn2`. """ referralCode: String @deprecated(reason: "Use `customerJourneySummary.lastVisit.referralCode` instead") """ A web domain or short description of the source that sent the customer to your online store. For example, "shopify.com" or "email". """ referrerDisplayText: String @deprecated(reason: "Use `customerJourneySummary.lastVisit.referralInfoHtml` instead") """ The URL of the webpage where the customer clicked a link that sent them to your online store. """ referrerUrl: URL @deprecated(reason: "Use `customerJourneySummary.lastVisit.referrerUrl` instead") """ The difference between the suggested and actual refund amount of all refunds that have been applied to the order. A positive value indicates a difference in the merchant's favor, and a negative value indicates a difference in the customer's favor. """ refundDiscrepancySet: MoneyBag! """Whether the order can be refunded.""" refundable: Boolean! """A list of refunds that have been applied to the order.""" refunds( """Truncate the array result to this size.""" first: Int ): [Refund!]! """ The URL of the source that the order originated from, if found in the domain registry. """ registeredSourceUrl: URL """ Whether the order has shipping lines or at least one line item on the order that requires shipping. """ requiresShipping: Boolean! """Whether any line item on the order can be restocked.""" restockable: Boolean! """ The physical location where a retail order is created or completed, except for draft POS orders completed via the “mark as paid” flow in Admin, which return null. """ retailLocation: Location """The order's aggregated return status for display purposes.""" returnStatus: OrderReturnStatus! """A list of returns for the order.""" returns( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | status | string | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false ): ReturnConnection! """The risk characteristics for the order.""" risk: OrderRiskSummary! """The fraud risk level of the order.""" riskLevel: OrderRiskLevel! @deprecated(reason: "This field is deprecated in version 2024-04. Please use OrderRiskAssessment.riskLevel") """A list of risks associated with the order.""" risks( """Truncate the array result to this size.""" first: Int ): [OrderRisk!]! @deprecated(reason: "This field is deprecated in version 2024-04. Please use OrderRiskAssessment") """The mailing address of the customer.""" shippingAddress: MailingAddress """A summary of all shipping costs on the order.""" shippingLine: ShippingLine """A list of the order's shipping lines.""" shippingLines( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """Whether results should contain removed shipping lines.""" includeRemovals: Boolean = false """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): ShippingLineConnection! """ The Shopify Protect details for the order. If Shopify Protect is disabled for the shop, then this will be null. """ shopifyProtect: ShopifyProtectOrderSummary """ A unique POS or third party order identifier. For example, "1234-12-1000" or "111-98567-54". The `receipt_number` field is derived from this value for POS orders. """ sourceIdentifier: String """The name of the source associated with the order.""" sourceName: String """The staff member associated with the order.""" staffMember: StaffMember """The URL where the customer can check the order's current status.""" statusPageUrl: URL! """ The sum of the quantities for all line items that contribute to the order's subtotal price. """ subtotalLineItemsQuantity: Int! """ The sum of the prices for all line items after discounts and before returns, in shop currency. If `taxesIncluded` is `true`, then the subtotal also includes tax. """ subtotalPrice: Money @deprecated(reason: "Use `subtotalPriceSet` instead.") """ The sum of the prices for all line items after discounts and before returns, in shop and presentment currencies. If `taxesIncluded` is `true`, then the subtotal also includes tax. """ subtotalPriceSet: MoneyBag """A suggested refund for the order.""" suggestedRefund( """The duties from the order to include in the refund.""" refundDuties: [RefundDutyInput!] """The line items from the order to include in the refund.""" refundLineItems: [RefundLineItemInput!] """Whether to refund the full shipping amount.""" refundShipping: Boolean """ The amount to refund for shipping. Overrides the `refundShipping` argument. """ shippingAmount: Money """ Whether the suggested refund should be created from all refundable line items on the order. If `true`, the `refundLineItems` argument will be ignored. """ suggestFullRefund: Boolean = false ): SuggestedRefund """ A comma separated list of tags associated with the order. Updating `tags` overwrites any existing tags that were previously added to the order. To add new tags without overwriting existing tags, use the [tagsAdd](https://shopify.dev/api/admin-graphql/latest/mutations/tagsadd) mutation. """ tags: [String!]! """Whether taxes are exempt on the order.""" taxExempt: Boolean! """ A list of all tax lines applied to line items on the order, before returns. Tax line prices represent the total price for all tax lines with the same `rate` and `title`. """ taxLines: [TaxLine!]! """Whether taxes are included in the subtotal price of the order.""" taxesIncluded: Boolean! """ Whether the order is a test. Test orders are made using the Shopify Bogus Gateway or a payment provider with test mode enabled. A test order can't be converted into a real order and vice versa. """ test: Boolean! """ The authorized amount that's uncaptured or undercaptured, in shop currency. This amount isn't adjusted for returns. """ totalCapturable: Money! @deprecated(reason: "Use `totalCapturableSet` instead.") """ The authorized amount that's uncaptured or undercaptured, in shop and presentment currencies. This amount isn't adjusted for returns. """ totalCapturableSet: MoneyBag! """ The total rounding adjustment applied to payments or refunds for an Order involving cash payments. Applies to some countries where cash transactions are rounded to the nearest currency denomination. """ totalCashRoundingAdjustment: CashRoundingAdjustment! """ The total amount discounted on the order before returns, in shop currency. This includes both order and line level discounts. """ totalDiscounts: Money @deprecated(reason: "Use `totalDiscountsSet` instead.") """ The total amount discounted on the order before returns, in shop and presentment currencies. This includes both order and line level discounts. """ totalDiscountsSet: MoneyBag """ The total amount not yet transacted for the order, in shop and presentment currencies. A positive value indicates a difference in the merchant's favor (payment from customer to merchant) and a negative value indicates a difference in the customer's favor (refund from merchant to customer). """ totalOutstandingSet: MoneyBag! """ The total price of the order, before returns, in shop currency. This includes taxes and discounts. """ totalPrice: Money! @deprecated(reason: "Use `totalPriceSet` instead.") """ The total price of the order, before returns, in shop and presentment currencies. This includes taxes and discounts. """ totalPriceSet: MoneyBag! """ The total amount received from the customer before returns, in shop currency. """ totalReceived: Money! @deprecated(reason: "Use `totalReceivedSet` instead.") """ The total amount received from the customer before returns, in shop and presentment currencies. """ totalReceivedSet: MoneyBag! """The total amount that was refunded, in shop currency.""" totalRefunded: Money! @deprecated(reason: "Use `totalRefundedSet` instead.") """ The total amount that was refunded, in shop and presentment currencies. """ totalRefundedSet: MoneyBag! """ The total amount of shipping that was refunded, in shop and presentment currencies. """ totalRefundedShippingSet: MoneyBag! """ The total shipping amount before discounts and returns, in shop currency. """ totalShippingPrice: Money! @deprecated(reason: "Use `totalShippingPriceSet` instead.") """ The total shipping amount before discounts and returns, in shop and presentment currencies. """ totalShippingPriceSet: MoneyBag! """The total tax amount before returns, in shop currency.""" totalTax: Money @deprecated(reason: "Use `totalTaxSet` instead.") """ The total tax amount before returns, in shop and presentment currencies. """ totalTaxSet: MoneyBag """The sum of all tip amounts for the order, in shop currency.""" totalTipReceived: MoneyV2! @deprecated(reason: "Use `totalTipReceivedSet` instead.") """ The sum of all tip amounts for the order, in shop and presentment currencies. """ totalTipReceivedSet: MoneyBag! """The total weight of the order before returns, in grams.""" totalWeight: UnsignedInt64 """A list of transactions associated with the order.""" transactions( """Filter transactions by whether they are capturable.""" capturable: Boolean """Truncate the array result to this size.""" first: Int """ Filter transactions by whether they can be resolved manually. For example, fully captured or voided transactions aren't manually resolvable. """ manuallyResolvable: Boolean ): [OrderTransaction!]! """The number of transactions associated with the order.""" transactionsCount: Count """Whether no payments have been made for the order.""" unpaid: Boolean! """The date and time when the order was modified last.""" updatedAt: DateTime! } """The additional fees that have been applied to the order.""" type AdditionalFee implements Node { """A globally-unique ID.""" id: ID! """The name of the additional fee.""" name: String! """The price of the additional fee.""" price: MoneyBag! """A list of taxes charged on the additional fee.""" taxLines: [TaxLine!]! } """ A collection of monetary values in their respective currencies. Typically used in the context of multi-currency pricing and transactions, when an amount in the shop's currency is converted to the customer's currency of choice (the presentment currency). """ type MoneyBag { """Amount in presentment currency.""" presentmentMoney: MoneyV2! """Amount in shop currency.""" shopMoney: MoneyV2! } """Represents a single tax applied to the associated line item.""" type TaxLine { """ Whether the channel that submitted the tax line is liable for remitting. A value of null indicates unknown liability for this tax line. """ channelLiable: Boolean """ The amount of tax, in shop currency, after discounts and before returns. """ price: Money! @deprecated(reason: "Use `priceSet` instead.") """ The amount of tax, in shop and presentment currencies, after discounts and before returns. """ priceSet: MoneyBag! """ The proportion of the line item price that the tax represents as a decimal. """ rate: Float """ The proportion of the line item price that the tax represents as a percentage. """ ratePercentage: Float """The source of the tax.""" source: String """The name of the tax.""" title: String! } """ An auto-generated type for paginating through multiple SalesAgreements. """ type SalesAgreementConnection { edges: [SalesAgreementEdge!]! """ A list of nodes that are contained in SalesAgreementEdge. 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: [SalesAgreement!]! """ 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 SalesAgreement and a cursor during pagination. """ type SalesAgreementEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of SalesAgreementEdge.""" node: SalesAgreement! } """ A contract between a merchant and a customer to do business. Shopify creates a sales agreement whenever an order is placed, edited, or refunded. A sales agreement has one or more sales records, which provide itemized details about the initial agreement or subsequent changes made to the order. For example, when a customer places an order, Shopify creates the order, generates a sales agreement, and records a sale for each line item purchased in the order. A sale record is specific to a type of order line. Order lines can represent different things such as a purchased product, a tip added by a customer, shipping costs collected at checkout, and more. """ interface SalesAgreement { """The application that created the agreement.""" app: App """The date and time at which the agreement occured.""" happenedAt: DateTime! """The unique ID for the agreement.""" id: ID! """The reason the agremeent was created.""" reason: OrderActionType! """The sales associated with the agreement.""" sales( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): SaleConnection! """The staff member associated with the agreement.""" user: StaffMember } """ The possible order action types for a [sales agreement](https://shopify.dev/api/admin-graphql/latest/interfaces/salesagreement). """ enum OrderActionType { """An order with a purchase or charge.""" ORDER """An edit to the order.""" ORDER_EDIT """A refund on the order.""" REFUND """A return on the order.""" RETURN """ An unknown agreement action. Represents new actions that may be added in future versions. """ UNKNOWN } """An auto-generated type for paginating through multiple Sales.""" type SaleConnection { edges: [SaleEdge!]! """ A list of nodes that are contained in SaleEdge. 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: [Sale!]! """ 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 Sale and a cursor during pagination. """ type SaleEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of SaleEdge.""" node: Sale! } """ An individual sale record associated with a sales agreement. Every money value in an order's sales data is represented in the currency's smallest unit. When amounts are divided across multiple line items, such as taxes or order discounts, the amounts might not divide evenly across all of the line items on the order. To address this, the remaining currency units that couldn't be divided evenly are allocated one at a time, starting with the first line item, until they are all accounted for. In aggregate, the values sum up correctly. In isolation, one line item might have a different tax or discount amount than another line item of the same price, before taxes and discounts. This is because the amount could not be divided evenly across the items. The allocation of currency units across line items is immutable. After they are allocated, currency units are never reallocated or redistributed among the line items. """ interface Sale { """The type of order action that the sale represents.""" actionType: SaleActionType! """The unique ID for the sale.""" id: ID! """The line type assocated with the sale.""" lineType: SaleLineType! """The number of units either ordered or intended to be returned.""" quantity: Int """All individual taxes associated with the sale.""" taxes: [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 possible order action types for a sale.""" enum SaleActionType { """A purchase or charge.""" ORDER """A removal or return.""" RETURN """ An unknown order action. Represents new actions that may be added in future versions. """ UNKNOWN """A change to the price, taxes, or discounts for a prior purchase.""" UPDATE } """ The possible line types for a sale record. One of the possible order line types for a sale is an adjustment. Sales adjustments occur when a refund is issued for a line item that is either more or less than the total value of the line item. Examples are restocking fees and goodwill payments. When this happens, Shopify produces a sales agreement with sale records for each line item that is returned or refunded and an additional sale record for the adjustment (for example, a restocking fee). The sales records for the returned or refunded items represent the reversal of the original line item sale value. The additional adjustment sale record represents the difference between the original total value of all line items that were refunded, and the actual amount refunded. """ enum SaleLineType { """An additional fee.""" ADDITIONAL_FEE """A sale adjustment.""" ADJUSTMENT """A duty charge.""" DUTY """A fee charge.""" FEE """A gift card.""" GIFT_CARD """A product purchased, returned or exchanged.""" PRODUCT """A shipping cost.""" SHIPPING """A tip added by the customer.""" TIP """ An unknown sale line. Represents new types that may be added in future versions. """ UNKNOWN } """The tax allocated to a sale from a single tax line.""" type SaleTax { """ The portion of the total tax amount on the related sale that comes from the associated tax line. """ amount: MoneyBag! """The unique ID for the sale tax.""" id: ID! """The tax line associated with the sale.""" taxLine: TaxLine! } """ Represents the data about a staff member's Shopify account. Merchants can use staff member data to get more information about the staff members in their store. """ type StaffMember implements Node { """The type of account the staff member has.""" accountType: AccountType """Whether the staff member is active.""" active: Boolean! """The image used as the staff member's avatar in the Shopify admin.""" avatar( """The default image returned if the staff member has no avatar.""" fallback: StaffMemberDefaultImage = DEFAULT ): Image! """The staff member's email address.""" email: String! """Whether the staff member's account exists.""" exists: Boolean! """The staff member's first name.""" firstName: String """A globally-unique ID.""" id: ID! """The staff member's initials, if available.""" initials: [String!] """Whether the staff member is the shop owner.""" isShopOwner: Boolean! """The staff member's last name.""" lastName: String """ The staff member's preferred locale. Locale values use the format `language` or `language-COUNTRY`, where `language` is a two-letter language code, and `COUNTRY` is a two-letter country code. For example: `en` or `en-US` """ locale: String! """The staff member's full name.""" name: String! """The staff member's phone number.""" phone: String """ The data used to customize the Shopify admin experience for the staff member. """ privateData: StaffMemberPrivateData! } """Possible account types that a staff member can have.""" enum AccountType { """The account of a partner who collaborates with the merchant.""" COLLABORATOR """The account of a partner collaborator team member.""" COLLABORATOR_TEAM_MEMBER """The user has not yet accepted the invitation to create an account.""" INVITED """ The user has not yet accepted the invitation to become the store owner. """ INVITED_STORE_OWNER """The account can access the Shopify admin.""" REGULAR """ The admin has not yet accepted the request to create a collaborator account. """ REQUESTED """The account cannot access the Shopify admin.""" RESTRICTED """The account can be signed into via a SAML provider.""" SAML } """ Represents the fallback avatar image for a staff member. This is used only if the staff member has no avatar image. """ enum StaffMemberDefaultImage { """Returns a default avatar image for the staff member.""" DEFAULT """Returns a URL that returns a 404 error if the image is not present.""" NOT_FOUND """Returns a transparent avatar image for the staff member.""" TRANSPARENT } """ Represents the data used to customize the Shopify admin experience for a logged-in staff member. """ type StaffMemberPrivateData { """The URL to the staff member's account settings page.""" accountSettingsUrl: URL! """The date and time when the staff member was created.""" createdAt: DateTime! """Access permissions for the staff member.""" permissions: [StaffMemberPermission!]! @deprecated(reason: "There's no alternative field to use instead.") } """Represents access permissions for a staff member.""" enum StaffMemberPermission { """The staff member can manage and install apps and channels.""" APPLICATIONS """The staff member can manage and install sales channels.""" CHANNELS """The staff member can create and edit customers.""" CREATE_AND_EDIT_CUSTOMERS """The staff member can create and edit gift cards.""" CREATE_AND_EDIT_GIFT_CARDS """The staff member can view customers.""" CUSTOMERS """ The staff member can view the Shopify Home page, which includes sales information and other shop data. """ DASHBOARD """The staff member can deactivate gift cards.""" DEACTIVATE_GIFT_CARDS """The staff member can delete customers.""" DELETE_CUSTOMERS """The staff member can view, buy, and manage domains.""" DOMAINS """The staff member can create, update, and delete draft orders.""" DRAFT_ORDERS """The staff member can update orders.""" EDIT_ORDERS """The staff member can erase customer private data.""" ERASE_CUSTOMER_DATA """The staff member can export customers.""" EXPORT_CUSTOMERS """The staff member can export gift cards.""" EXPORT_GIFT_CARDS """ The staff has the same permissions as the [store owner](https://shopify.dev/en/manual/your-account/staff-accounts/staff-permissions#store-owner-permissions) with some exceptions, such as modifying the account billing or deleting staff accounts. """ FULL @deprecated(reason: "Use the list of the staff member's explicit permissions returned in the `StaffMember.permissions.userPermissions` field instead of `full` permission.") """ The staff member can view, create, issue, and export gift cards to a CSV file. """ GIFT_CARDS """The staff member can view and modify links and navigation menus.""" LINKS """ The staff member can create, update, and delete locations where inventory is stocked or managed. """ LOCATIONS """ The staff member can view and create discount codes and automatic discounts, and export discounts to a CSV file. """ MARKETING """The staff member can view, create, and automate marketing campaigns.""" MARKETING_SECTION """The staff member can merge customers.""" MERGE_CUSTOMERS """ The staff member can view, create, update, delete, and cancel orders, and receive order notifications. The staff member can still create draft orders without this permission. """ ORDERS """ The staff member can view the Overview and Live view pages, which include sales information, and other shop and sales channels data. """ OVERVIEWS """ The staff member can view, create, update, publish, and delete blog posts and pages. """ PAGES """The staff member can pay for an order by using a vaulted card.""" PAY_ORDERS_BY_VAULTED_CARD """The staff member can view the preferences and configuration of a shop.""" PREFERENCES """ The staff member can view, create, import, and update products, collections, and inventory. """ PRODUCTS """ The staff member can view and create all reports, which includes sales information and other shop data. """ REPORTS """The staff member can request customer private data.""" REQUEST_CUSTOMER_DATA """The staff member can view, update, and publish themes.""" THEMES """The staff member can view and create translations.""" TRANSLATIONS @deprecated(reason: "Unused.") """The staff member can create and edit markets.""" CREATE_AND_EDIT_MARKETS """The staff member can delete markets.""" DELETE_MARKETS """The staff member can view markets.""" VIEW_MARKETS } """ An alert message that appears in the Shopify admin about a problem with a store resource, with 1 or more actions to take. For example, you could use an alert to indicate that you're not charging taxes on some product variants. They can optionally have a specific icon and be dismissed by merchants. """ type ResourceAlert { """ Buttons in the alert that link to related information. For example, _Edit variants_. """ actions: [ResourceAlertAction!]! """ The secondary text in the alert that includes further information or instructions about how to solve a problem. """ content: HTML! """ Unique identifier that appears when an alert is manually closed by the merchant. Most alerts can't be manually closed. """ dismissibleHandle: String """An icon that's optionally displayed with the alert.""" icon: ResourceAlertIcon """Indication of how important the alert is.""" severity: ResourceAlertSeverity! """ The primary text in the alert that includes information or describes the problem. """ title: String! } """An action associated to a resource alert, such as editing variants.""" type ResourceAlertAction { """Whether the action appears as a button or as a link.""" primary: Boolean! """Resource for the action to show.""" show: String """The text for the button in the alert. For example, _Edit variants_.""" title: String! """The target URL that the button links to.""" url: URL! } """The available icons for resource alerts.""" enum ResourceAlertIcon { """A checkmark inside a circle.""" CHECKMARK_CIRCLE """A lowercase `i` inside a circle.""" INFORMATION_CIRCLE } """The possible severity levels for a resource alert.""" enum ResourceAlertSeverity { """Indicates a critical alert. For example, a blocked app.""" CRITICAL """Indicates a neutral alert. For example, an accepted dispute.""" DEFAULT ERROR @deprecated(reason: "`ERROR` severity is being deprecated in favour of `WARNING` or `CRITICAL` instead.") """Indicates an informative alert. For example, an escalated dispute.""" INFO """Indicates a success alert. For example, a winning a dispute.""" SUCCESS """Indicates an informative alert. For example, a new dispute.""" WARNING } """The [application](https://shopify.dev/apps) that created the order.""" type OrderApp { """The application icon.""" icon: Image! """The application ID.""" id: ID! """The name of the application.""" name: String! } """Represents the reason for the order's cancellation.""" enum OrderCancelReason { """The customer wanted to cancel the order.""" CUSTOMER """Payment was declined.""" DECLINED """The order was fraudulent.""" FRAUD """There was insufficient inventory.""" INVENTORY """The order was canceled for an unlisted reason.""" OTHER """Staff made an error.""" STAFF } """Details about the order cancellation.""" type OrderCancellation { """Staff provided note for the order cancellation.""" staffNote: String } """Contains the information for a given sales channel.""" type ChannelInformation implements Node { """The app associated with the channel.""" app: App! """The channel definition associated with the channel.""" channelDefinition: ChannelDefinition """The unique ID for the channel.""" channelId: ID! """A globally-unique ID.""" id: ID! } """ A channel definition represents channels surfaces on the platform. A channel definition can be a platform or a subsegment of it such as Facebook Home, Instagram Live, Instagram Shops, or WhatsApp chat. """ type ChannelDefinition implements Node { """Name of the channel that this sub channel belongs to.""" channelName: String! """Unique string used as a public identifier for the channel definition.""" handle: String! """The unique ID for the channel definition.""" id: ID! """Whether this channel definition represents a marketplace.""" isMarketplace: Boolean! """ Name of the sub channel (e.g. Online Store, Instagram Shopping, TikTok Live). """ subChannelName: String! """Icon displayed when showing the channel in admin.""" svgIcon: String } """Represents a customer's visiting activities on a shop's online store.""" type CustomerJourney { """The position of the current order within the customer's order history.""" customerOrderIndex: Int! """ The amount of days between first session and order creation date. First session represents first session since the last order, or first session within the 30 day attribution window, if more than 30 days has passed since the last order. """ daysToConversion: Int! """The customer's first session going into the shop.""" firstVisit: CustomerVisit! """The last session before an order is made.""" lastVisit: CustomerVisit """Events preceding a customer order, such as shop sessions.""" moments: [CustomerMoment!]! } """ Represents a customer's session visiting a shop's online store, including information about the marketing activity attributed to starting the session. """ type CustomerVisit implements CustomerMoment & Node { """A globally-unique ID.""" id: ID! """URL of the first page the customer landed on for the session.""" landingPage: URL """ Landing page information with URL linked in HTML. For example, the first page the customer visited was store.myshopify.com/products/1. """ landingPageHtml: HTML """ Represent actions taken by an app, on behalf of a merchant, to market Shopify resources such as products, collections, and discounts. """ marketingEvent: MarketingEvent """The date and time when the customer's session occurred.""" occurredAt: DateTime! """ Marketing referral code from the link that the customer clicked to visit the store. Supports the following URL attributes: _ref_, _source_, or _r_. For example, if the URL is myshopifystore.com/products/slide?ref=j2tj1tn2, then this value is j2tj1tn2. """ referralCode: String """Referral information with URLs linked in HTML.""" referralInfoHtml: FormattedString! """ Webpage where the customer clicked a link that sent them to the online store. For example, _https://randomblog.com/page1_ or _android-app://com.google.android.gm_. """ referrerUrl: URL """ Source from which the customer visited the store, such as a platform (Facebook, Google), email, direct, a website domain, QR code, or unknown. """ source: String! """Describes the source explicitly for first or last session.""" sourceDescription: String """Type of marketing tactic.""" sourceType: MarketingTactic """ A set of UTM parameters gathered from the URL parameters of the referrer. """ utmParameters: UTMParameters } """Represents actions that market a merchant's store or products.""" type MarketingEvent implements LegacyInteroperability & Node { """The app that the marketing event is attributed to.""" app: App! """ The medium through which the marketing activity and event reached consumers. This is used for reporting aggregation. """ channel: MarketingChannel @deprecated(reason: "Use `marketingChannelType` instead.") """ The unique string identifier of the channel to which this activity belongs. For the correct handle for your channel, contact your partner manager. """ channelHandle: String """A human-readable description of the marketing event.""" description: String """The date and time when the marketing event ended.""" endedAt: DateTime """A globally-unique ID.""" id: ID! """The ID of the corresponding resource in the REST Admin API.""" legacyResourceId: UnsignedInt64! """The URL where the marketing event can be managed.""" manageUrl: URL """ The medium through which the marketing activity and event reached consumers. This is used for reporting aggregation. """ marketingChannelType: MarketingChannel """The URL where the marketing event can be previewed.""" previewUrl: URL """An optional ID that helps Shopify validate engagement data.""" remoteId: String """The date and time when the marketing event is scheduled to end.""" scheduledToEndAt: DateTime """ Where the `MarketingEvent` occurred and what kind of content was used. Because `utmSource` and `utmMedium` are often used interchangeably, this is based on a combination of `marketingChannel`, `referringDomain`, and `type` to provide a consistent representation for any given piece of marketing regardless of the app that created it. """ sourceAndMedium: String! """The date and time when the marketing event started.""" startedAt: DateTime! """The display text for the marketing event type.""" targetTypeDisplayText: String! @deprecated(reason: "Use `sourceAndMedium` instead.") """The marketing event type.""" type: MarketingTactic! """The name of the marketing campaign.""" utmCampaign: String """ The medium that the marketing campaign is using. Example values: `cpc`, `banner`. """ utmMedium: String """ The referrer of the marketing event. Example values: `google`, `newsletter`. """ utmSource: String } """ The medium through which the marketing activity and event reached consumers. This is used for reporting aggregation. """ enum MarketingChannel { """Displayed ads.""" DISPLAY """Email.""" EMAIL """Referral links.""" REFERRAL """Paid search.""" SEARCH """Social media.""" SOCIAL } """The available types of tactics for a marketing activity.""" enum MarketingTactic { """An abandoned cart recovery email.""" ABANDONED_CART """An ad, such as a Facebook ad.""" AD """An affiliate link.""" AFFILIATE """A link.""" LINK """A loyalty program.""" LOYALTY """A messaging app, such as Facebook Messenger.""" MESSAGE """A newsletter.""" NEWSLETTER """A notification in the Shopify admin.""" NOTIFICATION """A blog post.""" POST """A retargeting ad.""" RETARGETING """Search engine optimization.""" SEO """A popup on the online store.""" STOREFRONT_APP """A transactional email.""" TRANSACTIONAL } """Represents a set of UTM parameters.""" type UTMParameters { """The name of a marketing campaign.""" campaign: String """ Identifies specific content in a marketing campaign. Used to differentiate between similar content or links in a marketing campaign to determine which is the most effective. """ content: String """ The medium of a marketing campaign, such as a banner or email newsletter. """ medium: String """ The source of traffic to the merchant's store, such as Google or an email newsletter. """ source: String """Paid search terms used by a marketing campaign.""" term: String } """ Represents a session preceding an order, often used for building a timeline of events leading to an order. """ interface CustomerMoment { """The date and time when the customer's session occurred.""" occurredAt: DateTime! } """Represents a customer's visiting activities on a shop's online store.""" type CustomerJourneySummary { """ The position of the current order within the customer's order history. Test orders aren't included. """ customerOrderIndex: Int """ The number of days between the first session and the order creation date. The first session represents the first session since the last order, or the first session within the 30 day attribution window, if more than 30 days have passed since the last order. """ daysToConversion: Int """The customer's first session going into the shop.""" firstVisit: CustomerVisit """The last session before an order is made.""" lastVisit: CustomerVisit """The events preceding a customer's order, such as shop sessions.""" moments( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): CustomerMomentConnection """ The total number of customer moments associated with this order. Returns null if the order is still in the process of being attributed. """ momentsCount: Count """Whether the attributed sessions for the order have been created yet.""" ready: Boolean! } """ An auto-generated type for paginating through multiple CustomerMoments. """ type CustomerMomentConnection { edges: [CustomerMomentEdge!]! """ A list of nodes that are contained in CustomerMomentEdge. 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: [CustomerMoment!]! """ 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 CustomerMoment and a cursor during pagination. """ type CustomerMomentEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of CustomerMomentEdge.""" node: CustomerMoment! } """ An auto-generated type for paginating through multiple DiscountApplications. """ type DiscountApplicationConnection { edges: [DiscountApplicationEdge!]! """ A list of nodes that are contained in DiscountApplicationEdge. 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: [DiscountApplication!]! """ 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 DiscountApplication and a cursor during pagination. """ type DiscountApplicationEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of DiscountApplicationEdge.""" node: DiscountApplication! } """ Discount applications capture the intentions of a discount source at the time of application on an order's line items or shipping lines. Discount applications don't represent the actual final amount discounted on a line (line item or shipping line). The actual amount discounted on a line is represented by the [DiscountAllocation](https://shopify.dev/api/admin-graphql/latest/objects/discountallocation) object. """ interface DiscountApplication { """ The method by which the discount's value is applied to its entitled items. """ allocationMethod: DiscountApplicationAllocationMethod! """ An ordered index that can be used to identify the discount application and indicate the precedence of the discount application for calculations. """ index: Int! """How the discount amount is distributed on the discounted lines.""" targetSelection: DiscountApplicationTargetSelection! """Whether the discount is applied on line items or shipping lines.""" targetType: DiscountApplicationTargetType! """The value of the discount application.""" value: PricingValue! } """ The method by which the discount's value is allocated onto its entitled lines. """ enum DiscountApplicationAllocationMethod { """The value is spread across all entitled lines.""" ACROSS """The value is applied onto every entitled line.""" EACH """The value is specifically applied onto a particular line.""" ONE @deprecated(reason: "Use ACROSS instead.") } """ The lines on the order to which the discount is applied, of the type defined by the discount application's `targetType`. For example, the value `ENTITLED`, combined with a `targetType` of `LINE_ITEM`, applies the discount on all line items that are entitled to the discount. The value `ALL`, combined with a `targetType` of `SHIPPING_LINE`, applies the discount on all shipping lines. """ enum DiscountApplicationTargetSelection { """The discount is allocated onto all the lines.""" ALL """The discount is allocated onto only the lines that it's entitled for.""" ENTITLED """The discount is allocated onto explicitly chosen lines.""" EXPLICIT } """ The type of line (i.e. line item or shipping line) on an order that the discount is applicable towards. """ enum DiscountApplicationTargetType { """The discount applies onto line items.""" LINE_ITEM """The discount applies onto shipping lines.""" SHIPPING_LINE } """ The type of value given to a customer when a discount is applied to an order. For example, the application of the discount might give the customer a percentage off a specified item. Alternatively, the application of the discount might give the customer a monetary value in a given currency off an order. """ union PricingValue = MoneyV2 | PricingPercentageValue """ One type of value given to a customer when a discount is applied to an order. The application of a discount with this value gives the customer the specified percentage off a specified item. """ type PricingPercentageValue { """ The percentage value of the object. This is a number between -100 (free) and 0 (no discount). """ percentage: Float! } """Represents the order's current financial status.""" enum OrderDisplayFinancialStatus { """ Displayed as **Authorized**. The payment provider has validated the customer's payment information. This status appears only for manual payment capture and indicates payments should be captured before the authorization period expires. """ AUTHORIZED """ Displayed as **Expired**. Payment wasn't captured before the payment provider's deadline on an authorized order. Some payment providers use this status to indicate failed payment processing. """ EXPIRED """ Displayed as **Paid**. Payment was automatically or manually captured, or the order was marked as paid. """ PAID """ Displayed as **Partially paid**. A payment was manually captured for the order with an amount less than the full order value. """ PARTIALLY_PAID """ Displayed as **Partially refunded**. The amount refunded to a customer is less than the full amount paid for an order. """ PARTIALLY_REFUNDED """ Displayed as **Pending**. Orders have this status when the payment provider needs time to complete the payment, or when manual payment methods are being used. """ PENDING """ Displayed as **Refunded**. The full amount paid for an order was refunded to the customer. """ REFUNDED """ Displayed as **Voided**. An unpaid (payment authorized but not captured) order was manually canceled. """ VOIDED } """ Represents the order's aggregated fulfillment status for display purposes. """ enum OrderDisplayFulfillmentStatus { """ Displayed as **Fulfilled**. All the items in the order have been fulfilled. """ FULFILLED """ Displayed as **In progress**. Some of the items in the order have been fulfilled, or a request for fulfillment has been sent to the fulfillment service. """ IN_PROGRESS """ Displayed as **On hold**. All of the unfulfilled items in this order are on hold. """ ON_HOLD """ Displayed as **Open**. None of the items in the order have been fulfilled. Replaced by "UNFULFILLED" status. """ OPEN """ Displayed as **Partially fulfilled**. Some of the items in the order have been fulfilled. """ PARTIALLY_FULFILLED """ Displayed as **Pending fulfillment**. A request for fulfillment of some items awaits a response from the fulfillment service. Replaced by the "IN_PROGRESS" status. """ PENDING_FULFILLMENT """ Displayed as **Request declined**. Some of the items in the order have been rejected for fulfillment by the fulfillment service. """ REQUEST_DECLINED """ Displayed as **Restocked**. All the items in the order have been restocked. Replaced by the "UNFULFILLED" status. """ RESTOCKED """ Displayed as **Scheduled**. All of the unfulfilled items in this order are scheduled for fulfillment at later time. """ SCHEDULED """ Displayed as **Unfulfilled**. None of the items in the order have been fulfilled. """ UNFULFILLED } """A summary of the important details for a dispute on an order.""" type OrderDisputeSummary implements Node { """A globally-unique ID.""" id: ID! """The type that the dispute was initiated as.""" initiatedAs: DisputeType! """The current status of the dispute.""" status: DisputeStatus! } """The possible types for a dispute.""" enum DisputeType { """The dispute has turned into a chargeback.""" CHARGEBACK """The dispute is in the inquiry phase.""" INQUIRY } """The possible statuses of a dispute.""" enum DisputeStatus { ACCEPTED """ Status previously used by Stripe to indicate that a dispute led to a refund. """ CHARGE_REFUNDED @deprecated(reason: "CHARGE_REFUNDED is no longer supported.") LOST NEEDS_RESPONSE UNDER_REVIEW WON """A dispute that was prevented from becoming a formal chargeback.""" PREVENTED } """An auto-generated type for paginating through multiple ExchangeV2s.""" type ExchangeV2Connection { edges: [ExchangeV2Edge!]! """ A list of nodes that are contained in ExchangeV2Edge. 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: [ExchangeV2!]! """ 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 ExchangeV2 and a cursor during pagination. """ type ExchangeV2Edge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of ExchangeV2Edge.""" node: ExchangeV2! } """ An exchange where existing items on an order are returned and new items are added to the order. """ type ExchangeV2 implements Node { """The details of the new items in the exchange.""" additions: ExchangeV2Additions! """The date and time when the exchange was completed.""" completedAt: DateTime """The date and time when the exchange was created.""" createdAt: DateTime! """A globally-unique ID.""" id: ID! """The location where the exchange happened.""" location: Location """ The text of an optional note that a shop owner can attach to the exchange. """ note: String """The refunds processed during the exchange.""" refunds: [Refund!]! """The details of the returned items in the exchange.""" returns: ExchangeV2Returns! """The staff member associated with the exchange.""" staffMember: StaffMember """The amount of money that was paid or refunded as part of the exchange.""" totalAmountProcessedSet: MoneyBag! """The difference in values of the items that were exchanged.""" totalPriceSet: MoneyBag! """The order transactions related to the exchange.""" transactions: [OrderTransaction!]! } """New items associated to the exchange.""" type ExchangeV2Additions { """The list of new items for the exchange.""" lineItems: [ExchangeV2LineItem!]! """The subtotal of the items being added, including discounts.""" subtotalPriceSet: MoneyBag! """The summary of all taxes of the items being added.""" taxLines: [TaxLine!]! """ The total price of the items being added, including discounts and taxes. """ totalPriceSet: MoneyBag! } """Contains information about an item in the exchange.""" type ExchangeV2LineItem { """ A list of attributes that represent custom features or special requests. """ customAttributes: [Attribute!]! """ The total line price, in shop and presentment currencies, after discounts are applied. """ discountedTotalSet: MoneyBag! """ The price, in shop and presentment currencies, of a single variant unit after line item discounts are applied. """ discountedUnitPriceSet: MoneyBag! """ Name of the service provider who fulfilled the order. Valid values are either **manual** or the name of the provider. For example, **amazon**, **shipwire**. Deleted fulfillment services will return null. """ fulfillmentService: FulfillmentService """Indiciates if this line item is a gift card.""" giftCard: Boolean! """The gift cards associated with the line item.""" giftCards: [GiftCard!]! """Whether the line item represents the purchase of a gift card.""" isGiftCard: Boolean! """The line item associated with this object.""" lineItem: LineItem """The name of the product.""" name: String! """ The total price, in shop and presentment currencies, before discounts are applied. """ originalTotalSet: MoneyBag! """ The price, in shop and presentment currencies, of a single variant unit before line item discounts are applied. """ originalUnitPriceSet: MoneyBag! """The number of products that were purchased.""" quantity: Int! """Whether physical shipping is required for the variant.""" requiresShipping: Boolean! """The SKU number of the product variant.""" sku: String """The TaxLine object connected to this line item.""" taxLines: [TaxLine!]! """Whether the variant is taxable.""" taxable: Boolean! """ The title of the product or variant. This field only applies to custom line items. """ title: String! """The product variant of the line item.""" variant: ProductVariant """The name of the variant.""" variantTitle: String """The name of the vendor who created the product variant.""" vendor: String } """Represents an issued gift card.""" type GiftCard implements Node { """The gift card's remaining balance.""" balance: MoneyV2! """The date and time at which the gift card was created.""" createdAt: DateTime! """The customer who will receive the gift card.""" customer: Customer """The date and time at which the gift card was deactivated.""" deactivatedAt: DateTime """Whether the gift card is enabled.""" enabled: Boolean! """The date at which the gift card will expire.""" expiresOn: Date """A globally-unique ID.""" id: ID! """The initial value of the gift card.""" initialValue: MoneyV2! """The final four characters of the gift card code.""" lastCharacters: String! """ The gift card code. Everything but the final four characters is masked. """ maskedCode: String! """ The note associated with the gift card, which isn't visible to the customer. """ note: String """ The order associated with the gift card. This value is `null` if the gift card was issued manually. """ order: Order """The recipient who will receive the gift card.""" recipientAttributes: GiftCardRecipient """The theme template used to render the gift card online.""" templateSuffix: String """The transaction history of the gift card.""" transactions( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): GiftCardTransactionConnection """The date and time at which the gift card was updated.""" updatedAt: DateTime! } """ Represents an [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)-encoded date string. For example, September 7, 2019 is represented as `"2019-07-16"`. """ scalar Date """Represents a recipient who will receive the issued gift card.""" type GiftCardRecipient { """The message sent with the gift card.""" message: String """The preferred name of the recipient who will receive the gift card.""" preferredName: String """The recipient who will receive the gift card.""" recipient: Customer! """ The scheduled datetime on which the gift card will be sent to the recipient. The gift card will be sent within an hour of the specified datetime. """ sendNotificationAt: DateTime } """ An auto-generated type for paginating through multiple GiftCardTransactions. """ type GiftCardTransactionConnection { edges: [GiftCardTransactionEdge!]! """ A list of nodes that are contained in GiftCardTransactionEdge. 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: [GiftCardTransaction!]! """ 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 GiftCardTransaction and a cursor during pagination. """ type GiftCardTransactionEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of GiftCardTransactionEdge.""" node: GiftCardTransaction! } """Interface for a gift card transaction.""" interface GiftCardTransaction { """The amount of the transaction.""" amount: MoneyV2! """The gift card that the transaction belongs to.""" giftCard: GiftCard! """The unique ID for the transaction.""" id: ID! """ A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. """ metafield( """The key for the metafield.""" key: String! """ The container the metafield belongs to. If omitted, the app-reserved namespace will be used. """ namespace: String ): Metafield """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. """ metafields( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ List of keys of metafields in the format `namespace.key`, will be returned in the same format. """ keys: [String!] """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. """ namespace: String """Reverse the order of the underlying list.""" reverse: Boolean = false ): MetafieldConnection! """A note about the transaction.""" note: String """The date and time when the transaction was processed.""" processedAt: DateTime! } """ Represents individual products and quantities purchased in the associated order. """ type LineItem implements Node { """Whether the line item can be restocked.""" canRestock: Boolean! @deprecated(reason: "Use `restockable` instead.") """The subscription contract associated with this line item.""" contract: SubscriptionContract """The number of units ordered, excluding refunded and removed units.""" currentQuantity: Int! """ A list of attributes that represent custom features or special requests. """ customAttributes: [Attribute!]! """ The discounts that have been allocated to the line item by discount applications, including discounts allocated to refunded and removed quantities. """ discountAllocations: [DiscountAllocation!]! """ The total discounted price of the line item in shop currency, including refunded and removed quantities. This value doesn't include order-level discounts. """ discountedTotal: Money! @deprecated(reason: "Use `discountedTotalSet` instead.") """ The total discounted price of the line item in shop and presentment currencies, including refunded and removed quantities. This value doesn't include order-level discounts. Code-based discounts aren't included by default. """ discountedTotalSet( """Whether to include code-based discounts in the total.""" withCodeDiscounts: Boolean = false ): MoneyBag! """ The approximate unit price of the line item in shop currency. This value includes line-level discounts and discounts applied to refunded and removed quantities. It doesn't include order-level or code-based discounts. """ discountedUnitPrice: Money! @deprecated(reason: "Use `discountedUnitPriceSet` instead.") """ The approximate unit price of the line item in shop and presentment currencies. This value includes discounts applied to refunded and removed quantities. """ discountedUnitPriceAfterAllDiscountsSet: MoneyBag! """ The approximate unit price of the line item in shop and presentment currencies. This value includes line-level discounts and discounts applied to refunded and removed quantities. It doesn't include order-level or code-based discounts. """ discountedUnitPriceSet: MoneyBag! """The duties associated with the line item.""" duties: [Duty!]! """The total number of units to fulfill.""" fulfillableQuantity: Int! @deprecated(reason: "Use [FulfillmentOrderLineItem#remainingQuantity](https://shopify.dev/api/admin-graphql/latest/objects/FulfillmentOrderLineItem#field-fulfillmentorderlineitem-remainingquantity) instead.") """ The fulfillment service that stocks the product variant belonging to a line item. This is a third-party fulfillment service in the following scenarios: **Scenario 1** - The product variant is stocked by a single fulfillment service. - The [FulfillmentService](/api/admin-graphql/latest/objects/FulfillmentService) is a third-party fulfillment service. Third-party fulfillment services don't have a handle with the value `manual`. **Scenario 2** - Multiple fulfillment services stock the product variant. - The last time that the line item was unfulfilled, it was awaiting fulfillment by a third-party fulfillment service. Third-party fulfillment services don't have a handle with the value `manual`. If none of the above conditions are met, then the fulfillment service has the `manual` handle. """ fulfillmentService: FulfillmentService @deprecated(reason: "\nThe [relationship between a product variant and a fulfillment service was changed in the `2022-07` API version](/changelog/fulfillment-service-sku-sharing). A [ProductVariant](/api/admin-graphql/latest/objects/ProductVariant) can be stocked by multiple fulfillment services. As a result, we recommend that you use the [inventoryItem field](/api/admin-graphql/latest/objects/ProductVariant#field-productvariant-inventoryitem) if you need to determine where a product variant is stocked.\n\nIf you need to determine whether a product is a gift card, then you should continue to use this field until an alternative is available.\n\nAltering the locations which stock a product variant won't change the value of this field for existing orders.\n\nLearn about [managing inventory quantities and states](/apps/fulfillment/inventory-management-apps/quantities-states).\n") """ The line item's fulfillment status. Returns 'fulfilled' if fulfillableQuantity >= quantity, 'partial' if fulfillableQuantity > 0, and 'unfulfilled' otherwise. """ fulfillmentStatus: String! @deprecated(reason: "Use [FulfillmentOrderLineItem#remainingQuantity](https://shopify.dev/api/admin-graphql/latest/objects/FulfillmentOrderLineItem#field-fulfillmentorderlineitem-remainingquantity) instead") """A globally-unique ID.""" id: ID! """The image associated to the line item's variant.""" image: Image """Whether the line item represents the purchase of a gift card.""" isGiftCard: Boolean! """The line item group associated to the line item.""" lineItemGroup: LineItemGroup """Whether the line item can be edited or not.""" merchantEditable: Boolean! """ The title of the product, optionally appended with the title of the variant (if applicable). """ name: String! """ The total number of units that can't be fulfilled. For example, if items have been refunded, or the item is not something that can be fulfilled, like a tip. Please see the [FulfillmentOrder](https://shopify.dev/api/admin-graphql/latest/objects/FulfillmentOrder) object for more fulfillment details. """ nonFulfillableQuantity: Int! """ In shop currency, the total price of the line item when the order was created. This value doesn't include discounts. """ originalTotal: Money! @deprecated(reason: "Use `originalTotalSet` instead.") """ In shop and presentment currencies, the total price of the line item when the order was created. This value doesn't include discounts. """ originalTotalSet: MoneyBag! """ In shop currency, the unit price of the line item when the order was created. This value doesn't include discounts. """ originalUnitPrice: Money! @deprecated(reason: "Use `originalUnitPriceSet` instead.") """ In shop and presentment currencies, the unit price of the line item when the order was created. This value doesn't include discounts. """ originalUnitPriceSet: MoneyBag! """The Product object associated with this line item's variant.""" product: Product """The number of units ordered, including refunded and removed units.""" quantity: Int! """The number of units ordered, excluding refunded units.""" refundableQuantity: Int! """Whether physical shipping is required for the variant.""" requiresShipping: Boolean! """Whether the line item can be restocked.""" restockable: Boolean! """The selling plan details associated with the line item.""" sellingPlan: LineItemSellingPlan """The variant SKU number.""" sku: String """Staff attributed to the line item.""" staffMember: StaffMember """ The taxes charged for the line item, including taxes charged for refunded and removed quantities. """ taxLines( """Truncate the array result to this size.""" first: Int ): [TaxLine!]! """Whether the variant is taxable.""" taxable: Boolean! """The title of the product at time of order creation.""" title: String! """ The total discount allocated to the line item in shop currency, including the total allocated to refunded and removed quantities. This value doesn't include order-level discounts. """ totalDiscount: Money! @deprecated(reason: "Use `totalDiscountSet` instead.") """ The total discount allocated to the line item in shop and presentment currencies, including the total allocated to refunded and removed quantities. This value doesn't include order-level discounts. """ totalDiscountSet: MoneyBag! """ In shop currency, the total discounted price of the unfulfilled quantity for the line item. """ unfulfilledDiscountedTotal: Money! @deprecated(reason: "Use `unfulfilledDiscountedTotalSet` instead.") """ In shop and presentment currencies, the total discounted price of the unfulfilled quantity for the line item. """ unfulfilledDiscountedTotalSet: MoneyBag! """ In shop currency, the total price of the unfulfilled quantity for the line item. This value doesn't include discounts. """ unfulfilledOriginalTotal: Money! @deprecated(reason: "Use `unfulfilledOriginalTotalSet` instead.") """ In shop and presentment currencies, the total price of the unfulfilled quantity for the line item. This value doesn't include discounts. """ unfulfilledOriginalTotalSet: MoneyBag! """The number of units not yet fulfilled.""" unfulfilledQuantity: Int! """The Variant object associated with this line item.""" variant: ProductVariant """The title of the variant at time of order creation.""" variantTitle: String """The name of the vendor who made the variant.""" vendor: String } """ An amount that's allocated to a line based on an associated discount application. """ type DiscountAllocation { """ The money amount that's allocated to a line based on the associated discount application. """ allocatedAmount: MoneyV2! @deprecated(reason: "Use `allocatedAmountSet` instead.") """ The money amount that's allocated to a line based on the associated discount application in shop and presentment currencies. """ allocatedAmountSet: MoneyBag! """The discount application that the allocated amount originated from.""" discountApplication: DiscountApplication! } """The duty details for a line item.""" type Duty implements Node { """ The ISO 3166-1 alpha-2 country code of the country of origin used in calculating the duty. """ countryCodeOfOrigin: CountryCode """The harmonized system code of the item used in calculating the duty.""" harmonizedSystemCode: String """A globally-unique ID.""" id: ID! """The amount of the duty.""" price: MoneyBag! """A list of taxes charged on the duty.""" taxLines: [TaxLine!]! } """A line item group (bundle) to which a line item belongs to.""" type LineItemGroup implements Node { """ A list of attributes that represent custom features or special requests. """ customAttributes: [Attribute!]! """A globally-unique ID.""" id: ID! """Quantity of the line item group on the order.""" quantity: Int! """Title of the line item group.""" title: String! """ID of the variant of the line item group.""" variantId: ID """SKU of the variant of the line item group.""" variantSku: String } """Represents the selling plan for a line item.""" type LineItemSellingPlan { """The name of the selling plan for display purposes.""" name: String! """The ID of the selling plan associated with the line item.""" sellingPlanId: ID } """ The record of the line items and transactions that were refunded to a customer, along with restocking instructions for refunded line items. """ type Refund implements LegacyInteroperability & Node { """The date and time when the refund was created.""" createdAt: DateTime """A list of the refunded duties as part of this refund.""" duties: [RefundDuty!] """A globally-unique ID.""" id: ID! """The ID of the corresponding resource in the REST Admin API.""" legacyResourceId: UnsignedInt64! """The optional note associated with the refund.""" note: String """The order associated with the refund.""" order: Order! """The order adjustments that are attached with the refund.""" orderAdjustments( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): OrderAdjustmentConnection! """The `RefundLineItem` resources attached to the refund.""" refundLineItems( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): RefundLineItemConnection! """The `RefundShippingLine` resources attached to the refund.""" refundShippingLines( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): RefundShippingLineConnection! """The return associated with the refund.""" return: Return """The staff member who created the refund.""" staffMember: StaffMember """The total amount across all transactions for the refund.""" totalRefunded: MoneyV2! @deprecated(reason: "Use `totalRefundedSet` instead.") """ The total amount across all transactions for the refund, in shop and presentment currencies. """ totalRefundedSet: MoneyBag! """The transactions associated with the refund.""" transactions( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): OrderTransactionConnection! """The date and time when the refund was updated.""" updatedAt: DateTime! } """Represents a refunded duty.""" type RefundDuty { """The amount of a refunded duty in shop and presentment currencies.""" amountSet: MoneyBag! """The duty associated with this refunded duty.""" originalDuty: Duty } """ An auto-generated type for paginating through multiple OrderAdjustments. """ type OrderAdjustmentConnection { edges: [OrderAdjustmentEdge!]! """ A list of nodes that are contained in OrderAdjustmentEdge. 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: [OrderAdjustment!]! """ 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 OrderAdjustment and a cursor during pagination. """ type OrderAdjustmentEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of OrderAdjustmentEdge.""" node: OrderAdjustment! } """ An order adjustment accounts for the difference between a calculated and actual refund amount. """ type OrderAdjustment implements Node { """The amount of the order adjustment in shop and presentment currencies.""" amountSet: MoneyBag! """A globally-unique ID.""" id: ID! """ An optional reason that explains a discrepancy between calculated and actual refund amounts. """ reason: OrderAdjustmentDiscrepancyReason """ The tax amount of the order adjustment in shop and presentment currencies. """ taxAmountSet: MoneyBag! } """Discrepancy reasons for order adjustments.""" enum OrderAdjustmentDiscrepancyReason { """The discrepancy reason is customer.""" CUSTOMER """The discrepancy reason is damage.""" DAMAGE """The discrepancy reason is balance adjustment.""" FULL_RETURN_BALANCING_ADJUSTMENT """The discrepancy reason is pending refund.""" PENDING_REFUND_DISCREPANCY """The discrepancy reason is not one of the predefined reasons.""" REFUND_DISCREPANCY """The discrepancy reason is restocking.""" RESTOCK } """ An auto-generated type for paginating through multiple RefundLineItems. """ type RefundLineItemConnection { edges: [RefundLineItemEdge!]! """ A list of nodes that are contained in RefundLineItemEdge. 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: [RefundLineItem!]! """ 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 RefundLineItem and a cursor during pagination. """ type RefundLineItemEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of RefundLineItemEdge.""" node: RefundLineItem! } """A line item that's included in a refund.""" type RefundLineItem { """A globally-unique ID.""" id: ID """The `LineItem` resource associated to the refunded line item.""" lineItem: LineItem! """The inventory restock location.""" location: Location """The price of a refunded line item.""" price: Money! @deprecated(reason: "Use `priceSet` instead.") """The price of a refunded line item in shop and presentment currencies.""" priceSet: MoneyBag! """The quantity of a refunded line item.""" quantity: Int! """The type of restock for the refunded line item.""" restockType: RefundLineItemRestockType! """ Whether the refunded line item was restocked. Not applicable in the context of a SuggestedRefund. """ restocked: Boolean! """The subtotal price of a refunded line item.""" subtotal: Money! @deprecated(reason: "Use `subtotalSet` instead.") """ The subtotal price of a refunded line item in shop and presentment currencies. """ subtotalSet: MoneyBag! """The total tax charged on a refunded line item.""" totalTax: Money! @deprecated(reason: "Use `totalTaxSet` instead.") """ The total tax charged on a refunded line item in shop and presentment currencies. """ totalTaxSet: MoneyBag! } """The type of restock performed for a particular refund line item.""" enum RefundLineItemRestockType { """ The refund line item was canceled. Use this when restocking unfulfilled line items. """ CANCEL """ Deprecated. The refund line item was restocked, without specifically beingidentified as a return or cancelation. This value is not accepted when creating new refunds. """ LEGACY_RESTOCK """Refund line item was not restocked.""" NO_RESTOCK """ The refund line item was returned. Use this when restocking line items that were fulfilled. """ RETURN } """ An auto-generated type for paginating through multiple RefundShippingLines. """ type RefundShippingLineConnection { edges: [RefundShippingLineEdge!]! """ A list of nodes that are contained in RefundShippingLineEdge. 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: [RefundShippingLine!]! """ 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 RefundShippingLine and a cursor during pagination. """ type RefundShippingLineEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of RefundShippingLineEdge.""" node: RefundShippingLine! } """A shipping line item that's included in a refund.""" type RefundShippingLine implements Node { """A globally-unique ID.""" id: ID! """ The `ShippingLine` resource associated to the refunded shipping line item. """ shippingLine: ShippingLine! """ The subtotal amount of the refund shipping line in shop and presentment currencies. """ subtotalAmountSet: MoneyBag! """ The tax amount of the refund shipping line in shop and presentment currencies. """ taxAmountSet: MoneyBag! } """ Represents the shipping details that the customer chose for their order. """ type ShippingLine { """ A reference to the carrier service that provided the rate. Present when the rate was computed by a third-party carrier service. """ carrierIdentifier: String """A reference to the shipping method.""" code: String """ The current shipping price after applying refunds, after applying discounts. If the parent `order.taxesIncluded`` field is true, then this price includes taxes. Otherwise, this field is the pre-tax price. """ currentDiscountedPriceSet: MoneyBag! """Whether the shipping line is custom or not.""" custom: Boolean! """The general classification of the delivery method.""" deliveryCategory: String """The discounts that have been allocated to the shipping line.""" discountAllocations: [DiscountAllocation!]! """ The pre-tax shipping price with discounts applied. As of API version 2024-07, this will be calculated including cart level discounts, such as the free shipping discount. """ discountedPrice: MoneyV2! @deprecated(reason: "Use `discountedPriceSet` instead.") """ The shipping price after applying discounts. If the parent order.taxesIncluded field is true, then this price includes taxes. If not, it's the pre-tax price. As of API version 2024-07, this will be calculated including cart level discounts, such as the free shipping discount. """ discountedPriceSet: MoneyBag! """A globally-unique ID.""" id: ID """Whether the shipping line has been removed.""" isRemoved: Boolean! """The pre-tax shipping price without any discounts applied.""" originalPrice: MoneyV2! @deprecated(reason: "Use `originalPriceSet` instead.") """The pre-tax shipping price without any discounts applied.""" originalPriceSet: MoneyBag! """The phone number at the shipping address.""" phone: String """Returns the price of the shipping line.""" price: Money! @deprecated(reason: "Use `originalPriceSet` instead.") """ The fulfillment service requested for the shipping method. Present if the shipping method requires processing by a third party fulfillment service. """ requestedFulfillmentService: FulfillmentService @deprecated(reason: "requestedFulfillmentService is no longer in use. Order routing does not use the requestedFulfillmentService during order and fulfillment order creation.") """ A unique identifier for the shipping rate. The format can change without notice and isn't meant to be shown to users. """ shippingRateHandle: String """Returns the rate source for the shipping line.""" source: String """The TaxLine objects connected to this shipping line.""" taxLines: [TaxLine!]! """Returns the title of the shipping line.""" title: String! } """Represents a return.""" type Return implements Node { """Additional information about the declined return.""" decline: ReturnDecline """The exchange line items attached to the return.""" exchangeLineItems( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ Include exchange line items that have been removed from the order by an order edit, return, etc. Items that have been removed have a zero ([LineItem.currentQuantity](https://shopify.dev/docs/api/admin-graphql/unstable/objects/LineItem#field-lineitem-currentquantity)). """ includeRemovedItems: Boolean = false """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): ExchangeLineItemConnection! """A globally-unique ID.""" id: ID! """The name of the return.""" name: String! """The order that the return belongs to.""" order: Order! """The list of refunds associated with the return.""" refunds( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): RefundConnection! """The return line items attached to the return.""" returnLineItems( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): ReturnLineItemTypeConnection! """The return shipping fees for the return.""" returnShippingFees: [ReturnShippingFee!]! """The list of reverse fulfillment orders for the return.""" reverseFulfillmentOrders( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): ReverseFulfillmentOrderConnection! """The status of the return.""" status: ReturnStatus! """A suggested refund for the return.""" suggestedRefund( """The duties from to associated order to include in the refund.""" refundDuties: [RefundDutyInput!] """ The shipping amount from the associated order to include in the refund. """ refundShipping: RefundShippingInput """The line items from the return to include in the refund.""" returnRefundLineItems: [ReturnRefundLineItemInput!]! ): SuggestedReturnRefund """The sum of all return line item quantities for the return.""" totalQuantity: Int! } """ Additional information about why a merchant declined the customer's return request. """ type ReturnDecline { """ The notification message sent to the customer about their declined return request. Maximum length: 500 characters. """ note: String """The reason the customer's return request was declined.""" reason: ReturnDeclineReason! } """The reason why the merchant declined a customer's return request.""" enum ReturnDeclineReason { """The return contains final sale items.""" FINAL_SALE """The return is declined for another reason.""" OTHER """The return period has ended.""" RETURN_PERIOD_ENDED } """ An auto-generated type for paginating through multiple ExchangeLineItems. """ type ExchangeLineItemConnection { edges: [ExchangeLineItemEdge!]! """ A list of nodes that are contained in ExchangeLineItemEdge. 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: [ExchangeLineItem!]! """ 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 ExchangeLineItem and a cursor during pagination. """ type ExchangeLineItemEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of ExchangeLineItemEdge.""" node: ExchangeLineItem! } """An item for exchange.""" type ExchangeLineItem implements Node { """A globally-unique ID.""" id: ID! """The order line item for the exchange.""" lineItem: LineItem } """An auto-generated type for paginating through multiple Refunds.""" type RefundConnection { edges: [RefundEdge!]! """ A list of nodes that are contained in RefundEdge. 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: [Refund!]! """ 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 Refund and a cursor during pagination. """ type RefundEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of RefundEdge.""" node: Refund! } """ An auto-generated type for paginating through multiple ReturnLineItemTypes. """ type ReturnLineItemTypeConnection { edges: [ReturnLineItemTypeEdge!]! """ A list of nodes that are contained in ReturnLineItemTypeEdge. 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: [ReturnLineItemType!]! """ 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 ReturnLineItemType and a cursor during pagination. """ type ReturnLineItemTypeEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of ReturnLineItemTypeEdge.""" node: ReturnLineItemType! } """A return line item of any type.""" interface ReturnLineItemType { """ A note from the customer that describes the item to be returned. Maximum length: 300 characters. """ customerNote: String """A globally-unique ID.""" id: ID! """The quantity being returned.""" quantity: Int! """The quantity that can be refunded.""" refundableQuantity: Int! """The quantity that was refunded.""" refundedQuantity: Int! """The reason for returning the item.""" returnReason: ReturnReason! """ Additional information about the reason for the return. Maximum length: 255 characters. """ returnReasonNote: String! } """The reason for returning the return line item.""" enum ReturnReason { """ The item is returned because the buyer did not like the color. Displays as **Color**. """ COLOR """ The item is returned because it is damaged or defective. Displays as **Damaged or defective**. """ DEFECTIVE """ The item is returned because it was not as described. Displays as **Item not as described**. """ NOT_AS_DESCRIBED """ The item is returned for another reason. For this value, a return reason note is also provided. Displays as **Other**. """ OTHER """ The item is returned because the size was too large. Displays as **Size was too large**. """ SIZE_TOO_LARGE """ The item is returned because the size was too small. Displays as **Size was too small**. """ SIZE_TOO_SMALL """ The item is returned because the buyer did not like the style. Displays as **Style**. """ STYLE """ The item is returned because of an unknown reason. Displays as **Unknown**. """ UNKNOWN """ The item is returned because the customer changed their mind. Displays as **Customer changed their mind**. """ UNWANTED """ The item is returned because the customer received the wrong one. Displays as **Received the wrong item**. """ WRONG_ITEM } """ A return shipping fee is a fee captured as part of a return to cover the costs of shipping the return. """ type ReturnShippingFee implements Fee { """ The amount of the return shipping fee, in shop and presentment currencies. """ amountSet: MoneyBag! """The unique ID for the Fee.""" id: ID! } """ A additional cost, charged by the merchant, on an order. Examples include return shipping fees and restocking fees. """ interface Fee { """The unique ID for the Fee.""" id: ID! } """ An auto-generated type for paginating through multiple ReverseFulfillmentOrders. """ type ReverseFulfillmentOrderConnection { edges: [ReverseFulfillmentOrderEdge!]! """ A list of nodes that are contained in ReverseFulfillmentOrderEdge. 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: [ReverseFulfillmentOrder!]! """ 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 ReverseFulfillmentOrder and a cursor during pagination. """ type ReverseFulfillmentOrderEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of ReverseFulfillmentOrderEdge.""" node: ReverseFulfillmentOrder! } """ A group of one or more items in a return that will be processed at a fulfillment service. There can be more than one reverse fulfillment order for a return at a given location. """ type ReverseFulfillmentOrder implements Node { """A globally-unique ID.""" id: ID! """ The list of reverse fulfillment order line items for the reverse fulfillment order. """ lineItems( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): ReverseFulfillmentOrderLineItemConnection! """The order associated with the reverse fulfillment order.""" order: Order """The list of reverse deliveries for the reverse fulfillment order.""" reverseDeliveries( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): ReverseDeliveryConnection! """The status of the reverse fulfillment order.""" status: ReverseFulfillmentOrderStatus! """ The current confirmation for the reverse fulfillment order from a third-party logistics service. If no third-party service is involved, then this value is `nil`. """ thirdPartyConfirmation: ReverseFulfillmentOrderThirdPartyConfirmation } """ An auto-generated type for paginating through multiple ReverseFulfillmentOrderLineItems. """ type ReverseFulfillmentOrderLineItemConnection { edges: [ReverseFulfillmentOrderLineItemEdge!]! """ A list of nodes that are contained in ReverseFulfillmentOrderLineItemEdge. 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: [ReverseFulfillmentOrderLineItem!]! """ 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 ReverseFulfillmentOrderLineItem and a cursor during pagination. """ type ReverseFulfillmentOrderLineItemEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of ReverseFulfillmentOrderLineItemEdge.""" node: ReverseFulfillmentOrderLineItem! } """The details about a reverse fulfillment order line item.""" type ReverseFulfillmentOrderLineItem implements Node { """The dispositions of the item.""" dispositions: [ReverseFulfillmentOrderDisposition!]! """ The corresponding fulfillment line item for a reverse fulfillment order line item. """ fulfillmentLineItem: FulfillmentLineItem """A globally-unique ID.""" id: ID! """The total number of units to be processed.""" totalQuantity: Int! } """The details of the arrangement of an item.""" type ReverseFulfillmentOrderDisposition implements Node { """A globally-unique ID.""" id: ID! """The location where the disposition occurred.""" location: Location """The number of disposed units.""" quantity: Int! """The final arrangement of an item.""" type: ReverseFulfillmentOrderDispositionType! } """The final arrangement of an item from a reverse fulfillment order.""" enum ReverseFulfillmentOrderDispositionType { """An item that was expected but absent.""" MISSING """An item that wasn't restocked.""" NOT_RESTOCKED """ An item that requires further processing before being restocked or discarded. """ PROCESSING_REQUIRED """An item that was restocked.""" RESTOCKED } """Represents a line item from an order that's included in a fulfillment.""" type FulfillmentLineItem implements Node { """The total price after discounts are applied.""" discountedTotal: Money! @deprecated(reason: "Use `discountedTotalSet` instead.") """ The total price after discounts are applied in shop and presentment currencies. This value doesn't include order-level discounts. """ discountedTotalSet: MoneyBag! """A globally-unique ID.""" id: ID! """The associated order's line item.""" lineItem: LineItem! """The total price before discounts are applied.""" originalTotal: Money! @deprecated(reason: "Use `originalTotalSet` instead.") """ The total price before discounts are applied in shop and presentment currencies. """ originalTotalSet: MoneyBag! """Number of line items in the fulfillment.""" quantity: Int } """ An auto-generated type for paginating through multiple ReverseDeliveries. """ type ReverseDeliveryConnection { edges: [ReverseDeliveryEdge!]! """ A list of nodes that are contained in ReverseDeliveryEdge. 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: [ReverseDelivery!]! """ 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 ReverseDelivery and a cursor during pagination. """ type ReverseDeliveryEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of ReverseDeliveryEdge.""" node: ReverseDelivery! } """ A reverse delivery is a post-fulfillment object that represents a buyer sending a package to a merchant. For example, a buyer requests a return, and a merchant sends the buyer a shipping label. The reverse delivery contains the context of the items sent back, how they're being sent back (for example, a shipping label), and the current state of the delivery (tracking information). """ type ReverseDelivery implements Node { """The deliverable associated with the reverse delivery.""" deliverable: ReverseDeliveryDeliverable """The ID of the reverse delivery.""" id: ID! """The reverse delivery line items attached to the reverse delivery.""" reverseDeliveryLineItems( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): ReverseDeliveryLineItemConnection! """The `ReverseFulfillmentOrder` associated with the reverse delivery.""" reverseFulfillmentOrder: ReverseFulfillmentOrder! } """The delivery method and artifacts associated with a reverse delivery.""" union ReverseDeliveryDeliverable = ReverseDeliveryShippingDeliverable """ A reverse shipping deliverable that may include a label and tracking information. """ type ReverseDeliveryShippingDeliverable { """The return label attached to the reverse delivery.""" label: ReverseDeliveryLabelV2 """The information to track the reverse delivery.""" tracking: ReverseDeliveryTrackingV2 } """The return label file information for a reverse delivery.""" type ReverseDeliveryLabelV2 { """The date and time when the reverse delivery label was created.""" createdAt: DateTime! """A public link that can be used to download the label image.""" publicFileUrl: URL """The date and time when the reverse delivery label was updated.""" updatedAt: DateTime! } """Represents the information used to track a reverse delivery.""" type ReverseDeliveryTrackingV2 { """ The provider of the tracking information, in a human-readable format for display purposes. """ carrierName: String """The identifier used by the courier to identify the shipment.""" number: String """The URL to track a shipment.""" url: URL } """ An auto-generated type for paginating through multiple ReverseDeliveryLineItems. """ type ReverseDeliveryLineItemConnection { edges: [ReverseDeliveryLineItemEdge!]! """ A list of nodes that are contained in ReverseDeliveryLineItemEdge. 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: [ReverseDeliveryLineItem!]! """ 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 ReverseDeliveryLineItem and a cursor during pagination. """ type ReverseDeliveryLineItemEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of ReverseDeliveryLineItemEdge.""" node: ReverseDeliveryLineItem! } """The details about a reverse delivery line item.""" type ReverseDeliveryLineItem implements Node { """The dispositions of the item.""" dispositions: [ReverseFulfillmentOrderDisposition!]! """A globally-unique ID.""" id: ID! """The expected number of units.""" quantity: Int! """The corresponding reverse fulfillment order line item.""" reverseFulfillmentOrderLineItem: ReverseFulfillmentOrderLineItem! } """The status of a reverse fulfillment order.""" enum ReverseFulfillmentOrderStatus { """The reverse fulfillment order has been canceled.""" CANCELED """The reverse fulfillment order has been completed.""" CLOSED """The reverse fulfillment order is in progress.""" OPEN } """The third-party confirmation of a reverse fulfillment order.""" type ReverseFulfillmentOrderThirdPartyConfirmation { """The status of the reverse fulfillment order third-party confirmation.""" status: ReverseFulfillmentOrderThirdPartyConfirmationStatus! } """The status of a reverse fulfillment order third-party confirmation.""" enum ReverseFulfillmentOrderThirdPartyConfirmationStatus { """The reverse fulfillment order was accepted by the fulfillment service.""" ACCEPTED """ The reverse fulfillment order cancelation was accepted by the fulfillment service. """ CANCEL_ACCEPTED """ The reverse fulfillment order cancelation was rejected by the fulfillment service. """ CANCEL_REJECTED """ The reverse fulfillment order is awaiting acceptance by the fulfillment service. """ PENDING_ACCEPTANCE """ The reverse fulfillment order is awaiting cancelation by the fulfillment service. """ PENDING_CANCELATION """The reverse fulfillment order was rejected by the fulfillment service.""" REJECTED } """The status of a return.""" enum ReturnStatus { """The return has been canceled.""" CANCELED """The return has been completed.""" CLOSED """The return was declined.""" DECLINED """The return is in progress.""" OPEN """The return was requested.""" REQUESTED } """ Represents a return refund suggested by Shopify based on the items being reimbursed. You can then use the suggested refund object to generate an actual refund for the return. """ type SuggestedReturnRefund { """ The total monetary value to be refunded in shop and presentment currencies. """ amount: MoneyBag! """The sum of all the discounted prices of the line items being refunded.""" discountedSubtotal: MoneyBag! """ The total monetary value available to refund in shop and presentment currencies. """ maximumRefundable: MoneyBag! """A list of duties to be refunded from the order.""" refundDuties: [RefundDuty!]! """The shipping costs to be refunded from the order.""" shipping: ShippingRefund! """ The sum of all the prices of the line items being refunded in shop and presentment currencies. """ subtotal: MoneyBag! """A list of suggested order transactions.""" suggestedTransactions: [SuggestedOrderTransaction!]! """ The total cart discount amount that was applied to all line items in this refund. """ totalCartDiscountAmount: MoneyBag! """ The sum of all the duties being refunded from the order in shop and presentment currencies. The value must be positive. """ totalDuties: MoneyBag! """ The sum of the taxes being refunded in shop and presentment currencies. The value must be positive. """ totalTax: MoneyBag! } """Represents the shipping costs refunded on the Refund.""" type ShippingRefund { """The monetary value of the shipping fees to be refunded.""" amount: Money! @deprecated(reason: "Use `amountSet` instead.") """ The monetary value of the shipping fees to be refunded in shop and presentment currencies. """ amountSet: MoneyBag! """The maximum amount of shipping fees currently refundable.""" maximumRefundable: Money! @deprecated(reason: "Use `maximumRefundableSet` instead.") """ The maximum amount of shipping fees currently refundable in shop and presentment currencies. """ maximumRefundableSet: MoneyBag! """ The monetary value of the tax allocated to shipping fees to be refunded. """ tax: Money! @deprecated(reason: "Use `taxSet` instead.") """ The monetary value of the tax allocated to shipping fees to be refunded in shop and presentment currencies. """ taxSet: MoneyBag! } """ A suggested transaction. Suggested transaction are usually used in the context of refunds and exchanges. """ type SuggestedOrderTransaction { """The masked account number associated with the payment method.""" accountNumber: String """The amount of the transaction.""" amount: Money! @deprecated(reason: "Use `amountSet` instead.") """ The amount and currency of the suggested order transaction in shop and presentment currencies. """ amountSet: MoneyBag! """ The human-readable payment gateway name suggested to process the transaction. """ formattedGateway: String """The suggested payment gateway used to process the transaction.""" gateway: String """Specifies the kind of the suggested order transaction.""" kind: SuggestedOrderTransactionKind! """ Specifies the available amount to refund on the gateway. Only available within SuggestedRefund. """ maximumRefundable: Money @deprecated(reason: "Use `maximumRefundableSet` instead.") """ Specifies the available amount to refund on the gateway in shop and presentment currencies. Only available within SuggestedRefund. """ maximumRefundableSet: MoneyBag """ The associated parent transaction, for example the authorization of a capture. """ parentTransaction: OrderTransaction """The associated payment details related to the transaction.""" paymentDetails: PaymentDetails } """Specifies the kind of the suggested order transaction.""" enum SuggestedOrderTransactionKind { """A suggested refund transaction for an order.""" SUGGESTED_REFUND } """A payment transaction in the context of an order.""" type OrderTransaction implements Node { """The masked account number associated with the payment method.""" accountNumber: String """The amount of money.""" amount: Money! @deprecated(reason: "Use `amountSet` instead.") """ The rounding adjustment applied on the cash amount in shop and presentment currencies. """ amountRoundingSet: MoneyBag """ The amount and currency of the transaction in shop and presentment currencies. """ amountSet: MoneyBag! """The amount and currency of the transaction.""" amountV2: MoneyV2! @deprecated(reason: "Use `amountSet` instead.") """Authorization code associated with the transaction.""" authorizationCode: String """ The time when the authorization expires. This field is available only to stores on a Shopify Plus plan. """ authorizationExpiresAt: DateTime """Date and time when the transaction was created.""" createdAt: DateTime! """A standardized error code, independent of the payment provider.""" errorCode: OrderTransactionErrorCode """ The transaction fees charged on the order transaction. Only present for Shopify Payments transactions. """ fees: [TransactionFee!]! """ The human-readable payment gateway name used to process the transaction. """ formattedGateway: String """The payment gateway used to process the transaction.""" gateway: String """A globally-unique ID.""" id: ID! """The kind of transaction.""" kind: OrderTransactionKind! """Whether the transaction is processed by manual payment gateway.""" manualPaymentGateway: Boolean! """Whether the transaction can be manually captured.""" manuallyCapturable: Boolean! """ Specifies the available amount to refund on the gateway. This value is only available for transactions of type `SuggestedRefund`. """ maximumRefundable: Money @deprecated(reason: "Use `maximumRefundableV2` instead.") """ Specifies the available amount with currency to refund on the gateway. This value is only available for transactions of type `SuggestedRefund`. """ maximumRefundableV2: MoneyV2 """Whether the transaction can be captured multiple times.""" multiCapturable: Boolean! """The associated order.""" order: Order """ The associated parent transaction, for example the authorization of a capture. """ parentTransaction: OrderTransaction """The payment details for the transaction.""" paymentDetails: PaymentDetails """The payment icon to display for the transaction.""" paymentIcon: Image """The payment ID associated with the transaction.""" paymentId: String """ The payment method used for the transaction. This value is `null` if the payment method is unknown. """ paymentMethod: PaymentMethods @deprecated(reason: "Use `paymentIcon` instead.") """Date and time when the transaction was processed.""" processedAt: DateTime """ The transaction receipt that the payment gateway attaches to the transaction. The value of this field depends on which payment gateway processed the transaction. """ receiptJson: JSON """The settlement currency.""" settlementCurrency: CurrencyCode """ The rate used when converting the transaction amount to settlement currency. """ settlementCurrencyRate: Decimal """ Contains all Shopify Payments information related to an order transaction. This field is available only to stores on a Shopify Plus plan. """ shopifyPaymentsSet: ShopifyPaymentsTransactionSet """The status of this transaction.""" status: OrderTransactionStatus! """Whether the transaction is a test transaction.""" test: Boolean! """ Specifies the available amount to capture on the gateway. Only available when an amount is capturable or manually mark as paid. """ totalUnsettled: Money @deprecated(reason: "Use `totalUnsettledSet` instead.") """ Specifies the available amount with currency to capture on the gateway in shop and presentment currencies. Only available when an amount is capturable or manually mark as paid. """ totalUnsettledSet: MoneyBag """ Specifies the available amount with currency to capture on the gateway. Only available when an amount is capturable or manually mark as paid. """ totalUnsettledV2: MoneyV2 @deprecated(reason: "Use `totalUnsettledSet` instead.") """ Staff member who was logged into the Shopify POS device when the transaction was processed. """ user: StaffMember } """A standardized error code, independent of the payment provider.""" enum OrderTransactionErrorCode { """The payment method was invalid.""" AMAZON_PAYMENTS_INVALID_PAYMENT_METHOD """The maximum amount has been captured.""" AMAZON_PAYMENTS_MAX_AMOUNT_CHARGED """The maximum amount has been refunded.""" AMAZON_PAYMENTS_MAX_AMOUNT_REFUNDED """The maximum of 10 authorizations has been captured for an order.""" AMAZON_PAYMENTS_MAX_AUTHORIZATIONS_CAPTURED """The maximum of 10 refunds has been processed for an order.""" AMAZON_PAYMENTS_MAX_REFUNDS_PROCESSED """The order was canceled, which canceled all open authorizations.""" AMAZON_PAYMENTS_ORDER_REFERENCE_CANCELED """The order was not confirmed within three hours.""" AMAZON_PAYMENTS_STALE """Call the card issuer.""" CALL_ISSUER """The card was declined.""" CARD_DECLINED """There is an error in the gateway or merchant configuration.""" CONFIG_ERROR """The card is expired.""" EXPIRED_CARD """There was an unknown error with processing the payment.""" GENERIC_ERROR """The address does not match the card number.""" INCORRECT_ADDRESS """The CVC does not match the card number.""" INCORRECT_CVC """The card number is incorrect.""" INCORRECT_NUMBER """The entered PIN is incorrect.""" INCORRECT_PIN """The ZIP or postal code does not match the card number.""" INCORRECT_ZIP """The amount is either too high or too low for the provider.""" INVALID_AMOUNT """The payment method is not available in the customer's country.""" INVALID_COUNTRY """The format of the CVC is incorrect.""" INVALID_CVC """The format of the expiry date is incorrect.""" INVALID_EXPIRY_DATE """The format of the card number is incorrect.""" INVALID_NUMBER """The payment method is momentarily unavailable.""" PAYMENT_METHOD_UNAVAILABLE """ The card has been reported as lost or stolen, and the card issuer has requested that the merchant keep the card and call the number on the back. """ PICK_UP_CARD """There was an error while processing the payment.""" PROCESSING_ERROR """A real card was used but the gateway was in test mode.""" TEST_MODE_LIVE_CARD """ The gateway or merchant configuration doesn't support a feature, such as network tokenization. """ UNSUPPORTED_FEATURE """The transaction amount exceeds the maximum amount allowed.""" AMOUNT_TOO_LARGE """The transaction amount is below the minimum amount allowed.""" AMOUNT_TOO_SMALL """The 3D Secure authentication failed.""" AUTHENTICATION_FAILED """ The transaction requires 3D Secure authentication but was attempted without authentication. """ AUTHENTICATION_REQUIRED """The authorization has expired.""" AUTHORIZATION_EXPIRED """The transaction was cancelled.""" CANCELLED_PAYMENT """The transaction was declined due to suspected card testing activity.""" CARD_TESTING """ The issuer declined the transaction without providing a specific reason. """ DO_NOT_HONOR """The transaction was declined due to suspected fraudulent activity.""" FRAUD_SUSPECTED """The payment instrument was declined.""" INSTRUMENT_DECLINED """There are insufficient funds available to complete the transaction.""" INSUFFICIENT_FUNDS """The currency isn't supported.""" INVALID_CURRENCY """The payment method is invalid or not found.""" INVALID_PAYMENT_METHOD """This payment method doesn't support the requested transaction type.""" INVALID_PURCHASE_TYPE """ The transaction couldn't be processed due to an issue with the merchant account. """ MERCHANT_ACCOUNT_ERROR """ The transaction was blocked due to the merchant's custom payment risk rule. """ MERCHANT_RULE """The payment method isn't supported.""" PAYMENT_METHOD_UNSUPPORTED """ The transaction couldn't be processed due to an unexpected error with the payment provider. """ PAYMENT_PROVIDER_ERROR """The transaction retry attempt was declined.""" RETRY_DECLINED """The payment instrument has exceeded the processing frequency limit.""" TRANSACTION_LIMIT_EXCEEDED } """Transaction fee related to an order transaction.""" type TransactionFee implements Node { """Amount of the fee.""" amount: MoneyV2! """Flat rate charge for a transaction.""" flatFee: MoneyV2! """Name of the credit card flat fee.""" flatFeeName: String """A globally-unique ID.""" id: ID! """Percentage charge.""" rate: Decimal! """Name of the credit card rate.""" rateName: String """Tax amount charged on the fee.""" taxAmount: MoneyV2! """Name of the type of fee.""" type: String! } """The different kinds of order transactions.""" enum OrderTransactionKind { """ An amount reserved against the cardholder's funding source. Money does not change hands until the authorization is captured. """ AUTHORIZATION """A transfer of the money that was reserved by an authorization.""" CAPTURE """ The money returned to the customer when they've paid too much during a cash transaction. """ CHANGE """An authorization for a payment taken with an EMV credit card reader.""" EMV_AUTHORIZATION """ A partial or full return of captured funds to the cardholder. A refund can happen only after a capture is processed. """ REFUND """An authorization and capture performed together in a single step.""" SALE """A suggested refund transaction that can be used to create a refund.""" SUGGESTED_REFUND """A cancelation of an authorization transaction.""" VOID } """Payment details related to a transaction.""" union PaymentDetails = CardPaymentDetails | LocalPaymentMethodsPaymentDetails | ShopPayInstallmentsPaymentDetails | PaypalWalletPaymentDetails """Card payment details related to a transaction.""" type CardPaymentDetails implements BasePaymentDetails { """ The response code from the address verification system (AVS). The code is always a single letter. """ avsResultCode: String """ The issuer identification number (IIN), formerly known as bank identification number (BIN) of the customer's credit card. This is made up of the first few digits of the credit card number. """ bin: String """The name of the company that issued the customer's credit card.""" company: String """ The response code from the credit card company indicating whether the customer entered the card security code, or card verification value, correctly. The code is a single letter or empty string. """ cvvResultCode: String """The month in which the used credit card expires.""" expirationMonth: Int """The year in which the used credit card expires.""" expirationYear: Int """The holder of the credit card.""" name: String """ The customer's credit card number, with most of the leading digits redacted. """ number: String """The name of payment method used by the buyer.""" paymentMethodName: String """Digital wallet used for the payment.""" wallet: DigitalWallet } """ Digital wallet, such as Apple Pay, which can be used for accelerated checkouts. """ enum DigitalWallet { """Android Pay.""" ANDROID_PAY """Apple Pay.""" APPLE_PAY """Google Pay.""" GOOGLE_PAY """Shopify Pay.""" SHOPIFY_PAY """Amazon Pay.""" AMAZON_PAY """Facebook Pay.""" FACEBOOK_PAY } """Generic payment details that are related to a transaction.""" interface BasePaymentDetails { """The name of payment method used by the buyer.""" paymentMethodName: String } """Local payment methods payment details related to a transaction.""" type LocalPaymentMethodsPaymentDetails implements BasePaymentDetails { """ The descriptor by the payment provider. Only available for Amazon Pay and Buy with Prime. """ paymentDescriptor: String """The name of payment method used by the buyer.""" paymentMethodName: String } """Shop Pay Installments payment details related to a transaction.""" type ShopPayInstallmentsPaymentDetails implements BasePaymentDetails { """The name of payment method used by the buyer.""" paymentMethodName: String } """PayPal Wallet payment details related to a transaction.""" type PaypalWalletPaymentDetails implements BasePaymentDetails { """The name of payment method used by the buyer.""" paymentMethodName: String } """Some of the payment methods used in Shopify.""" enum PaymentMethods { AMERICAN_EXPRESS BITCOIN BOGUS DANKORT DINERS_CLUB DISCOVER DOGECOIN """The payment method for eftpos_au payment.""" EFTPOS """The payment method for Elo payment.""" ELO FORBRUGSFORENINGEN """The payment method for Interac payment.""" INTERAC JCB LITECOIN MAESTRO MASTERCARD PAYPAL """The payment method for UnionPay payment.""" UNIONPAY VISA """The payment method for Bancontact payment.""" BANCONTACT """The payment method for Cartes Bancaires payment.""" CARTES_BANCAIRES } """ Presents all Shopify Payments specific information related to an order transaction. """ type ShopifyPaymentsTransactionSet { """Contains all fields related to an extended authorization.""" extendedAuthorizationSet: ShopifyPaymentsExtendedAuthorization """Contains all fields related to a refund.""" refundSet: ShopifyPaymentsRefundSet } """ Presents all Shopify Payments information related to an extended authorization. """ type ShopifyPaymentsExtendedAuthorization { """ The time after which the extended authorization expires. After the expiry, the merchant is unable to capture the payment. """ extendedAuthorizationExpiresAt: DateTime! """The time after which capture will incur an additional fee.""" standardAuthorizationExpiresAt: DateTime! } """ Presents all Shopify Payments specific information related to an order refund. """ type ShopifyPaymentsRefundSet { """ The acquirer reference number (ARN) code generated for Visa/Mastercard transactions. """ acquirerReferenceNumber: String } """The different states that an `OrderTransaction` can have.""" enum OrderTransactionStatus { """Awaiting a response.""" AWAITING_RESPONSE """There was an error while processing the transaction.""" ERROR """The transaction failed.""" FAILURE """The transaction is pending.""" PENDING """The transaction succeeded.""" SUCCESS """The transaction status is unknown.""" UNKNOWN } """The input fields required to reimburse duties on a refund.""" input RefundDutyInput { """The ID of the duty in the refund.""" dutyId: ID! """The type of refund for this duty.""" refundType: RefundDutyRefundType } """The type of refund to perform for a particular refund duty.""" enum RefundDutyRefundType { """The duty is fully refunded.""" FULL """ The duty is proportionally refunded based on the quantity of the refunded line item. """ PROPORTIONAL } """The input fields for the shipping cost to refund.""" input RefundShippingInput { """Whether to refund the full shipping amount.""" fullRefund: Boolean = false """ The input fields required to refund shipping cost, in the presentment currency of the order. This overrides the `fullRefund` argument. This field defaults to 0.00 when not provided and when the `fullRefund` argument is false. """ shippingRefundAmount: MoneyInput } """The input fields for a monetary value with currency.""" input MoneyInput { """Decimal money amount.""" amount: Decimal! """Currency of the money.""" currencyCode: CurrencyCode! } """The input fields for a return refund line item.""" input ReturnRefundLineItemInput { """The quantity of the return line item to be refunded.""" quantity: Int! """The ID of the return line item to be refunded.""" returnLineItemId: ID! } """ An auto-generated type for paginating through multiple OrderTransactions. """ type OrderTransactionConnection { edges: [OrderTransactionEdge!]! """ A list of nodes that are contained in OrderTransactionEdge. 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: [OrderTransaction!]! """ 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 OrderTransaction and a cursor during pagination. """ type OrderTransactionEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of OrderTransactionEdge.""" node: OrderTransaction! } """Return items associated to the exchange.""" type ExchangeV2Returns { """The list of return items for the exchange.""" lineItems: [ExchangeV2LineItem!]! """ The amount of the order-level discount for the items and shipping being returned, which doesn't contain any line item discounts. """ orderDiscountAmountSet: MoneyBag! """The amount of money to be refunded for shipping.""" shippingRefundAmountSet: MoneyBag! """The subtotal of the items being returned.""" subtotalPriceSet: MoneyBag! """The summary of all taxes of the items being returned.""" taxLines: [TaxLine!]! """The amount of money to be refunded for tip.""" tipRefundAmountSet: MoneyBag! """The total value of the items being returned.""" totalPriceSet: MoneyBag! } """ An auto-generated type for paginating through multiple FulfillmentOrders. """ type FulfillmentOrderConnection { edges: [FulfillmentOrderEdge!]! """ A list of nodes that are contained in FulfillmentOrderEdge. 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: [FulfillmentOrder!]! """ 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 FulfillmentOrder and a cursor during pagination. """ type FulfillmentOrderEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of FulfillmentOrderEdge.""" node: FulfillmentOrder! } """ The FulfillmentOrder object represents either an item or a group of items in an [Order](https://shopify.dev/api/admin-graphql/latest/objects/Order) that are expected to be fulfilled from the same location. There can be more than one fulfillment order for an [order](https://shopify.dev/api/admin-graphql/latest/objects/Order) at a given location. {{ '/api/reference/fulfillment_order_relationships.png' | image }} Fulfillment orders represent the work which is intended to be done in relation to an order. When fulfillment has started for one or more line items, a [Fulfillment](https://shopify.dev/api/admin-graphql/latest/objects/Fulfillment) is created by a merchant or third party to represent the ongoing or completed work of fulfillment. [See below for more details on creating fulfillments](#the-lifecycle-of-a-fulfillment-order-at-a-location-which-is-managed-by-a-fulfillment-service). > Note: > Shopify creates fulfillment orders automatically when an order is created. > It is not possible to manually create fulfillment orders. > > [See below for more details on the lifecycle of a fulfillment order](#the-lifecycle-of-a-fulfillment-order). ## Retrieving fulfillment orders ### Fulfillment orders from an order All fulfillment orders related to a given order can be retrieved with the [Order.fulfillmentOrders](https://shopify.dev/api/admin-graphql/latest/objects/Order#connection-order-fulfillmentorders) connection. [API access scopes](#api-access-scopes) govern which fulfillments orders are returned to clients. An API client will only receive a subset of the fulfillment orders which belong to an order if they don't have the necessary access scopes to view all of the fulfillment orders. ### Fulfillment orders assigned to the app for fulfillment Fulfillment service apps can retrieve the fulfillment orders which have been assigned to their locations with the [assignedFulfillmentOrders](https://shopify.dev/api/admin-graphql/2024-07/objects/queryroot#connection-assignedfulfillmentorders) connection. Use the `assignmentStatus` argument to control whether all assigned fulfillment orders should be returned or only those where a merchant has sent a [fulfillment request](https://shopify.dev/api/admin-graphql/latest/objects/FulfillmentOrderMerchantRequest) and it has yet to be responded to. The API client must be granted the `read_assigned_fulfillment_orders` access scope to access the assigned fulfillment orders. ### All fulfillment orders Apps can retrieve all fulfillment orders with the [fulfillmentOrders](https://shopify.dev/api/admin-graphql/latest/queries/fulfillmentOrders) query. This query returns all assigned, merchant-managed, and third-party fulfillment orders on the shop, which are accessible to the app according to the [fulfillment order access scopes](#api-access-scopes) it was granted with. ## The lifecycle of a fulfillment order ### Fulfillment Order Creation After an order is created, a background worker performs the order routing process which determines which locations will be responsible for fulfilling the purchased items. Once the order routing process is complete, one or more fulfillment orders will be created and assigned to these locations. It is not possible to manually create fulfillment orders. Once a fulfillment order has been created, it will have one of two different lifecycles depending on the type of location which the fulfillment order is assigned to. ### The lifecycle of a fulfillment order at a merchant managed location Fulfillment orders are completed by creating [fulfillments](https://shopify.dev/api/admin-graphql/latest/objects/Fulfillment). Fulfillments represents the work done. For digital products a merchant or an order management app would create a fulfilment once the digital asset has been provisioned. For example, in the case of a digital gift card, a merchant would to do this once the gift card has been activated - before the email has been shipped. On the other hand, for a traditional shipped order, a merchant or an order management app would create a fulfillment after picking and packing the items relating to a fulfillment order, but before the courier has collected the goods. [Learn about managing fulfillment orders as an order management app](https://shopify.dev/apps/fulfillment/order-management-apps/manage-fulfillments). ### The lifecycle of a fulfillment order at a location which is managed by a fulfillment service For fulfillment orders which are assigned to a location that is managed by a fulfillment service, a merchant or an Order Management App can [send a fulfillment request](https://shopify.dev/api/admin-graphql/latest/mutations/fulfillmentOrderSubmitFulfillmentRequest) to the fulfillment service which operates the location to request that they fulfill the associated items. A fulfillment service has the option to [accept](https://shopify.dev/api/admin-graphql/latest/mutations/fulfillmentOrderAcceptFulfillmentRequest) or [reject](https://shopify.dev/api/admin-graphql/latest/mutations/fulfillmentOrderRejectFulfillmentRequest) this fulfillment request. Once the fulfillment service has accepted the request, the request can no longer be cancelled by the merchant or order management app and instead a [cancellation request must be submitted](https://shopify.dev/api/admin-graphql/latest/mutations/fulfillmentOrderSubmitCancellationRequest) to the fulfillment service. Once a fulfillment service accepts a fulfillment request, then after they are ready to pack items and send them for delivery, they create fulfillments with the [fulfillmentCreate](https://shopify.dev/api/admin-graphql/unstable/mutations/fulfillmentCreate) mutation. They can provide tracking information right away or create fulfillments without it and then update the tracking information for fulfillments with the [fulfillmentTrackingInfoUpdate](https://shopify.dev/api/admin-graphql/unstable/mutations/fulfillmentTrackingInfoUpdate) mutation. [Learn about managing fulfillment orders as a fulfillment service](https://shopify.dev/apps/fulfillment/fulfillment-service-apps/manage-fulfillments). ## API access scopes Fulfillment orders are governed by the following API access scopes: * The `read_merchant_managed_fulfillment_orders` and `write_merchant_managed_fulfillment_orders` access scopes grant access to fulfillment orders assigned to merchant-managed locations. * The `read_assigned_fulfillment_orders` and `write_assigned_fulfillment_orders` access scopes are intended for fulfillment services. These scopes grant access to fulfillment orders assigned to locations that are being managed by fulfillment services. * The `read_third_party_fulfillment_orders` and `write_third_party_fulfillment_orders` access scopes grant access to fulfillment orders assigned to locations managed by other fulfillment services. ### Fulfillment service app access scopes Usually, **fulfillment services** have the `write_assigned_fulfillment_orders` access scope and don't have the `*_third_party_fulfillment_orders` or `*_merchant_managed_fulfillment_orders` access scopes. The app will only have access to the fulfillment orders assigned to their location (or multiple locations if the app registers multiple fulfillment services on the shop). The app will not have access to fulfillment orders assigned to merchant-managed locations or locations owned by other fulfillment service apps. ### Order management app access scopes **Order management apps** will usually request `write_merchant_managed_fulfillment_orders` and `write_third_party_fulfillment_orders` access scopes. This will allow them to manage all fulfillment orders on behalf of a merchant. If an app combines the functions of an order management app and a fulfillment service, then the app should request all access scopes to manage all assigned and all unassigned fulfillment orders. ## Notifications about fulfillment orders Fulfillment services are required to [register](https://shopify.dev/api/admin-graphql/latest/objects/FulfillmentService) a self-hosted callback URL which has a number of uses. One of these uses is that this callback URL will be notified whenever a merchant submits a fulfillment or cancellation request. Both merchants and apps can [subscribe](https://shopify.dev/apps/fulfillment/fulfillment-service-apps/manage-fulfillments#webhooks) to the [fulfillment order webhooks](https://shopify.dev/api/admin-graphql/latest/enums/WebhookSubscriptionTopic#value-fulfillmentorderscancellationrequestaccepted) to be notified whenever fulfillment order related domain events occur. [Learn about fulfillment workflows](https://shopify.dev/apps/fulfillment). """ type FulfillmentOrder implements Node { """ The fulfillment order's assigned location. This is the location where the fulfillment is expected to happen. The fulfillment order's assigned location might change in the following cases: - The fulfillment order has been entirely moved to a new location. For example, the [fulfillmentOrderMove]( https://shopify.dev/api/admin-graphql/latest/mutations/fulfillmentOrderMove ) mutation has been called, and you see the original fulfillment order in the [movedFulfillmentOrder]( https://shopify.dev/api/admin-graphql/latest/mutations/fulfillmentOrderMove#field-fulfillmentordermovepayload-movedfulfillmentorder ) field within the mutation's response. - Work on the fulfillment order hasn't yet begun, which means that the fulfillment order has the [OPEN](https://shopify.dev/api/admin-graphql/latest/enums/FulfillmentOrderStatus#value-open), [SCHEDULED](https://shopify.dev/api/admin-graphql/latest/enums/FulfillmentOrderStatus#value-scheduled), or [ON_HOLD](https://shopify.dev/api/admin-graphql/latest/enums/FulfillmentOrderStatus#value-onhold) status, and the shop's location properties might be undergoing edits (for example, in the Shopify admin). """ assignedLocation: FulfillmentOrderAssignedLocation! """ID of the channel that created the order.""" channelId: ID """Date and time when the fulfillment order was created.""" createdAt: DateTime! """Delivery method of this fulfillment order.""" deliveryMethod: DeliveryMethod """The destination where the items should be sent.""" destination: FulfillmentOrderDestination """ The date and time at which the fulfillment order will be fulfillable. When this date and time is reached, the scheduled fulfillment order is automatically transitioned to open. For example, the `fulfill_at` date for a subscription order might be the 1st of each month, a pre-order `fulfill_at` date would be `nil`, and a standard order `fulfill_at` date would be the order creation date. """ fulfillAt: DateTime """ The latest date and time by which all items in the fulfillment order need to be fulfilled. """ fulfillBy: DateTime """The fulfillment holds applied on the fulfillment order.""" fulfillmentHolds: [FulfillmentHold!]! """ Fulfillment orders eligible for merging with the given fulfillment order. """ fulfillmentOrdersForMerge( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): FulfillmentOrderConnection! """A list of fulfillments for the fulfillment order.""" fulfillments( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): FulfillmentConnection! """A globally-unique ID.""" id: ID! """The duties delivery method of this fulfillment order.""" internationalDuties: FulfillmentOrderInternationalDuties """A list of the fulfillment order's line items.""" lineItems( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): FulfillmentOrderLineItemConnection! """ A list of locations that the fulfillment order can potentially move to. """ locationsForMove( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Filter to a list of Fulfillment Order Line Items.""" lineItemIds: [ID!] = [] """ Specific Location ids to check for the movability for a fulfillment order. """ locationIds: [ID!] """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | active | string | | address1 | string | | address2 | string | | city | string | | country | string | | created_at | time | | geolocated | boolean | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | legacy | boolean | | location_id | id | | name | string | | pickup_in_store | string | | - `enabled`
- `disabled` | | province | string | | zip | string | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false ): FulfillmentOrderLocationForMoveConnection! """ A list of requests sent by the merchant or an order management app to the fulfillment service for the fulfillment order. """ merchantRequests( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """The kind of request the merchant sent.""" kind: FulfillmentOrderMerchantRequestKind """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): FulfillmentOrderMerchantRequestConnection! """The order that's associated with the fulfillment order.""" order: Order! """ID of the order that's associated with the fulfillment order.""" orderId: ID! """ The unique identifier for the order that appears on the order page in the Shopify admin and the Order status page. For example, "#1001", "EN1001", or "1001-A". This value isn't unique across multiple stores. """ orderName: String! """ The date and time when the order was processed. This date and time might not match the date and time when the order was created. """ orderProcessedAt: DateTime! """The request status of the fulfillment order.""" requestStatus: FulfillmentOrderRequestStatus! """The status of the fulfillment order.""" status: FulfillmentOrderStatus! """The actions that can be performed on this fulfillment order.""" supportedActions: [FulfillmentOrderSupportedAction!]! """The date and time when the fulfillment order was last updated.""" updatedAt: DateTime! } """ The fulfillment order's assigned location. This is the location where the fulfillment is expected to happen. The fulfillment order's assigned location might change in the following cases: - The fulfillment order has been entirely moved to a new location. For example, the [fulfillmentOrderMove]( https://shopify.dev/api/admin-graphql/latest/mutations/fulfillmentOrderMove ) mutation has been called, and you see the original fulfillment order in the [movedFulfillmentOrder]( https://shopify.dev/api/admin-graphql/latest/mutations/fulfillmentOrderMove#field-fulfillmentordermovepayload-movedfulfillmentorder ) field within the mutation's response. - Work on the fulfillment order has not yet begun, which means that the fulfillment order has the [OPEN](https://shopify.dev/api/admin-graphql/latest/enums/FulfillmentOrderStatus#value-open), [SCHEDULED](https://shopify.dev/api/admin-graphql/latest/enums/FulfillmentOrderStatus#value-scheduled), or [ON_HOLD](https://shopify.dev/api/admin-graphql/latest/enums/FulfillmentOrderStatus#value-onhold) status, and the shop's location properties might be undergoing edits (for example, in the Shopify admin). If the [fulfillmentOrderMove]( https://shopify.dev/api/admin-graphql/latest/mutations/fulfillmentOrderMove ) mutation has moved the fulfillment order's line items to a new location, but hasn't moved the fulfillment order instance itself, then the original fulfillment order's assigned location doesn't change. This happens if the fulfillment order is being split during the move, or if all line items can be moved to an existing fulfillment order at a new location. Once the fulfillment order has been taken into work or canceled, which means that the fulfillment order has the [IN_PROGRESS](https://shopify.dev/api/admin-graphql/latest/enums/FulfillmentOrderStatus#value-inprogress), [CLOSED](https://shopify.dev/api/admin-graphql/latest/enums/FulfillmentOrderStatus#value-closed), [CANCELLED](https://shopify.dev/api/admin-graphql/latest/enums/FulfillmentOrderStatus#value-cancelled), or [INCOMPLETE](https://shopify.dev/api/admin-graphql/latest/enums/FulfillmentOrderStatus#value-incomplete) status, `FulfillmentOrderAssignedLocation` acts as a snapshot of the shop's location content. Up-to-date shop's location data may be queried through [location]( https://shopify.dev/api/admin-graphql/latest/objects/FulfillmentOrderAssignedLocation#field-fulfillmentorderassignedlocation-location ) connection. """ type FulfillmentOrderAssignedLocation { """The first line of the address for the location.""" address1: String """The second line of the address for the location.""" address2: String """The city of the location.""" city: String """The two-letter country code of the location.""" countryCode: CountryCode! """ The location where the fulfillment is expected to happen. This value might be different from `FulfillmentOrderAssignedLocation` if the location's attributes were updated after the fulfillment order was taken into work of canceled. """ location: Location """The name of the location.""" name: String! """The phone number of the location.""" phone: String """The province of the location.""" province: String """The ZIP code of the location.""" zip: String } """The delivery method used by a fulfillment order.""" type DeliveryMethod implements Node { """The Additional information to consider when performing the delivery.""" additionalInformation: DeliveryMethodAdditionalInformation """ The branded promise that was presented to the buyer during checkout. For example: Shop Promise. """ brandedPromise: DeliveryBrandedPromise """A globally-unique ID.""" id: ID! """ The latest delivery date and time when the fulfillment is expected to arrive at the buyer's location. """ maxDeliveryDateTime: DateTime """The type of the delivery method.""" methodType: DeliveryMethodType! """ The earliest delivery date and time when the fulfillment is expected to arrive at the buyer's location. """ minDeliveryDateTime: DateTime """ The name of the delivery option that was presented to the buyer during checkout. """ presentedName: String """A reference to the shipping method.""" serviceCode: String """ Source reference is promise provider specific data associated with delivery promise. """ sourceReference: String } """ Additional information included on a delivery method that will help during the delivery process. """ type DeliveryMethodAdditionalInformation { """The delivery instructions to follow when performing the delivery.""" instructions: String """The phone number to contact when performing the delivery.""" phone: String } """Represents a branded promise presented to buyers.""" type DeliveryBrandedPromise { """The handle of the branded promise. For example: `shop_promise`.""" handle: String! """The name of the branded promise. For example: `Shop Promise`.""" name: String! } """Possible method types that a delivery method can have.""" enum DeliveryMethodType { """The order is delivered using a local delivery service.""" LOCAL """Non-physical items, no delivery needed.""" NONE """The order is delivered to a pickup point.""" PICKUP_POINT """The order is picked up by the customer.""" PICK_UP """In-store sale, no delivery needed.""" RETAIL """The order is shipped.""" SHIPPING } """ Represents the destination where the items should be sent upon fulfillment. """ type FulfillmentOrderDestination implements Node { """The first line of the address of the destination.""" address1: String """The second line of the address of the destination.""" address2: String """The city of the destination.""" city: String """The company of the destination.""" company: String """The two-letter country code of the destination.""" countryCode: CountryCode """The email of the customer at the destination.""" email: String """The first name of the customer at the destination.""" firstName: String """A globally-unique ID.""" id: ID! """The last name of the customer at the destination.""" lastName: String """The location designated for the pick-up of the fulfillment order.""" location: Location """The phone number of the customer at the destination.""" phone: String """The province of the destination.""" province: String """The ZIP code of the destination.""" zip: String } """A fulfillment hold currently applied on a fulfillment order.""" type FulfillmentHold implements Node { """The localized reason for the fulfillment hold for display purposes.""" displayReason: String! """ An identifier an app can use to reference one of many holds it applied to a fulfillment order. This field must be unique among the holds that a single app applies to a single fulfillment order. """ handle: String """The app that created the fulfillment hold.""" heldByApp: App """ A boolean value that indicates whether the requesting app created the fulfillment hold. """ heldByRequestingApp: Boolean! """A globally-unique ID.""" id: ID! """The reason for the fulfillment hold.""" reason: FulfillmentHoldReason! """Additional information about the fulfillment hold reason.""" reasonNotes: String } """The reason for a fulfillment hold.""" enum FulfillmentHoldReason { """The fulfillment hold is applied because payment is pending.""" AWAITING_PAYMENT """ The fulfillment hold is applied because of return items not yet received during an exchange. """ AWAITING_RETURN_ITEMS """The fulfillment hold is applied because of a high risk of fraud.""" HIGH_RISK_OF_FRAUD """The fulfillment hold is applied because of an incorrect address.""" INCORRECT_ADDRESS """The fulfillment hold is applied because inventory is out of stock.""" INVENTORY_OUT_OF_STOCK """ The fulfillment hold is applied because of a post purchase upsell offer. """ ONLINE_STORE_POST_PURCHASE_CROSS_SELL """The fulfillment hold is applied for another reason.""" OTHER """The fulfillment hold is applied because of an unknown delivery date.""" UNKNOWN_DELIVERY_DATE } """An auto-generated type for paginating through multiple Fulfillments.""" type FulfillmentConnection { edges: [FulfillmentEdge!]! """ A list of nodes that are contained in FulfillmentEdge. 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: [Fulfillment!]! """ 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 Fulfillment and a cursor during pagination. """ type FulfillmentEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of FulfillmentEdge.""" node: Fulfillment! } """ Represents a fulfillment. In Shopify, a fulfillment represents a shipment of one or more items in an order. When an order has been completely fulfilled, it means that all the items that are included in the order have been sent to the customer. There can be more than one fulfillment for an order. """ type Fulfillment implements LegacyInteroperability & Node { """The date and time when the fulfillment was created.""" createdAt: DateTime! """The date that this fulfillment was delivered.""" deliveredAt: DateTime """Human readable display status for this fulfillment.""" displayStatus: FulfillmentDisplayStatus """The estimated date that this fulfillment will arrive.""" estimatedDeliveryAt: DateTime """The history of events associated with this fulfillment.""" events( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: FulfillmentEventSortKeys = HAPPENED_AT ): FulfillmentEventConnection! """List of the fulfillment's line items.""" fulfillmentLineItems( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): FulfillmentLineItemConnection! """A paginated list of fulfillment orders for the fulfillment.""" fulfillmentOrders( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): FulfillmentOrderConnection! """A globally-unique ID.""" id: ID! """The date and time when the fulfillment went into transit.""" inTransitAt: DateTime """The ID of the corresponding resource in the REST Admin API.""" legacyResourceId: UnsignedInt64! """The location that the fulfillment was processed at.""" location: Location """Human readable reference identifier for this fulfillment.""" name: String! """The order for which the fulfillment was created.""" order: Order! """ The address at which the fulfillment occurred. This field is intended for tax purposes, as a full address is required for tax providers to accurately calculate taxes. Typically this is the address of the warehouse or fulfillment center. To retrieve a fulfillment location's address, use the `assignedLocation` field on the [`FulfillmentOrder`](/docs/api/admin-graphql/latest/objects/FulfillmentOrder) object instead. """ originAddress: FulfillmentOriginAddress """Whether any of the line items in the fulfillment require shipping.""" requiresShipping: Boolean! """Fulfillment service associated with the fulfillment.""" service: FulfillmentService """The status of the fulfillment.""" status: FulfillmentStatus! """Sum of all line item quantities for the fulfillment.""" totalQuantity: Int! """ Tracking information associated with the fulfillment, such as the tracking company, tracking number, and tracking URL. """ trackingInfo( """Truncate the array result to this size.""" first: Int ): [FulfillmentTrackingInfo!]! """The date and time when the fulfillment was last modified.""" updatedAt: DateTime! } """The display status of a fulfillment.""" enum FulfillmentDisplayStatus { """Displayed as **Attempted delivery**.""" ATTEMPTED_DELIVERY """Displayed as **Canceled**.""" CANCELED """Displayed as **Confirmed**.""" CONFIRMED """Displayed as **Delayed**.""" DELAYED """Displayed as **Delivered**.""" DELIVERED """Displayed as **Failure**.""" FAILURE """Displayed as **Fulfilled**.""" FULFILLED """Displayed as **In transit**.""" IN_TRANSIT """Displayed as **Label printed**.""" LABEL_PRINTED """Displayed as **Label purchased**.""" LABEL_PURCHASED """Displayed as **Label voided**.""" LABEL_VOIDED """Displayed as **Marked as fulfilled**.""" MARKED_AS_FULFILLED """Displayed as **Not delivered**.""" NOT_DELIVERED """Displayed as **Out for delivery**.""" OUT_FOR_DELIVERY """Displayed as **Picked up**.""" PICKED_UP """Displayed as **Ready for pickup**.""" READY_FOR_PICKUP """Displayed as **Submitted**.""" SUBMITTED """Displayed as **Picked up by carrier**.""" CARRIER_PICKED_UP } """ An auto-generated type for paginating through multiple FulfillmentEvents. """ type FulfillmentEventConnection { edges: [FulfillmentEventEdge!]! """ A list of nodes that are contained in FulfillmentEventEdge. 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: [FulfillmentEvent!]! """ 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 FulfillmentEvent and a cursor during pagination. """ type FulfillmentEventEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of FulfillmentEventEdge.""" node: FulfillmentEvent! } """ The fulfillment event that describes the fulfilllment status at a particular time. """ type FulfillmentEvent implements Node { """The street address where this fulfillment event occurred.""" address1: String """The city where this fulfillment event occurred.""" city: String """The country where this fulfillment event occurred.""" country: String """The date and time when the fulfillment event was created.""" createdAt: DateTime! """The estimated delivery date and time of the fulfillment.""" estimatedDeliveryAt: DateTime """The time at which this fulfillment event happened.""" happenedAt: DateTime! """A globally-unique ID.""" id: ID! """The latitude where this fulfillment event occurred.""" latitude: Float """The longitude where this fulfillment event occurred.""" longitude: Float """A message associated with this fulfillment event.""" message: String """The province where this fulfillment event occurred.""" province: String """The status of this fulfillment event.""" status: FulfillmentEventStatus! """The zip code of the location where this fulfillment event occurred.""" zip: String } """The status that describes a fulfillment or delivery event.""" enum FulfillmentEventStatus { """A delivery was attempted.""" ATTEMPTED_DELIVERY """ The fulfillment is confirmed. This is the default value when no other information is available. """ CONFIRMED """The fulfillment is delayed.""" DELAYED """The fulfillment was successfully delivered.""" DELIVERED """The fulfillment request failed.""" FAILURE """The fulfillment is in transit.""" IN_TRANSIT """A purchased shipping label has been printed.""" LABEL_PRINTED """A shipping label has been purchased.""" LABEL_PURCHASED """The fulfillment is out for delivery.""" OUT_FOR_DELIVERY """The fulfillment is ready to be picked up.""" READY_FOR_PICKUP """The fulfillment has been picked up by the carrier.""" CARRIER_PICKED_UP } """The set of valid sort keys for the FulfillmentEvent query.""" enum FulfillmentEventSortKeys { """Sort by the `happened_at` value.""" HAPPENED_AT """Sort by the `id` value.""" ID } """ An auto-generated type for paginating through multiple FulfillmentLineItems. """ type FulfillmentLineItemConnection { edges: [FulfillmentLineItemEdge!]! """ A list of nodes that are contained in FulfillmentLineItemEdge. 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: [FulfillmentLineItem!]! """ 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 FulfillmentLineItem and a cursor during pagination. """ type FulfillmentLineItemEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of FulfillmentLineItemEdge.""" node: FulfillmentLineItem! } """ The address at which the fulfillment occurred. This object is intended for tax purposes, as a full address is required for tax providers to accurately calculate taxes. Typically this is the address of the warehouse or fulfillment center. To retrieve a fulfillment location's address, use the `assignedLocation` field on the [`FulfillmentOrder`](/docs/api/admin-graphql/latest/objects/FulfillmentOrder) object instead. """ type FulfillmentOriginAddress { """The street address of the fulfillment location.""" address1: String """ The second line of the address. Typically the number of the apartment, suite, or unit. """ address2: String """The city in which the fulfillment location is located.""" city: String """The country code of the fulfillment location.""" countryCode: String! """The province code of the fulfillment location.""" provinceCode: String """The zip code of the fulfillment location.""" zip: String } """The status of a fulfillment.""" enum FulfillmentStatus { """The fulfillment was canceled.""" CANCELLED """There was an error with the fulfillment request.""" ERROR """The fulfillment request failed.""" FAILURE """ The third-party fulfillment service has acknowledged the fulfillment and is processing it. """ OPEN @deprecated(reason: "This is a legacy status and is due to be deprecated.") """ Shopify has created the fulfillment and is waiting for the third-party fulfillment service to transition it to `open` or `success`. """ PENDING @deprecated(reason: "This is a legacy status and is due to be deprecated.") """The fulfillment was completed successfully.""" SUCCESS } """Represents the tracking information for a fulfillment.""" type FulfillmentTrackingInfo { """ The name of the tracking company. For tracking company names from the list below Shopify will automatically build tracking URLs for all provided tracking numbers, which will make the tracking numbers clickable in the interface. Additionally, for the tracking companies listed on the [Shipping Carriers help page](https://help.shopify.com/manual/shipping/understanding-shipping/shipping-carriers#integrated-shipping-carriers) Shopify will automatically update the fulfillment's `shipment_status` field during the fulfillment process. ### Supported tracking companies The following tracking companies display for shops located in any country: * 4PX * AGS * Amazon * Amazon Logistics UK * An Post * Anjun Logistics * APC * Asendia USA * Australia Post * Bonshaw * BPost * BPost International * Canada Post * Canpar * CDL Last Mile * China Post * Chronopost * Chukou1 * Colissimo * Comingle * Coordinadora * Correios * Correos * CTT * CTT Express * Cyprus Post * Delnext * Deutsche Post * DHL eCommerce * DHL eCommerce Asia * DHL Express * DPD * DPD Local * DPD UK * DTD Express * DX * Eagle * Estes * Evri * FedEx * First Global Logistics * First Line * FSC * Fulfilla * GLS * Guangdong Weisuyi Information Technology (WSE) * Heppner Internationale Spedition GmbH & Co. * Iceland Post * IDEX * Israel Post * Japan Post (EN) * Japan Post (JA) * La Poste * Lasership * Latvia Post * Lietuvos Paštas * Logisters * Lone Star Overnight * M3 Logistics * Meteor Space * Mondial Relay * New Zealand Post * NinjaVan * North Russia Supply Chain (Shenzhen) Co. * OnTrac * Packeta * Pago Logistics * Ping An Da Tengfei Express * Pitney Bowes * Portal PostNord * Poste Italiane * PostNL * PostNord DK * PostNord NO * PostNord SE * Purolator * Qxpress * Qyun Express * Royal Mail * Royal Shipments * Sagawa (EN) * Sagawa (JA) * Sendle * SF Express * SFC Fulfillment * SHREE NANDAN COURIER * Singapore Post * Southwest Air Cargo * StarTrack * Step Forward Freight * Swiss Post * TForce Final Mile * Tinghao * TNT * Toll IPEC * United Delivery Service * UPS * USPS * Venipak * We Post * Whistl * Wizmo * WMYC * Xpedigo * XPO Logistics * Yamato (EN) * Yamato (JA) * YiFan Express * YunExpress The following tracking companies are displayed for shops located in specific countries: * **Australia**: Australia Post, Sendle, Aramex Australia, TNT Australia, Hunter Express, Couriers Please, Bonds, Allied Express, Direct Couriers, Northline, GO Logistics * **Austria**: Österreichische Post * **Bulgaria**: Speedy * **Canada**: Intelcom, BoxKnight, Loomis, GLS * **China**: China Post, DHL eCommerce Asia, WanbExpress, YunExpress, Anjun Logistics, SFC Fulfillment, FSC * **Czechia**: Zásilkovna * **Germany**: Deutsche Post (DE), Deutsche Post (EN), DHL, DHL Express, Swiship, Hermes, GLS * **Spain**: SEUR * **France**: Colissimo, Mondial Relay, Colis Privé, GLS * **United Kingdom**: Evri, DPD UK, Parcelforce, Yodel, DHL Parcel, Tuffnells * **Greece**: ACS Courier * **Hong Kong SAR**: SF Express * **Ireland**: Fastway, DPD Ireland * **India**: DTDC, India Post, Delhivery, Gati KWE, Professional Couriers, XpressBees, Ecom Express, Ekart, Shadowfax, Bluedart * **Italy**: BRT, GLS Italy * **Japan**: エコ配, 西濃運輸, 西濃スーパーエキスプレス, 福山通運, 日本通運, 名鉄運輸, 第一貨物 * **Netherlands**: DHL Parcel, DPD * **Norway**: Bring * **Poland**: Inpost * **Turkey**: PTT, Yurtiçi Kargo, Aras Kargo, Sürat Kargo * **United States**: GLS, Alliance Air Freight, Pilot Freight, LSO, Old Dominion, Pandion, R+L Carriers, Southwest Air Cargo * **South Africa**: Fastway, Skynet. """ company: String """ The tracking number of the fulfillment. The tracking number is clickable in the interface if one of the following applies (the highest in the list has the highest priority): * Tracking url provided in the `url` field. * [Shopify-known tracking company name](#supported-tracking-companies) specified in the `company` field. Shopify will build the tracking URL automatically based on the tracking number specified. * The tracking number has a Shopify-known format. Shopify will guess the tracking provider and build the tracking url based on the tracking number format. Not all tracking carriers are supported, and multiple tracking carriers may use similarly formatted tracking numbers. This can result in an invalid tracking URL. It is highly recommended that you send the tracking company and the tracking URL. """ number: String """ The URLs to track the fulfillment. The tracking URL is displayed in the merchant's admin on the order page. The tracking URL is displayed in the shipping confirmation email, which can optionally be sent to the customer. When accounts are enabled, it's also displayed in the customer's order history. """ url: URL } """The international duties relevant to a fulfillment order.""" type FulfillmentOrderInternationalDuties { """The method of duties payment. Example values: `DDP`, `DAP`.""" incoterm: String! } """ An auto-generated type for paginating through multiple FulfillmentOrderLineItems. """ type FulfillmentOrderLineItemConnection { edges: [FulfillmentOrderLineItemEdge!]! """ A list of nodes that are contained in FulfillmentOrderLineItemEdge. 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: [FulfillmentOrderLineItem!]! """ 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 FulfillmentOrderLineItem and a cursor during pagination. """ type FulfillmentOrderLineItemEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of FulfillmentOrderLineItemEdge.""" node: FulfillmentOrderLineItem! } """ Associates an order line item with quantities requiring fulfillment from the respective fulfillment order. """ type FulfillmentOrderLineItem implements Node { """The financial summary for the Fulfillment Order's Line Items.""" financialSummaries: [FulfillmentOrderLineItemFinancialSummary!]! """A globally-unique ID.""" id: ID! """The image associated to the line item's variant.""" image: Image """The ID of the inventory item.""" inventoryItemId: ID """The associated order line item.""" lineItem: LineItem! """ The variant unit price without discounts applied, in shop and presentment currencies. """ originalUnitPriceSet: MoneyBag! @deprecated(reason: "Use `financialSummaries` instead.") """The title of the product.""" productTitle: String! """The number of units remaining to be fulfilled.""" remainingQuantity: Int! """Whether physical shipping is required for the variant.""" requiresShipping: Boolean! """The variant SKU number.""" sku: String """The total number of units to be fulfilled.""" totalQuantity: Int! """The product variant associated to the fulfillment order line item.""" variant: ProductVariant """The name of the variant.""" variantTitle: String """The name of the vendor who made the variant.""" vendor: String """Warning messages for a fulfillment order line item.""" warnings: [FulfillmentOrderLineItemWarning!]! """The weight of a line item unit.""" weight: Weight } """The financial details of a fulfillment order line item.""" type FulfillmentOrderLineItemFinancialSummary { """ The approximate split price of a line item unit, in shop and presentment currencies. This value doesn't include discounts applied to the entire order.For the full picture of applied discounts, see discountAllocations. """ approximateDiscountedUnitPriceSet: MoneyBag! """ The discounts that have been allocated onto the line item by discount applications, not including order edits and refunds. """ discountAllocations: [FinancialSummaryDiscountAllocation!]! """ The variant unit price without discounts applied, in shop and presentment currencies. """ originalUnitPriceSet: MoneyBag! """Number of line items that this financial summary applies to.""" quantity: Int! } """ An amount that's allocated to a line item based on an associated discount application. """ type FinancialSummaryDiscountAllocation { """ The money amount that's allocated per unit on the associated line based on the discount application in shop and presentment currencies. If the allocated amount for the line cannot be evenly divided by the quantity, then this amount will be an approximate amount, avoiding fractional pennies. For example, if the associated line had a quantity of 3 with a discount of 4 cents, then the discount distribution would be [0.01, 0.01, 0.02]. This field returns the highest number of the distribution. In this example, this would be 0.02. """ approximateAllocatedAmountPerItem: MoneyBag! """The discount application that the allocated amount originated from.""" discountApplication: FinancialSummaryDiscountApplication! } """ Discount applications capture the intentions of a discount source at the time of application on an order's line items or shipping lines. """ type FinancialSummaryDiscountApplication { """ The method by which the discount's value is applied to its entitled items. """ allocationMethod: DiscountApplicationAllocationMethod! """How the discount amount is distributed on the discounted lines.""" targetSelection: DiscountApplicationTargetSelection! """Whether the discount is applied on line items or shipping lines.""" targetType: DiscountApplicationTargetType! } """ A fulfillment order line item warning. For example, a warning about why a fulfillment request was rejected. """ type FulfillmentOrderLineItemWarning { """The description of warning.""" description: String """The title of warning.""" title: String } """ An auto-generated type for paginating through multiple FulfillmentOrderLocationForMoves. """ type FulfillmentOrderLocationForMoveConnection { edges: [FulfillmentOrderLocationForMoveEdge!]! """ A list of nodes that are contained in FulfillmentOrderLocationForMoveEdge. 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: [FulfillmentOrderLocationForMove!]! """ 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 FulfillmentOrderLocationForMove and a cursor during pagination. """ type FulfillmentOrderLocationForMoveEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of FulfillmentOrderLocationForMoveEdge.""" node: FulfillmentOrderLocationForMove! } """A location that a fulfillment order can potentially move to.""" type FulfillmentOrderLocationForMove { """ Fulfillment order line items that can be moved from their current location to the given location. """ availableLineItems( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): FulfillmentOrderLineItemConnection! """ Total number of fulfillment order line items that can be moved from their current assigned location to the given location. """ availableLineItemsCount: Count """ The location being considered as the fulfillment order's new assigned location. """ location: Location! """ A human-readable string with the reason why the fulfillment order, or some of its line items, can't be moved to the location. """ message: String """Whether the fulfillment order can be moved to the location.""" movable: Boolean! """ Fulfillment order line items that cannot be moved from their current location to the given location. """ unavailableLineItems( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): FulfillmentOrderLineItemConnection! """ Total number of fulfillment order line items that can't be moved from their current assigned location to the given location. """ unavailableLineItemsCount: Count } """ An auto-generated type for paginating through multiple FulfillmentOrderMerchantRequests. """ type FulfillmentOrderMerchantRequestConnection { edges: [FulfillmentOrderMerchantRequestEdge!]! """ A list of nodes that are contained in FulfillmentOrderMerchantRequestEdge. 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: [FulfillmentOrderMerchantRequest!]! """ 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 FulfillmentOrderMerchantRequest and a cursor during pagination. """ type FulfillmentOrderMerchantRequestEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of FulfillmentOrderMerchantRequestEdge.""" node: FulfillmentOrderMerchantRequest! } """ A request made by the merchant or an order management app to a fulfillment service for a fulfillment order. """ type FulfillmentOrderMerchantRequest implements Node { """The fulfillment order associated with the merchant request.""" fulfillmentOrder: FulfillmentOrder! """A globally-unique ID.""" id: ID! """The kind of request made.""" kind: FulfillmentOrderMerchantRequestKind! """The optional message that the merchant included in the request.""" message: String """ Additional options requested by the merchant. These depend on the `kind` of the request. For example, for a `FULFILLMENT_REQUEST`, one option is `notify_customer`, which indicates whether the merchant intends to notify the customer upon fulfillment. The fulfillment service can then set `notifyCustomer` when making calls to `FulfillmentCreate`. """ requestOptions: JSON """The response from the fulfillment service.""" responseData: JSON """The timestamp when the request was made.""" sentAt: DateTime! } """The kinds of request merchants can make to a fulfillment service.""" enum FulfillmentOrderMerchantRequestKind { """ The merchant requests cancellation of an `IN_PROGRESS` fulfillment order. """ CANCELLATION_REQUEST """The merchant requests fulfillment for an `OPEN` fulfillment order.""" FULFILLMENT_REQUEST } """The request status of a fulfillment order.""" enum FulfillmentOrderRequestStatus { """The fulfillment service accepted the merchant's fulfillment request.""" ACCEPTED """ The fulfillment service accepted the merchant's fulfillment cancellation request. """ CANCELLATION_ACCEPTED """ The fulfillment service rejected the merchant's fulfillment cancellation request. """ CANCELLATION_REJECTED """ The merchant requested a cancellation of the fulfillment request for this fulfillment order. """ CANCELLATION_REQUESTED """ The fulfillment service closed the fulfillment order without completing it. """ CLOSED """The fulfillment service rejected the merchant's fulfillment request.""" REJECTED """The merchant requested fulfillment for this fulfillment order.""" SUBMITTED """ The initial request status for the newly-created fulfillment orders. This is the only valid request status for fulfillment orders that aren't assigned to a fulfillment service. """ UNSUBMITTED } """The status of a fulfillment order.""" enum FulfillmentOrderStatus { """The fulfillment order has been cancelled by the merchant.""" CANCELLED """The fulfillment order has been completed and closed.""" CLOSED """The fulfillment order cannot be completed as requested.""" INCOMPLETE """The fulfillment order is being processed.""" IN_PROGRESS """ The fulfillment order is on hold. The fulfillment process can't be initiated until the hold on the fulfillment order is released. """ ON_HOLD """The fulfillment order is ready for fulfillment.""" OPEN """ The fulfillment order is deferred and will be ready for fulfillment after the date and time specified in `fulfill_at`. """ SCHEDULED } """ One of the actions that the fulfillment order supports in its current state. """ type FulfillmentOrderSupportedAction { """The action value.""" action: FulfillmentOrderAction! """ The external URL to be used to initiate the fulfillment process outside Shopify. Applicable only when the `action` value is `EXTERNAL`. """ externalUrl: URL } """The actions that can be taken on a fulfillment order.""" enum FulfillmentOrderAction { """ Cancels a fulfillment order. The corresponding mutation for this action is `fulfillmentOrderCancel`. """ CANCEL_FULFILLMENT_ORDER """ Creates a fulfillment for selected line items in the fulfillment order. The corresponding mutation for this action is `fulfillmentCreateV2`. """ CREATE_FULFILLMENT """ Opens an external URL to initiate the fulfillment process outside Shopify. This action should be paired with `FulfillmentOrderSupportedAction.externalUrl`. """ EXTERNAL """ Applies a fulfillment hold on the fulfillment order. The corresponding mutation for this action is `fulfillmentOrderHold`. """ HOLD """ Marks the fulfillment order as open. The corresponding mutation for this action is `fulfillmentOrderOpen`. """ MARK_AS_OPEN """ Merges a fulfillment order. The corresponding mutation for this action is `fulfillmentOrderMerge`. """ MERGE """ Moves a fulfillment order. The corresponding mutation for this action is `fulfillmentOrderMove`. """ MOVE """ Releases the fulfillment hold on the fulfillment order. The corresponding mutation for this action is `fulfillmentOrderReleaseHold`. """ RELEASE_HOLD """ Sends a cancellation request to the fulfillment service of a fulfillment order. The corresponding mutation for this action is `fulfillmentOrderSubmitCancellationRequest`. """ REQUEST_CANCELLATION """ Sends a request for fulfilling selected line items in a fulfillment order to a fulfillment service. The corresponding mutation for this action is `fulfillmentOrderSubmitFulfillmentRequest`. """ REQUEST_FULFILLMENT """ Splits a fulfillment order. The corresponding mutation for this action is `fulfillmentOrderSplit`. """ SPLIT """ Report the progress of the fulfillment order, marking as in progress if it's not already in progress. """ REPORT_PROGRESS } """An auto-generated type for paginating through multiple LineItems.""" type LineItemConnection { edges: [LineItemEdge!]! """ A list of nodes that are contained in LineItemEdge. 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: [LineItem!]! """ 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 LineItem and a cursor during pagination. """ type LineItemEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of LineItemEdge.""" node: LineItem! } """ An auto-generated type for paginating through multiple LocalizationExtensions. """ type LocalizationExtensionConnection { edges: [LocalizationExtensionEdge!]! """ A list of nodes that are contained in LocalizationExtensionEdge. 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: [LocalizationExtension!]! """ 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 LocalizationExtension and a cursor during pagination. """ type LocalizationExtensionEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of LocalizationExtensionEdge.""" node: LocalizationExtension! } """ Represents the value captured by a localization extension. Localization extensions are additional fields required by certain countries on international orders. For example, some countries require additional fields for customs information or tax identification numbers. """ type LocalizationExtension { """Country ISO 3166-1 alpha-2 code.""" countryCode: CountryCode! """The localized extension keys that are allowed.""" key: LocalizationExtensionKey! """The purpose of this localization extension.""" purpose: LocalizationExtensionPurpose! """The localized extension title.""" title: String! """The value of the field.""" value: String! } """The key of a localization extension.""" enum LocalizationExtensionKey { """Extension key 'shipping_credential_br' for country BR.""" SHIPPING_CREDENTIAL_BR """Extension key 'shipping_credential_cl' for country CL.""" SHIPPING_CREDENTIAL_CL """Extension key 'shipping_credential_cn' for country CN.""" SHIPPING_CREDENTIAL_CN """Extension key 'shipping_credential_co' for country CO.""" SHIPPING_CREDENTIAL_CO """Extension key 'shipping_credential_cr' for country CR.""" SHIPPING_CREDENTIAL_CR """Extension key 'shipping_credential_ec' for country EC.""" SHIPPING_CREDENTIAL_EC """Extension key 'shipping_credential_es' for country ES.""" SHIPPING_CREDENTIAL_ES """Extension key 'shipping_credential_gt' for country GT.""" SHIPPING_CREDENTIAL_GT """Extension key 'shipping_credential_id' for country ID.""" SHIPPING_CREDENTIAL_ID """Extension key 'shipping_credential_kr' for country KR.""" SHIPPING_CREDENTIAL_KR """Extension key 'shipping_credential_mx' for country MX.""" SHIPPING_CREDENTIAL_MX """Extension key 'shipping_credential_my' for country MY.""" SHIPPING_CREDENTIAL_MY """Extension key 'shipping_credential_pe' for country PE.""" SHIPPING_CREDENTIAL_PE """Extension key 'shipping_credential_pt' for country PT.""" SHIPPING_CREDENTIAL_PT """Extension key 'shipping_credential_py' for country PY.""" SHIPPING_CREDENTIAL_PY """Extension key 'shipping_credential_tr' for country TR.""" SHIPPING_CREDENTIAL_TR """Extension key 'shipping_credential_tw' for country TW.""" SHIPPING_CREDENTIAL_TW """Extension key 'shipping_credential_type_co' for country CO.""" SHIPPING_CREDENTIAL_TYPE_CO """Extension key 'tax_credential_br' for country BR.""" TAX_CREDENTIAL_BR """Extension key 'tax_credential_cl' for country CL.""" TAX_CREDENTIAL_CL """Extension key 'tax_credential_co' for country CO.""" TAX_CREDENTIAL_CO """Extension key 'tax_credential_cr' for country CR.""" TAX_CREDENTIAL_CR """Extension key 'tax_credential_ec' for country EC.""" TAX_CREDENTIAL_EC """Extension key 'tax_credential_es' for country ES.""" TAX_CREDENTIAL_ES """Extension key 'tax_credential_gt' for country GT.""" TAX_CREDENTIAL_GT """Extension key 'tax_credential_id' for country ID.""" TAX_CREDENTIAL_ID """Extension key 'tax_credential_it' for country IT.""" TAX_CREDENTIAL_IT """Extension key 'tax_credential_mx' for country MX.""" TAX_CREDENTIAL_MX """Extension key 'tax_credential_my' for country MY.""" TAX_CREDENTIAL_MY """Extension key 'tax_credential_pe' for country PE.""" TAX_CREDENTIAL_PE """Extension key 'tax_credential_pt' for country PT.""" TAX_CREDENTIAL_PT """Extension key 'tax_credential_py' for country PY.""" TAX_CREDENTIAL_PY """Extension key 'tax_credential_tr' for country TR.""" TAX_CREDENTIAL_TR """Extension key 'tax_credential_type_co' for country CO.""" TAX_CREDENTIAL_TYPE_CO """Extension key 'tax_credential_type_mx' for country MX.""" TAX_CREDENTIAL_TYPE_MX """Extension key 'tax_credential_use_mx' for country MX.""" TAX_CREDENTIAL_USE_MX """Extension key 'tax_email_it' for country IT.""" TAX_EMAIL_IT } """The purpose of a localization extension.""" enum LocalizationExtensionPurpose { """ Extensions that are used for shipping purposes, for example, customs clearance. """ SHIPPING """Extensions that are used for taxes purposes, for example, invoicing.""" TAX } """ An auto-generated type for paginating through multiple LocalizedFields. """ type LocalizedFieldConnection { edges: [LocalizedFieldEdge!]! """ A list of nodes that are contained in LocalizedFieldEdge. 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: [LocalizedField!]! """ 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 LocalizedField and a cursor during pagination. """ type LocalizedFieldEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of LocalizedFieldEdge.""" node: LocalizedField! } """ Represents the value captured by a localized field. Localized fields are additional fields required by certain countries on international orders. For example, some countries require additional fields for customs information or tax identification numbers. """ type LocalizedField { """Country ISO 3166-1 alpha-2 code.""" countryCode: CountryCode! """The localized field keys that are allowed.""" key: LocalizedFieldKey! """The purpose of this localized field.""" purpose: LocalizedFieldPurpose! """The localized field title.""" title: String! """The value of the field.""" value: String! } """The key of a localized field.""" enum LocalizedFieldKey { """Localized field key 'shipping_credential_br' for country Brazil.""" SHIPPING_CREDENTIAL_BR """Localized field key 'shipping_credential_cl' for country Chile.""" SHIPPING_CREDENTIAL_CL """Localized field key 'shipping_credential_cn' for country China.""" SHIPPING_CREDENTIAL_CN """Localized field key 'shipping_credential_co' for country Colombia.""" SHIPPING_CREDENTIAL_CO """Localized field key 'shipping_credential_cr' for country Costa Rica.""" SHIPPING_CREDENTIAL_CR """Localized field key 'shipping_credential_ec' for country Ecuador.""" SHIPPING_CREDENTIAL_EC """Localized field key 'shipping_credential_es' for country Spain.""" SHIPPING_CREDENTIAL_ES """Localized field key 'shipping_credential_gt' for country Guatemala.""" SHIPPING_CREDENTIAL_GT """Localized field key 'shipping_credential_id' for country Indonesia.""" SHIPPING_CREDENTIAL_ID """Localized field key 'shipping_credential_kr' for country South Korea.""" SHIPPING_CREDENTIAL_KR """Localized field key 'shipping_credential_mx' for country Mexico.""" SHIPPING_CREDENTIAL_MX """Localized field key 'shipping_credential_my' for country Malaysia.""" SHIPPING_CREDENTIAL_MY """Localized field key 'shipping_credential_pe' for country Peru.""" SHIPPING_CREDENTIAL_PE """Localized field key 'shipping_credential_pt' for country Portugal.""" SHIPPING_CREDENTIAL_PT """Localized field key 'shipping_credential_py' for country Paraguay.""" SHIPPING_CREDENTIAL_PY """Localized field key 'shipping_credential_tr' for country Turkey.""" SHIPPING_CREDENTIAL_TR """Localized field key 'shipping_credential_tw' for country Taiwan.""" SHIPPING_CREDENTIAL_TW """ Localized field key 'shipping_credential_type_co' for country Colombia. """ SHIPPING_CREDENTIAL_TYPE_CO """Localized field key 'tax_credential_br' for country Brazil.""" TAX_CREDENTIAL_BR """Localized field key 'tax_credential_cl' for country Chile.""" TAX_CREDENTIAL_CL """Localized field key 'tax_credential_co' for country Colombia.""" TAX_CREDENTIAL_CO """Localized field key 'tax_credential_cr' for country Costa Rica.""" TAX_CREDENTIAL_CR """Localized field key 'tax_credential_ec' for country Ecuador.""" TAX_CREDENTIAL_EC """Localized field key 'tax_credential_es' for country Spain.""" TAX_CREDENTIAL_ES """Localized field key 'tax_credential_gt' for country Guatemala.""" TAX_CREDENTIAL_GT """Localized field key 'tax_credential_id' for country Indonesia.""" TAX_CREDENTIAL_ID """Localized field key 'tax_credential_it' for country Italy.""" TAX_CREDENTIAL_IT """Localized field key 'tax_credential_mx' for country Mexico.""" TAX_CREDENTIAL_MX """Localized field key 'tax_credential_my' for country Malaysia.""" TAX_CREDENTIAL_MY """Localized field key 'tax_credential_pe' for country Peru.""" TAX_CREDENTIAL_PE """Localized field key 'tax_credential_pt' for country Portugal.""" TAX_CREDENTIAL_PT """Localized field key 'tax_credential_py' for country Paraguay.""" TAX_CREDENTIAL_PY """Localized field key 'tax_credential_tr' for country Turkey.""" TAX_CREDENTIAL_TR """Localized field key 'tax_credential_type_co' for country Colombia.""" TAX_CREDENTIAL_TYPE_CO """Localized field key 'tax_credential_type_mx' for country Mexico.""" TAX_CREDENTIAL_TYPE_MX """Localized field key 'tax_credential_use_mx' for country Mexico.""" TAX_CREDENTIAL_USE_MX """Localized field key 'tax_email_it' for country Italy.""" TAX_EMAIL_IT } """The purpose of a localized field.""" enum LocalizedFieldPurpose { """ Fields that are used for shipping purposes, for example, customs clearance. """ SHIPPING """Fields that are used for taxes purposes, for example, invoicing.""" TAX } """Represents a merchant's Business Entity.""" type BusinessEntity implements Node { """The address of the merchant's Business Entity.""" address: BusinessEntityAddress! """ The name of the company associated with the merchant's Business Entity. """ companyName: String """The display name of the merchant's Business Entity.""" displayName: String! """A globally-unique ID.""" id: ID! """Whether it's the merchant's primary Business Entity.""" primary: Boolean! """Shopify Payments account information, including balances and payouts.""" shopifyPaymentsAccount: ShopifyPaymentsAccount } """Represents the address of a merchant's Business Entity.""" type BusinessEntityAddress { """ The first line of the address. Typically the street address or PO Box number. """ address1: String """ The second line of the address. Typically the number of the apartment, suite, or unit. """ address2: String """The name of the city, district, village, or town.""" city: String """The country code of the merchant's Business Entity.""" countryCode: CountryCode! """The region of the address, such as the province, state, or district.""" province: String """The zip or postal code of the address.""" zip: String } """ Balance and payout information for a [Shopify Payments](https://help.shopify.com/manual/payments/shopify-payments/getting-paid-with-shopify-payments) account. Balance includes all balances for the currencies supported by the shop. You can also query for a list of payouts, where each payout includes the corresponding currencyCode field. """ type ShopifyPaymentsAccount implements Node { """The name of the account opener.""" accountOpenerName: String """Whether the Shopify Payments setup is completed.""" activated: Boolean! """Current balances in all currencies for the account.""" balance: [MoneyV2!]! """A list of balance transactions associated with the shop.""" balanceTransactions( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """Determines if returned transactions contain transaction type transfer.""" hideTransfers: Boolean = false """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | available_on | time | | credit_card_last4 | string | | currency | string | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | payment_method_name | string | | payments_transfer_id | id | | payout_date | time | | payout_status | string | | processed_at | time | | tax_reporting_exempt | boolean | | transaction_type | string | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ The ID of a [saved search](https://shopify.dev/api/admin-graphql/latest/objects/savedsearch#field-id). The search’s query string is used as the query argument. """ savedSearchId: ID """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: BalanceTransactionSortKeys = PROCESSED_AT ): ShopifyPaymentsBalanceTransactionConnection! """All bank accounts configured for the Shopify Payments account.""" bankAccounts( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): ShopifyPaymentsBankAccountConnection! """ The statement descriptor used for charges. The statement descriptor appears on a customer's credit card or bank statement when they make a purchase. """ chargeStatementDescriptor: String @deprecated(reason: "Use `chargeStatementDescriptors` instead.") """ The statement descriptors used for charges. These descriptors appear on a customer's credit card or bank statement when they make a purchase. """ chargeStatementDescriptors: ShopifyPaymentsChargeStatementDescriptor """The Shopify Payments account country.""" country: String! """The default payout currency for the Shopify Payments account.""" defaultCurrency: CurrencyCode! """ All disputes that originated from a transaction made with the Shopify Payments account. """ disputes( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | initiated_at | time | | status | string | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false ): ShopifyPaymentsDisputeConnection! """A globally-unique ID.""" id: ID! """Whether the Shopify Payments account can be onboarded.""" onboardable: Boolean! """The payout schedule for the account.""" payoutSchedule: ShopifyPaymentsPayoutSchedule! """ The descriptor used for payouts. The descriptor appears on a merchant's bank statement when they receive a payout. """ payoutStatementDescriptor: String """ All current and previous payouts made between the account and the bank account. """ payouts( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | amount | float | | bank_account | string | | currency | string | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | issued_at | time | | ledger_type | string | | status | string | | transaction_dates | time | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ The ID of a [saved search](https://shopify.dev/api/admin-graphql/latest/objects/savedsearch#field-id). The search’s query string is used as the query argument. """ savedSearchId: ID """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: PayoutSortKeys = ISSUED_AT """Filter the direction of the payout.""" transactionType: ShopifyPaymentsPayoutTransactionType ): ShopifyPaymentsPayoutConnection! } """ An auto-generated type for paginating through multiple ShopifyPaymentsBalanceTransactions. """ type ShopifyPaymentsBalanceTransactionConnection { edges: [ShopifyPaymentsBalanceTransactionEdge!]! """ A list of nodes that are contained in ShopifyPaymentsBalanceTransactionEdge. 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: [ShopifyPaymentsBalanceTransaction!]! """ 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 ShopifyPaymentsBalanceTransaction and a cursor during pagination. """ type ShopifyPaymentsBalanceTransactionEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of ShopifyPaymentsBalanceTransactionEdge.""" node: ShopifyPaymentsBalanceTransaction! } """A transaction that contributes to a Shopify Payments account balance.""" type ShopifyPaymentsBalanceTransaction implements Node { """ The reason for the adjustment that's associated with the transaction. If the source_type isn't an adjustment, the value will be null. """ adjustmentReason: String """The adjustment orders associated to the transaction.""" adjustmentsOrders: [ShopifyPaymentsAdjustmentOrder!]! """The amount contributing to the balance transaction.""" amount: MoneyV2! """The associated order for the balance transaction.""" associatedOrder: ShopifyPaymentsAssociatedOrder """Payout assoicated with the transaction.""" associatedPayout: ShopifyPaymentsBalanceTransactionAssociatedPayout! """The fee amount contributing to the balance transaction.""" fee: MoneyV2! """A globally-unique ID.""" id: ID! """The net amount contributing to the merchant's balance.""" net: MoneyV2! """The ID of the resource leading to the transaction.""" sourceId: BigInt """ The id of the [Order Transaction](https://shopify.dev/docs/admin-api/rest/reference/orders/transaction) that resulted in this balance transaction. """ sourceOrderTransactionId: BigInt """The source type of the balance transaction.""" sourceType: ShopifyPaymentsSourceType """Wether the tranaction was created in test mode.""" test: Boolean! """The date and time when the balance transaction was processed.""" transactionDate: DateTime! """The type of transaction.""" type: ShopifyPaymentsTransactionType! } """The adjustment order object.""" type ShopifyPaymentsAdjustmentOrder { """The amount of the adjustment order.""" amount: MoneyV2! """The link to the adjustment order.""" link: URL! """The name of the adjustment order.""" name: String! """The ID of the order transaction.""" orderTransactionId: BigInt! } """ Represents non-fractional signed whole numeric values. Since the value may exceed the size of a 32-bit integer, it's encoded as a string. """ scalar BigInt """The order associated to the balance transaction.""" type ShopifyPaymentsAssociatedOrder { """The ID of the associated order.""" id: ID! """The name of the associated order.""" name: String! } """The payout associated with a balance transaction.""" type ShopifyPaymentsBalanceTransactionAssociatedPayout { """The ID of the payout associated with the balance transaction.""" id: ID """The status of the payout associated with the balance transaction.""" status: ShopifyPaymentsBalanceTransactionPayoutStatus } """The payout status of the balance transaction.""" enum ShopifyPaymentsBalanceTransactionPayoutStatus { """The transaction requires action before it can be paid out.""" ACTION_REQUIRED """The payout has been canceled by Shopify.""" CANCELED """The payout has been declined by the bank.""" FAILED """The payout has been submitted to the bank.""" IN_TRANSIT @deprecated(reason: "Use `SCHEDULED` instead.") """The payout has been successfully deposited into the bank.""" PAID """The transaction has not been assigned a payout yet.""" PENDING """ The payout has been created and had transactions assigned to it, but it has not yet been submitted to the bank. """ SCHEDULED } """The possible source types for a balance transaction.""" enum ShopifyPaymentsSourceType { """The adjustment source type.""" ADJUSTMENT """The adjustment_reversal source type.""" ADJUSTMENT_REVERSAL """The charge source type.""" CHARGE """The dispute source type.""" DISPUTE """The refund source type.""" REFUND """The system_adjustment source type.""" SYSTEM_ADJUSTMENT """The transfer source type.""" TRANSFER } """The possible types of transactions.""" enum ShopifyPaymentsTransactionType { """The adjustment transaction type.""" ADJUSTMENT """The advance transaction type.""" ADVANCE """The advance funding transaction type.""" ADVANCE_FUNDING """The anomaly_credit transaction type.""" ANOMALY_CREDIT """The anomaly_credit_reversal transaction type.""" ANOMALY_CREDIT_REVERSAL """The anomaly_debit transaction type.""" ANOMALY_DEBIT """The anomaly_debit_reversal transaction type.""" ANOMALY_DEBIT_REVERSAL """The application_fee_refund transaction type.""" APPLICATION_FEE_REFUND """The balance_transfer_inbound transaction type.""" BALANCE_TRANSFER_INBOUND """The billing_debit transaction type.""" BILLING_DEBIT """The billing_debit_reversal transaction type.""" BILLING_DEBIT_REVERSAL """The channel_credit transaction type.""" CHANNEL_CREDIT """The channel_credit_reversal transaction type.""" CHANNEL_CREDIT_REVERSAL """The channel_promotion_credit transaction type.""" CHANNEL_PROMOTION_CREDIT """The channel_promotion_credit_reversal transaction type.""" CHANNEL_PROMOTION_CREDIT_REVERSAL """The channel_transfer_credit transaction type.""" CHANNEL_TRANSFER_CREDIT """The channel_transfer_credit_reversal transaction type.""" CHANNEL_TRANSFER_CREDIT_REVERSAL """The channel_transfer_debit transaction type.""" CHANNEL_TRANSFER_DEBIT """The channel_transfer_debit_reversal transaction type.""" CHANNEL_TRANSFER_DEBIT_REVERSAL """The charge transaction type.""" CHARGE """The chargeback_fee transaction type.""" CHARGEBACK_FEE """The chargeback_fee_refund transaction type.""" CHARGEBACK_FEE_REFUND """The chargeback_hold transaction type.""" CHARGEBACK_HOLD """The chargeback_hold_release transaction type.""" CHARGEBACK_HOLD_RELEASE """The chargeback_protection_credit transaction type.""" CHARGEBACK_PROTECTION_CREDIT """The chargeback_protection_credit_reversal transaction type.""" CHARGEBACK_PROTECTION_CREDIT_REVERSAL """The chargeback_protection_debit transaction type.""" CHARGEBACK_PROTECTION_DEBIT """The chargeback_protection_debit_reversal transaction type.""" CHARGEBACK_PROTECTION_DEBIT_REVERSAL """The charge_adjustment transaction type.""" CHARGE_ADJUSTMENT """The collections_credit transaction type.""" COLLECTIONS_CREDIT """The collections_credit_reversal transaction type.""" COLLECTIONS_CREDIT_REVERSAL """The customs_duty transaction type.""" CUSTOMS_DUTY """The customs_duty_adjustment transaction type.""" CUSTOMS_DUTY_ADJUSTMENT """The dispute_reversal transaction type.""" DISPUTE_REVERSAL """The dispute_withdrawal transaction type.""" DISPUTE_WITHDRAWAL """The import_tax transaction type.""" IMPORT_TAX """The import_tax_adjustment transaction type.""" IMPORT_TAX_ADJUSTMENT """The marketplace_fee_credit transaction type.""" MARKETPLACE_FEE_CREDIT """The marketplace_fee_credit_reversal transaction type.""" MARKETPLACE_FEE_CREDIT_REVERSAL """The markets_pro_credit transaction type.""" MARKETS_PRO_CREDIT """The merchant_goodwill_credit transaction type.""" MERCHANT_GOODWILL_CREDIT """The merchant_goodwill_credit_reversal transaction type.""" MERCHANT_GOODWILL_CREDIT_REVERSAL """The merchant_to_merchant_credit transaction type.""" MERCHANT_TO_MERCHANT_CREDIT """The merchant_to_merchant_credit_reversal transaction type.""" MERCHANT_TO_MERCHANT_CREDIT_REVERSAL """The merchant_to_merchant_debit transaction type.""" MERCHANT_TO_MERCHANT_DEBIT """The merchant_to_merchant_debit_reversal transaction type.""" MERCHANT_TO_MERCHANT_DEBIT_REVERSAL """The promotion_credit transaction type.""" PROMOTION_CREDIT """The promotion_credit_reversal transaction type.""" PROMOTION_CREDIT_REVERSAL """The refund transaction type.""" REFUND """The refund_adjustment transaction type.""" REFUND_ADJUSTMENT """The refund_failure transaction type.""" REFUND_FAILURE """The reserved_funds transaction type.""" RESERVED_FUNDS """The reserved_funds_reversal transaction type.""" RESERVED_FUNDS_REVERSAL """The reserved_funds_withdrawal transaction type.""" RESERVED_FUNDS_WITHDRAWAL """The risk_reversal transaction type.""" RISK_REVERSAL """The risk_withdrawal transaction type.""" RISK_WITHDRAWAL """The seller_protection_credit transaction type.""" SELLER_PROTECTION_CREDIT """The seller_protection_credit_reversal transaction type.""" SELLER_PROTECTION_CREDIT_REVERSAL """The shipping_label transaction type.""" SHIPPING_LABEL """The shipping_label_adjustment transaction type.""" SHIPPING_LABEL_ADJUSTMENT """The shipping_label_adjustment_base transaction type.""" SHIPPING_LABEL_ADJUSTMENT_BASE """The shipping_label_adjustment_surcharge transaction type.""" SHIPPING_LABEL_ADJUSTMENT_SURCHARGE """The shipping_other_carrier_charge_adjustment transaction type.""" SHIPPING_OTHER_CARRIER_CHARGE_ADJUSTMENT """The shipping_return_to_origin_adjustment transaction type.""" SHIPPING_RETURN_TO_ORIGIN_ADJUSTMENT """The shopify_collective_credit transaction type.""" SHOPIFY_COLLECTIVE_CREDIT """The shopify_collective_credit_reversal transaction type.""" SHOPIFY_COLLECTIVE_CREDIT_REVERSAL """The shopify_collective_debit transaction type.""" SHOPIFY_COLLECTIVE_DEBIT """The shopify_collective_debit_reversal transaction type.""" SHOPIFY_COLLECTIVE_DEBIT_REVERSAL """The shopify_source_credit transaction type.""" SHOPIFY_SOURCE_CREDIT """The shopify_source_credit_reversal transaction type.""" SHOPIFY_SOURCE_CREDIT_REVERSAL """The shopify_source_debit transaction type.""" SHOPIFY_SOURCE_DEBIT """The shopify_source_debit_reversal transaction type.""" SHOPIFY_SOURCE_DEBIT_REVERSAL """The shop_cash_billing_debit transaction type.""" SHOP_CASH_BILLING_DEBIT """The shop_cash_billing_debit_reversal transaction type.""" SHOP_CASH_BILLING_DEBIT_REVERSAL """The shop_cash_campaign_billing_credit transaction type.""" SHOP_CASH_CAMPAIGN_BILLING_CREDIT """The shop_cash_campaign_billing_credit_reversal transaction type.""" SHOP_CASH_CAMPAIGN_BILLING_CREDIT_REVERSAL """The shop_cash_campaign_billing_debit transaction type.""" SHOP_CASH_CAMPAIGN_BILLING_DEBIT """The shop_cash_campaign_billing_debit_reversal transaction type.""" SHOP_CASH_CAMPAIGN_BILLING_DEBIT_REVERSAL """The shop_cash_credit transaction type.""" SHOP_CASH_CREDIT """The shop_cash_credit_reversal transaction type.""" SHOP_CASH_CREDIT_REVERSAL """The shop_cash_refund_debit transaction type.""" SHOP_CASH_REFUND_DEBIT """The shop_cash_refund_debit_reversal transaction type.""" SHOP_CASH_REFUND_DEBIT_REVERSAL """The stripe_fee transaction type.""" STRIPE_FEE """The tax_adjustment_credit transaction type.""" TAX_ADJUSTMENT_CREDIT """The tax_adjustment_credit_reversal transaction type.""" TAX_ADJUSTMENT_CREDIT_REVERSAL """The tax_adjustment_debit transaction type.""" TAX_ADJUSTMENT_DEBIT """The tax_adjustment_debit_reversal transaction type.""" TAX_ADJUSTMENT_DEBIT_REVERSAL """The transfer transaction type.""" TRANSFER """The transfer_cancel transaction type.""" TRANSFER_CANCEL """The transfer_failure transaction type.""" TRANSFER_FAILURE """The transfer_refund transaction type.""" TRANSFER_REFUND """The vat_refund_credit transaction type.""" VAT_REFUND_CREDIT """The vat_refund_credit_reversal transaction type.""" VAT_REFUND_CREDIT_REVERSAL """The ach_bank_failure_debit_fee transaction type.""" ACH_BANK_FAILURE_DEBIT_FEE """The ach_bank_failure_debit_reversal_fee transaction type.""" ACH_BANK_FAILURE_DEBIT_REVERSAL_FEE """The ads_publisher_credit transaction type.""" ADS_PUBLISHER_CREDIT """The ads_publisher_credit_reversal transaction type.""" ADS_PUBLISHER_CREDIT_REVERSAL """The balance_transfer_outbound transaction type.""" BALANCE_TRANSFER_OUTBOUND """The tax refund transaction type.""" IMPORT_TAX_REFUND """The lending_capital_refund transaction type.""" LENDING_CAPITAL_REFUND """The lending_capital_refund_reversal transaction type.""" LENDING_CAPITAL_REFUND_REVERSAL """The lending_capital_remittance transaction type.""" LENDING_CAPITAL_REMITTANCE """The lending_capital_remittance_reversal transaction type.""" LENDING_CAPITAL_REMITTANCE_REVERSAL """The lending_credit transaction type.""" LENDING_CREDIT """The lending_credit_refund transaction type.""" LENDING_CREDIT_REFUND """The lending_credit_refund_reversal transaction type.""" LENDING_CREDIT_REFUND_REVERSAL """The lending_credit_remittance transaction type.""" LENDING_CREDIT_REMITTANCE """The lending_credit_remittance_reversal transaction type.""" LENDING_CREDIT_REMITTANCE_REVERSAL """The lending_credit_reversal transaction type.""" LENDING_CREDIT_REVERSAL """The lending_debit transaction type.""" LENDING_DEBIT """The lending_debit_reversal transaction type.""" LENDING_DEBIT_REVERSAL """The referral_fee transaction type.""" REFERRAL_FEE """The referral_fee_tax transaction type.""" REFERRAL_FEE_TAX } """The set of valid sort keys for the BalanceTransaction query.""" enum BalanceTransactionSortKeys { """Sort by the `amount` value.""" AMOUNT """Sort by the `fee` value.""" FEE """Sort by the `id` value.""" ID """Sort by the `net` value.""" NET """Sort by the `order_name` value.""" ORDER_NAME """Sort by the `payment_method_name` value.""" PAYMENT_METHOD_NAME """Sort by the `payout_date` value.""" PAYOUT_DATE """Sort by the `payout_status` value.""" PAYOUT_STATUS """Sort by the `processed_at` value.""" PROCESSED_AT """Sort by the `transaction_type` value.""" TRANSACTION_TYPE } """ An auto-generated type for paginating through multiple ShopifyPaymentsBankAccounts. """ type ShopifyPaymentsBankAccountConnection { edges: [ShopifyPaymentsBankAccountEdge!]! """ A list of nodes that are contained in ShopifyPaymentsBankAccountEdge. 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: [ShopifyPaymentsBankAccount!]! """ 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 ShopifyPaymentsBankAccount and a cursor during pagination. """ type ShopifyPaymentsBankAccountEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of ShopifyPaymentsBankAccountEdge.""" node: ShopifyPaymentsBankAccount! } """A bank account that can receive payouts.""" type ShopifyPaymentsBankAccount implements Node { """The last digits of the account number (the rest is redacted).""" accountNumberLastDigits: String! """The name of the bank.""" bankName: String """The country of the bank.""" country: CountryCode! """The date that the bank account was created.""" createdAt: DateTime! """The currency of the bank account.""" currency: CurrencyCode! """A globally-unique ID.""" id: ID! """ All current and previous payouts made between the account and the bank account. """ payouts( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | amount | float | | bank_account | string | | currency | string | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | issued_at | time | | ledger_type | string | | status | string | | transaction_dates | time | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ The ID of a [saved search](https://shopify.dev/api/admin-graphql/latest/objects/savedsearch#field-id). The search’s query string is used as the query argument. """ savedSearchId: ID """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: PayoutSortKeys = ISSUED_AT """Filter the direction of the payout.""" transactionType: ShopifyPaymentsPayoutTransactionType ): ShopifyPaymentsPayoutConnection! """The status of the bank account.""" status: ShopifyPaymentsBankAccountStatus! } """ An auto-generated type for paginating through multiple ShopifyPaymentsPayouts. """ type ShopifyPaymentsPayoutConnection { edges: [ShopifyPaymentsPayoutEdge!]! """ A list of nodes that are contained in ShopifyPaymentsPayoutEdge. 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: [ShopifyPaymentsPayout!]! """ 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 ShopifyPaymentsPayout and a cursor during pagination. """ type ShopifyPaymentsPayoutEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of ShopifyPaymentsPayoutEdge.""" node: ShopifyPaymentsPayout! } """ Payouts represent the movement of money between a merchant's Shopify Payments balance and their bank account. """ type ShopifyPaymentsPayout implements LegacyInteroperability & Node { """The bank account for the payout.""" bankAccount: ShopifyPaymentsBankAccount @deprecated(reason: "Use `destinationAccount` instead.") """The business entity associated with the payout.""" businessEntity: BusinessEntity! """The total amount and currency of the payout.""" gross: MoneyV2! @deprecated(reason: "Use `net` instead.") """A globally-unique ID.""" id: ID! """ The exact time when the payout was issued. The payout only contains balance transactions that were available at this time. """ issuedAt: DateTime! """The ID of the corresponding resource in the REST Admin API.""" legacyResourceId: UnsignedInt64! """The total amount and currency of the payout.""" net: MoneyV2! """The transfer status of the payout.""" status: ShopifyPaymentsPayoutStatus! """The summary of the payout.""" summary: ShopifyPaymentsPayoutSummary! """The direction of the payout.""" transactionType: ShopifyPaymentsPayoutTransactionType! } """The transfer status of the payout.""" enum ShopifyPaymentsPayoutStatus { """The payout has been canceled by Shopify.""" CANCELED """The payout has been declined by the bank.""" FAILED """The payout has been submitted to the bank.""" IN_TRANSIT @deprecated(reason: "Use `SCHEDULED` instead.") """The payout has been successfully deposited into the bank.""" PAID """ The payout has been created and had transactions assigned to it, but it has not yet been submitted to the bank. """ SCHEDULED } """ Breakdown of the total fees and gross of each of the different types of transactions associated with the payout. """ type ShopifyPaymentsPayoutSummary { """Total fees for all adjustments including disputes.""" adjustmentsFee: MoneyV2! """Total gross amount for all adjustments including disputes.""" adjustmentsGross: MoneyV2! """Total fees for all advances.""" advanceFees: MoneyV2! """Total gross amount for all advances.""" advanceGross: MoneyV2! """Total fees for all charges.""" chargesFee: MoneyV2! """Total gross amount for all charges.""" chargesGross: MoneyV2! """Total fees for all refunds.""" refundsFee: MoneyV2! """Total gross amount for all refunds.""" refundsFeeGross: MoneyV2! """Total fees for all reserved funds.""" reservedFundsFee: MoneyV2! """Total gross amount for all reserved funds.""" reservedFundsGross: MoneyV2! """Total fees for all retried payouts.""" retriedPayoutsFee: MoneyV2! """Total gross amount for all retried payouts.""" retriedPayoutsGross: MoneyV2! } """The possible transaction types for a payout.""" enum ShopifyPaymentsPayoutTransactionType { """The payout is a deposit.""" DEPOSIT """The payout is a withdrawal.""" WITHDRAWAL } """The set of valid sort keys for the Payout query.""" enum PayoutSortKeys { """Sort by the `adjustment_gross` value.""" ADJUSTMENT_GROSS """Sort by the `advance_gross` value.""" ADVANCE_GROSS """Sort by the `amount` value.""" AMOUNT """Sort by the `charge_gross` value.""" CHARGE_GROSS """Sort by the `duties_gross` value.""" DUTIES_GROSS """Sort by the `fee_amount` value.""" FEE_AMOUNT """Sort by the `id` value.""" ID """Sort by the `issued_at` value.""" ISSUED_AT """Sort by the `refund_gross` value.""" REFUND_GROSS """Sort by the `shipping_label_gross` value.""" SHIPPING_LABEL_GROSS """Sort by the `status` value.""" STATUS } """The bank account status.""" enum ShopifyPaymentsBankAccountStatus { """A payout to the bank account failed.""" ERRORED """A bank account that hasn't had any activity and that's not validated.""" NEW """It was determined that the bank account exists.""" VALIDATED """Bank account validation was successful.""" VERIFIED } """The charge descriptors for a payments account.""" interface ShopifyPaymentsChargeStatementDescriptor { """The default charge statement descriptor.""" default: String """The prefix of the statement descriptor.""" prefix: String! } """ An auto-generated type for paginating through multiple ShopifyPaymentsDisputes. """ type ShopifyPaymentsDisputeConnection { edges: [ShopifyPaymentsDisputeEdge!]! """ A list of nodes that are contained in ShopifyPaymentsDisputeEdge. 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: [ShopifyPaymentsDispute!]! """ 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 ShopifyPaymentsDispute and a cursor during pagination. """ type ShopifyPaymentsDisputeEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of ShopifyPaymentsDisputeEdge.""" node: ShopifyPaymentsDispute! } """ A dispute occurs when a buyer questions the legitimacy of a charge with their financial institution. """ type ShopifyPaymentsDispute implements LegacyInteroperability & Node { """The total amount disputed by the cardholder.""" amount: MoneyV2! """The deadline for evidence submission.""" evidenceDueBy: Date """ The date when evidence was sent. Returns null if evidence hasn't yet been sent. """ evidenceSentOn: Date """ The date when this dispute was resolved. Returns null if the dispute isn't yet resolved. """ finalizedOn: Date """A globally-unique ID.""" id: ID! """The date when this dispute was initiated.""" initiatedAt: DateTime! """The ID of the corresponding resource in the REST Admin API.""" legacyResourceId: UnsignedInt64! """The order that contains the charge that's under dispute.""" order: Order """The reason of the dispute.""" reasonDetails: ShopifyPaymentsDisputeReasonDetails! """The current state of the dispute.""" status: DisputeStatus! """ Indicates if this dispute is still in the inquiry phase or has turned into a chargeback. """ type: DisputeType! } """Details regarding a dispute reason.""" type ShopifyPaymentsDisputeReasonDetails { """The raw code provided by the payment network.""" networkReasonCode: String """The reason for the dispute provided by the cardholder's banks.""" reason: ShopifyPaymentsDisputeReason! } """The reason for the dispute provided by the cardholder's bank.""" enum ShopifyPaymentsDisputeReason { """The customer's bank can't process the charge.""" BANK_CANNOT_PROCESS """ The customer claims that the purchased product was returned or the transaction was otherwise canceled, but you haven't yet provided a refund or credit. """ CREDIT_NOT_PROCESSED """ The customer initiated the dispute. Contact the customer for additional details on why the payment was disputed. """ CUSTOMER_INITIATED """ The customer's bank can't proceed with the debit since it hasn't been authorized. """ DEBIT_NOT_AUTHORIZED """ The customer claims they were charged multiple times for the same product or service. """ DUPLICATE """The cardholder claims that they didn’t authorize the payment.""" FRAUDULENT """ The dispute is uncategorized, so you should contact the customer for additional details to find out why the payment was disputed. """ GENERAL """The customer account associated with the purchase is incorrect.""" INCORRECT_ACCOUNT_DETAILS """The customer's bank account has insufficient funds.""" INSUFFICIENT_FUNDS """ The customer claims they did not receive the products or services purchased. """ PRODUCT_NOT_RECEIVED """ The product or service was received but was defective, damaged, or not as described. """ PRODUCT_UNACCEPTABLE """ The customer claims that you continued to charge them after a subscription was canceled. """ SUBSCRIPTION_CANCELLED """ The customer doesn’t recognize the payment appearing on their card statement. """ UNRECOGNIZED """ The card issuer believes the disputed transaction doesn't conform to the network rules. These disputes occur when transactions don't meet card network requirements and may incur additional network fees if escalated for resolution. """ NONCOMPLIANT } """The payment schedule for a payments account.""" type ShopifyPaymentsPayoutSchedule { """The interval at which payouts are sent to the connected bank account.""" interval: ShopifyPaymentsPayoutInterval! """ The day of the month funds will be paid out. The value can be any day of the month from the 1st to the 31st. If the payment interval is set to monthly, this value will be used. Payouts scheduled between 29-31st of the month are sent on the last day of shorter months. """ monthlyAnchor: Int """ The day of the week funds will be paid out. The value can be any weekday from Monday to Friday. If the payment interval is set to weekly, this value will be used. """ weeklyAnchor: DayOfTheWeek } """The interval at which payouts are sent to the connected bank account.""" enum ShopifyPaymentsPayoutInterval { """Each business day.""" DAILY """Payouts will not be automatically made.""" MANUAL """Each month, on the day of month specified by monthlyAnchor.""" MONTHLY """Each week, on the day of week specified by weeklyAnchor.""" WEEKLY } """Days of the week from Monday to Sunday.""" enum DayOfTheWeek { """Friday.""" FRIDAY """Monday.""" MONDAY """Saturday.""" SATURDAY """Sunday.""" SUNDAY """Thursday.""" THURSDAY """Tuesday.""" TUESDAY """Wednesday.""" WEDNESDAY } """ The payment collection details for an order that requires additional payment following an edit to the order. """ type OrderPaymentCollectionDetails { """The URL to use for collecting an additional payment on the order.""" additionalPaymentCollectionUrl: URL """ The list of vaulted payment methods for the order with their permissions. """ vaultedPaymentMethods: [PaymentMandate!] } """ A payment instrument and the permission the owner of the instrument gives to the merchant to debit it. """ type PaymentMandate implements Node { """The unique ID of a payment mandate.""" id: ID! """The outputs details of the payment instrument.""" paymentInstrument: PaymentInstrument! } """All possible instrument outputs for Payment Mandates.""" union PaymentInstrument = VaultCreditCard | VaultPaypalBillingAgreement | BankAccount """Represents a credit card payment instrument.""" type VaultCreditCard { """The billing address of the card.""" billingAddress: CustomerCreditCardBillingAddress """The brand for the card.""" brand: String! """Whether the card has been expired.""" expired: Boolean! """The expiry month of the card.""" expiryMonth: Int! """The expiry year of the card.""" expiryYear: Int! """The last four digits for the card.""" lastDigits: String! """The name of the card holder.""" name: String! } """The billing address of a credit card payment instrument.""" type CustomerCreditCardBillingAddress { """ The first line of the address. Typically the street address or PO Box number. """ address1: String """The name of the city, district, village, or town.""" city: String """The name of the country.""" country: String """ The two-letter code for the country of the address. For example, US. """ countryCode: CountryCode """The first name in the billing address.""" firstName: String """The last name in the billing address.""" lastName: String """The region of the address, such as the province, state, or district.""" province: String """ The alphanumeric code for the region. For example, ON. """ provinceCode: String """The zip or postal code of the address.""" zip: String } """Represents a paypal billing agreement payment instrument.""" type VaultPaypalBillingAgreement { """Whether the paypal billing agreement is inactive.""" inactive: Boolean! """The paypal account name.""" name: String! """The paypal account email address.""" paypalAccountEmail: String! } """Represents a bank account payment instrument.""" type BankAccount { """The type of account holder.""" accountHolderType: BankAccountHolderType! """The type of bank account.""" accountType: BankAccountType! """The name of the bank.""" bankName: String! """The billing address associated with the bank account.""" billingAddress: CustomerPaymentInstrumentBillingAddress """The last four digits of the account number.""" lastDigits: String! } """The type of bank account holder.""" enum BankAccountHolderType { """A company account holder.""" COMPANY """An individual account holder.""" INDIVIDUAL } """The type of bank account.""" enum BankAccountType { """A checking account.""" CHECKING """A savings account.""" SAVINGS } """The billing address of a payment instrument.""" type CustomerPaymentInstrumentBillingAddress { """ The first line of the address. Typically the street address or PO Box number. """ address1: String """The name of the city, district, village, or town.""" city: String """The name of the country.""" country: String """ The two-letter code for the country of the address. For example, US. """ countryCode: CountryCode """The name of the buyer of the address.""" name: String """The region of the address, such as the province, state, or district.""" province: String """ The alphanumeric code for the region. For example, ON. """ provinceCode: String """The zip or postal code of the address.""" zip: String } """Represents the payment terms for an order or draft order.""" type PaymentTerms implements Node { """The draft order associated with the payment terms.""" draftOrder: DraftOrder """ Duration of payment terms in days based on the payment terms template used to create the payment terms. """ dueInDays: Int """A globally-unique ID.""" id: ID! """The order associated with the payment terms.""" order: Order """Whether the payment terms have overdue payment schedules.""" overdue: Boolean! """List of schedules for the payment terms.""" paymentSchedules( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): PaymentScheduleConnection! """ The name of the payment terms template used to create the payment terms. """ paymentTermsName: String! """The payment terms template type used to create the payment terms.""" paymentTermsType: PaymentTermsType! """ The payment terms name, translated into the shop admin's preferred language. """ translatedName: String! } """ An order that a merchant creates on behalf of a customer. Draft orders are useful for merchants that need to do the following tasks: - Create new orders for sales made by phone, in person, by chat, or elsewhere. When a merchant accepts payment for a draft order, an order is created. - Send invoices to customers to pay with a secure checkout link. - Use custom items to represent additional costs or products that aren't displayed in a shop's inventory. - Re-create orders manually from active sales channels. - Sell products at discount or wholesale rates. - Take pre-orders. - Save an order as a draft and resume working on it later. For draft orders in multiple currencies `presentment_money` is the source of truth for what a customer is going to be charged and `shop_money` is an estimate of what the merchant might receive in their shop currency. **Caution:** Only use this data if it's required for your app's functionality. Shopify will restrict [access to scopes](https://shopify.dev/api/usage/access-scopes) for apps that don't have a legitimate use for the associated data. """ type DraftOrder implements CommentEventSubject & HasEvents & HasLocalizationExtensions & HasLocalizedFields & HasMetafields & LegacyInteroperability & Navigable & Node { """ Whether or not to accept automatic discounts on the draft order during calculation. If false, only discount codes and custom draft order discounts (see `appliedDiscount`) will be applied. If true, eligible automatic discounts will be applied in addition to discount codes and custom draft order discounts. """ acceptAutomaticDiscounts: Boolean """Whether all variant prices have been overridden.""" allVariantPricesOverridden: Boolean! """ Whether discount codes are allowed during checkout of this draft order. """ allowDiscountCodesInCheckout: Boolean! """Whether any variant prices have been overridden.""" anyVariantPricesOverridden: Boolean! """The custom order-level discount applied.""" appliedDiscount: DraftOrderAppliedDiscount """The billing address of the customer.""" billingAddress: MailingAddress """Whether the billing address matches the shipping address.""" billingAddressMatchesShippingAddress: Boolean! """ The date and time when the draft order was converted to a new order, and had it's status changed to **Completed**. """ completedAt: DateTime """The date and time when the draft order was created in Shopify.""" createdAt: DateTime! """The shop currency used for calculation.""" currencyCode: CurrencyCode! """ The custom information added to the draft order on behalf of the customer. """ customAttributes: [Attribute!]! """The customer who will be sent an invoice.""" customer: Customer """ A default [cursor](https://shopify.dev/api/usage/pagination-graphql) that returns the single next record, sorted ascending by ID. """ defaultCursor: String! """All discount codes applied.""" discountCodes: [String!]! """ The email address of the customer, which is used to send notifications. """ email: String """The list of events associated with the draft order.""" events( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | action | string | The action that occured. | | | - `action:create` | | comments | boolean | Whether or not to include [comment-events](https://shopify.dev/api/admin-graphql/latest/objects/CommentEvent) in your search, passing `false` will exclude comment-events, any other value will include comment-events. | | | - `false`
- `true` | | created_at | time | Filter by the date and time when the event happened. | | | - `created_at:>2020-10-21`
- `created_at: - `id:>=1234`
- `id:<=1234` | | subject_type | string | The resource type affected by this event, See [EventSubjectType](https://shopify.dev/api/admin-graphql/latest/enums/EventSubjectType) for possible values. | | | - `COMPANY` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: EventSortKeys = ID ): EventConnection! """Whether the merchant has added timeline comments to the draft order.""" hasTimelineComment: Boolean! """A globally-unique ID.""" id: ID! """The subject defined for the draft invoice email template.""" invoiceEmailTemplateSubject: String! """The date and time when the invoice was last emailed to the customer.""" invoiceSentAt: DateTime """ The link to the checkout, which is sent to the customer in the invoice email. """ invoiceUrl: URL """The ID of the corresponding resource in the REST Admin API.""" legacyResourceId: UnsignedInt64! """The list of the line items in the draft order.""" lineItems( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): DraftOrderLineItemConnection! """ A subtotal of the line items and corresponding discounts, excluding include shipping charges, shipping discounts, taxes, or order discounts. """ lineItemsSubtotalPrice: MoneyBag! """List of localization extensions for the resource.""" localizationExtensions( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """The country codes of the extensions.""" countryCodes: [CountryCode!] """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """The purpose of the extensions.""" purposes: [LocalizationExtensionPurpose!] """Reverse the order of the underlying list.""" reverse: Boolean = false ): LocalizationExtensionConnection! @deprecated(reason: "This connection will be removed in a future version. Use `localizedFields` instead.") """List of localized fields for the resource.""" localizedFields( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """The country codes of the extensions.""" countryCodes: [CountryCode!] """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """The purpose of the extensions.""" purposes: [LocalizedFieldPurpose!] """Reverse the order of the underlying list.""" reverse: Boolean = false ): LocalizedFieldConnection! """The name of the selected market.""" marketName: String! @deprecated(reason: "This field is now incompatible with Markets.") """The selected country code that determines the pricing.""" marketRegionCountryCode: CountryCode! @deprecated(reason: "This field is now incompatible with Markets.") """ 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( """The key for the metafield.""" key: String! """ The container the metafield belongs to. If omitted, the app-reserved namespace will be used. """ namespace: String ): Metafield """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. """ metafields( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ List of keys of metafields in the format `namespace.key`, will be returned in the same format. """ keys: [String!] """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. """ namespace: String """Reverse the order of the underlying list.""" reverse: Boolean = false ): MetafieldConnection! """ The identifier for the draft order, which is unique within the store. For example, _#D1223_. """ name: String! """The text from an optional note attached to the draft order.""" note2: String """The order that was created from the draft order.""" order: Order """The associated payment terms for this draft order.""" paymentTerms: PaymentTerms """The assigned phone number.""" phone: String """The list of platform discounts applied.""" platformDiscounts: [DraftOrderPlatformDiscount!]! """The purchase order number.""" poNumber: String """The payment currency used for calculation.""" presentmentCurrencyCode: CurrencyCode! """The purchasing entity.""" purchasingEntity: PurchasingEntity """ Whether the draft order is ready and can be completed. Draft orders might have asynchronous operations that can take time to finish. """ ready: Boolean! """The time after which inventory will automatically be restocked.""" reserveInventoryUntil: DateTime """The shipping address of the customer.""" shippingAddress: MailingAddress """The line item containing the shipping information and costs.""" shippingLine: ShippingLine """The status of the draft order.""" status: DraftOrderStatus! """ The subtotal, in shop currency, of the line items and their discounts, excluding shipping charges, shipping discounts, and taxes. """ subtotalPrice: Money! @deprecated(reason: "Use `subtotalPriceSet` instead.") """ The subtotal, of the line items and their discounts, excluding shipping charges, shipping discounts, and taxes. """ subtotalPriceSet: MoneyBag! """ The comma separated list of tags associated with the draft order. Updating `tags` overwrites any existing tags that were previously added to the draft order. To add new tags without overwriting existing tags, use the [tagsAdd](https://shopify.dev/api/admin-graphql/latest/mutations/tagsadd) mutation. """ tags: [String!]! """Whether the draft order is tax exempt.""" taxExempt: Boolean! """ The list of of taxes lines charged for each line item and shipping line. """ taxLines: [TaxLine!]! """Whether the line item prices include taxes.""" taxesIncluded: Boolean! """Total discounts.""" totalDiscountsSet: MoneyBag! """Total price of line items.""" totalLineItemsPriceSet: MoneyBag! """ The total price, in shop currency, includes taxes, shipping charges, and discounts. """ totalPrice: Money! @deprecated(reason: "Use `totalPriceSet` instead.") """The total price, includes taxes, shipping charges, and discounts.""" totalPriceSet: MoneyBag! """ The sum of individual line item quantities. If the draft order has bundle items, this is the sum containing the quantities of individual items in the bundle. """ totalQuantityOfLineItems: Int! """The total shipping price in shop currency.""" totalShippingPrice: Money! @deprecated(reason: "Use `totalShippingPriceSet` instead.") """The total shipping price.""" totalShippingPriceSet: MoneyBag! """The total tax in shop currency.""" totalTax: Money! @deprecated(reason: "Use `totalTaxSet` instead.") """The total tax.""" totalTaxSet: MoneyBag! """The total weight in grams of the draft order.""" totalWeight: UnsignedInt64! """ Fingerprint of the current cart. In order to have bundles work, the fingerprint must be passed to each request as it was previously returned, unmodified. """ transformerFingerprint: String """ The date and time when the draft order was last changed. The format is YYYY-MM-DD HH:mm:ss. For example, 2016-02-05 17:04:01. """ updatedAt: DateTime! """ Whether the draft order will be visible to the customer on the self-serve portal. """ visibleToCustomer: Boolean! """The list of warnings raised while calculating.""" warnings: [DraftOrderWarning!]! } """The order-level discount applied to a draft order.""" type DraftOrderAppliedDiscount { """ Amount of the order-level discount that's applied to the draft order in shop currency. """ amount: Money! @deprecated(reason: "Use `amountSet` instead.") """ The amount of money discounted, with values shown in both shop currency and presentment currency. """ amountSet: MoneyBag! """Amount of money discounted.""" amountV2: MoneyV2! @deprecated(reason: "Use `amountSet` instead.") """Description of the order-level discount.""" description: String! """Name of the order-level discount.""" title: String """ The order level discount amount. If `valueType` is `"percentage"`, then `value` is the percentage discount. """ value: Float! """Type of the order-level discount.""" valueType: DraftOrderAppliedDiscountType! } """The valid discount types that can be applied to a draft order.""" enum DraftOrderAppliedDiscountType { """A fixed amount in the store's currency.""" FIXED_AMOUNT """A percentage of the order subtotal.""" PERCENTAGE } """ An auto-generated type for paginating through multiple DraftOrderLineItems. """ type DraftOrderLineItemConnection { edges: [DraftOrderLineItemEdge!]! """ A list of nodes that are contained in DraftOrderLineItemEdge. 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: [DraftOrderLineItem!]! """ 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 DraftOrderLineItem and a cursor during pagination. """ type DraftOrderLineItemEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of DraftOrderLineItemEdge.""" node: DraftOrderLineItem! } """The line item for a draft order.""" type DraftOrderLineItem implements Node { """The custom applied discount.""" appliedDiscount: DraftOrderAppliedDiscount """ The `discountedTotal` divided by `quantity`, equal to the average value of the line item price per unit after discounts are applied. This value doesn't include discounts applied to the entire draft order. """ approximateDiscountedUnitPriceSet: MoneyBag! """The list of bundle components if applicable.""" bundleComponents: [DraftOrderLineItem!]! """ Whether the line item is custom (`true`) or contains a product variant (`false`). """ custom: Boolean! """ A list of attributes that represent custom features or special requests. """ customAttributes: [Attribute!]! """ The list of additional information (metafields) with the associated types. """ customAttributesV2: [TypedAttribute!]! """The line item price, in shop currency, after discounts are applied.""" discountedTotal: Money! @deprecated(reason: "Use `discountedTotalSet` instead.") """The total price with discounts applied.""" discountedTotalSet: MoneyBag! """ The `discountedTotal` divided by `quantity`, equal to the value of the discount per unit in the shop currency. """ discountedUnitPrice: Money! @deprecated(reason: "Use `approximateDiscountedUnitPriceSet` instead.") """The unit price with discounts applied.""" discountedUnitPriceSet: MoneyBag! @deprecated(reason: "Use `approximateDiscountedUnitPriceSet` instead.") """ Name of the service provider who fulfilled the order. Valid values are either **manual** or the name of the provider. For example, **amazon**, **shipwire**. Deleted fulfillment services will return null. """ fulfillmentService: FulfillmentService """The weight of the line item in grams.""" grams: Int @deprecated(reason: "Use `weight` instead.") """A globally-unique ID.""" id: ID! """The image of the product variant.""" image: Image """Whether the line item represents the purchase of a gift card.""" isGiftCard: Boolean! """The name of the product.""" name: String! """ The total price, in shop currency, excluding discounts, equal to the original unit price multiplied by quantity. """ originalTotal: Money! @deprecated(reason: "Use `originalTotalSet` instead.") """ The total price excluding discounts, equal to the original unit price multiplied by quantity. """ originalTotalSet: MoneyBag! """The price, in shop currency, without any discounts applied.""" originalUnitPrice: Money! @deprecated(reason: "Use `originalUnitPriceWithCurrency` instead.") """The price without any discounts applied.""" originalUnitPriceSet: MoneyBag! """The original custom line item input price.""" originalUnitPriceWithCurrency: MoneyV2 """The price override for the line item.""" priceOverride: MoneyV2 """The product for the line item.""" product: Product """ The quantity of items. For a bundle item, this is the quantity of bundles, not the quantity of items contained in the bundles themselves. """ quantity: Int! """Whether physical shipping is required for the variant.""" requiresShipping: Boolean! """The SKU number of the product variant.""" sku: String """A list of tax lines.""" taxLines: [TaxLine!]! """Whether the variant is taxable.""" taxable: Boolean! """ The title of the product or variant. This field only applies to custom line items. """ title: String! """The total discount applied in shop currency.""" totalDiscount: Money! @deprecated(reason: "Use `totalDiscountSet` instead.") """The total discount amount.""" totalDiscountSet: MoneyBag! """ The UUID of the draft order line item. Must be unique and consistent across requests. This field is mandatory in order to manipulate drafts with bundles. """ uuid: String! """The product variant for the line item.""" variant: ProductVariant """The name of the variant.""" variantTitle: String """The name of the vendor who created the product variant.""" vendor: String """The weight unit and value.""" weight: Weight } """Represents a typed custom attribute.""" type TypedAttribute { """Key or name of the attribute.""" key: String! """Value of the attribute.""" value: String! } """The platform discounts applied to the draft order.""" type DraftOrderPlatformDiscount { """Price reduction allocations across the draft order's lines.""" allocations: [DraftOrderPlatformDiscountAllocation!]! """Whether the discount is an automatic discount.""" automaticDiscount: Boolean! """Whether the discount is a buy x get y discount.""" bxgyDiscount: Boolean! """If a code-based discount, the code used to add the discount.""" code: String """The discount class.""" discountClass: DiscountClass! """The discount node for the platform discount.""" discountNode: DiscountNode """The ID of the discount.""" id: ID """Whether the discount is line, order or shipping level.""" presentationLevel: String! """The short summary of the discount.""" shortSummary: String! """The summary of the discount.""" summary: String! """The name of the discount.""" title: String! """The discount total amount in shop currency.""" totalAmount: MoneyV2! """ The amount of money discounted, with values shown in both shop currency and presentment currency. """ totalAmountPriceSet: MoneyBag! } """Price reduction allocations across the draft order's lines.""" type DraftOrderPlatformDiscountAllocation { """The ID of the allocation.""" id: ID """The quantity of the target being discounted.""" quantity: Int """Amount of the discount allocated to the target.""" reductionAmount: MoneyV2! """ Amount of the discount allocated to the target in both shop currency and presentment currency. """ reductionAmountSet: MoneyBag! """The element of the draft being discounted.""" target: DraftOrderPlatformDiscountAllocationTarget } """The element of the draft being discounted.""" union DraftOrderPlatformDiscountAllocationTarget = CalculatedDraftOrderLineItem | DraftOrderLineItem | ShippingLine """The calculated line item for a draft order.""" type CalculatedDraftOrderLineItem { """The custom applied discount.""" appliedDiscount: DraftOrderAppliedDiscount """ The `discountedTotal` divided by `quantity`, equal to the average value of the line item price per unit after discounts are applied. This value doesn't include discounts applied to the entire draft order. """ approximateDiscountedUnitPriceSet: MoneyBag! """The bundle components of the draft order line item.""" bundleComponents: [CalculatedDraftOrderLineItem!]! """ Whether the line item is custom (`true`) or contains a product variant (`false`). """ custom: Boolean! """ A list of attributes that represent custom features or special requests. """ customAttributes: [Attribute!]! """ The list of additional information (metafields) with the associated types. """ customAttributesV2: [TypedAttribute!]! """The total price with discounts applied.""" discountedTotal: MoneyV2! """The total price with discounts applied.""" discountedTotalSet: MoneyBag! """The unit price with discounts applied.""" discountedUnitPrice: MoneyV2! @deprecated(reason: "Use `approximateDiscountedUnitPriceSet` instead.") """The unit price with discounts applied.""" discountedUnitPriceSet: MoneyBag! @deprecated(reason: "Use `approximateDiscountedUnitPriceSet` instead.") """ Name of the service provider who fulfilled the order. Valid values are either **manual** or the name of the provider. For example, **amazon**, **shipwire**. Deleted fulfillment services will return null. """ fulfillmentService: FulfillmentService """The image associated with the draft order line item.""" image: Image """Whether the line item represents the purchase of a gift card.""" isGiftCard: Boolean! """The name of the product.""" name: String! """ The total price, excluding discounts, equal to the original unit price multiplied by quantity. """ originalTotal: MoneyV2! """ The total price excluding discounts, equal to the original unit price multiplied by quantity. """ originalTotalSet: MoneyBag! """The line item price without any discounts applied.""" originalUnitPrice: MoneyV2! """The price without any discounts applied.""" originalUnitPriceSet: MoneyBag! """The original custom line item input price.""" originalUnitPriceWithCurrency: MoneyV2 """The price override for the line item.""" priceOverride: MoneyV2 """The product for the line item.""" product: Product """ The quantity of items. For a bundle item, this is the quantity of bundles, not the quantity of items contained in the bundles themselves. """ quantity: Int! """Whether physical shipping is required for the variant.""" requiresShipping: Boolean! """The SKU number of the product variant.""" sku: String """Whether the variant is taxable.""" taxable: Boolean! """ The title of the product or variant. This field only applies to custom line items. """ title: String! """The total value of the discount.""" totalDiscount: MoneyV2! """The total discount amount.""" totalDiscountSet: MoneyBag! """ The UUID of the draft order line item. Must be unique and consistent across requests. This field is mandatory in order to manipulate drafts with bundles. """ uuid: String! """The product variant for the line item.""" variant: ProductVariant """The name of the variant.""" variantTitle: String """The name of the vendor who created the product variant.""" vendor: String """The weight unit and value.""" weight: Weight } """ The [discount class](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) that's used to control how discounts can be combined. """ enum DiscountClass { """ The discount is combined with an [order discount](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) class. """ ORDER """ The discount is combined with a [product discount](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) class. """ PRODUCT """ The discount is combined with a [shipping discount](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) class. """ SHIPPING } """ The `DiscountNode` object enables you to manage [discounts](https://help.shopify.com/manual/discounts), which are applied at checkout or on a cart. Discounts are a way for merchants to promote sales and special offers, or as customer loyalty rewards. Discounts can apply to [orders, products, or shipping](https://shopify.dev/docs/apps/build/discounts#discount-classes), and can be either automatic or code-based. For example, you can offer customers a buy X get Y discount that's automatically applied when purchases meet specific criteria. Or, you can offer discounts where customers have to enter a code to redeem an amount off discount on products, variants, or collections in a store. Learn more about working with [Shopify's discount model](https://shopify.dev/docs/apps/build/discounts), including related mutations, limitations, and considerations. """ type DiscountNode implements HasEvents & HasMetafieldDefinitions & HasMetafields & Node { """ A discount that's applied at checkout or on cart. Discounts can be [automatic or code-based](https://shopify.dev/docs/apps/build/discounts#discount-methods). """ discount: Discount! """The paginated list of events associated with the host subject.""" events( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | action | string | The action that occured. | | | - `action:create` | | comments | boolean | Whether or not to include [comment-events](https://shopify.dev/api/admin-graphql/latest/objects/CommentEvent) in your search, passing `false` will exclude comment-events, any other value will include comment-events. | | | - `false`
- `true` | | created_at | time | Filter by the date and time when the event happened. | | | - `created_at:>2020-10-21`
- `created_at: - `id:>=1234`
- `id:<=1234` | | subject_type | string | The resource type affected by this event, See [EventSubjectType](https://shopify.dev/api/admin-graphql/latest/enums/EventSubjectType) for possible values. | | | - `COMPANY` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: EventSortKeys = ID ): EventConnection! """A globally-unique ID.""" id: ID! """ A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. """ metafield( """The key for the metafield.""" key: String! """ The container the metafield belongs to. If omitted, the app-reserved namespace will be used. """ namespace: String ): Metafield """List of metafield definitions.""" metafieldDefinitions( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Filter metafield definitions by namespace.""" namespace: String """Filter by the definition's pinned status.""" pinnedStatus: MetafieldDefinitionPinnedStatus = ANY """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | created_at | time | Filter by the date and time when the metafield definition was created. | | | - `created_at:>2020-10-21T23:39:20Z`
- `created_at: - `created_at:<=2024` | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | key | string | Filter by the metafield definition [`key`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-key) field. | | | - `key:some-key` | | namespace | string | Filter by the metafield definition [`namespace`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-namespace) field. | | | - `namespace:some-namespace` | | owner_type | string | Filter by the metafield definition [`ownerType`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-ownertype) field. | | | - `owner_type:PRODUCT` | | type | string | Filter by the metafield definition [`type`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-type) field. | | | - `type:single_line_text_field` | | updated_at | time | Filter by the date and time when the metafield definition was last updated. | | | - `updated_at:>2020-10-21T23:39:20Z`
- `updated_at: - `updated_at:<=2024` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: MetafieldDefinitionSortKeys = ID ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use the root `metafieldDefinitions` field instead.") """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. """ metafields( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ List of keys of metafields in the format `namespace.key`, will be returned in the same format. """ keys: [String!] """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. """ namespace: String """Reverse the order of the underlying list.""" reverse: Boolean = false ): MetafieldConnection! } """A discount.""" union Discount = DiscountAutomaticApp | DiscountAutomaticBasic | DiscountAutomaticBxgy | DiscountAutomaticFreeShipping | DiscountCodeApp | DiscountCodeBasic | DiscountCodeBxgy | DiscountCodeFreeShipping """ The `DiscountAutomaticApp` object stores information about automatic discounts that are managed by an app using [Shopify Functions](https://shopify.dev/docs/apps/build/functions). Use `DiscountAutomaticApp`when you need advanced, custom, or dynamic discount capabilities that aren't supported by [Shopify's native discount types](https://help.shopify.com/manual/discounts/discount-types). Learn more about creating [custom discount functionality](https://shopify.dev/docs/apps/build/discounts/build-discount-function). > Note: > The [`DiscountCodeApp`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCodeApp) object has similar functionality to the `DiscountAutomaticApp` object, with the exception that `DiscountCodeApp` stores information about discount codes that are managed by an app using Shopify Functions. """ type DiscountAutomaticApp { """ 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. """ appDiscountType: AppDiscountType! """Whether the discount applies on one-time purchases.""" appliesOnOneTimePurchase: Boolean! """ Whether the discount applies on subscription items. [Subscriptions](https://shopify.dev/docs/apps/launch/billing/subscription-billing/offer-subscription-discounts) enable customers to purchase products on a recurring basis. """ appliesOnSubscription: Boolean! """ The number of times that the discount has been used. For example, if a "Buy 3, Get 1 Free" t-shirt discount is automatically applied in 200 transactions, then the discount has been used 200 times. This value is updated asynchronously. As a result, it might be lower than the actual usage count until the asynchronous process is completed. """ asyncUsageCount: Int! """ The [discount classes](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) that you can use in combination with [Shopify discount types](https://help.shopify.com/manual/discounts/discount-types). """ combinesWith: DiscountCombinesWith! """The date and time when the discount was created.""" createdAt: DateTime! """ 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 [globally-unique ID](https://shopify.dev/docs/api/usage/gids) for the discount. """ discountId: ID! """ The date and time when the discount expires and is no longer available to customers. For discounts without a fixed expiration date, specify `null`. """ endsAt: DateTime """ The [error history](https://shopify.dev/docs/apps/build/functions/monitoring-and-errors) for the latest version of the discount type that the app provides. """ errorHistory: FunctionsErrorHistory """ The number of billing cycles for which the discount can be applied, which is useful for subscription-based discounts. For example, if you set this field to `3`, then the discount only applies to the first three billing cycles of a subscription. If you specify `0`, then the discount applies indefinitely. """ recurringCycleLimit: Int! """ The date and time when the discount becomes active and is available to customers. """ startsAt: DateTime! """ The status of the discount that describes its availability, expiration, or pending activation. """ status: DiscountStatus! """ The discount's name that displays to merchants in the Shopify admin and to customers. """ title: String! """The date and time when the discount was updated.""" updatedAt: DateTime! } """ 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. """ 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: String! """ A description of the [discount type](https://help.shopify.com/manual/discounts/discount-types) provided by the app extension. """ description: String """ 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: String! """ 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: String! } """The App Bridge information for a Shopify Function.""" type FunctionsAppBridge { """The relative path for creating a customization.""" createPath: String! """The relative path for viewing a customization.""" detailsPath: String! } """ The [discount classes](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) that you can use in combination with [Shopify discount types](https://help.shopify.com/manual/discounts/discount-types). """ type DiscountCombinesWith { """ Whether the discount combines with the [order discount](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) class. """ orderDiscounts: Boolean! """ Whether the discount combines with the [product discount](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) class. """ productDiscounts: Boolean! """ Whether the discount combines with the [shipping discount](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) class. """ shippingDiscounts: Boolean! } """The error history from running a Shopify Function.""" type FunctionsErrorHistory { """The date and time that the first error occurred.""" errorsFirstOccurredAt: DateTime! """The date and time that the first error occurred.""" firstOccurredAt: DateTime! """ Whether the merchant has shared all the recent errors with the developer. """ hasBeenSharedSinceLastError: Boolean! """ Whether the merchant has shared all the recent errors with the developer. """ hasSharedRecentErrors: Boolean! } """ The status of the discount that describes its availability, expiration, or pending activation. """ enum DiscountStatus { """The discount is currently available for use.""" ACTIVE """The discount has reached its end date and is no longer valid.""" EXPIRED """The discount is set to become active at a future date.""" SCHEDULED } """ The `DiscountAutomaticBasic` object lets you manage [amount off discounts](https://help.shopify.com/manual/discounts/discount-types/percentage-fixed-amount) that are automatically applied on a cart and at checkout. Amount off discounts give customers a fixed value or a percentage off the products in an order, but don't apply to shipping costs. The `DiscountAutomaticBasic` object stores information about automatic amount off discounts that apply to specific [products and variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountProducts), [collections](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCollections), or [all items in a cart](https://shopify.dev/docs/api/admin-graphql/latest/objects/AllDiscountItems). Learn more about working with [Shopify's discount model](https://shopify.dev/docs/apps/build/discounts), including limitations and considerations. > Note: > The [`DiscountCodeBasic`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCodeBasic) object has similar functionality to the `DiscountAutomaticBasic` object, but customers need to enter a code to receive a discount. """ type DiscountAutomaticBasic { """ The number of times that the discount has been used. For example, if a "Buy 3, Get 1 Free" t-shirt discount is automatically applied in 200 transactions, then the discount has been used 200 times. This value is updated asynchronously. As a result, it might be lower than the actual usage count until the asynchronous process is completed. """ asyncUsageCount: Int! """ The [discount classes](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) that you can use in combination with [Shopify discount types](https://help.shopify.com/manual/discounts/discount-types). """ combinesWith: DiscountCombinesWith! """The date and time when the discount was created.""" createdAt: DateTime! """ The items in the order that qualify for the discount, their quantities, and the total value of the discount. """ customerGets: DiscountCustomerGets! """ The [discount class](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) that's used to control how discounts can be combined. """ discountClass: MerchandiseDiscountClass! """ The date and time when the discount expires and is no longer available to customers. For discounts without a fixed expiration date, specify `null`. """ endsAt: DateTime """ The minimum subtotal or quantity of items that are required for the discount to be applied. """ minimumRequirement: DiscountMinimumRequirement """ The number of billing cycles for which the discount can be applied, which is useful for subscription-based discounts. For example, if you set this field to `3`, then the discount only applies to the first three billing cycles of a subscription. If you specify `0`, then the discount applies indefinitely. """ recurringCycleLimit: Int! """ An abbreviated version of the discount [`summary`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountAutomaticBasic#field-summary) field. """ shortSummary: String! """ The date and time when the discount becomes active and is available to customers. """ startsAt: DateTime! """ The status of the discount that describes its availability, expiration, or pending activation. """ status: DiscountStatus! """ A detailed explanation of what the discount is, who can use it, when and where it applies, and any associated rules or limitations. """ summary: String! """ The discount's name that displays to merchants in the Shopify admin and to customers. """ title: String! """The date and time when the discount was updated.""" updatedAt: DateTime! """The number of times that the discount has been used.""" usageCount: Int! @deprecated(reason: "Use `asyncUsageCount` instead.") } """ The items in the order that qualify for the discount, their quantities, and the total value of the discount. """ type DiscountCustomerGets { """Whether the discount applies on regular one-time-purchase items.""" appliesOnOneTimePurchase: Boolean! """ Whether the discount applies on subscription items. [Subscriptions](https://shopify.dev/docs/apps/launch/billing/subscription-billing/offer-subscription-discounts) enable customers to purchase products on a recurring basis. """ appliesOnSubscription: Boolean! """The items to which the discount applies.""" items: DiscountItems! """Entitled quantity and the discount value.""" value: DiscountCustomerGetsValue! } """ The type used to target the items required for discount eligibility, or the items to which the application of a discount might apply. For example, for a customer to be eligible for a discount, they're required to add an item from a specified collection to their order. Alternatively, a customer might be required to add a specific product or product variant. When using this type to target which items the discount will apply to, the discount might apply to all items on the order, or to specific products and product variants, or items in a given collection. """ union DiscountItems = AllDiscountItems | DiscountCollections | DiscountProducts """Targets all items the cart for a specified discount.""" type AllDiscountItems { """ Whether all items are eligible for the discount. This value always returns `true`. """ allItems: Boolean! } """ A list of collections that the discount can have as a prerequisite or a list of collections to which the discount can be applied. """ type DiscountCollections { """ The list of collections that the discount can have as a prerequisite or the list of collections to which the discount can be applied. """ collections( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): CollectionConnection! } """ A list of products and product variants that the discount can have as a prerequisite or a list of products and product variants to which the discount can be applied. """ type DiscountProducts { """ The list of product variants that the discount can have as a prerequisite or the list of product variants to which the discount can be applied. """ productVariants( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): ProductVariantConnection! """ The list of products that the discount can have as a prerequisite or the list of products to which the discount can be applied. """ products( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): ProductConnection! } """ The type of the discount value and how it will be applied. For example, it might be a percentage discount on a fixed number of items. Alternatively, it might be a fixed amount evenly distributed across all items or on each individual item. A third example is a percentage discount on all items. """ union DiscountCustomerGetsValue = DiscountAmount | DiscountOnQuantity | DiscountPercentage """ The fixed amount value of a discount, and whether the amount is applied to each entitled item or spread evenly across the entitled items. """ type DiscountAmount { """The value of the discount.""" amount: MoneyV2! """ If true, then the discount is applied to each of the entitled items. If false, then the amount is split across all of the entitled items. """ appliesOnEachItem: Boolean! } """ The quantity of items discounted, the discount value, and how the discount will be applied. """ type DiscountOnQuantity { """The discount's effect on qualifying items.""" effect: DiscountEffect! """ The number of items being discounted. The customer must have at least this many items of specified products or product variants in their order to be eligible for the discount. """ quantity: DiscountQuantity! } """ The type of discount that will be applied. Currently, only a percentage discount is supported. """ union DiscountEffect = DiscountAmount | DiscountPercentage """ A discount effect that gives customers a percentage off of specified items on their order. """ type DiscountPercentage { """The percentage value of the discount.""" percentage: Float! } """ A quantity of items in the context of a discount. This object can be used to define the minimum quantity of items required to apply a discount. Alternatively, it can be used to define the quantity of items that can be discounted. """ type DiscountQuantity { """The quantity of items.""" quantity: UnsignedInt64! } """ The [discount class](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) that's used to control how discounts can be combined. """ enum MerchandiseDiscountClass { """ The discount is combined with an [order discount](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) class. """ ORDER """ The discount is combined with a [product discount](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) class. """ PRODUCT } """ The type of minimum requirement that must be met for the discount to be applied. For example, a customer must spend a minimum subtotal to be eligible for the discount. Alternatively, a customer must purchase a minimum quantity of items to be eligible for the discount. """ union DiscountMinimumRequirement = DiscountMinimumQuantity | DiscountMinimumSubtotal """The minimum quantity of items required for the discount to apply.""" type DiscountMinimumQuantity { """ The minimum quantity of items that's required for the discount to be applied. """ greaterThanOrEqualToQuantity: UnsignedInt64! } """The minimum subtotal required for the discount to apply.""" type DiscountMinimumSubtotal { """The minimum subtotal that's required for the discount to be applied.""" greaterThanOrEqualToSubtotal: MoneyV2! } """ The `DiscountAutomaticBxgy` object lets you manage [buy X get Y discounts (BXGY)](https://help.shopify.com/manual/discounts/discount-types/buy-x-get-y) that are automatically applied on a cart and at checkout. BXGY discounts incentivize customers by offering them additional items at a discounted price or for free when they purchase a specified quantity of items. The `DiscountAutomaticBxgy` object stores information about automatic BXGY discounts that apply to specific [products and variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountProducts), [collections](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCollections), or [all items in a cart](https://shopify.dev/docs/api/admin-graphql/latest/objects/AllDiscountItems). Learn more about working with [Shopify's discount model](https://shopify.dev/docs/apps/build/discounts), including limitations and considerations. > Note: > The [`DiscountCodeBxgy`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCodeBxgy) object has similar functionality to the `DiscountAutomaticBxgy` object, but customers need to enter a code to receive a discount. """ type DiscountAutomaticBxgy implements HasEvents & Node { """ The number of times that the discount has been used. For example, if a "Buy 3, Get 1 Free" t-shirt discount is automatically applied in 200 transactions, then the discount has been used 200 times. This value is updated asynchronously. As a result, it might be lower than the actual usage count until the asynchronous process is completed. """ asyncUsageCount: Int! """ The [discount classes](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) that you can use in combination with [Shopify discount types](https://help.shopify.com/manual/discounts/discount-types). """ combinesWith: DiscountCombinesWith! """The date and time when the discount was created.""" createdAt: DateTime! """ The items eligible for the discount and the required quantity of each to receive the discount. """ customerBuys: DiscountCustomerBuys! """ The items in the order that qualify for the discount, their quantities, and the total value of the discount. """ customerGets: DiscountCustomerGets! """ The [discount class](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) that's used to control how discounts can be combined. """ discountClass: MerchandiseDiscountClass! """ The date and time when the discount expires and is no longer available to customers. For discounts without a fixed expiration date, specify `null`. """ endsAt: DateTime """The paginated list of events associated with the host subject.""" events( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | action | string | The action that occured. | | | - `action:create` | | comments | boolean | Whether or not to include [comment-events](https://shopify.dev/api/admin-graphql/latest/objects/CommentEvent) in your search, passing `false` will exclude comment-events, any other value will include comment-events. | | | - `false`
- `true` | | created_at | time | Filter by the date and time when the event happened. | | | - `created_at:>2020-10-21`
- `created_at: - `id:>=1234`
- `id:<=1234` | | subject_type | string | The resource type affected by this event, See [EventSubjectType](https://shopify.dev/api/admin-graphql/latest/enums/EventSubjectType) for possible values. | | | - `COMPANY` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: EventSortKeys = ID ): EventConnection! """A legacy unique ID for the discount.""" id: ID! @deprecated(reason: "Use DiscountAutomaticNode.id instead.") """ The date and time when the discount becomes active and is available to customers. """ startsAt: DateTime! """ The status of the discount that describes its availability, expiration, or pending activation. """ status: DiscountStatus! """ A detailed explanation of what the discount is, who can use it, when and where it applies, and any associated rules or limitations. """ summary: String! """ The discount's name that displays to merchants in the Shopify admin and to customers. """ title: String! """The date and time when the discount was updated.""" updatedAt: DateTime! """The number of times that the discount has been used.""" usageCount: Int! @deprecated(reason: "Use `asyncUsageCount` instead.") """ The maximum number of times that the discount can be applied to an order. """ usesPerOrderLimit: Int } """ The prerequisite items and prerequisite value that a customer must have on the order for the discount to be applicable. """ type DiscountCustomerBuys { """ If the discount is applicable when a customer buys a one-time purchase. """ isOneTimePurchase: Boolean! """ If the discount is applicable when a customer buys a subscription purchase. """ isSubscription: Boolean! """The items required for the discount to be applicable.""" items: DiscountItems! """The prerequisite value.""" value: DiscountCustomerBuysValue! } """ The prerequisite for the discount to be applicable. For example, the discount might require a customer to buy a minimum quantity of select items. Alternatively, the discount might require a customer to spend a minimum amount on select items. """ union DiscountCustomerBuysValue = DiscountPurchaseAmount | DiscountQuantity """ A purchase amount in the context of a discount. This object can be used to define the minimum purchase amount required for a discount to be applicable. """ type DiscountPurchaseAmount { """The purchase amount in decimal format.""" amount: Decimal! } """ The `DiscountAutomaticFreeShipping` object lets you manage [free shipping discounts](https://help.shopify.com/manual/discounts/discount-types/free-shipping) that are automatically applied on a cart and at checkout. Free shipping discounts are promotional deals that merchants offer to customers to waive shipping costs and encourage online purchases. The `DiscountAutomaticFreeShipping` object stores information about automatic free shipping discounts that apply to specific [products and variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountProducts), [collections](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCollections), or [all items in a cart](https://shopify.dev/docs/api/admin-graphql/latest/objects/AllDiscountItems). Learn more about working with [Shopify's discount model](https://shopify.dev/docs/apps/build/discounts), including limitations and considerations. > Note: > The [`DiscountCodeFreeShipping`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCodeFreeShipping) object has similar functionality to the `DiscountAutomaticFreeShipping` object, but customers need to enter a code to receive a discount. """ type DiscountAutomaticFreeShipping { """ Whether the discount applies on one-time purchases. A one-time purchase is a transaction where you pay a single time for a product, without any ongoing commitments or recurring charges. """ appliesOnOneTimePurchase: Boolean! """ Whether the discount applies on subscription items. [Subscriptions](https://shopify.dev/docs/apps/launch/billing/subscription-billing/offer-subscription-discounts) enable customers to purchase products on a recurring basis. """ appliesOnSubscription: Boolean! """ The number of times that the discount has been used. For example, if a "Buy 3, Get 1 Free" t-shirt discount is automatically applied in 200 transactions, then the discount has been used 200 times. This value is updated asynchronously. As a result, it might be lower than the actual usage count until the asynchronous process is completed. """ asyncUsageCount: Int! """ The [discount classes](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) that you can use in combination with [Shopify discount types](https://help.shopify.com/manual/discounts/discount-types). """ combinesWith: DiscountCombinesWith! """The date and time when the discount was created.""" createdAt: DateTime! """ The countries that qualify for the discount. You can define [a list of countries](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCountries) or specify [all countries](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCountryAll) to be eligible for the discount. """ destinationSelection: DiscountShippingDestinationSelection! """ The [discount class](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) that's used to control how discounts can be combined. """ discountClass: ShippingDiscountClass! """ The date and time when the discount expires and is no longer available to customers. For discounts without a fixed expiration date, specify `null`. """ endsAt: DateTime """ Whether there are [timeline comments](https://help.shopify.com/manual/discounts/managing-discount-codes#use-the-discount-timeline) associated with the discount. """ hasTimelineComment: Boolean! """ The maximum shipping price amount accepted to qualify for the discount. """ maximumShippingPrice: MoneyV2 """ The minimum subtotal or quantity of items that are required for the discount to be applied. """ minimumRequirement: DiscountMinimumRequirement """ The number of billing cycles for which the discount can be applied, which is useful for subscription-based discounts. For example, if you set this field to `3`, then the discount only applies to the first three billing cycles of a subscription. If you specify `0`, then the discount applies indefinitely. """ recurringCycleLimit: Int! """ An abbreviated version of the discount [`summary`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountAutomaticFreeShipping#field-summary) field. """ shortSummary: String! """ The date and time when the discount becomes active and is available to customers. """ startsAt: DateTime! """ The status of the discount that describes its availability, expiration, or pending activation. """ status: DiscountStatus! """ A detailed explanation of what the discount is, who can use it, when and where it applies, and any associated rules or limitations. """ summary: String! """ The discount's name that displays to merchants in the Shopify admin and to customers. """ title: String! """The total sales from orders where the discount was used.""" totalSales: MoneyV2 """The date and time when the discount was updated.""" updatedAt: DateTime! } """ The type used to target the eligible countries of an order's shipping destination for which the discount applies. For example, the discount might be applicable when shipping to all countries, or only to a set of countries. """ union DiscountShippingDestinationSelection = DiscountCountries | DiscountCountryAll """The shipping destinations where the discount can be applied.""" type DiscountCountries { """The codes for the countries where the discount can be applied.""" countries: [CountryCode!]! """ Whether the discount is applicable to countries that haven't been defined in the shop's shipping zones. """ includeRestOfWorld: Boolean! } """ The `DiscountCountryAll` object lets you target all countries as shipping destination for discount eligibility. """ type DiscountCountryAll { """ Whether the discount can be applied to all countries as shipping destination. This value is always `true`. """ allCountries: Boolean! } """ The [discount class](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) that's used to control how discounts can be combined. """ enum ShippingDiscountClass { """Combined as a shipping discount.""" SHIPPING } """ The `DiscountCodeApp` object stores information about code discounts that are managed by an app using [Shopify Functions](https://shopify.dev/docs/apps/build/functions). Use `DiscountCodeApp` when you need advanced, custom, or dynamic discount capabilities that aren't supported by [Shopify's native discount types](https://help.shopify.com/manual/discounts/discount-types). Learn more about creating [custom discount functionality](https://shopify.dev/docs/apps/build/discounts/build-discount-function). > Note: > The [`DiscountAutomaticApp`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountAutomaticApp) object has similar functionality to the `DiscountCodeApp` object, with the exception that `DiscountAutomaticApp` stores information about automatic discounts that are managed by an app using Shopify Functions. """ type DiscountCodeApp { """ 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. """ appDiscountType: AppDiscountType! """Whether the discount applies on regular one-time-purchase items.""" appliesOnOneTimePurchase: Boolean! """Whether the discount applies to subscriptions items.""" appliesOnSubscription: Boolean! """Whether a customer can only use the discount once.""" appliesOncePerCustomer: Boolean! """ The number of times that the discount has been used. For example, if a "Buy 3, Get 1 Free" t-shirt discount is automatically applied in 200 transactions, then the discount has been used 200 times. This value is updated asynchronously. As a result, it might be lower than the actual usage count until the asynchronous process is completed. """ asyncUsageCount: Int! """A list codes that customers can use to redeem the discount.""" codes( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | times_used | integer | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ The ID of a [saved search](https://shopify.dev/api/admin-graphql/latest/objects/savedsearch#field-id). The search’s query string is used as the query argument. """ savedSearchId: ID """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: DiscountCodeSortKeys = ID ): DiscountRedeemCodeConnection! """The number of codes that a customer can use to redeem the discount.""" codesCount: Count """ The [discount classes](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) that you can use in combination with [Shopify discount types](https://help.shopify.com/manual/discounts/discount-types). """ combinesWith: DiscountCombinesWith! """The date and time when the discount was created.""" createdAt: DateTime! """The customers that can use the discount.""" customerSelection: DiscountCustomerSelection! """ 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 [globally-unique ID](https://shopify.dev/docs/api/usage/gids) for the discount. """ discountId: ID! """ The date and time when the discount expires and is no longer available to customers. For discounts without a fixed expiration date, specify `null`. """ endsAt: DateTime """ The [error history](https://shopify.dev/docs/apps/build/functions/monitoring-and-errors) for the latest version of the discount type that the app provides. """ errorHistory: FunctionsErrorHistory """ Whether there are [timeline comments](https://help.shopify.com/manual/discounts/managing-discount-codes#use-the-discount-timeline) associated with the discount. """ hasTimelineComment: Boolean! """ The number of billing cycles for which the discount can be applied, which is useful for subscription-based discounts. For example, if you set this field to `3`, then the discount only applies to the first three billing cycles of a subscription. If you specify `0`, then the discount applies indefinitely. """ recurringCycleLimit: Int """A list of URLs that the app can use to share the discount.""" shareableUrls: [DiscountShareableUrl!]! """ The date and time when the discount becomes active and is available to customers. """ startsAt: DateTime! """ The status of the discount that describes its availability, expiration, or pending activation. """ status: DiscountStatus! """ The discount's name that displays to merchants in the Shopify admin and to customers. """ title: String! """The total sales from orders where the discount was used.""" totalSales: MoneyV2 """The date and time when the discount was updated.""" updatedAt: DateTime! """ The maximum number of times that a customer can use the discount. For discounts with unlimited usage, specify `null`. """ usageLimit: Int } """ An auto-generated type for paginating through multiple DiscountRedeemCodes. """ type DiscountRedeemCodeConnection { edges: [DiscountRedeemCodeEdge!]! """ A list of nodes that are contained in DiscountRedeemCodeEdge. 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: [DiscountRedeemCode!]! """ 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 DiscountRedeemCode and a cursor during pagination. """ type DiscountRedeemCodeEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of DiscountRedeemCodeEdge.""" node: DiscountRedeemCode! } """ A code that a customer can use at checkout to receive a discount. For example, a customer can use the redeem code 'SUMMER20' at checkout to receive a 20% discount on their entire order. """ type DiscountRedeemCode { """ The number of times that the discount redeem code has been used. This value is updated asynchronously and can be different than the actual usage count. """ asyncUsageCount: Int! """The code that a customer can use at checkout to receive a discount.""" code: String! """The application that created the discount redeem code.""" createdBy: App """A globally-unique ID of the discount redeem code.""" id: ID! } """The set of valid sort keys for the DiscountCode query.""" enum DiscountCodeSortKeys { """Sort by the `code` value.""" CODE """Sort by the `created_at` value.""" CREATED_AT """Sort by the `id` value.""" ID """ Sort by relevance to the search terms when the `query` parameter is specified on the connection. Don't use this sort key when no search query is specified. """ RELEVANCE } """ The type used for targeting a set of customers who are eligible for the discount. For example, the discount might be available to all customers or it might only be available to a specific set of customers. You can define the set of customers by targeting a list of customer segments, or by targeting a list of specific customers. """ union DiscountCustomerSelection = DiscountCustomerAll | DiscountCustomerSegments | DiscountCustomers | DiscountCustomerSelectionUnknown """ The `DiscountCustomerAll` object lets you target all customers for discount eligibility. """ type DiscountCustomerAll { """ Whether the discount can be applied by all customers. This value is always `true`. """ allCustomers: Boolean! } """ A list of customer segments that contain the customers that the discount applies to. """ type DiscountCustomerSegments { """ A list of customer segments that contain the customers who can use the discount. """ segments: [Segment!]! } """A dynamic collection of customers based on specific criteria.""" type Segment implements Node { """The date and time when the segment was added to the store.""" creationDate: DateTime! """A globally-unique ID.""" id: ID! """The date and time when the segment was last updated.""" lastEditDate: DateTime! """The name of the segment.""" name: String! """ A precise definition of the segment. The definition is composed of a combination of conditions on facts about customers. """ query: String! } """A list of customers eligible for the discount.""" type DiscountCustomers { """The list of customers eligible for the discount.""" customers: [Customer!]! } """ An unrecognized customer selection type. Use the `context` field on the parent discount type instead. """ type DiscountCustomerSelectionUnknown { """The underlying customer selection type.""" customerSelectionType: String! } """A shareable URL for a discount code.""" type DiscountShareableUrl { """ The image URL of the item (product or collection) to which the discount applies. """ targetItemImage: Image """The type of page that's associated with the URL.""" targetType: DiscountShareableUrlTargetType! """The title of the page that's associated with the URL.""" title: String! """The URL for the discount code.""" url: URL! } """The type of page where a shareable discount URL lands.""" enum DiscountShareableUrlTargetType { """The URL lands on a collection page.""" COLLECTION """The URL lands on a home page.""" HOME """The URL lands on a product page.""" PRODUCT } """ The `DiscountCodeBasic` object lets you manage [amount off discounts](https://help.shopify.com/manual/discounts/discount-types/percentage-fixed-amount) that are applied on a cart and at checkout when a customer enters a code. Amount off discounts give customers a fixed value or a percentage off the products in an order, but don't apply to shipping costs. The `DiscountCodeBasic` object stores information about amount off code discounts that apply to specific [products and variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountProducts), [collections](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCollections), or [all items in a cart](https://shopify.dev/docs/api/admin-graphql/latest/objects/AllDiscountItems). Learn more about working with [Shopify's discount model](https://shopify.dev/docs/apps/build/discounts), including limitations and considerations. > Note: > The [`DiscountAutomaticBasic`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountAutomaticBasic) object has similar functionality to the `DiscountCodeBasic` object, but discounts are automatically applied, without the need for customers to enter a code. """ type DiscountCodeBasic { """Whether a customer can only use the discount once.""" appliesOncePerCustomer: Boolean! """ The number of times that the discount has been used. For example, if a "Buy 3, Get 1 Free" t-shirt discount is automatically applied in 200 transactions, then the discount has been used 200 times. This value is updated asynchronously. As a result, it might be lower than the actual usage count until the asynchronous process is completed. """ asyncUsageCount: Int! """A list codes that customers can use to redeem the discount.""" codes( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | times_used | integer | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ The ID of a [saved search](https://shopify.dev/api/admin-graphql/latest/objects/savedsearch#field-id). The search’s query string is used as the query argument. """ savedSearchId: ID """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: DiscountCodeSortKeys = ID ): DiscountRedeemCodeConnection! """The number of codes that a customer can use to redeem the discount.""" codesCount: Count """ The [discount classes](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) that you can use in combination with [Shopify discount types](https://help.shopify.com/manual/discounts/discount-types). """ combinesWith: DiscountCombinesWith! """The date and time when the discount was created.""" createdAt: DateTime! """ The items in the order that qualify for the discount, their quantities, and the total value of the discount. """ customerGets: DiscountCustomerGets! """The customers that can use the discount.""" customerSelection: DiscountCustomerSelection! """ The [discount class](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) that's used to control how discounts can be combined. """ discountClass: MerchandiseDiscountClass! """ The date and time when the discount expires and is no longer available to customers. For discounts without a fixed expiration date, specify `null`. """ endsAt: DateTime """ Whether there are [timeline comments](https://help.shopify.com/manual/discounts/managing-discount-codes#use-the-discount-timeline) associated with the discount. """ hasTimelineComment: Boolean! """ The minimum subtotal or quantity of items that are required for the discount to be applied. """ minimumRequirement: DiscountMinimumRequirement """ The number of billing cycles for which the discount can be applied, which is useful for subscription-based discounts. For example, if you set this field to `3`, then the discount only applies to the first three billing cycles of a subscription. If you specify `0`, then the discount applies indefinitely. """ recurringCycleLimit: Int """A list of URLs that the app can use to share the discount.""" shareableUrls: [DiscountShareableUrl!]! """ An abbreviated version of the discount [`summary`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCodeBasic#field-summary) field. """ shortSummary: String! """ The date and time when the discount becomes active and is available to customers. """ startsAt: DateTime! """ The status of the discount that describes its availability, expiration, or pending activation. """ status: DiscountStatus! """ A detailed explanation of what the discount is, who can use it, when and where it applies, and any associated rules or limitations. """ summary: String! """ The discount's name that displays to merchants in the Shopify admin and to customers. """ title: String! """The total sales from orders where the discount was used.""" totalSales: MoneyV2 """The date and time when the discount was updated.""" updatedAt: DateTime! """ The maximum number of times that a customer can use the discount. For discounts with unlimited usage, specify `null`. """ usageLimit: Int } """ The `DiscountCodeBxgy` object lets you manage [buy X get Y discounts (BXGY)](https://help.shopify.com/manual/discounts/discount-types/buy-x-get-y) that are applied on a cart and at checkout when a customer enters a code. BXGY discounts incentivize customers by offering them additional items at a discounted price or for free when they purchase a specified quantity of items. The `DiscountCodeBxgy` object stores information about BXGY code discounts that apply to specific [products and variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountProducts), [collections](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCollections), or [all items in a cart](https://shopify.dev/docs/api/admin-graphql/latest/objects/AllDiscountItems). Learn more about working with [Shopify's discount model](https://shopify.dev/docs/apps/build/discounts), including limitations and considerations. > Note: > The [`DiscountAutomaticBxgy`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountAutomaticBxgy) object has similar functionality to the `DiscountCodeBxgy` object, but discounts are automatically applied, without the need for customers to enter a code. """ type DiscountCodeBxgy { """Whether a customer can only use the discount once.""" appliesOncePerCustomer: Boolean! """ The number of times that the discount has been used. For example, if a "Buy 3, Get 1 Free" t-shirt discount is automatically applied in 200 transactions, then the discount has been used 200 times. This value is updated asynchronously. As a result, it might be lower than the actual usage count until the asynchronous process is completed. """ asyncUsageCount: Int! """A list codes that customers can use to redeem the discount.""" codes( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | times_used | integer | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ The ID of a [saved search](https://shopify.dev/api/admin-graphql/latest/objects/savedsearch#field-id). The search’s query string is used as the query argument. """ savedSearchId: ID """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: DiscountCodeSortKeys = ID ): DiscountRedeemCodeConnection! """The number of codes that a customer can use to redeem the discount.""" codesCount: Count """ The [discount classes](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) that you can use in combination with [Shopify discount types](https://help.shopify.com/manual/discounts/discount-types). """ combinesWith: DiscountCombinesWith! """The date and time when the discount was created.""" createdAt: DateTime! """ The items eligible for the discount and the required quantity of each to receive the discount. """ customerBuys: DiscountCustomerBuys! """ The items in the order that qualify for the discount, their quantities, and the total value of the discount. """ customerGets: DiscountCustomerGets! """The customers that can use the discount.""" customerSelection: DiscountCustomerSelection! """ The [discount class](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) that's used to control how discounts can be combined. """ discountClass: MerchandiseDiscountClass! """ The date and time when the discount expires and is no longer available to customers. For discounts without a fixed expiration date, specify `null`. """ endsAt: DateTime """ Whether there are [timeline comments](https://help.shopify.com/manual/discounts/managing-discount-codes#use-the-discount-timeline) associated with the discount. """ hasTimelineComment: Boolean! """A list of URLs that the app can use to share the discount.""" shareableUrls: [DiscountShareableUrl!]! """ The date and time when the discount becomes active and is available to customers. """ startsAt: DateTime! """ The status of the discount that describes its availability, expiration, or pending activation. """ status: DiscountStatus! """ A detailed explanation of what the discount is, who can use it, when and where it applies, and any associated rules or limitations. """ summary: String! """ The discount's name that displays to merchants in the Shopify admin and to customers. """ title: String! """The total sales from orders where the discount was used.""" totalSales: MoneyV2 """The date and time when the discount was updated.""" updatedAt: DateTime! """ The maximum number of times that a customer can use the discount. For discounts with unlimited usage, specify `null`. """ usageLimit: Int """ The maximum number of times that the discount can be applied to an order. """ usesPerOrderLimit: Int } """ The `DiscountCodeFreeShipping` object lets you manage [free shipping discounts](https://help.shopify.com/manual/discounts/discount-types/free-shipping) that are applied on a cart and at checkout when a customer enters a code. Free shipping discounts are promotional deals that merchants offer to customers to waive shipping costs and encourage online purchases. The `DiscountCodeFreeShipping` object stores information about free shipping code discounts that apply to specific [products and variants](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountProducts), [collections](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCollections), or [all items in a cart](https://shopify.dev/docs/api/admin-graphql/latest/objects/AllDiscountItems). Learn more about working with [Shopify's discount model](https://shopify.dev/docs/apps/build/discounts), including limitations and considerations. > Note: > The [`DiscountAutomaticFreeShipping`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountAutomaticFreeShipping) object has similar functionality to the `DiscountCodeFreeShipping` object, but discounts are automatically applied, without the need for customers to enter a code. """ type DiscountCodeFreeShipping { """ Whether the discount applies on one-time purchases. A one-time purchase is a transaction where you pay a single time for a product, without any ongoing commitments or recurring charges. """ appliesOnOneTimePurchase: Boolean! """ Whether the discount applies on subscription items. [Subscriptions](https://shopify.dev/docs/apps/launch/billing/subscription-billing/offer-subscription-discounts) enable customers to purchase products on a recurring basis. """ appliesOnSubscription: Boolean! """Whether a customer can only use the discount once.""" appliesOncePerCustomer: Boolean! """ The number of times that the discount has been used. For example, if a "Buy 3, Get 1 Free" t-shirt discount is automatically applied in 200 transactions, then the discount has been used 200 times. This value is updated asynchronously. As a result, it might be lower than the actual usage count until the asynchronous process is completed. """ asyncUsageCount: Int! """A list codes that customers can use to redeem the discount.""" codes( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | times_used | integer | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ The ID of a [saved search](https://shopify.dev/api/admin-graphql/latest/objects/savedsearch#field-id). The search’s query string is used as the query argument. """ savedSearchId: ID """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: DiscountCodeSortKeys = ID ): DiscountRedeemCodeConnection! """The number of codes that a customer can use to redeem the discount.""" codesCount: Count """ The [discount classes](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) that you can use in combination with [Shopify discount types](https://help.shopify.com/manual/discounts/discount-types). """ combinesWith: DiscountCombinesWith! """The date and time when the discount was created.""" createdAt: DateTime! """The customers that can use the discount.""" customerSelection: DiscountCustomerSelection! """ The countries that qualify for the discount. You can define [a list of countries](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCountries) or specify [all countries](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCountryAll) to be eligible for the discount. """ destinationSelection: DiscountShippingDestinationSelection! """ The [discount class](https://help.shopify.com/manual/discounts/combining-discounts/discount-combinations) that's used to control how discounts can be combined. """ discountClass: ShippingDiscountClass! """ The date and time when the discount expires and is no longer available to customers. For discounts without a fixed expiration date, specify `null`. """ endsAt: DateTime """ Whether there are [timeline comments](https://help.shopify.com/manual/discounts/managing-discount-codes#use-the-discount-timeline) associated with the discount. """ hasTimelineComment: Boolean! """ The maximum shipping price amount accepted to qualify for the discount. """ maximumShippingPrice: MoneyV2 """ The minimum subtotal or quantity of items that are required for the discount to be applied. """ minimumRequirement: DiscountMinimumRequirement """ The number of billing cycles for which the discount can be applied, which is useful for subscription-based discounts. For example, if you set this field to `3`, then the discount only applies to the first three billing cycles of a subscription. If you specify `0`, then the discount applies indefinitely. """ recurringCycleLimit: Int """A list of URLs that the app can use to share the discount.""" shareableUrls: [DiscountShareableUrl!]! """ An abbreviated version of the discount [`summary`](https://shopify.dev/docs/api/admin-graphql/latest/objects/DiscountCodeFreeShipping#field-summary) field. """ shortSummary: String! """ The date and time when the discount becomes active and is available to customers. """ startsAt: DateTime! """ The status of the discount that describes its availability, expiration, or pending activation. """ status: DiscountStatus! """ A detailed explanation of what the discount is, who can use it, when and where it applies, and any associated rules or limitations. """ summary: String! """ The discount's name that displays to merchants in the Shopify admin and to customers. """ title: String! """The total sales from orders where the discount was used.""" totalSales: MoneyV2 """The date and time when the discount was updated.""" updatedAt: DateTime! """ The maximum number of times that a customer can use the discount. For discounts with unlimited usage, specify `null`. """ usageLimit: Int } """ Represents information about the purchasing entity for the order or draft order. """ union PurchasingEntity = Customer | PurchasingCompany """ Represents information about the purchasing company for the order or draft order. """ type PurchasingCompany { """The company associated to the order or draft order.""" company: Company! """The company contact associated to the order or draft order.""" contact: CompanyContact """The company location associated to the order or draft order.""" location: CompanyLocation! } """ A location or branch of a [company that's a customer](https://shopify.dev/api/admin-graphql/latest/objects/company) of the shop. Configuration of B2B relationship, for example prices lists and checkout settings, may be done for a location. """ type CompanyLocation implements CommentEventSubject & HasEvents & HasMetafieldDefinitions & HasMetafields & HasStoreCreditAccounts & Navigable & Node { """The address used as billing address for the location.""" billingAddress: CompanyAddress """The configuration for the buyer's B2B checkout.""" buyerExperienceConfiguration: BuyerExperienceConfiguration """The list of catalogs associated with the company location.""" catalogs( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): CatalogConnection! """ The number of catalogs associated with the company location. Limited to a maximum of 10000. """ catalogsCount: Count """The company that the company location belongs to.""" company: Company! """ The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) at which the company location was created in Shopify. """ createdAt: DateTime! """ The location's currency based on the shipping address. If the shipping address is empty, then the value is the shop's primary market. """ currency: CurrencyCode! """ A default [cursor](https://shopify.dev/api/usage/pagination-graphql) that returns the single next record, sorted ascending by ID. """ defaultCursor: String! """The list of draft orders for the company location.""" draftOrders( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | created_at | time | | customer_id | id | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | source | string | | status | string | | tag | string | | updated_at | time | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: DraftOrderSortKeys = ID ): DraftOrderConnection! """The paginated list of events associated with the host subject.""" events( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | action | string | The action that occured. | | | - `action:create` | | comments | boolean | Whether or not to include [comment-events](https://shopify.dev/api/admin-graphql/latest/objects/CommentEvent) in your search, passing `false` will exclude comment-events, any other value will include comment-events. | | | - `false`
- `true` | | created_at | time | Filter by the date and time when the event happened. | | | - `created_at:>2020-10-21`
- `created_at: - `id:>=1234`
- `id:<=1234` | | subject_type | string | The resource type affected by this event, See [EventSubjectType](https://shopify.dev/api/admin-graphql/latest/enums/EventSubjectType) for possible values. | | | - `COMPANY` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: EventSortKeys = ID ): EventConnection! """A unique externally-supplied ID for the company location.""" externalId: String """Whether the merchant added a timeline comment to the company location.""" hasTimelineComment: Boolean! """A globally-unique ID.""" id: ID! """Whether the company location is assigned a specific catalog.""" inCatalog( """The ID of the catalog.""" catalogId: ID! ): Boolean! """The preferred locale of the company location.""" locale: String """ The market that includes the location's shipping address. If the shipping address is empty, then the value is the shop's primary market. """ market: Market! """ 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( """The key for the metafield.""" key: String! """ The container the metafield belongs to. If omitted, the app-reserved namespace will be used. """ namespace: String ): Metafield """List of metafield definitions.""" metafieldDefinitions( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Filter metafield definitions by namespace.""" namespace: String """Filter by the definition's pinned status.""" pinnedStatus: MetafieldDefinitionPinnedStatus = ANY """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | created_at | time | Filter by the date and time when the metafield definition was created. | | | - `created_at:>2020-10-21T23:39:20Z`
- `created_at: - `created_at:<=2024` | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | key | string | Filter by the metafield definition [`key`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-key) field. | | | - `key:some-key` | | namespace | string | Filter by the metafield definition [`namespace`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-namespace) field. | | | - `namespace:some-namespace` | | owner_type | string | Filter by the metafield definition [`ownerType`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-ownertype) field. | | | - `owner_type:PRODUCT` | | type | string | Filter by the metafield definition [`type`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-type) field. | | | - `type:single_line_text_field` | | updated_at | time | Filter by the date and time when the metafield definition was last updated. | | | - `updated_at:>2020-10-21T23:39:20Z`
- `updated_at: - `updated_at:<=2024` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: MetafieldDefinitionSortKeys = ID ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use the root `metafieldDefinitions` field instead.") """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. """ metafields( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ List of keys of metafields in the format `namespace.key`, will be returned in the same format. """ keys: [String!] """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. """ namespace: String """Reverse the order of the underlying list.""" reverse: Boolean = false ): MetafieldConnection! """The name of the company location.""" name: String! """A note about the company location.""" note: String """The total number of orders placed for the location.""" orderCount: Int! @deprecated(reason: "Use `ordersCount` instead.") """The list of orders for the company location.""" orders( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: OrderSortKeys = ID ): OrderConnection! """The total number of orders placed for the location.""" ordersCount: Count """The phone number of the company location.""" phone: String """The list of roles assigned to the company location.""" roleAssignments( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | company_contact_id | id | | company_contact_role_id | id | | company_id | id | | company_location_id | id | | created_at | time | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | location_name | string | | role_name | string | | updated_at | time | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """Sort the underlying list by the given key.""" sortKey: CompanyContactRoleAssignmentSortKeys = ID ): CompanyContactRoleAssignmentConnection! """The address used as shipping address for the location.""" shippingAddress: CompanyAddress """The list of staff members assigned to the company location.""" staffMemberAssignments( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | company_location_id | id | | created_at | time | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | staff_member_id | id | | updated_at | time | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """Sort the underlying list by the given key.""" sortKey: CompanyLocationStaffMemberAssignmentSortKeys = ID ): CompanyLocationStaffMemberAssignmentConnection! """ Returns a list of store credit accounts that belong to the owner resource. A store credit account owner can hold multiple accounts each with a different currency. """ storeCreditAccounts( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | currency_code | string | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String ): StoreCreditAccountConnection! """The list of tax exemptions applied to the location.""" taxExemptions: [TaxExemption!]! @deprecated(reason: "Use `taxSettings` instead.") """The tax registration ID for the company location.""" taxRegistrationId: String @deprecated(reason: "Use `taxSettings` instead.") """The tax settings for the company location.""" taxSettings: CompanyLocationTaxSettings! """The total amount spent by the location.""" totalSpent: MoneyV2! """ The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) at which the company location was last modified. """ updatedAt: DateTime! } """Represents a billing or shipping address for a company location.""" type CompanyAddress implements Node { """ The first line of the address. Typically the street address or PO Box number. """ address1: String! """ The second line of the address. Typically the number of the apartment, suite, or unit. """ address2: String """The name of the city, district, village, or town.""" city: String """The name of the company.""" companyName: String! """The name of the country.""" country: String """ The two-letter code for the country of the address. For example, US. """ countryCode: CountryCode! """ The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) at which the company address was created. """ createdAt: DateTime! """The first name of the recipient.""" firstName: String """The formatted version of the address.""" formattedAddress( """Whether to include the company name in the formatted address.""" withCompanyName: Boolean = true """Whether to include the recipient's name in the formatted address.""" withName: Boolean = false ): [String!]! """A comma-separated list of the values for city, province, and country.""" formattedArea: String """A globally-unique ID.""" id: ID! """The last name of the recipient.""" lastName: String """ A unique phone number for the customer. Formatted using E.164 standard. For example, _+16135551111_. """ phone: String """The region of the address, such as the province, state, or district.""" province: String """The identity of the recipient e.g. 'Receiving Department'.""" recipient: String """ The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) at which the company address was last updated. """ updatedAt: DateTime! """The zip or postal code of the address.""" zip: String """ The alphanumeric code for the region. For example, ON. """ zoneCode: String } """Settings describing the behavior of checkout for a B2B buyer.""" type BuyerExperienceConfiguration { """Whether to checkout to draft order for merchant review.""" checkoutToDraft: Boolean! """The portion required to be paid at checkout.""" deposit: DepositConfiguration """Whether to allow customers to use editable shipping addresses.""" editableShippingAddress: Boolean! """ Whether a buyer must pay at checkout or they can also choose to pay later using net terms. """ payNowOnly: Boolean! @deprecated(reason: "Please use `checkoutToDraft`(must be false) and `paymentTermsTemplate`(must be nil) to derive this instead.") """Represents the merchant configured payment terms.""" paymentTermsTemplate: PaymentTermsTemplate } """Configuration of the deposit.""" union DepositConfiguration = DepositPercentage """A percentage deposit.""" type DepositPercentage { """The percentage value of the deposit.""" percentage: Float! } """Represents the payment terms template object.""" type PaymentTermsTemplate implements Node { """The description of the payment terms template.""" description: String! """ The number of days between the issued date and due date if this is the net type of payment terms. """ dueInDays: Int """A globally-unique ID.""" id: ID! """The name of the payment terms template.""" name: String! """The type of the payment terms template.""" paymentTermsType: PaymentTermsType! """The translated payment terms template name.""" translatedName: String! } """The type of a payment terms or a payment terms template.""" enum PaymentTermsType { """ The payment terms or payment terms template is a fixed type. It's due on a specified date. """ FIXED """The payment terms or payment terms template is due on fulfillment.""" FULFILLMENT """ The payment terms or payment terms template is a net type. It's due a number of days after issue. """ NET """The payment terms or payment terms template is due on receipt.""" RECEIPT """The type of the payment terms or payment terms template is unknown.""" UNKNOWN } """An auto-generated type for paginating through multiple Catalogs.""" type CatalogConnection { edges: [CatalogEdge!]! """ A list of nodes that are contained in CatalogEdge. 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: [Catalog!]! """ 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 Catalog and a cursor during pagination. """ type CatalogEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of CatalogEdge.""" node: Catalog! } """An auto-generated type for paginating through multiple DraftOrders.""" type DraftOrderConnection { edges: [DraftOrderEdge!]! """ A list of nodes that are contained in DraftOrderEdge. 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: [DraftOrder!]! """ 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 DraftOrder and a cursor during pagination. """ type DraftOrderEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of DraftOrderEdge.""" node: DraftOrder! } """The set of valid sort keys for the DraftOrder query.""" enum DraftOrderSortKeys { """Sort by the `customer_name` value.""" CUSTOMER_NAME """Sort by the `id` value.""" ID """Sort by the `number` value.""" NUMBER """ 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 `status` value.""" STATUS """Sort by the `total_price` value.""" TOTAL_PRICE """Sort by the `updated_at` value.""" UPDATED_AT } """An auto-generated type for paginating through multiple Orders.""" type OrderConnection { edges: [OrderEdge!]! """ A list of nodes that are contained in OrderEdge. 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: [Order!]! """ 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 Order and a cursor during pagination. """ type OrderEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of OrderEdge.""" node: Order! } """The set of valid sort keys for the Order query.""" enum OrderSortKeys { """Sort by the `created_at` value.""" CREATED_AT """Sort by the `customer_name` value.""" CUSTOMER_NAME """Sort orders by their shipping address country and city.""" DESTINATION """Sort by the `financial_status` value.""" FINANCIAL_STATUS """Sort by the `fulfillment_status` value.""" FULFILLMENT_STATUS """Sort by the `id` value.""" ID """Sort by the `order_number` value.""" ORDER_NUMBER """Sort orders by their purchase order number.""" PO_NUMBER """Sort by the `processed_at` value.""" PROCESSED_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 orders by the total quantity of all line items.""" TOTAL_ITEMS_QUANTITY """Sort by the `total_price` value.""" TOTAL_PRICE """Sort by the `updated_at` value.""" UPDATED_AT """ Sorts by the current total price of an order in the shop currency, including any returns/refunds/removals. """ CURRENT_TOTAL_PRICE } """ An auto-generated type for paginating through multiple CompanyContactRoleAssignments. """ type CompanyContactRoleAssignmentConnection { edges: [CompanyContactRoleAssignmentEdge!]! """ A list of nodes that are contained in CompanyContactRoleAssignmentEdge. 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: [CompanyContactRoleAssignment!]! """ 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 CompanyContactRoleAssignment and a cursor during pagination. """ type CompanyContactRoleAssignmentEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of CompanyContactRoleAssignmentEdge.""" node: CompanyContactRoleAssignment! } """ The CompanyContactRoleAssignment describes the company and location associated to a company contact's role. """ type CompanyContactRoleAssignment implements Node { """The company this role assignment belongs to.""" company: Company! """The company contact for whom this role is assigned.""" companyContact: CompanyContact! """The company location to which the role is assigned.""" companyLocation: CompanyLocation! """ The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) when the assignment record was created. """ createdAt: DateTime! """A globally-unique ID.""" id: ID! """The role that's assigned to the company contact.""" role: CompanyContactRole! """ The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) when the assignment record was last updated. """ updatedAt: DateTime! } """The set of valid sort keys for the CompanyContactRoleAssignment query.""" enum CompanyContactRoleAssignmentSortKeys { """Sort by the `created_at` value.""" CREATED_AT """Sort by the `id` value.""" ID """Sort by the `location_name` value.""" LOCATION_NAME """Sort by the `updated_at` value.""" UPDATED_AT } """ An auto-generated type for paginating through multiple CompanyLocationStaffMemberAssignments. """ type CompanyLocationStaffMemberAssignmentConnection { edges: [CompanyLocationStaffMemberAssignmentEdge!]! """ A list of nodes that are contained in CompanyLocationStaffMemberAssignmentEdge. 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: [CompanyLocationStaffMemberAssignment!]! """ 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 CompanyLocationStaffMemberAssignment and a cursor during pagination. """ type CompanyLocationStaffMemberAssignmentEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of CompanyLocationStaffMemberAssignmentEdge.""" node: CompanyLocationStaffMemberAssignment! } """ A representation of store's staff member who is assigned to a [company location](https://shopify.dev/api/admin-graphql/latest/objects/CompanyLocation) of the shop. The staff member's actions will be limited to objects associated with the assigned company location. """ type CompanyLocationStaffMemberAssignment implements Node { """The company location the staff member is assigned to.""" companyLocation: CompanyLocation! """A globally-unique ID.""" id: ID! """ Represents the data of a staff member who's assigned to a company location. """ staffMember: StaffMember! } """ The set of valid sort keys for the CompanyLocationStaffMemberAssignment query. """ enum CompanyLocationStaffMemberAssignmentSortKeys { """Sort by the `created_at` value.""" CREATED_AT """Sort by the `id` value.""" ID """Sort by the `updated_at` value.""" UPDATED_AT } """ An auto-generated type for paginating through multiple StoreCreditAccounts. """ type StoreCreditAccountConnection { edges: [StoreCreditAccountEdge!]! """ A list of nodes that are contained in StoreCreditAccountEdge. 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: [StoreCreditAccount!]! """ 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 StoreCreditAccount and a cursor during pagination. """ type StoreCreditAccountEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of StoreCreditAccountEdge.""" node: StoreCreditAccount! } """ A store credit account contains a monetary balance that can be redeemed at checkout for purchases in the shop. The account is held in the specified currency and has an owner that cannot be transferred. The account balance is redeemable at checkout only when the owner is authenticated via [new customer accounts authentication](https://shopify.dev/docs/api/customer). """ type StoreCreditAccount implements Node { """The current balance of the store credit account.""" balance: MoneyV2! """A globally-unique ID.""" id: ID! """The owner of the store credit account.""" owner: HasStoreCreditAccounts! """The transaction history of the store credit account.""" transactions( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | expires_at | time | Filter transactions by expiry date. Only applicable to StoreCreditAccountCreditTransaction objects. All other objects are handled as if they have a null expiry date. | | | - `expires_at:<='2025-01-01T00:00:00+01:00'`
- `expires_at:<='2025-12-31T23:00:00Z'` | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | type | string | Filter transactions by type. Any value other than the accepted values will be ignored. | - `credit`
- `debit`
- `debit_revert`
- `expiration` | | - `type:expiration`
- `type:credit OR type:debit_revert` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """Sort the underlying list by the given key.""" sortKey: TransactionSortKeys = CREATED_AT ): StoreCreditAccountTransactionConnection! } """ Represents information about the store credit accounts associated to the specified owner. """ interface HasStoreCreditAccounts { """ Returns a list of store credit accounts that belong to the owner resource. A store credit account owner can hold multiple accounts each with a different currency. """ storeCreditAccounts( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | currency_code | string | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String ): StoreCreditAccountConnection! } """ An auto-generated type for paginating through multiple StoreCreditAccountTransactions. """ type StoreCreditAccountTransactionConnection { edges: [StoreCreditAccountTransactionEdge!]! """ A list of nodes that are contained in StoreCreditAccountTransactionEdge. 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: [StoreCreditAccountTransaction!]! """ 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 StoreCreditAccountTransaction and a cursor during pagination. """ type StoreCreditAccountTransactionEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of StoreCreditAccountTransactionEdge.""" node: StoreCreditAccountTransaction! } """Interface for a store credit account transaction.""" interface StoreCreditAccountTransaction { """The store credit account that the transaction belongs to.""" account: StoreCreditAccount! """The amount of the transaction.""" amount: MoneyV2! """The balance of the account after the transaction.""" balanceAfterTransaction: MoneyV2! """The date and time when the transaction was created.""" createdAt: DateTime! """The event that caused the store credit account transaction.""" event: StoreCreditSystemEvent! """The origin of the store credit account transaction.""" origin: StoreCreditAccountTransactionOrigin } """The event that caused the store credit account transaction.""" enum StoreCreditSystemEvent { """An adjustment was made to the store credit account.""" ADJUSTMENT """Store credit was returned when an authorized payment was voided.""" ORDER_CANCELLATION """Store credit was used as payment for an order.""" ORDER_PAYMENT """Store credit was refunded from an order.""" ORDER_REFUND """ A store credit payment was reverted due to another payment method failing. """ PAYMENT_FAILURE """ A smaller amount of store credit was captured than was originally authorized. """ PAYMENT_RETURNED """Tax finalization affected the store credit payment.""" TAX_FINALIZATION """Store credit was used as payment for a recurring order.""" RECURRING_PAYMENT } """The origin of a store credit account transaction.""" union StoreCreditAccountTransactionOrigin = OrderTransaction """The set of valid sort keys for the Transaction query.""" enum TransactionSortKeys { """Sort by the `created_at` value.""" CREATED_AT """Sort by the `expires_at` value.""" EXPIRES_AT } """Available customer tax exemptions.""" enum TaxExemption { """ This customer is exempt from specific taxes for holding a valid COMMERCIAL_FISHERY_EXEMPTION in British Columbia. """ CA_BC_COMMERCIAL_FISHERY_EXEMPTION """ This customer is exempt from specific taxes for holding a valid CONTRACTOR_EXEMPTION in British Columbia. """ CA_BC_CONTRACTOR_EXEMPTION """ This customer is exempt from specific taxes for holding a valid PRODUCTION_AND_MACHINERY_EXEMPTION in British Columbia. """ CA_BC_PRODUCTION_AND_MACHINERY_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in British Columbia. """ CA_BC_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid SUB_CONTRACTOR_EXEMPTION in British Columbia. """ CA_BC_SUB_CONTRACTOR_EXEMPTION """ This customer is exempt from specific taxes for holding a valid DIPLOMAT_EXEMPTION in Canada. """ CA_DIPLOMAT_EXEMPTION """ This customer is exempt from specific taxes for holding a valid COMMERCIAL_FISHERY_EXEMPTION in Manitoba. """ CA_MB_COMMERCIAL_FISHERY_EXEMPTION """ This customer is exempt from specific taxes for holding a valid FARMER_EXEMPTION in Manitoba. """ CA_MB_FARMER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Manitoba. """ CA_MB_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid COMMERCIAL_FISHERY_EXEMPTION in Nova Scotia. """ CA_NS_COMMERCIAL_FISHERY_EXEMPTION """ This customer is exempt from specific taxes for holding a valid FARMER_EXEMPTION in Nova Scotia. """ CA_NS_FARMER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid PURCHASE_EXEMPTION in Ontario. """ CA_ON_PURCHASE_EXEMPTION """ This customer is exempt from specific taxes for holding a valid COMMERCIAL_FISHERY_EXEMPTION in Prince Edward Island. """ CA_PE_COMMERCIAL_FISHERY_EXEMPTION """ This customer is exempt from specific taxes for holding a valid COMMERCIAL_FISHERY_EXEMPTION in Saskatchewan. """ CA_SK_COMMERCIAL_FISHERY_EXEMPTION """ This customer is exempt from specific taxes for holding a valid CONTRACTOR_EXEMPTION in Saskatchewan. """ CA_SK_CONTRACTOR_EXEMPTION """ This customer is exempt from specific taxes for holding a valid FARMER_EXEMPTION in Saskatchewan. """ CA_SK_FARMER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid PRODUCTION_AND_MACHINERY_EXEMPTION in Saskatchewan. """ CA_SK_PRODUCTION_AND_MACHINERY_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Saskatchewan. """ CA_SK_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid SUB_CONTRACTOR_EXEMPTION in Saskatchewan. """ CA_SK_SUB_CONTRACTOR_EXEMPTION """ This customer is exempt from specific taxes for holding a valid STATUS_CARD_EXEMPTION in Canada. """ CA_STATUS_CARD_EXEMPTION """ This customer is exempt from VAT for purchases within the EU that is shipping from outside of customer's country. """ EU_REVERSE_CHARGE_EXEMPTION_RULE """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Alaska. """ US_AK_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Alabama. """ US_AL_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Arkansas. """ US_AR_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Arizona. """ US_AZ_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in California. """ US_CA_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Colorado. """ US_CO_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Connecticut. """ US_CT_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Washington DC. """ US_DC_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Delaware. """ US_DE_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Florida. """ US_FL_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Georgia. """ US_GA_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Hawaii. """ US_HI_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Iowa. """ US_IA_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Idaho. """ US_ID_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Illinois. """ US_IL_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Indiana. """ US_IN_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Kansas. """ US_KS_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Kentucky. """ US_KY_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Louisiana. """ US_LA_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Massachusetts. """ US_MA_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Maryland. """ US_MD_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Maine. """ US_ME_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Michigan. """ US_MI_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Minnesota. """ US_MN_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Missouri. """ US_MO_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Mississippi. """ US_MS_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Montana. """ US_MT_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in North Carolina. """ US_NC_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in North Dakota. """ US_ND_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Nebraska. """ US_NE_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in New Hampshire. """ US_NH_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in New Jersey. """ US_NJ_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in New Mexico. """ US_NM_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Nevada. """ US_NV_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in New York. """ US_NY_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Ohio. """ US_OH_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Oklahoma. """ US_OK_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Oregon. """ US_OR_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Pennsylvania. """ US_PA_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Rhode Island. """ US_RI_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in South Carolina. """ US_SC_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in South Dakota. """ US_SD_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Tennessee. """ US_TN_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Texas. """ US_TX_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Utah. """ US_UT_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Virginia. """ US_VA_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Vermont. """ US_VT_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Washington. """ US_WA_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Wisconsin. """ US_WI_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in West Virginia. """ US_WV_RESELLER_EXEMPTION """ This customer is exempt from specific taxes for holding a valid RESELLER_EXEMPTION in Wyoming. """ US_WY_RESELLER_EXEMPTION """ This customer is exempt from VPT (Vapour Products Tax) for holding a valid VPT_RESELLER_EXEMPTION in Newfoundland and Labrador. """ CA_NL_VPT_RESELLER_EXEMPTION """ This customer is exempt from VPT (Vapour Products Tax) for holding a valid VPT_RESELLER_EXEMPTION in Saskatchewan. """ CA_SK_VPT_RESELLER_EXEMPTION } """Represents the tax settings for a company location.""" type CompanyLocationTaxSettings { """Whether the location is exempt from taxes.""" taxExempt: Boolean! """The list of tax exemptions applied to the location.""" taxExemptions: [TaxExemption!]! """The tax registration ID for the company location.""" taxRegistrationId: String } """The subject line of a comment event.""" interface CommentEventSubject { """ Whether the timeline subject has a timeline comment. If true, then a timeline comment exists. """ hasTimelineComment: Boolean! """A globally-unique ID.""" id: ID! } """The valid statuses for a draft order.""" enum DraftOrderStatus { """The draft order has been paid.""" COMPLETED """An invoice for the draft order has been sent to the customer.""" INVOICE_SENT """ The draft order is open. It has not been paid, and an invoice hasn't been sent. """ OPEN } """ A warning that is displayed to the merchant when a change is made to a draft order. """ interface DraftOrderWarning { """The error code.""" errorCode: String! """The input field that the warning applies to.""" field: String! """The warning message.""" message: String! } """ Localization extensions associated with the specified resource. For example, the tax id for government invoice. """ interface HasLocalizationExtensions { """List of localization extensions for the resource.""" localizationExtensions( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """The country codes of the extensions.""" countryCodes: [CountryCode!] """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """The purpose of the extensions.""" purposes: [LocalizationExtensionPurpose!] """Reverse the order of the underlying list.""" reverse: Boolean = false ): LocalizationExtensionConnection! @deprecated(reason: "This connection will be removed in a future version. Use `localizedFields` instead.") } """Localized fields associated with the specified resource.""" interface HasLocalizedFields { """List of localized fields for the resource.""" localizedFields( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """The country codes of the extensions.""" countryCodes: [CountryCode!] """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """The purpose of the extensions.""" purposes: [LocalizedFieldPurpose!] """Reverse the order of the underlying list.""" reverse: Boolean = false ): LocalizedFieldConnection! } """ An auto-generated type for paginating through multiple PaymentSchedules. """ type PaymentScheduleConnection { edges: [PaymentScheduleEdge!]! """ A list of nodes that are contained in PaymentScheduleEdge. 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: [PaymentSchedule!]! """ 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 PaymentSchedule and a cursor during pagination. """ type PaymentScheduleEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of PaymentScheduleEdge.""" node: PaymentSchedule! } """ Represents the payment schedule for a single payment defined in the payment terms. """ type PaymentSchedule implements Node { """Amount owed for this payment schedule.""" amount: MoneyV2! @deprecated(reason: "Use `balanceDue`, `totalBalance`, or `Order.totalOutstandingSet` instead.") """Date and time when the payment schedule is paid or fulfilled.""" completedAt: DateTime """Date and time when the payment schedule is due.""" dueAt: DateTime """A globally-unique ID.""" id: ID! """Date and time when the invoice is sent.""" issuedAt: DateTime """The payment terms the payment schedule belongs to.""" paymentTerms: PaymentTerms! } """ The order's aggregated return status that's used for display purposes. An order might have multiple returns, so this field communicates the prioritized return status. The `OrderReturnStatus` enum is a supported filter parameter in the [`orders` query](https://shopify.dev/api/admin-graphql/latest/queries/orders#:~:text=reference_location_id-,return_status,-risk_level). """ enum OrderReturnStatus { """All return shipments from a return in this order were inspected.""" INSPECTION_COMPLETE """Some items in the order are being returned.""" IN_PROGRESS """No items in the order were returned.""" NO_RETURN """Some items in the order were returned.""" RETURNED """Some returns in the order were not completed successfully.""" RETURN_FAILED """A return was requested for some items in the order.""" RETURN_REQUESTED } """An auto-generated type for paginating through multiple Returns.""" type ReturnConnection { edges: [ReturnEdge!]! """ A list of nodes that are contained in ReturnEdge. 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: [Return!]! """ 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 Return and a cursor during pagination. """ type ReturnEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of ReturnEdge.""" node: Return! } """ Summary of risk characteristics for an order. See the [example query "Retrieves a list of all order risks for an order"](https://shopify.dev/docs/api/admin-graphql/unstable/queries/order?example=Retrieves+a+list+of+all+order+risks+for+an+order). """ type OrderRiskSummary { """The list of risk assessments for the order.""" assessments: [OrderRiskAssessment!]! """ The recommendation for the order based on the results of the risk assessments. This suggests the action the merchant should take with regards to its risk of fraud. """ recommendation: OrderRiskRecommendationResult! } """ The risk assessments for an order. See the [example query "Retrieves a list of all order risks for an order"](https://shopify.dev/docs/api/admin-graphql/unstable/queries/order?example=Retrieves+a+list+of+all+order+risks+for+an+order). """ type OrderRiskAssessment { """ Optional facts used to describe the risk assessment. The values in here are specific to the provider. See the [examples for the mutation orderRiskAssessmentCreate](https://shopify.dev/api/admin-graphql/unstable/mutations/orderRiskAssessmentCreate#section-examples). """ facts: [RiskFact!]! """ The app that provided the assessment, `null` if the assessment was provided by Shopify. """ provider: App """ The likelihood that the order is fraudulent, based on this risk assessment. """ riskLevel: RiskAssessmentResult! } """ A risk fact belongs to a single risk assessment and serves to provide additional context for an assessment. Risk facts are not necessarily tied to the result of the recommendation. """ type RiskFact { """A description of the fact.""" description: String! """ Indicates whether the fact is a negative, neutral or positive contributor with regards to risk. """ sentiment: RiskFactSentiment! } """List of possible values for a RiskFact sentiment.""" enum RiskFactSentiment { """A negative contributor that increases the risk.""" NEGATIVE """A neutral contributor with regards to risk.""" NEUTRAL """A positive contributor that lowers the risk.""" POSITIVE } """List of possible values for a RiskAssessment result.""" enum RiskAssessmentResult { """Indicates a high likelihood that the order is fraudulent.""" HIGH """Indicates a low likelihood that the order is fraudulent.""" LOW """Indicates a medium likelihood that the order is fraudulent.""" MEDIUM """ Indicates that the risk assessment will not provide a recommendation for the order. """ NONE """Indicates that the risk assessment is still pending.""" PENDING } """List of possible values for an OrderRiskRecommendation recommendation.""" enum OrderRiskRecommendationResult { """Recommends fulfilling the order.""" ACCEPT """Recommends cancelling the order.""" CANCEL """Recommends investigating the order by contacting buyers.""" INVESTIGATE """There is no recommended action for the order.""" NONE } """The likelihood that an order is fraudulent.""" enum OrderRiskLevel { """There is a high level of risk that this order is fraudulent.""" HIGH """There is a low level of risk that this order is fraudulent.""" LOW """There is a medium level of risk that this order is fraudulent.""" MEDIUM } """ Represents a fraud check on an order. As of version 2024-04 this resource is deprecated. Risk Assessments can be queried via the [OrderRisk Assessments API](https://shopify.dev/api/admin-graphql/2024-04/objects/OrderRiskAssessment). """ type OrderRisk { """ Whether the risk level is shown in the Shopify admin. If false, then this order risk is ignored when Shopify determines the overall risk level for the order. """ display: Boolean! @deprecated(reason: "This field is deprecated in version 2024-04") """ The likelihood that an order is fraudulent, based on this order risk. The level can be set by Shopify risk analysis or by an app. """ level: OrderRiskLevel @deprecated(reason: "This field is deprecated in version 2024-04. Please use OrderRiskAssessment.riskLevel") """The risk message that's shown to the merchant in the Shopify admin.""" message: String @deprecated(reason: "This field is deprecated in version 2024-04") } """An auto-generated type for paginating through multiple ShippingLines.""" type ShippingLineConnection { edges: [ShippingLineEdge!]! """ A list of nodes that are contained in ShippingLineEdge. 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: [ShippingLine!]! """ 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 ShippingLine and a cursor during pagination. """ type ShippingLineEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of ShippingLineEdge.""" node: ShippingLine! } """A summary of Shopify Protect details for an order.""" type ShopifyProtectOrderSummary { """ The eligibility details of an order's protection against fraudulent chargebacks. """ eligibility: ShopifyProtectOrderEligibility! """The status of the order's protection against fraudulent chargebacks.""" status: ShopifyProtectStatus! } """ The eligibility details of an order's protection against fraudulent chargebacks by Shopify Protect. """ type ShopifyProtectOrderEligibility { """ The status of whether an order is eligible for protection against fraudulent chargebacks. """ status: ShopifyProtectEligibilityStatus! } """ The status of an order's eligibility for protection against fraudulent chargebacks by Shopify Protect. """ enum ShopifyProtectEligibilityStatus { """ The order is eligible for protection against fraudulent chargebacks. If an order is updated, the order's eligibility may change and protection could be removed. """ ELIGIBLE """ The order isn't eligible for protection against fraudulent chargebacks. """ NOT_ELIGIBLE """ The eligibility of the order is pending and has not yet been determined. """ PENDING } """The status of an order's protection with Shopify Protect.""" enum ShopifyProtectStatus { """ The protection for the order is active and eligible for reimbursement against fraudulent chargebacks. If an order is updated, the order's eligibility may change and protection could become inactive. """ ACTIVE """ The protection for an order isn't active because the order didn't meet eligibility requirements. """ INACTIVE """ The order received a chargeback but the order wasn't protected because it didn't meet coverage requirements. """ NOT_PROTECTED """ The protection for the order is pending and has not yet been determined. """ PENDING """The order received a fraudulent chargeback and it was protected.""" PROTECTED } """ Represents a refund suggested by Shopify based on the items being reimbursed. You can then use the suggested refund object to generate an actual refund. """ type SuggestedRefund { """The total monetary value to be refunded.""" amount: Money! @deprecated(reason: "Use `amountSet` instead.") """ The total monetary value to be refunded in shop and presentment currencies. """ amountSet: MoneyBag! """The sum of all the discounted prices of the line items being refunded.""" discountedSubtotalSet: MoneyBag! """The total monetary value available to refund.""" maximumRefundable: Money! @deprecated(reason: "Use `maximumRefundableSet` instead.") """ The total monetary value available to refund in shop and presentment currencies. """ maximumRefundableSet: MoneyBag! """A list of duties to be refunded from the order.""" refundDuties: [RefundDuty!]! """A list of line items to be refunded, along with restock instructions.""" refundLineItems: [RefundLineItem!]! """The shipping costs to be refunded from the order.""" shipping: ShippingRefund! """The sum of all the prices of the line items being refunded.""" subtotal: Money! @deprecated(reason: "Use `subtotalSet` instead.") """ The sum of all the prices of the line items being refunded in shop and presentment currencies. """ subtotalSet: MoneyBag! """A list of suggested order transactions.""" suggestedTransactions: [SuggestedOrderTransaction!]! """ The total cart discount amount that was applied to all line items in this refund. """ totalCartDiscountAmountSet: MoneyBag! """ The sum of all the duties being refunded from the order in shop and presentment currencies. The value must be positive. """ totalDutiesSet: MoneyBag! """ The sum of the taxes being refunded from the order in shop and presentment currencies. The value must be positive. """ totalTaxSet: MoneyBag! """ The sum of the taxes being refunded from the order. The value must be positive. """ totalTaxes: Money! @deprecated(reason: "Use `totalTaxSet` instead.") } """The input fields required to reimburse line items on a refund.""" input RefundLineItemInput { """The ID of the line item in the refund.""" lineItemId: ID! """ The intended location for restocking. If the `restockType` is set to `NO_RESTOCK`, then this value is empty. """ locationId: ID """The quantity of the associated line item to be refunded.""" quantity: Int! """The type of restock for this line item.""" restockType: RefundLineItemRestockType } """ The rounding adjustment applied to total payment or refund received for an Order involving cash payments. """ type CashRoundingAdjustment { """ The rounding adjustment that can be applied to totalReceived for an Order involving cash payments in shop and presentment currencies. Could be a positive or negative value. Value is 0 if there's no rounding, or for non-cash payments. """ paymentSet: MoneyBag! """ The rounding adjustment that can be applied to totalRefunded for an Order involving cash payments in shop and presentment currencies. Could be a positive or negative value. Value is 0 if there's no rounding, or for non-cash refunds. """ refundSet: MoneyBag! } """ An object that represents whether a customer can be merged with another customer. """ type CustomerMergeable { """The list of fields preventing the customer from being merged.""" errorFields: [CustomerMergeErrorFieldType!]! """Whether the customer can be merged with another customer.""" isMergeable: Boolean! """The merge request if one is currently in progress.""" mergeInProgress: CustomerMergeRequest """The reason why the customer can't be merged with another customer.""" reason: String } """ The types of the hard blockers preventing a customer from being merged to another customer. """ enum CustomerMergeErrorFieldType { """The customer is a company contact.""" COMPANY_CONTACT """The customer has payment methods.""" CUSTOMER_PAYMENT_METHODS """The customer does not exist.""" DELETED_AT """The customer has gift cards.""" GIFT_CARDS """The customer has a merge in progress.""" MERGE_IN_PROGRESS """The customer has a multipass identifier.""" MULTIPASS_IDENTIFIER """The customer has a pending data request.""" PENDING_DATA_REQUEST """The customer has a pending or completed redaction.""" REDACTED_AT """The customer has store credit.""" STORE_CREDIT """The customer has a subscription history.""" SUBSCRIPTIONS """The override fields are invalid.""" OVERRIDE_FIELDS } """A merge request for merging two customers.""" type CustomerMergeRequest { """The merge errors that occurred during the customer merge request.""" customerMergeErrors: [CustomerMergeError!]! """The UUID of the merge job.""" jobId: ID """The ID of the customer resulting from the merge.""" resultingCustomerId: ID! """The status of the customer merge request.""" status: CustomerMergeRequestStatus! } """The error blocking a customer merge.""" type CustomerMergeError { """The list of fields preventing the customer from being merged.""" errorFields: [CustomerMergeErrorFieldType!]! """The customer merge error message.""" message: String! } """The status of the customer merge request.""" enum CustomerMergeRequestStatus { """The customer merge request has been completed.""" COMPLETED """The customer merge request has failed.""" FAILED """The customer merge request is currently in progress.""" IN_PROGRESS """The customer merge request has been requested.""" REQUESTED } """ An auto-generated type for paginating through multiple CustomerPaymentMethods. """ type CustomerPaymentMethodConnection { edges: [CustomerPaymentMethodEdge!]! """ A list of nodes that are contained in CustomerPaymentMethodEdge. 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: [CustomerPaymentMethod!]! """ 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 CustomerPaymentMethod and a cursor during pagination. """ type CustomerPaymentMethodEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of CustomerPaymentMethodEdge.""" node: CustomerPaymentMethod! } """A customer's payment method.""" type CustomerPaymentMethod implements Node { """The customer to whom the payment method belongs.""" customer: Customer """The ID of this payment method.""" id: ID! """The instrument for this payment method.""" instrument: CustomerPaymentInstrument """The time that the payment method was revoked.""" revokedAt: DateTime """The revocation reason for this payment method.""" revokedReason: CustomerPaymentMethodRevocationReason """List Subscription Contracts.""" subscriptionContracts( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): SubscriptionContractConnection! } """All possible instruments for CustomerPaymentMethods.""" union CustomerPaymentInstrument = CustomerCreditCard | CustomerPaypalBillingAgreement | CustomerShopPayAgreement | BankAccount """Represents a card instrument for customer payment method.""" type CustomerCreditCard { """The billing address of the card.""" billingAddress: CustomerCreditCardBillingAddress """The brand of the card.""" brand: String! """Whether the card is about to expire.""" expiresSoon: Boolean! """The expiry month of the card.""" expiryMonth: Int! """The expiry year of the card.""" expiryYear: Int! """The card's BIN number.""" firstDigits: String """ The payment method can be revoked if there are no active subscription contracts. """ isRevocable: Boolean! """The last 4 digits of the card.""" lastDigits: String! """The masked card number with only the last 4 digits displayed.""" maskedNumber: String! """The name of the card holder.""" name: String! """The source of the card if coming from a wallet such as Apple Pay.""" source: String """The last 4 digits of the Device Account Number.""" virtualLastDigits: String } """Represents a PayPal instrument for customer payment method.""" type CustomerPaypalBillingAgreement { """The billing address of this payment method.""" billingAddress: CustomerPaymentInstrumentBillingAddress """Whether the PayPal billing agreement is inactive.""" inactive: Boolean! """ Whether the payment method can be revoked.The payment method can be revoked if there are no active subscription contracts. """ isRevocable: Boolean! """The customers's PayPal account email address.""" paypalAccountEmail: String } """Represents a Shop Pay card instrument for customer payment method.""" type CustomerShopPayAgreement { """The billing address of the card.""" billingAddress: CustomerCreditCardBillingAddress """Whether the card is about to expire.""" expiresSoon: Boolean! """The expiry month of the card.""" expiryMonth: Int! """The expiry year of the card.""" expiryYear: Int! """Whether the Shop Pay billing agreement is inactive.""" inactive: Boolean! """ The payment method can be revoked if there are no active subscription contracts. """ isRevocable: Boolean! """The last 4 digits of the card.""" lastDigits: String! """The masked card number with only the last 4 digits displayed.""" maskedNumber: String! """The name of the card holder.""" name: String! } """The revocation reason types for a customer payment method.""" enum CustomerPaymentMethodRevocationReason { """The Authorize.net payment gateway is not enabled.""" AUTHORIZE_NET_GATEWAY_NOT_ENABLED """ Authorize.net did not return any payment methods. Make sure that the correct Authorize.net account is linked. """ AUTHORIZE_NET_RETURNED_NO_PAYMENT_METHOD """Failed to contact Braintree API.""" BRAINTREE_API_AUTHENTICATION_ERROR """The Braintree payment gateway is not enabled.""" BRAINTREE_GATEWAY_NOT_ENABLED """ The Braintree payment method type should be a credit card or Apple Pay card. """ BRAINTREE_PAYMENT_METHOD_NOT_CARD """ Braintree returned no payment methods. Make sure the correct Braintree account is linked. """ BRAINTREE_RETURNED_NO_PAYMENT_METHOD """The billing address failed to retrieve.""" FAILED_TO_RETRIEVE_BILLING_ADDRESS """The credit card failed to update.""" FAILED_TO_UPDATE_CREDIT_CARD """The payment method was manually revoked.""" MANUALLY_REVOKED """ The payment method was replaced with an existing payment method. The associated contracts have been migrated to the other payment method. """ MERGED """Verification of payment method failed.""" PAYMENT_METHOD_VERIFICATION_FAILED """Failed to contact the Stripe API.""" STRIPE_API_AUTHENTICATION_ERROR """Invalid request. Failed to retrieve payment method from Stripe.""" STRIPE_API_INVALID_REQUEST_ERROR """The Stripe payment gateway is not enabled.""" STRIPE_GATEWAY_NOT_ENABLED """The Stripe payment method type should be card.""" STRIPE_PAYMENT_METHOD_NOT_CARD """ Stripe did not return any payment methods. Make sure that the correct Stripe account is linked. """ STRIPE_RETURNED_NO_PAYMENT_METHOD """ Verification of the payment method failed due to 3DS not being supported. """ THREE_D_SECURE_FLOW_IN_VERIFICATION_NOT_IMPLEMENTED """The customer redacted their payment method.""" CUSTOMER_REDACTED """CVV attempts limit exceeded.""" CVV_ATTEMPTS_LIMIT_EXCEEDED """Too many consecutive failed attempts.""" TOO_MANY_CONSECUTIVE_FAILURES } """ An auto-generated type for paginating through multiple SubscriptionContracts. """ type SubscriptionContractConnection { edges: [SubscriptionContractEdge!]! """ A list of nodes that are contained in SubscriptionContractEdge. 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: [SubscriptionContract!]! """ 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 SubscriptionContract and a cursor during pagination. """ type SubscriptionContractEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of SubscriptionContractEdge.""" node: SubscriptionContract! } """ The possible product subscription states for a customer, as defined by the customer's subscription contracts. """ enum CustomerProductSubscriberStatus { """The customer has at least one active subscription contract.""" ACTIVE """ The customer's last subscription contract was cancelled and there are no other active or paused subscription contracts. """ CANCELLED """ The customer's last subscription contract expired and there are no other active or paused subscription contracts. """ EXPIRED """ The customer's last subscription contract failed and there are no other active or paused subscription contracts. """ FAILED """The customer has never had a subscription contract.""" NEVER_SUBSCRIBED """ The customer has at least one paused subscription contract and there are no other active subscription contracts. """ PAUSED } """ The record of when a customer consented to receive marketing material by SMS. The customer's consent state reflects the record with the most recent date when consent was updated. """ type CustomerSmsMarketingConsentState { """ The source from which the SMS marketing information for the customer was collected. """ consentCollectedFrom: CustomerConsentCollectedFrom """ The date and time when the customer consented to receive marketing material by SMS. If no date is provided, then the date and time when the consent information was sent is used. """ consentUpdatedAt: DateTime """ The marketing subscription opt-in level that was set when the customer consented to receive marketing information. """ marketingOptInLevel: CustomerMarketingOptInLevel! """The current SMS marketing state for the customer.""" marketingState: CustomerSmsMarketingState! } """ The source that collected the customer's consent to receive marketing materials. """ enum CustomerConsentCollectedFrom { """The customer consent was collected outside of Shopify.""" OTHER """The customer consent was collected by Shopify.""" SHOPIFY } """The valid SMS marketing states for a customer’s phone number.""" enum CustomerSmsMarketingState { """The customer hasn't subscribed to SMS marketing.""" NOT_SUBSCRIBED """The customer is in the process of subscribing to SMS marketing.""" PENDING """ The customer's personal data is erased. This value is internally-set and read-only. """ REDACTED """The customer is subscribed to SMS marketing.""" SUBSCRIBED """ The customer isn't currently subscribed to SMS marketing but was previously subscribed. """ UNSUBSCRIBED } """The valid values for the state of a customer's account with a shop.""" enum CustomerState { """The customer declined the email invite to create an account.""" DECLINED """ The customer doesn't have an active account. Customer accounts can be disabled from the Shopify admin at any time. """ DISABLED """The customer has created an account.""" ENABLED """The customer has received an email invite to create an account.""" INVITED } """A customer's computed statistics.""" type CustomerStatistics { """The predicted spend tier of a customer with a shop.""" predictedSpendTier: CustomerPredictedSpendTier } """The valid tiers for the predicted spend of a customer with a shop.""" enum CustomerPredictedSpendTier { """ The customer's spending is predicted to be in the top spending range for the shop in the following year. """ HIGH """ The customer's spending is predicted to be zero, or in the lowest spending range for the shop in the following year. """ LOW """ The customer's spending is predicted to be in the normal spending range for the shop in the following year. """ MEDIUM } """The set of valid sort keys for the CompanyContact query.""" enum CompanyContactSortKeys { """Sort by the `company_id` value.""" COMPANY_ID """Sort by the `created_at` value.""" CREATED_AT """Sort by the `email` value.""" EMAIL """Sort by the `id` value.""" ID """Sort by the `name` value.""" NAME """Sort by the `name_email` value.""" NAME_EMAIL """ 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 } """ An auto-generated type for paginating through multiple CompanyLocations. """ type CompanyLocationConnection { edges: [CompanyLocationEdge!]! """ A list of nodes that are contained in CompanyLocationEdge. 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: [CompanyLocation!]! """ 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 CompanyLocation and a cursor during pagination. """ type CompanyLocationEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of CompanyLocationEdge.""" node: CompanyLocation! } """The set of valid sort keys for the CompanyLocation query.""" enum CompanyLocationSortKeys { """Sort by the `company_and_location_name` value.""" COMPANY_AND_LOCATION_NAME """Sort by the `company_id` value.""" COMPANY_ID """Sort by the `created_at` value.""" CREATED_AT """Sort by the `id` value.""" ID """Sort by the `name` value.""" NAME """ 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 `updated_at` value.""" UPDATED_AT } """Represents any file other than HTML.""" type GenericFile implements File & Node { """A word or phrase to describe the contents or the function of a file.""" alt: String """ The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) when the file was created. """ createdAt: DateTime! """Any errors that have occurred on the file.""" fileErrors: [FileError!]! """The status of the file.""" fileStatus: FileStatus! """A globally-unique ID.""" id: ID! """The generic file's MIME type.""" mimeType: String """The generic file's size in bytes.""" originalFileSize: Int """The preview image for the media.""" preview: MediaPreviewImage """ The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) when the file was last updated. """ updatedAt: DateTime! """The generic file's URL.""" url: URL } """Provides an object instance represented by a MetaobjectDefinition.""" type Metaobject implements Node { """Metaobject capabilities for this Metaobject.""" capabilities: MetaobjectCapabilityData! """The app used to create the object.""" createdBy: App! """The app used to create the object.""" createdByApp: App! """The staff member who created the metaobject.""" createdByStaff: StaffMember """The MetaobjectDefinition that models this object type.""" definition: MetaobjectDefinition! """The preferred display name field value of the metaobject.""" displayName: String! """ The field for an object key, or null if the key has no field definition. """ field( """The metaobject key to access.""" key: String! ): MetaobjectField """ All ordered fields of the metaobject with their definitions and values. """ fields: [MetaobjectField!]! """The unique handle of the object, useful as a custom ID.""" handle: String! """A globally-unique ID.""" id: ID! """List of back references metafields that belong to the resource.""" referencedBy( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): MetafieldRelationConnection! """The staff member who created the metaobject.""" staffMember: StaffMember @deprecated(reason: "Use `createdByStaff` instead.") """ The recommended field to visually represent this metaobject. May be a file reference or color field. """ thumbnailField: MetaobjectField """The type of the metaobject.""" type: String! """When the object was last updated.""" updatedAt: DateTime! } """Provides the capabilities of a metaobject.""" type MetaobjectCapabilityData { """The Online Store capability for this metaobject.""" onlineStore: MetaobjectCapabilityDataOnlineStore """The publishable capability for this metaobject.""" publishable: MetaobjectCapabilityDataPublishable } """The Online Store capability for the parent metaobject.""" type MetaobjectCapabilityDataOnlineStore { """The theme template used when viewing the metaobject in a store.""" templateSuffix: String } """The publishable capability for the parent metaobject.""" type MetaobjectCapabilityDataPublishable { """The visibility status of this metaobject across all channels.""" status: MetaobjectStatus! } """Defines visibility status for metaobjects.""" enum MetaobjectStatus { """The metaobjects is active for public use.""" ACTIVE """The metaobjects is an internal record.""" DRAFT } """ Provides the definition of a generic object structure composed of metafields. """ type MetaobjectDefinition implements Node { """Access configuration for the metaobject definition.""" access: MetaobjectAccess! """The capabilities of the metaobject definition.""" capabilities: MetaobjectCapabilities! """The app used to create the metaobject definition.""" createdByApp: App! """The staff member who created the metaobject definition.""" createdByStaff: StaffMember """The administrative description.""" description: String """The key of a field to reference as the display name for each object.""" displayNameKey: String """The fields defined for this object type.""" fieldDefinitions: [MetaobjectFieldDefinition!]! """ Whether this metaobject definition has field whose type can visually represent a metaobject with the `thumbnailField`. """ hasThumbnailField: Boolean! """A globally-unique ID.""" id: ID! """ A paginated connection to the metaobjects associated with the definition. """ metaobjects( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): MetaobjectConnection! """The count of metaobjects created for the definition.""" metaobjectsCount: Int! """The human-readable name.""" name: String! """ The type of the object definition. Defines the namespace of associated metafields. """ type: String! } """Provides metaobject definition's access configuration.""" type MetaobjectAccess { """ Access configuration for Admin API surface areas, including the GraphQL Admin API. """ admin: MetaobjectAdminAccess! """ Access configuration for Storefront surface areas, including the GraphQL Storefront API and Liquid. """ storefront: MetaobjectStorefrontAccess! } """ Defines how the metaobjects of a definition can be accessed in admin API surface areas. """ enum MetaobjectAdminAccess { """ Applications that act on behalf of merchants can read metaobjects. Only the owning application can write metaobjects. """ MERCHANT_READ """ The owning application, as well as applications that act on behalf of merchants can read and write metaobjects. No other applications can read or write metaobjects. """ MERCHANT_READ_WRITE """Only the application that owns a metaobject can read and write to it.""" PRIVATE """ All applications with the `metaobjects` access scope can read metaobjects. Only the owning application can write metaobjects. """ PUBLIC_READ """ All applications with the `metaobjects` access scope can read and write metaobjects. """ PUBLIC_READ_WRITE } """ Defines how the metaobjects of a definition can be accessed in Storefront API surface areas, including Liquid and the GraphQL Storefront API. """ enum MetaobjectStorefrontAccess { """Metaobjects are not accessible in any Storefront API surface area.""" NONE """ Metaobjects are accessible in the GraphQL Storefront API by any application with the `unauthenticated_read_metaobjects` access scope. Metaobjects are accessible in online store Liquid templates. """ PUBLIC_READ } """Provides the capabilities of a metaobject definition.""" type MetaobjectCapabilities { """ Indicates whether a metaobject definition can be displayed as a page on the Online Store. """ onlineStore: MetaobjectCapabilitiesOnlineStore """Indicate whether a metaobject definition is publishable.""" publishable: MetaobjectCapabilitiesPublishable! """ Indicate whether a metaobject definition is renderable and exposes SEO data. """ renderable: MetaobjectCapabilitiesRenderable """Indicate whether a metaobject definition is translatable.""" translatable: MetaobjectCapabilitiesTranslatable! } """The Online Store capability of a metaobject definition.""" type MetaobjectCapabilitiesOnlineStore { """The data associated with the Online Store capability.""" data: MetaobjectCapabilityDefinitionDataOnlineStore """Indicates if the capability is enabled.""" enabled: Boolean! } """The Online Store capability data for the metaobject definition.""" type MetaobjectCapabilityDefinitionDataOnlineStore { """ Flag indicating if a sufficient number of redirects are available to redirect all published entries. """ canCreateRedirects: Boolean! """ The URL handle for accessing pages of this metaobject type in the Online Store. """ urlHandle: String! } """The publishable capability of a metaobject definition.""" type MetaobjectCapabilitiesPublishable { """Indicates if the capability is enabled.""" enabled: Boolean! } """The renderable capability of a metaobject definition.""" type MetaobjectCapabilitiesRenderable { """The data associated with the renderable capability.""" data: MetaobjectCapabilityDefinitionDataRenderable """Indicates if the capability is enabled.""" enabled: Boolean! } """The renderable capability data for the metaobject definition.""" type MetaobjectCapabilityDefinitionDataRenderable { """The metaobject field used as an alias for the SEO page description.""" metaDescriptionKey: String """The metaobject field used as an alias for the SEO page title.""" metaTitleKey: String } """The translatable capability of a metaobject definition.""" type MetaobjectCapabilitiesTranslatable { """Indicates if the capability is enabled.""" enabled: Boolean! } """ Defines a field for a MetaobjectDefinition with properties such as the field's data type and validations. """ type MetaobjectFieldDefinition { """The administrative description.""" description: String """ A key name used to identify the field within the metaobject composition. """ key: String! """The human-readable name.""" name: String! """Required status of the field within the metaobject composition.""" required: Boolean! """The type of data that the field stores.""" type: MetafieldDefinitionType! """ A list of [validation options](https://shopify.dev/apps/metafields/definitions/validation) for the field. For example, a field with the type `date` can set a minimum date requirement. """ validations: [MetafieldDefinitionValidation!]! } """An auto-generated type for paginating through multiple Metaobjects.""" type MetaobjectConnection { edges: [MetaobjectEdge!]! """ A list of nodes that are contained in MetaobjectEdge. 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: [Metaobject!]! """ 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 Metaobject and a cursor during pagination. """ type MetaobjectEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of MetaobjectEdge.""" node: Metaobject! } """Provides a field definition and the data value assigned to it.""" type MetaobjectField { """The field definition for this object key.""" definition: MetaobjectFieldDefinition! """The assigned field value in JSON format.""" jsonValue: JSON """The object key of this field.""" key: String! """For resource reference fields, provides the referenced object.""" reference: MetafieldReference """ For resource reference list fields, provides the list of referenced objects. """ references( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int ): MetafieldReferenceConnection """ For file reference or color fields, provides visual attributes for this field. """ thumbnail: MetaobjectThumbnail """The type of the field.""" type: String! """ The assigned field value, always stored as a string regardless of the field type. """ value: String } """ An auto-generated type for paginating through multiple MetafieldReferences. """ type MetafieldReferenceConnection { edges: [MetafieldReferenceEdge!]! """ A list of nodes that are contained in MetafieldReferenceEdge. 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: [MetafieldReference]! """ 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 MetafieldReference and a cursor during pagination. """ type MetafieldReferenceEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of MetafieldReferenceEdge.""" node: MetafieldReference } """Provides attributes for visual representation.""" type MetaobjectThumbnail { """The file to be used for visual representation of this metaobject.""" file: File """ The hexadecimal color code to be used for respresenting this metaobject. """ hex: String } """ An auto-generated type for paginating through multiple MetafieldRelations. """ type MetafieldRelationConnection { edges: [MetafieldRelationEdge!]! """ A list of nodes that are contained in MetafieldRelationEdge. 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: [MetafieldRelation!]! """ 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 MetafieldRelation and a cursor during pagination. """ type MetafieldRelationEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of MetafieldRelationEdge.""" node: MetafieldRelation! } """ Defines a relation between two resources via a reference metafield. The referencer owns the joining field with a given namespace and key, while the target is referenced by the field. """ type MetafieldRelation { """The key of the field making the reference.""" key: String! """The name of the field making the reference.""" name: String! """ The namespace of the metafield making the reference, or type of the metaobject. """ namespace: String! """The resource making the reference.""" referencer: MetafieldReferencer! """The referenced resource.""" target: MetafieldReference! } """ Types of resources that may use metafields to reference other resources. """ union MetafieldReferencer = AppInstallation | Article | Blog | Collection | Company | CompanyLocation | Customer | DeliveryCustomization | DiscountAutomaticNode | DiscountCodeNode | DiscountNode | DraftOrder | FulfillmentOrder | Location | Market | Metaobject | Order | Page | PaymentCustomization | Product | ProductVariant | Shop """Represents an installed application on a shop.""" type AppInstallation implements HasMetafields & Node { """ The access scopes granted to the application by a merchant during installation. """ accessScopes: [AccessScope!]! """ The active application subscriptions billed to the shop on a recurring basis. """ activeSubscriptions: [AppSubscription!]! """All subscriptions created for a shop.""" allSubscriptions( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: AppSubscriptionSortKeys = CREATED_AT ): AppSubscriptionConnection! """Application which is installed.""" app: App! """Channel associated with the installed application.""" channel: Channel @deprecated(reason: "Use `publication` instead.") """Credits that can be used towards future app purchases.""" credits( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: AppTransactionSortKeys = CREATED_AT ): AppCreditConnection! """A globally-unique ID.""" id: ID! """The URL to launch the application.""" launchUrl: URL! """ 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( """The key for the metafield.""" key: String! """ The container the metafield belongs to. If omitted, the app-reserved namespace will be used. """ namespace: String ): Metafield """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. """ metafields( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ List of keys of metafields in the format `namespace.key`, will be returned in the same format. """ keys: [String!] """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. """ namespace: String """Reverse the order of the underlying list.""" reverse: Boolean = false ): MetafieldConnection! """One-time purchases to a shop.""" oneTimePurchases( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: AppTransactionSortKeys = CREATED_AT ): AppPurchaseOneTimeConnection! """The publication associated with the installed application.""" publication: Publication """ The records that track the externally-captured revenue for the app. The records are used for revenue attribution purposes. """ revenueAttributionRecords( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: AppRevenueAttributionRecordSortKeys = CREATED_AT ): AppRevenueAttributionRecordConnection! """Subscriptions charge to a shop on a recurring basis.""" subscriptions: [AppSubscription!]! @deprecated(reason: "Use `activeSubscriptions` instead.") """The URL to uninstall the application.""" uninstallUrl: URL } """ Provides users access to services and/or features for a duration of time. """ type AppSubscription implements Node { """The date and time when the app subscription was created.""" createdAt: DateTime! """ The date and time when the current app subscription period ends. Returns `null` if the subscription isn't active. """ currentPeriodEnd: DateTime """A globally-unique ID.""" id: ID! """The plans attached to the app subscription.""" lineItems: [AppSubscriptionLineItem!]! """The name of the app subscription.""" name: String! """ The URL that the merchant is redirected to after approving the app subscription. """ returnUrl: URL! """The status of the app subscription.""" status: AppSubscriptionStatus! """Specifies whether the app subscription is a test transaction.""" test: Boolean! """ The number of free trial days, starting at the subscription's creation date, by which billing is delayed. """ trialDays: Int! } """The plan attached to an app subscription.""" type AppSubscriptionLineItem { """A globally-unique ID.""" id: ID! """The pricing model for the app subscription.""" plan: AppPlanV2! """A list of the store's usage records for a usage pricing plan.""" usageRecords( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: AppUsageRecordSortKeys = CREATED_AT ): AppUsageRecordConnection! } """The app plan that the merchant is subscribed to.""" 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. """ union AppPricingDetails = AppRecurringPricing | AppUsagePricing """ 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). """ type AppRecurringPricing { """ The discount applied to the subscription for a given number of billing intervals. """ discount: 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! } """Discount applied to the recurring pricing portion of a subscription.""" type AppSubscriptionDiscount { """ The total number of billing intervals to which the discount will be applied. The discount will be applied to an indefinite number of billing intervals if this value is blank. """ durationLimitInIntervals: Int """The price of the subscription after the discount is applied.""" priceAfterDiscount: MoneyV2! """ The remaining number of billing intervals to which the discount will be applied. """ remainingDurationInIntervals: Int """The value of the discount applied every billing interval.""" value: AppSubscriptionDiscountValue! } """The value of the discount.""" union AppSubscriptionDiscountValue = AppSubscriptionDiscountAmount | AppSubscriptionDiscountPercentage """The fixed amount value of a discount.""" type AppSubscriptionDiscountAmount { """The fixed amount value of a discount.""" amount: MoneyV2! } """The percentage value of a discount.""" type AppSubscriptionDiscountPercentage { """The percentage value of a discount.""" percentage: Float! } """The frequency at which the shop is billed for an app subscription.""" enum AppPricingInterval { """The app subscription bills the shop annually.""" ANNUAL """The app subscription bills the shop every 30 days.""" EVERY_30_DAYS } """ Defines a usage pricing model for the app subscription. These charges are variable based on how much the merchant uses the app. """ type AppUsagePricing { """The total usage records for interval.""" balanceUsed: MoneyV2! """ The capped amount prevents the merchant from being charged for any usage over that amount during a billing period. This prevents billing from exceeding a maximum threshold over the duration of the billing period. For the merchant to continue using the app after exceeding a capped amount, they would need to agree to a new usage charge. """ cappedAmount: MoneyV2! """The frequency with which the app usage records are billed.""" interval: AppPricingInterval! """ The terms and conditions for app usage pricing. Must be present in order to create usage charges. The terms are presented to the merchant when they approve an app's usage charges. """ terms: String! } """ An auto-generated type for paginating through multiple AppUsageRecords. """ type AppUsageRecordConnection { edges: [AppUsageRecordEdge!]! """ A list of nodes that are contained in AppUsageRecordEdge. 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: [AppUsageRecord!]! """ 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 AppUsageRecord and a cursor during pagination. """ type AppUsageRecordEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of AppUsageRecordEdge.""" node: AppUsageRecord! } """Store usage for app subscriptions with usage pricing.""" type AppUsageRecord implements Node { """The date and time when the usage record was created.""" createdAt: DateTime! """The description of the app usage record.""" description: String! """A globally-unique ID.""" id: ID! """A unique key generated by the client to avoid duplicate charges.""" idempotencyKey: String """The price of the usage record.""" price: MoneyV2! """Defines the usage pricing plan the merchant is subscribed to.""" subscriptionLineItem: AppSubscriptionLineItem! } """The set of valid sort keys for the AppUsageRecord query.""" enum AppUsageRecordSortKeys { """Sort by the `created_at` value.""" CREATED_AT """Sort by the `id` value.""" ID } """The status of the app subscription.""" enum AppSubscriptionStatus { """ The app subscription has been approved by the merchant and is ready to be activated by the app. """ ACCEPTED @deprecated(reason: "As of API version 2021-01, when a merchant approves an app subscription, the status immediately transitions from `pending` to `active`.") """ The app subscription has been approved by the merchant. Active app subscriptions are billed to the shop. After payment, partners receive payouts. """ ACTIVE """ The app subscription was cancelled by the app. This could be caused by the app being uninstalled, a new app subscription being activated, or a direct cancellation by the app. This is a terminal state. """ CANCELLED """ The app subscription was declined by the merchant. This is a terminal state. """ DECLINED """ The app subscription wasn't approved by the merchant within two days of being created. This is a terminal state. """ EXPIRED """ The app subscription is on hold due to non-payment. The subscription re-activates after payments resume. """ FROZEN """The app subscription is pending approval by the merchant.""" PENDING } """ An auto-generated type for paginating through multiple AppSubscriptions. """ type AppSubscriptionConnection { edges: [AppSubscriptionEdge!]! """ A list of nodes that are contained in AppSubscriptionEdge. 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: [AppSubscription!]! """ 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 AppSubscription and a cursor during pagination. """ type AppSubscriptionEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of AppSubscriptionEdge.""" node: AppSubscription! } """The set of valid sort keys for the AppSubscription query.""" enum AppSubscriptionSortKeys { """Sort by the `created_at` value.""" CREATED_AT """Sort by the `id` value.""" ID } """An auto-generated type for paginating through multiple AppCredits.""" type AppCreditConnection { edges: [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: [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. """ type AppCreditEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of AppCreditEdge.""" node: AppCredit! } """ App credits can be applied by the merchant towards future app purchases, subscriptions, or usage records in Shopify. """ type AppCredit implements 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: DateTime! """The description of the app credit.""" description: String! """A globally-unique ID.""" id: ID! """Whether the app credit is a test transaction.""" test: Boolean! } """The set of valid sort keys for the AppTransaction query.""" enum AppTransactionSortKeys { """Sort by the `created_at` value.""" CREATED_AT """Sort by the `id` value.""" ID } """ An auto-generated type for paginating through multiple AppPurchaseOneTimes. """ type AppPurchaseOneTimeConnection { edges: [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: [AppPurchaseOneTime!]! """ 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 AppPurchaseOneTime and a cursor during pagination. """ type AppPurchaseOneTimeEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of AppPurchaseOneTimeEdge.""" node: AppPurchaseOneTime! } """Services and features purchased once by a store.""" type AppPurchaseOneTime implements AppPurchase & Node { """The date and time when the app purchase occurred.""" createdAt: DateTime! """A globally-unique ID.""" id: ID! """The name of the app purchase.""" name: String! """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: Boolean! } """ 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. """ 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. """ ACCEPTED @deprecated(reason: "As of API version 2021-01, when a merchant accepts an app purchase, the status immediately changes from `pending` to `active`.") """ 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 """The app purchase was declined by the merchant.""" DECLINED """The app purchase was not accepted within two days of being created.""" EXPIRED """The app purchase is pending approval by the merchant.""" PENDING } """Services and features purchased once by the store.""" interface AppPurchase { """The date and time when the app purchase occurred.""" createdAt: DateTime! """The name of the app purchase.""" name: String! """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: Boolean! } """ An auto-generated type for paginating through multiple AppRevenueAttributionRecords. """ type AppRevenueAttributionRecordConnection { edges: [AppRevenueAttributionRecordEdge!]! """ A list of nodes that are contained in AppRevenueAttributionRecordEdge. 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: [AppRevenueAttributionRecord!]! """ 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 AppRevenueAttributionRecord and a cursor during pagination. """ type AppRevenueAttributionRecordEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of AppRevenueAttributionRecordEdge.""" node: AppRevenueAttributionRecord! } """Represents app revenue that was captured externally by the partner.""" type AppRevenueAttributionRecord implements Node { """The financial amount captured in this attribution.""" amount: MoneyV2! """The timestamp when the financial amount was captured.""" capturedAt: DateTime! """The timestamp at which this revenue attribution was issued.""" createdAt: DateTime! """A globally-unique ID.""" id: ID! """ The unique value submitted during the creation of the app revenue attribution record. For more information, refer to [Idempotent requests](https://shopify.dev/api/usage/idempotent-requests). """ idempotencyKey: String! """Indicates whether this is a test submission.""" test: Boolean! """The type of revenue attribution.""" type: AppRevenueAttributionType! } """Represents the billing types of revenue attribution.""" enum AppRevenueAttributionType { """App purchase related revenue collection.""" APPLICATION_PURCHASE """App subscription revenue collection.""" APPLICATION_SUBSCRIPTION """App usage-based revenue collection.""" APPLICATION_USAGE """Other app revenue collection type.""" OTHER } """The set of valid sort keys for the AppRevenueAttributionRecord query.""" enum AppRevenueAttributionRecordSortKeys { """Sort by the `created_at` value.""" CREATED_AT """Sort by the `id` value.""" ID } """An article in the blogging system.""" type Article implements HasEvents & HasMetafieldDefinitions & HasMetafields & HasPublishedTranslations & Navigable & Node { """The name of the author of the article.""" author: ArticleAuthor """The blog containing the article.""" blog: Blog! """The text of the article's body, complete with HTML markup.""" body: HTML! """List of the article's comments.""" comments( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | published_status | string | Filter by published status | - `any`
- `published`
- `unpublished` | | - `published_status:any`
- `published_status:published`
- `published_status:unpublished` | | status | string | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false ): CommentConnection! """Count of comments.""" commentsCount( """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | published_status | string | Filter by published status | - `any`
- `published`
- `unpublished` | | - `published_status:any`
- `published_status:published`
- `published_status:unpublished` | | status | string | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String ): Count """The date and time (ISO 8601 format) when the article was created.""" createdAt: DateTime! """ A default [cursor](https://shopify.dev/api/usage/pagination-graphql) that returns the single next record, sorted ascending by ID. """ defaultCursor: String! """The paginated list of events associated with the host subject.""" events( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | action | string | The action that occured. | | | - `action:create` | | comments | boolean | Whether or not to include [comment-events](https://shopify.dev/api/admin-graphql/latest/objects/CommentEvent) in your search, passing `false` will exclude comment-events, any other value will include comment-events. | | | - `false`
- `true` | | created_at | time | Filter by the date and time when the event happened. | | | - `created_at:>2020-10-21`
- `created_at: - `id:>=1234`
- `id:<=1234` | | subject_type | string | The resource type affected by this event, See [EventSubjectType](https://shopify.dev/api/admin-graphql/latest/enums/EventSubjectType) for possible values. | | | - `COMPANY` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: EventSortKeys = ID ): EventConnection! """ A unique, human-friendly string for the article that's automatically generated from the article's title. The handle is used in the article's URL. """ handle: String! """A globally-unique ID.""" id: ID! """The image associated with the article.""" image: Image """Whether or not the article is visible.""" isPublished: Boolean! """ 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( """The key for the metafield.""" key: String! """ The container the metafield belongs to. If omitted, the app-reserved namespace will be used. """ namespace: String ): Metafield """List of metafield definitions.""" metafieldDefinitions( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Filter metafield definitions by namespace.""" namespace: String """Filter by the definition's pinned status.""" pinnedStatus: MetafieldDefinitionPinnedStatus = ANY """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | created_at | time | Filter by the date and time when the metafield definition was created. | | | - `created_at:>2020-10-21T23:39:20Z`
- `created_at: - `created_at:<=2024` | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | key | string | Filter by the metafield definition [`key`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-key) field. | | | - `key:some-key` | | namespace | string | Filter by the metafield definition [`namespace`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-namespace) field. | | | - `namespace:some-namespace` | | owner_type | string | Filter by the metafield definition [`ownerType`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-ownertype) field. | | | - `owner_type:PRODUCT` | | type | string | Filter by the metafield definition [`type`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-type) field. | | | - `type:single_line_text_field` | | updated_at | time | Filter by the date and time when the metafield definition was last updated. | | | - `updated_at:>2020-10-21T23:39:20Z`
- `updated_at: - `updated_at:<=2024` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: MetafieldDefinitionSortKeys = ID ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use the root `metafieldDefinitions` field instead.") """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. """ metafields( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ List of keys of metafields in the format `namespace.key`, will be returned in the same format. """ keys: [String!] """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. """ namespace: String """Reverse the order of the underlying list.""" reverse: Boolean = false ): MetafieldConnection! """ The date and time (ISO 8601 format) when the article became or will become visible. Returns null when the article isn't visible. """ publishedAt: DateTime """ A summary of the article, which can include HTML markup. The summary is used by the online store theme to display the article on other pages, such as the home page or the main blog page. """ summary: HTML """ A comma-separated list of tags. Tags are additional short descriptors formatted as a string of comma-separated values. """ tags: [String!]! """ The name of the template an article is using if it's using an alternate template. If an article is using the default `article.liquid` template, then the value returned is `null`. """ templateSuffix: String """The title of the article.""" title: String! """The published translations associated with the resource.""" translations( """Filters translations locale.""" locale: String! """ Filters translations by market ID. Use this argument to retrieve content specific to a market. """ marketId: ID ): [Translation!]! """The date and time (ISO 8601 format) when the article was last updated.""" updatedAt: DateTime } """Represents an article author in an Article.""" type ArticleAuthor { """The author's full name.""" name: String! } """ Shopify stores come with a built-in blogging engine, allowing a shop to have one or more blogs. Blogs are meant to be used as a type of magazine or newsletter for the shop, with content that changes over time. """ type Blog implements HasEvents & HasMetafieldDefinitions & HasMetafields & HasPublishedTranslations & Node { """List of the blog's articles.""" articles( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): ArticleConnection! """Count of articles.""" articlesCount: Count """ Indicates whether readers can post comments to the blog and if comments are moderated or not. """ commentPolicy: CommentPolicy! """The date and time when the blog was created.""" createdAt: DateTime! """The paginated list of events associated with the host subject.""" events( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | action | string | The action that occured. | | | - `action:create` | | comments | boolean | Whether or not to include [comment-events](https://shopify.dev/api/admin-graphql/latest/objects/CommentEvent) in your search, passing `false` will exclude comment-events, any other value will include comment-events. | | | - `false`
- `true` | | created_at | time | Filter by the date and time when the event happened. | | | - `created_at:>2020-10-21`
- `created_at: - `id:>=1234`
- `id:<=1234` | | subject_type | string | The resource type affected by this event, See [EventSubjectType](https://shopify.dev/api/admin-graphql/latest/enums/EventSubjectType) for possible values. | | | - `COMPANY` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: EventSortKeys = ID ): EventConnection! """ FeedBurner provider details. Any blogs that aren't already integrated with FeedBurner can't use the service. """ feed: BlogFeed """ A unique, human-friendly string for the blog. If no handle is specified, a handle will be generated automatically from the blog title. The handle is customizable and is used by the Liquid templating language to refer to the blog. """ handle: String! """A globally-unique ID.""" id: ID! """ A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. """ metafield( """The key for the metafield.""" key: String! """ The container the metafield belongs to. If omitted, the app-reserved namespace will be used. """ namespace: String ): Metafield """List of metafield definitions.""" metafieldDefinitions( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Filter metafield definitions by namespace.""" namespace: String """Filter by the definition's pinned status.""" pinnedStatus: MetafieldDefinitionPinnedStatus = ANY """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | created_at | time | Filter by the date and time when the metafield definition was created. | | | - `created_at:>2020-10-21T23:39:20Z`
- `created_at: - `created_at:<=2024` | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | key | string | Filter by the metafield definition [`key`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-key) field. | | | - `key:some-key` | | namespace | string | Filter by the metafield definition [`namespace`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-namespace) field. | | | - `namespace:some-namespace` | | owner_type | string | Filter by the metafield definition [`ownerType`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-ownertype) field. | | | - `owner_type:PRODUCT` | | type | string | Filter by the metafield definition [`type`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-type) field. | | | - `type:single_line_text_field` | | updated_at | time | Filter by the date and time when the metafield definition was last updated. | | | - `updated_at:>2020-10-21T23:39:20Z`
- `updated_at: - `updated_at:<=2024` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: MetafieldDefinitionSortKeys = ID ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use the root `metafieldDefinitions` field instead.") """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. """ metafields( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ List of keys of metafields in the format `namespace.key`, will be returned in the same format. """ keys: [String!] """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. """ namespace: String """Reverse the order of the underlying list.""" reverse: Boolean = false ): MetafieldConnection! """A list of tags associated with the 200 most recent blog articles.""" tags: [String!]! """ The name of the template a blog is using if it's using an alternate template. Returns `null` if a blog is using the default blog.liquid template. """ templateSuffix: String """The title of the blog.""" title: String! """The published translations associated with the resource.""" translations( """Filters translations locale.""" locale: String! """ Filters translations by market ID. Use this argument to retrieve content specific to a market. """ marketId: ID ): [Translation!]! """The date and time when the blog was update.""" updatedAt: DateTime } """An auto-generated type for paginating through multiple Articles.""" type ArticleConnection { edges: [ArticleEdge!]! """ A list of nodes that are contained in ArticleEdge. 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: [Article!]! """ 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 Article and a cursor during pagination. """ type ArticleEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of ArticleEdge.""" node: Article! } """Possible comment policies for a blog.""" enum CommentPolicy { """Readers can post comments to blog articles without moderation.""" AUTO_PUBLISHED """Readers cannot post comments to blog articles.""" CLOSED """ Readers can post comments to blog articles, but comments must be moderated before they appear. """ MODERATED } """ FeedBurner provider details. Any blogs that aren't already integrated with FeedBurner can't use the service. """ type BlogFeed { """Blog feed provider url.""" location: URL! """Blog feed provider path.""" path: String! } """An auto-generated type for paginating through multiple Comments.""" type CommentConnection { edges: [CommentEdge!]! """ A list of nodes that are contained in CommentEdge. 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: [Comment!]! """ 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 Comment and a cursor during pagination. """ type CommentEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of CommentEdge.""" node: Comment! } """A comment on an article.""" type Comment implements HasEvents & Node { """The article associated with the comment.""" article: Article """The comment’s author.""" author: CommentAuthor! """The content of the comment.""" body: String! """The content of the comment, complete with HTML formatting.""" bodyHtml: HTML! """The date and time when the comment was created.""" createdAt: DateTime! """The paginated list of events associated with the host subject.""" events( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | action | string | The action that occured. | | | - `action:create` | | comments | boolean | Whether or not to include [comment-events](https://shopify.dev/api/admin-graphql/latest/objects/CommentEvent) in your search, passing `false` will exclude comment-events, any other value will include comment-events. | | | - `false`
- `true` | | created_at | time | Filter by the date and time when the event happened. | | | - `created_at:>2020-10-21`
- `created_at: - `id:>=1234`
- `id:<=1234` | | subject_type | string | The resource type affected by this event, See [EventSubjectType](https://shopify.dev/api/admin-graphql/latest/enums/EventSubjectType) for possible values. | | | - `COMPANY` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: EventSortKeys = ID ): EventConnection! """A globally-unique ID.""" id: ID! """The IP address of the commenter.""" ip: String """Whether or not the comment is published.""" isPublished: Boolean! """The date and time when the comment was published.""" publishedAt: DateTime """The status of the comment.""" status: CommentStatus! """The date and time when the comment was last updated.""" updatedAt: DateTime """The user agent of the commenter.""" userAgent: String } """The author of a comment.""" type CommentAuthor { """The author's email.""" email: String! """The author’s name.""" name: String! } """The status of a comment.""" enum CommentStatus { """The comment is pending approval.""" PENDING """The comment is published.""" PUBLISHED """The comment has been removed.""" REMOVED """The comment is marked as spam.""" SPAM """The comment is unapproved.""" UNAPPROVED } """A delivery customization.""" type DeliveryCustomization implements HasMetafieldDefinitions & HasMetafields & Node { """The enabled status of the delivery customization.""" enabled: Boolean! """ The error history on the most recent version of the delivery customization. """ errorHistory: FunctionsErrorHistory """ The ID of the Shopify Function implementing the delivery customization. """ functionId: String! """A globally-unique ID.""" id: ID! """ A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. """ metafield( """The key for the metafield.""" key: String! """ The container the metafield belongs to. If omitted, the app-reserved namespace will be used. """ namespace: String ): Metafield """List of metafield definitions.""" metafieldDefinitions( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Filter metafield definitions by namespace.""" namespace: String """Filter by the definition's pinned status.""" pinnedStatus: MetafieldDefinitionPinnedStatus = ANY """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | created_at | time | Filter by the date and time when the metafield definition was created. | | | - `created_at:>2020-10-21T23:39:20Z`
- `created_at: - `created_at:<=2024` | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | key | string | Filter by the metafield definition [`key`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-key) field. | | | - `key:some-key` | | namespace | string | Filter by the metafield definition [`namespace`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-namespace) field. | | | - `namespace:some-namespace` | | owner_type | string | Filter by the metafield definition [`ownerType`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-ownertype) field. | | | - `owner_type:PRODUCT` | | type | string | Filter by the metafield definition [`type`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-type) field. | | | - `type:single_line_text_field` | | updated_at | time | Filter by the date and time when the metafield definition was last updated. | | | - `updated_at:>2020-10-21T23:39:20Z`
- `updated_at: - `updated_at:<=2024` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: MetafieldDefinitionSortKeys = ID ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use the root `metafieldDefinitions` field instead.") """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. """ metafields( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ List of keys of metafields in the format `namespace.key`, will be returned in the same format. """ keys: [String!] """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. """ namespace: String """Reverse the order of the underlying list.""" reverse: Boolean = false ): MetafieldConnection! """The Shopify Function implementing the delivery customization.""" shopifyFunction: ShopifyFunction! """The title of the delivery customization.""" title: String! } """A Shopify Function.""" type ShopifyFunction { """The API type of the Shopify Function.""" apiType: String! """The API version of the Shopify Function.""" apiVersion: String! """The app that owns the Shopify Function.""" app: App! """The App Bridge information for the Shopify Function.""" appBridge: FunctionsAppBridge! """The client ID of the app that owns the Shopify Function.""" appKey: String! """The description of the Shopify Function.""" description: String """The ID of the Shopify Function.""" id: String! """The input query of the Shopify Function.""" inputQuery: String """The title of the Shopify Function.""" title: String! """If the Shopify Function uses the creation UI in the Admin.""" useCreationUi: Boolean! } """ The `DiscountAutomaticNode` object enables you to manage [automatic discounts](https://help.shopify.com/manual/discounts/discount-types#automatic-discounts) that are applied when an order meets specific criteria. You can create amount off, free shipping, or buy X get Y automatic discounts. For example, you can offer customers a free shipping discount that applies when conditions are met. Or you can offer customers a buy X get Y discount that's automatically applied when customers spend a specified amount of money, or a specified quantity of products. Learn more about working with [Shopify's discount model](https://shopify.dev/docs/apps/build/discounts), including related queries, mutations, limitations, and considerations. """ type DiscountAutomaticNode implements HasEvents & HasMetafieldDefinitions & HasMetafields & Node { """ A discount that's applied automatically when an order meets specific criteria. Learn more about [automatic discounts](https://help.shopify.com/manual/discounts/discount-types#automatic-discounts). """ automaticDiscount: DiscountAutomatic! """The paginated list of events associated with the host subject.""" events( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | action | string | The action that occured. | | | - `action:create` | | comments | boolean | Whether or not to include [comment-events](https://shopify.dev/api/admin-graphql/latest/objects/CommentEvent) in your search, passing `false` will exclude comment-events, any other value will include comment-events. | | | - `false`
- `true` | | created_at | time | Filter by the date and time when the event happened. | | | - `created_at:>2020-10-21`
- `created_at: - `id:>=1234`
- `id:<=1234` | | subject_type | string | The resource type affected by this event, See [EventSubjectType](https://shopify.dev/api/admin-graphql/latest/enums/EventSubjectType) for possible values. | | | - `COMPANY` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: EventSortKeys = ID ): EventConnection! """A globally-unique ID.""" id: ID! """ A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. """ metafield( """The key for the metafield.""" key: String! """ The container the metafield belongs to. If omitted, the app-reserved namespace will be used. """ namespace: String ): Metafield """List of metafield definitions.""" metafieldDefinitions( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Filter metafield definitions by namespace.""" namespace: String """Filter by the definition's pinned status.""" pinnedStatus: MetafieldDefinitionPinnedStatus = ANY """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | created_at | time | Filter by the date and time when the metafield definition was created. | | | - `created_at:>2020-10-21T23:39:20Z`
- `created_at: - `created_at:<=2024` | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | key | string | Filter by the metafield definition [`key`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-key) field. | | | - `key:some-key` | | namespace | string | Filter by the metafield definition [`namespace`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-namespace) field. | | | - `namespace:some-namespace` | | owner_type | string | Filter by the metafield definition [`ownerType`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-ownertype) field. | | | - `owner_type:PRODUCT` | | type | string | Filter by the metafield definition [`type`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-type) field. | | | - `type:single_line_text_field` | | updated_at | time | Filter by the date and time when the metafield definition was last updated. | | | - `updated_at:>2020-10-21T23:39:20Z`
- `updated_at: - `updated_at:<=2024` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: MetafieldDefinitionSortKeys = ID ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use the root `metafieldDefinitions` field instead.") """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. """ metafields( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ List of keys of metafields in the format `namespace.key`, will be returned in the same format. """ keys: [String!] """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. """ namespace: String """Reverse the order of the underlying list.""" reverse: Boolean = false ): MetafieldConnection! } """ The type of discount associated to the automatic discount. For example, the automatic discount might offer a basic discount using a fixed percentage, or a fixed amount, on specific products from the order. The automatic discount may also be a BXGY discount, which offers customer discounts on select products if they add a specific product to their order. """ union DiscountAutomatic = DiscountAutomaticApp | DiscountAutomaticBasic | DiscountAutomaticBxgy | DiscountAutomaticFreeShipping """ The `DiscountCodeNode` object enables you to manage [code discounts](https://help.shopify.com/manual/discounts/discount-types#discount-codes) that are applied when customers enter a code at checkout. For example, you can offer discounts where customers have to enter a code to redeem an amount off discount on products, variants, or collections in a store. Or, you can offer discounts where customers have to enter a code to get free shipping. Merchants can create and share discount codes individually with customers. Learn more about working with [Shopify's discount model](https://shopify.dev/docs/apps/build/discounts), including related queries, mutations, limitations, and considerations. """ type DiscountCodeNode implements HasEvents & HasMetafieldDefinitions & HasMetafields & Node { """The underlying code discount object.""" codeDiscount: DiscountCode! """The paginated list of events associated with the host subject.""" events( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | action | string | The action that occured. | | | - `action:create` | | comments | boolean | Whether or not to include [comment-events](https://shopify.dev/api/admin-graphql/latest/objects/CommentEvent) in your search, passing `false` will exclude comment-events, any other value will include comment-events. | | | - `false`
- `true` | | created_at | time | Filter by the date and time when the event happened. | | | - `created_at:>2020-10-21`
- `created_at: - `id:>=1234`
- `id:<=1234` | | subject_type | string | The resource type affected by this event, See [EventSubjectType](https://shopify.dev/api/admin-graphql/latest/enums/EventSubjectType) for possible values. | | | - `COMPANY` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: EventSortKeys = ID ): EventConnection! """A globally-unique ID.""" id: ID! """ A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. """ metafield( """The key for the metafield.""" key: String! """ The container the metafield belongs to. If omitted, the app-reserved namespace will be used. """ namespace: String ): Metafield """List of metafield definitions.""" metafieldDefinitions( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Filter metafield definitions by namespace.""" namespace: String """Filter by the definition's pinned status.""" pinnedStatus: MetafieldDefinitionPinnedStatus = ANY """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | created_at | time | Filter by the date and time when the metafield definition was created. | | | - `created_at:>2020-10-21T23:39:20Z`
- `created_at: - `created_at:<=2024` | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | key | string | Filter by the metafield definition [`key`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-key) field. | | | - `key:some-key` | | namespace | string | Filter by the metafield definition [`namespace`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-namespace) field. | | | - `namespace:some-namespace` | | owner_type | string | Filter by the metafield definition [`ownerType`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-ownertype) field. | | | - `owner_type:PRODUCT` | | type | string | Filter by the metafield definition [`type`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-type) field. | | | - `type:single_line_text_field` | | updated_at | time | Filter by the date and time when the metafield definition was last updated. | | | - `updated_at:>2020-10-21T23:39:20Z`
- `updated_at: - `updated_at:<=2024` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: MetafieldDefinitionSortKeys = ID ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use the root `metafieldDefinitions` field instead.") """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. """ metafields( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ List of keys of metafields in the format `namespace.key`, will be returned in the same format. """ keys: [String!] """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. """ namespace: String """Reverse the order of the underlying list.""" reverse: Boolean = false ): MetafieldConnection! } """ The type of discount associated with the discount code. For example, the discount code might offer a basic discount of a fixed percentage, or a fixed amount, on specific products or the order. Alternatively, the discount might offer the customer free shipping on their order. A third option is a Buy X, Get Y (BXGY) discount, which offers a customer discounts on select products if they add a specific product to their order. """ union DiscountCode = DiscountCodeApp | DiscountCodeBasic | DiscountCodeBxgy | DiscountCodeFreeShipping """A page on the Online Store.""" type Page implements HasEvents & HasMetafieldDefinitions & HasMetafields & HasPublishedTranslations & Navigable & Node { """The text content of the page, complete with HTML markup.""" body: HTML! """ The first 150 characters of the page body. If the page body contains more than 150 characters, additional characters are truncated by ellipses. """ bodySummary: String! """The date and time (ISO 8601 format) of the page creation.""" createdAt: DateTime! """ A default [cursor](https://shopify.dev/api/usage/pagination-graphql) that returns the single next record, sorted ascending by ID. """ defaultCursor: String! """The paginated list of events associated with the host subject.""" events( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | action | string | The action that occured. | | | - `action:create` | | comments | boolean | Whether or not to include [comment-events](https://shopify.dev/api/admin-graphql/latest/objects/CommentEvent) in your search, passing `false` will exclude comment-events, any other value will include comment-events. | | | - `false`
- `true` | | created_at | time | Filter by the date and time when the event happened. | | | - `created_at:>2020-10-21`
- `created_at: - `id:>=1234`
- `id:<=1234` | | subject_type | string | The resource type affected by this event, See [EventSubjectType](https://shopify.dev/api/admin-graphql/latest/enums/EventSubjectType) for possible values. | | | - `COMPANY` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: EventSortKeys = ID ): EventConnection! """ A unique, human-friendly string for the page. In themes, the Liquid templating language refers to a page by its handle. """ handle: String! """A globally-unique ID.""" id: ID! """Whether or not the page is visible.""" isPublished: Boolean! """ 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( """The key for the metafield.""" key: String! """ The container the metafield belongs to. If omitted, the app-reserved namespace will be used. """ namespace: String ): Metafield """List of metafield definitions.""" metafieldDefinitions( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Filter metafield definitions by namespace.""" namespace: String """Filter by the definition's pinned status.""" pinnedStatus: MetafieldDefinitionPinnedStatus = ANY """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | created_at | time | Filter by the date and time when the metafield definition was created. | | | - `created_at:>2020-10-21T23:39:20Z`
- `created_at: - `created_at:<=2024` | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | key | string | Filter by the metafield definition [`key`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-key) field. | | | - `key:some-key` | | namespace | string | Filter by the metafield definition [`namespace`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-namespace) field. | | | - `namespace:some-namespace` | | owner_type | string | Filter by the metafield definition [`ownerType`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-ownertype) field. | | | - `owner_type:PRODUCT` | | type | string | Filter by the metafield definition [`type`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-type) field. | | | - `type:single_line_text_field` | | updated_at | time | Filter by the date and time when the metafield definition was last updated. | | | - `updated_at:>2020-10-21T23:39:20Z`
- `updated_at: - `updated_at:<=2024` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: MetafieldDefinitionSortKeys = ID ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use the root `metafieldDefinitions` field instead.") """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. """ metafields( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ List of keys of metafields in the format `namespace.key`, will be returned in the same format. """ keys: [String!] """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. """ namespace: String """Reverse the order of the underlying list.""" reverse: Boolean = false ): MetafieldConnection! """ The date and time (ISO 8601 format) when the page became or will become visible. Returns null when the page isn't visible. """ publishedAt: DateTime """The suffix of the template that's used to render the page.""" templateSuffix: String """Title of the page.""" title: String! """The published translations associated with the resource.""" translations( """Filters translations locale.""" locale: String! """ Filters translations by market ID. Use this argument to retrieve content specific to a market. """ marketId: ID ): [Translation!]! """The date and time (ISO 8601 format) of the latest page update.""" updatedAt: DateTime! } """A payment customization.""" type PaymentCustomization implements HasMetafieldDefinitions & HasMetafields & Node { """The enabled status of the payment customization.""" enabled: Boolean! """ The error history on the most recent version of the payment customization. """ errorHistory: FunctionsErrorHistory """The ID of the Shopify Function implementing the payment customization.""" functionId: String! """A globally-unique ID.""" id: ID! """ A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. """ metafield( """The key for the metafield.""" key: String! """ The container the metafield belongs to. If omitted, the app-reserved namespace will be used. """ namespace: String ): Metafield """List of metafield definitions.""" metafieldDefinitions( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Filter metafield definitions by namespace.""" namespace: String """Filter by the definition's pinned status.""" pinnedStatus: MetafieldDefinitionPinnedStatus = ANY """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | created_at | time | Filter by the date and time when the metafield definition was created. | | | - `created_at:>2020-10-21T23:39:20Z`
- `created_at: - `created_at:<=2024` | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | key | string | Filter by the metafield definition [`key`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-key) field. | | | - `key:some-key` | | namespace | string | Filter by the metafield definition [`namespace`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-namespace) field. | | | - `namespace:some-namespace` | | owner_type | string | Filter by the metafield definition [`ownerType`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-ownertype) field. | | | - `owner_type:PRODUCT` | | type | string | Filter by the metafield definition [`type`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-type) field. | | | - `type:single_line_text_field` | | updated_at | time | Filter by the date and time when the metafield definition was last updated. | | | - `updated_at:>2020-10-21T23:39:20Z`
- `updated_at: - `updated_at:<=2024` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: MetafieldDefinitionSortKeys = ID ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use the root `metafieldDefinitions` field instead.") """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. """ metafields( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ List of keys of metafields in the format `namespace.key`, will be returned in the same format. """ keys: [String!] """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. """ namespace: String """Reverse the order of the underlying list.""" reverse: Boolean = false ): MetafieldConnection! """The Shopify Function implementing the payment customization.""" shopifyFunction: ShopifyFunction! """The title of the payment customization.""" title: String! } """ Represents a collection of general settings and information about the shop. """ type Shop implements HasMetafieldDefinitions & HasMetafields & HasPublishedTranslations & Node { """Account owner information.""" accountOwner: StaffMember! """ A list of the shop's active alert messages that appear in the Shopify admin. """ alerts: [ShopAlert!]! """ A list of the shop's product categories. Limit: 1000 product categories. """ allProductCategories: [ProductCategory!]! @deprecated(reason: "Deprecated in API version 2024-07. Use `allProductCategoriesList` instead.") """ A list of the shop's product categories. Limit: 1000 product categories. """ allProductCategoriesList: [TaxonomyCategory!]! """The token required to query the shop's reports or dashboards.""" analyticsToken: String! @deprecated(reason: "Not supported anymore.") """ The paginated list of fulfillment orders assigned to the shop locations owned by the app. Assigned fulfillment orders are fulfillment orders that are set to be fulfilled from locations managed by [fulfillment services](https://shopify.dev/api/admin-graphql/latest/objects/FulfillmentService) that are registered by the app. One app (api_client) can host multiple fulfillment services on a shop. Each fulfillment service manages a dedicated location on a shop. Assigned fulfillment orders can have associated [fulfillment requests](https://shopify.dev/api/admin-graphql/latest/enums/FulfillmentOrderRequestStatus), or might currently not be requested to be fulfilled. The app must have `read_assigned_fulfillment_orders` [access scope](https://shopify.dev/docs/api/usage/access-scopes) to be able to retrieve fulfillment orders assigned to its locations. All assigned fulfillment orders (except those with the `CLOSED` status) will be returned by default. Perform filtering with the `assignmentStatus` argument to receive only fulfillment orders that have been requested to be fulfilled. """ assignedFulfillmentOrders( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The assigment status of the fulfillment orders that should be returned. If `assignmentStatus` argument is not provided, then the query will return all assigned fulfillment orders, except those that have the `CLOSED` status. """ assignmentStatus: FulfillmentOrderAssignmentStatus """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ Returns fulfillment orders only for certain locations, specified by a list of location IDs. """ locationIds: [ID!] """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: FulfillmentOrderSortKeys = ID ): FulfillmentOrderConnection! @deprecated(reason: "Use `QueryRoot.assignedFulfillmentOrders` instead. Details: https://shopify.dev/changelog/moving-the-shop-assignedfulfillmentorders-connection-to-queryroot") """The list of sales channels not currently installed on the shop.""" availableChannelApps( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): AppConnection! """The shop's billing address information.""" billingAddress: ShopAddress! """List of all channel definitions associated with a shop.""" channelDefinitionsForInstalledChannels: [AvailableChannelDefinitionsByChannel!]! """List of the shop's active sales channels.""" channels( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): ChannelConnection! @deprecated(reason: "Use `QueryRoot.channels` instead.") """Specifies whether the shop supports checkouts via Checkout API.""" checkoutApiSupported: Boolean! """List of the shop's collections.""" collections( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | collection_type | string | | - `custom`
- `smart` | | handle | string | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | product_id | id | Filter by collections containing a product by its ID. | | product_publication_status | string | Filter by the publishable status of the resource on a channel, such as the online store. The value is a composite of the [channel `app` ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) (`Channel.app.id`) and one of the valid values. | - `approved`
- `rejected`
- `needs_action`
- `awaiting_review`
- `published`
- `demoted`
- `scheduled`
- `provisionally_published` | | - `publishable_status:189769876-approved` | | publishable_status | string | Filter by the publishable status of the resource on a channel, such as the online store. The value is a composite of either the [channel `app` ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) (`Channel.app.id`) or [channel `name`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Channel#field-name) and one of the valid values. | - `online_store_channel`
- `published`
- `unpublished`
- `visible`
- `unavailable`
- `hidden`
- `intended`
- `visible` | | - `publishable_status:published`
- `publishable_status:189769876:visible`
- `publishable_status:pos:hidden` | | published_at | time | Filter by the date and time when the collection was published to the Online Store. | | published_status | string | Filter by the published status of the resource on a channel, such as the online store. | - `unset`
- `pending`
- `approved`
- `not approved` | | - `published_status:approved` | | title | string | | updated_at | time | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ The ID of a [saved search](https://shopify.dev/api/admin-graphql/latest/objects/savedsearch#field-id). The search’s query string is used as the query argument. """ savedSearchId: ID """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: CollectionSortKeys = ID ): CollectionConnection! @deprecated(reason: "Use `QueryRoot.collections` instead.") """ The public-facing contact email address for the shop. Customers will use this email to communicate with the shop owner. """ contactEmail: String! """Countries that have been defined in shipping zones for the shop.""" countriesInShippingZones: CountriesInShippingZones! """The date and time when the shop was created.""" createdAt: DateTime! """The three letter code for the currency that the shop sells in.""" currencyCode: CurrencyCode! """How currencies are displayed on your store.""" currencyFormats: CurrencyFormats! """ The presentment currency settings for the shop excluding the shop's own currency. """ currencySettings( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): CurrencySettingConnection! """ Whether customer accounts are required, optional, or disabled for the shop. """ customerAccounts: ShopCustomerAccountsSetting! """Information about the shop's customer accounts.""" customerAccountsV2: CustomerAccountsV2! """A list of tags that have been added to customer accounts.""" customerTags( """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int! ): StringConnection! """Customer accounts associated to the shop.""" customers( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | email | string | The customer's email address, used to communicate information about orders and for the purposes of email marketing campaigns. You can use a wildcard value to filter the query by customers who have an email address specified. | | | - `email:bo.wang@example.com`
- `email:*` | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | phone | string | The phone number of the customer, used to communicate information about orders and for the purposes of SMS marketing campaigns. You can use a wildcard value to filter the query by customers who have a phone number specified. | | | - `phone:+18005550100`
- `phone:*` | | updated_at | time | The date and time, matching a whole day, when the customer's information was last updated. | | | - `updated_at:2024-01-01T00:00:00Z`
- `updated_at: - `updated_at:<=2024` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: CustomerSortKeys = ID ): CustomerConnection! @deprecated(reason: "Use `QueryRoot.customers` instead.") """The shop's meta description used in search engine results.""" description: String """The domains configured for the shop.""" domains: [Domain!]! @deprecated(reason: "Use `domainsPaginated` instead.") """A list of tags that have been added to draft orders.""" draftOrderTags( """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int! ): StringConnection! """ The shop owner's email address. Shopify will use this email address to communicate with the shop owner. """ email: String! """The presentment currencies enabled for the shop.""" enabledPresentmentCurrencies: [CurrencyCode!]! """The set of features enabled for the shop.""" features: ShopFeatures! """ The paginated list of merchant-managed and third-party fulfillment orders. """ fulfillmentOrders( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """Whether to include closed fulfillment orders.""" includeClosed: Boolean = false """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | assigned_location_id | id | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | status | string | | updated_at | time | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: FulfillmentOrderSortKeys = ID ): FulfillmentOrderConnection! @deprecated(reason: "Use `QueryRoot.fulfillmentOrders` instead.") """List of the shop's installed fulfillment services.""" fulfillmentServices: [FulfillmentService!]! """The shop's time zone as defined by the IANA.""" ianaTimezone: String! """A globally-unique ID.""" id: ID! """List of the shop's inventory items.""" inventoryItems( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | created_at | time | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | sku | string | Filter by the inventory item [`sku`](https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryItem#field-sku) field. [Learn more about SKUs](https://help.shopify.com/manual/products/details/sku). | | | - `sku:XYZ-12345` | | updated_at | time | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false ): InventoryItemConnection! @deprecated(reason: "Use `QueryRoot.inventoryItems` instead.") """ The number of pendings orders on the shop. Limited to a maximum of 10000. """ limitedPendingOrderCount: LimitedPendingOrderCount! @deprecated(reason: "Use `QueryRoot.pendingOrdersCount` instead.") """List of active locations of the shop.""" locations( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """Whether to include the locations that are deactivated.""" includeInactive: Boolean = false """Whether to include the legacy locations of fulfillment services.""" includeLegacy: Boolean = false """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | active | string | | address1 | string | | address2 | string | | city | string | | country | string | | created_at | time | | geolocated | boolean | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | legacy | boolean | | location_id | id | | name | string | | pickup_in_store | string | | - `enabled`
- `disabled` | | province | string | | zip | string | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: LocationSortKeys = NAME ): LocationConnection! @deprecated(reason: "Use `QueryRoot.locations` instead.") """ Whether SMS marketing has been enabled on the shop's checkout configuration settings. """ marketingSmsConsentEnabledAtCheckout: Boolean! """The approval signals for a shop to support onboarding to channel apps.""" merchantApprovalSignals: MerchantApprovalSignals """ 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( """The key for the metafield.""" key: String! """ The container the metafield belongs to. If omitted, the app-reserved namespace will be used. """ namespace: String ): Metafield """List of metafield definitions.""" metafieldDefinitions( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Filter metafield definitions by namespace.""" namespace: String """Filter by the definition's pinned status.""" pinnedStatus: MetafieldDefinitionPinnedStatus = ANY """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | created_at | time | Filter by the date and time when the metafield definition was created. | | | - `created_at:>2020-10-21T23:39:20Z`
- `created_at: - `created_at:<=2024` | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | key | string | Filter by the metafield definition [`key`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-key) field. | | | - `key:some-key` | | namespace | string | Filter by the metafield definition [`namespace`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-namespace) field. | | | - `namespace:some-namespace` | | owner_type | string | Filter by the metafield definition [`ownerType`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-ownertype) field. | | | - `owner_type:PRODUCT` | | type | string | Filter by the metafield definition [`type`](https://shopify.dev/docs/api/admin-graphql/latest/objects/MetafieldDefinition#field-type) field. | | | - `type:single_line_text_field` | | updated_at | time | Filter by the date and time when the metafield definition was last updated. | | | - `updated_at:>2020-10-21T23:39:20Z`
- `updated_at: - `updated_at:<=2024` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: MetafieldDefinitionSortKeys = ID ): MetafieldDefinitionConnection! @deprecated(reason: "This field will be removed in a future version. Use the root `metafieldDefinitions` field instead.") """ A list of [custom fields](https://shopify.dev/docs/apps/build/custom-data) that a merchant associates with a Shopify resource. """ metafields( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ List of keys of metafields in the format `namespace.key`, will be returned in the same format. """ keys: [String!] """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ The metafield namespace to filter by. If omitted, the app-reserved namespace will be used. """ namespace: String """Reverse the order of the underlying list.""" reverse: Boolean = false ): MetafieldConnection! """The shop's .myshopify.com domain name.""" myshopifyDomain: String! """The shop's name.""" name: String! """The shop's settings related to navigation.""" navigationSettings: [NavigationItem!]! """The prefix that appears before order numbers.""" orderNumberFormatPrefix: String! """The suffix that appears after order numbers.""" orderNumberFormatSuffix: String! """A list of tags that have been added to orders.""" orderTags( """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int! """Sort type.""" sort: ShopTagSort = ALPHABETICAL ): StringConnection! """A list of the shop's orders.""" orders( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | cart_token | string | Filter by the cart token's unique value, which references the cart that's associated with an order. | | | - `cart_token:abc123` | | channel | string | Filter by the channel information [`handle`](https://shopify.dev/api/admin-graphql/latest/objects/ChannelInformation#field-channeldefinition) (`ChannelInformation.channelDefinition.handle`) field. | | | - `channel:web`
- `channel:web,pos` | | channel_id | id | Filter by the channel [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Channel#field-id) field. | | | - `channel_id:123` | | chargeback_status | string | Filter by the order's chargeback status. A chargeback occurs when a customer questions the legitimacy of a charge with their financial institution. | - `accepted`
- `charge_refunded`
- `lost`
- `needs_response`
- `under_review`
- `won` | | - `chargeback_status:accepted` | | checkout_token | string | Filter by the checkout token's unique value, which references the checkout that's associated with an order. | | | - `checkout_token:abc123` | | confirmation_number | string | Filter by the randomly generated alpha-numeric identifier for an order that can be displayed to the customer instead of the sequential order name. This value isn't guaranteed to be unique. | | | - `confirmation_number:ABC123` | | created_at | time | Filter by the date and time when the order was created in Shopify's system. | | | - `created_at:2020-10-21T23:39:20Z`
- `created_at: - `created_at:<=2024` | | credit_card_last4 | string | Filter by the last four digits of the credit card that was used to pay for the order. | | | - `credit_card_last4:1234` | | customer_id | id | Filter orders by the customer [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Customer#field-id) field. | | | - `customer_id:123` | | delivery_method | string | Filter by the delivery [`methodType`](https://shopify.dev/api/admin-graphql/2024-07/objects/DeliveryMethod#field-methodtype) field. | - `shipping`
- `pick-up`
- `retail`
- `local`
- `pickup-point`
- `none` | | - `delivery_method:shipping` | | discount_code | string | Filter by the case-insensitive discount code that was applied to the order at checkout. Maximum characters: 255. | | | - `discount_code:ABC123` | | email | string | Filter by the email address that's associated with the order. | | | - `email:example@shopify.com` | | financial_status | string | Filter by the order [`displayFinancialStatus`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-displayfinancialstatus) field. | - `paid`
- `pending`
- `authorized`
- `partially_paid`
- `partially_refunded`
- `refunded`
- `voided`
- `expired` | | - `financial_status:authorized` | | fraud_protection_level | string | Filter by the level of fraud protection that's applied to the order. | - `fully_protected`
- `partially_protected`
- `not_protected`
- `pending`
- `not_eligible`
- `not_available` | | - `fraud_protection_level:fully_protected` | | fulfillment_location_id | id | Filter by the fulfillment location [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Fulfillment#field-location) (`Fulfillment.location.id`) field. | | | - `fulfillment_location_id:123` | | fulfillment_status | string | Filter by the order's fulfillment status. | - `unshipped`
- `shipped`
- `fulfilled`
- `partial`
- `scheduled`
- `on_hold`
- `unfulfilled`
- `request_declined` | | - `fulfillment_status:fulfilled` | | gateway | string | Filter by the order [`paymentGatewayNames`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-paymentgatewaynames) field. | | | - `gateway:shopify_payments` | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | location_id | id | Filter by the ID of the location that's associated with the order. | | | - `location_id:123` | | name | string | Filter by the order [`name`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-name) field. | | | - `name:1001-A` | | payment_id | string | Filter by the ID of the payment that's associated with the order. | | | - `payment_id:abc123` | | payment_provider_id | id | Filter by the ID of the payment provider that's associated with the order. | | | - `payment_provider_id:123` | | po_number | string | Filter by the order [`poNumber`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-ponumber) field. | | | - `po_number:P01001` | | processed_at | time | Filter by the order [`processedAt`](https://shopify.dev/api/admin-graphql/latest/objects/Order#field-processedat) field. | | | - `processed_at:2021-01-01T00:00:00Z` | | reference_location_id | id | Filter by the ID of a location that's associated with the order, such as locations from fulfillments, refunds, or the shop's primary location. | | | - `reference_location_id:123` | | return_status | string | Filter by the order's return status. | - `return_requested`
- `in_progress`
- `inspection_complete`
- `returned`
- `return_failed`
- `no_return` | | - `return_status:in_progress` | | risk_level | string | Filter by the order risk assessment [`riskLevel`](https://shopify.dev/api/admin-graphql/latest/objects/OrderRiskAssessment#field-risklevel) field. | - `high`
- `medium`
- `low`
- `none`
- `pending` | | - `risk_level:high` | | sales_channel | string | Filter by the sales channel that the order is attributed to. | | | - `sales_channel: some_sales_channel` | | sku | string | Filter by the product variant [`sku`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-sku) field. [Learn more about SKUs](https://help.shopify.com/manual/products/details/sku). | | | - `sku:ABC123` | | source_identifier | string | Filter by the ID of the order placed on the originating platform, such as a unique POS or third-party identifier. This value doesn't correspond to the Shopify ID that's generated from a completed draft order. | | | - `source_identifier:1234-12-1000` | | source_name | string | Filter by the name of the originating platform that's associated with the checkout for the order. | | | - `source_name:web`
- `source_name:shopify_draft_order` | | status | string | Filter by the order status. | - `open`
- `closed`
- `cancelled`
- `not_closed` | | - `status:open` | | subtotal_line_items_quantity | string | | tag | string | Filter objects by the `tag` field. | | | - `tag:my_tag` | | tag_not | string | Filter by objects that don’t have the specified tag. | | | - `tag_not:my_tag` | | test | boolean | Filter by test orders. Test orders are made using the [Shopify Bogus Gateway](https://help.shopify.com/manual/checkout-settings/test-orders) or a payment provider with test mode enabled. | | | - `test:true` | | updated_at | time | Filter by the date and time when the order was last updated in Shopify's system. | | | - `updated_at:2020-10-21T23:39:20Z`
- `updated_at: - `updated_at:<=2024` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: OrderSortKeys = PROCESSED_AT ): OrderConnection! @deprecated(reason: "Use `QueryRoot.orders` instead.") """The shop's settings related to payments.""" paymentSettings: PaymentSettings! """The shop's billing plan.""" plan: ShopPlan! """The primary domain of the shop's online store.""" primaryDomain: Domain! """The list of all images of all products for the shop.""" productImages( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: ProductImageSortKeys = CREATED_AT ): ImageConnection! @deprecated(reason: "Use `files` instead. See [filesQuery](https://shopify.dev/docs/api/admin-graphql/latest/queries/files) and its [query](https://shopify.dev/docs/api/admin-graphql/2024-01/queries/files#argument-query) argument for more information.") """A list of tags that have been added to products.""" productTags( """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int! ): StringConnection! @deprecated(reason: "Use `QueryRoot.productTags` instead.") """The list of types added to products.""" productTypes( """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int! ): StringConnection! @deprecated(reason: "Use `QueryRoot.productTypes` instead.") """List of the shop's product variants.""" productVariants( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | barcode | string | Filter by the product variant [`barcode`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-barcode) field. | | | - `barcode:ABC-abc-123` | | collection | string | Filter by the [ID of the collection](https://shopify.dev/api/admin-graphql/latest/objects/Collection#field-id) that the product variant belongs to. | | | - `collection:465903092033` | | delivery_profile_id | id | Filter by the product variant [delivery profile ID](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-deliveryprofile) (`ProductVariant.deliveryProfile.id`). | | | - `delivery_profile_id:108179161409` | | exclude_composite | boolean | Filter by product variants that aren't composites. | | | - `exclude_composite:true` | | exclude_variants_with_components | boolean | Filter by whether there are [components](https://shopify.dev/docs/apps/build/product-merchandising/bundles/add-product-fixed-bundle) that are associated with the product variants in a bundle. | | | - `exclude_variants_with_components:true` | | gift_card | boolean | Filter by the product [`isGiftCard`](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-isgiftcard) field. | | | - `gift_card:true` | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | inventory_quantity | integer | Filter by an aggregate of inventory across all locations where the product variant is stocked. | | | - `inventory_quantity:10` | | location_id | id | Filter by the [location ID](https://shopify.dev/api/admin-graphql/latest/objects/Location#field-id) for the product variant. | | | - `location_id:88511152449` | | managed | boolean | Filter by whether there is fulfillment service tracking associated with the product variants. | | | - `managed:true` | | managed_by | string | Filter by the fulfillment service that tracks the number of items in stock for the product variant. | | | - `managed_by:shopify` | | option1 | string | Filter by a custom property that a shop owner uses to define product variants. | | | - `option1:small` | | option2 | string | Filter by a custom property that a shop owner uses to define product variants. | | | - `option2:medium` | | option3 | string | Filter by a custom property that a shop owner uses to define product variants. | | | - `option3:large` | | product_id | id | Filter by the product [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-id) field. | | | - `product_id:8474977763649` | | product_ids | string | Filter by a comma-separated list of product [IDs](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-id). | | | - `product_ids:8474977763649,8474977796417` | | product_publication_status | string | Filter by the publishable status of the resource on a channel, such as the online store. The value is a composite of the [channel `app` ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) (`Channel.app.id`) and one of the valid values. | - `approved`
- `rejected`
- `needs_action`
- `awaiting_review`
- `published`
- `demoted`
- `scheduled`
- `provisionally_published` | | - `publishable_status:189769876-approved` | | product_status | string | Filter by a comma-separated list of product [statuses](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-status). | | | - `product_status:ACTIVE,DRAFT` | | product_type | string | Filter by the product type that's associated with the product variants. | | | - `product_type:snowboard` | | publishable_status | string | Filter by the publishable status of the resource on a channel, such as the online store. The value is a composite of either the [channel `app` ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) (`Channel.app.id`) or [channel `name`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Channel#field-name) and one of the valid values. | - `online_store_channel`
- `published`
- `unpublished`
- `visible`
- `unavailable`
- `hidden`
- `intended`
- `visible` | | - `publishable_status:published`
- `publishable_status:189769876:visible`
- `publishable_status:pos:hidden` | | published_status | string | Filter by the published status of the resource on a channel, such as the online store. | - `unset`
- `pending`
- `approved`
- `not approved` | | - `published_status:approved` | | requires_components | boolean | Filter by whether the product variant can only be purchased with components. [Learn more](https://shopify.dev/apps/build/product-merchandising/bundles#store-eligibility). | | | - `requires_components:true` | | sku | string | Filter by the product variant [`sku`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-sku) field. [Learn more about SKUs](https://help.shopify.com/manual/products/details/sku). | | | - `sku:XYZ-12345` | | tag | string | Filter objects by the `tag` field. | | | - `tag:my_tag` | | tag_not | string | Filter by objects that don’t have the specified tag. | | | - `tag_not:my_tag` | | taxable | boolean | Filter by the product variant [`taxable`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-taxable) field. | | | - `taxable:false` | | title | string | Filter by the product variant [`title`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-title) field. | | | - `title:ice` | | updated_at | time | Filter by date and time when the product variant was updated. | | | - `updated_at:>2020-10-21T23:39:20Z`
- `updated_at: - `updated_at:<=2024` | | vendor | string | Filter by the origin or source of the product variant. Learn more about [vendors and managing vendor information](https://help.shopify.com/manual/products/managing-vendor-info). | | | - `vendor:Snowdevil`
- `vendor:Snowdevil OR vendor:Icedevil` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: ProductVariantSortKeys = ID ): ProductVariantConnection! @deprecated(reason: "Use `QueryRoot.productVariants` instead.") """The list of vendors added to products.""" productVendors( """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int! ): StringConnection! @deprecated(reason: "Use `QueryRoot.productVendors` instead.") """List of the shop's products.""" products( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """ A filter made up of terms, connectives, modifiers, and comparators. | name | type | description | acceptable_values | default_value | example_use | | ---- | ---- | ---- | ---- | ---- | ---- | | default | string | Filter by a case-insensitive search of multiple fields in a document. | | | - `query=Bob Norman`
- `query=title:green hoodie` | | barcode | string | Filter by the product variant [`barcode`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-barcode) field. | | | - `barcode:ABC-abc-1234` | | bundles | boolean | Filter by a [product bundle](https://shopify.dev/docs/apps/build/product-merchandising/bundles). A product bundle is a set of two or more related products, which are commonly offered at a discount. | | | - `bundles:true` | | category_id | string | Filter by the product [category ID](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-category) (`product.category.id`). A product category is the category of a product from [Shopify's Standard Product Taxonomy](https://shopify.github.io/product-taxonomy/releases/unstable/?categoryId=sg-4-17-2-17). | | | - `category_id:sg-4-17-2-17` | | collection_id | id | Filter by the collection [`id`](https://shopify.dev/api/admin-graphql/latest/objects/Collection#field-id) field. | | | - `collection_id:108179161409` | | combined_listing_role | string | Filter by the role of the product in a [combined listing](https://shopify.dev/apps/build/product-merchandising/combined-listings). | - `parent`
- `child`
- `no_role` | | - `combined_listing_role:parent` | | created_at | time | Filter by the date and time when the product was created. | | | - `created_at:>'2020-10-21T23:39:20Z'`
- `created_at: - `created_at:<='2024'` | | delivery_profile_id | id | Filter by the delivery profile [`id`](https://shopify.dev/api/admin-graphql/latest/objects/DeliveryProfile#field-id) field. | | | - `delivery_profile_id:108179161409` | | error_feedback | string | Filter by products with publishing errors. | | gift_card | boolean | Filter by the product [`isGiftCard`](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-isgiftcard) field. | | | - `gift_card:true` | | handle | string | Filter by a comma-separated list of product [handles](https://shopify.dev/api/admin-graphql/latest/queries/products#argument-query-filter-handle). | | | - `handle:the-minimal-snowboard` | | has_only_composites | boolean | Filter by products that have only composite variants. | | | - `has_only_composites:true` | | has_only_default_variant | boolean | Filter by products that have only a default variant. A default variant is the only variant if no other variants are specified. | | | - `has_only_default_variant:true` | | has_variant_with_components | boolean | Filter by products that have variants with associated components. | | | - `has_variant_with_components:true` | | id | id | Filter by `id` range. | | | - `id:1234`
- `id:>=1234`
- `id:<=1234` | | inventory_total | integer | Filter by inventory count. | | | - `inventory_total:0`
- `inventory_total:>150`
- `inventory_total:>=200` | | is_price_reduced | boolean | Filter by products that have a reduced price. For more information, refer to the [`CollectionRule`](https://shopify.dev/api/admin-graphql/latest/objects/CollectionRule) object. | | | - `is_price_reduced:true` | | out_of_stock_somewhere | boolean | Filter by products that are out of stock in at least one location. | | | - `out_of_stock_somewhere:true` | | price | bigdecimal | Filter by the product variant [`price`](https://shopify.dev/api/admin-graphql/latest/objects/Productvariant#field-price) field. | | | - `price:100.57` | | product_configuration_owner | string | Filter by the app [`id`](https://shopify.dev/api/admin-graphql/latest/objects/App#field-id) field. | | | - `product_configuration_owner:10001` | | product_publication_status | string | Filter by the publishable status of the resource on a channel, such as the online store. The value is a composite of the [channel `app` ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) (`Channel.app.id`) and one of the valid values. | - `approved`
- `rejected`
- `needs_action`
- `awaiting_review`
- `published`
- `demoted`
- `scheduled`
- `provisionally_published` | | - `publishable_status:189769876-approved` | | product_type | string | Filter by a comma-separated list of [product types](https://help.shopify.com/manual/products/details/product-type). | | | - `product_type:snowboard` | | publication_ids | string | Filter by a comma-separated list of publication IDs that are associated with the product. | | | - `publication_ids:184111530305,184111694145` | | publishable_status | string | Filter by the publishable status of the resource on a channel, such as the online store. The value is a composite of either the [channel `app` ID](https://shopify.dev/api/admin-graphql/latest/objects/Channel#app-price) (`Channel.app.id`) or [channel `name`](https://shopify.dev/docs/api/admin-graphql/latest/objects/Channel#field-name) and one of the valid values. | - `online_store_channel`
- `published`
- `unpublished`
- `visible`
- `unavailable`
- `hidden`
- `intended`
- `visible` | | - `publishable_status:published`
- `publishable_status:189769876:visible`
- `publishable_status:pos:hidden` | | published_at | time | Filter by the date and time when the product was published to the online store and other sales channels. | | | - `published_at:>2020-10-21T23:39:20Z`
- `published_at: - `published_at:<=2024` | | published_status | string | Filter by the published status of the resource on a channel, such as the online store. | - `unset`
- `pending`
- `approved`
- `not approved` | | - `published_status:approved` | | sku | string | Filter by the product variant [`sku`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-sku) field. [Learn more about SKUs](https://help.shopify.com/manual/products/details/sku). | | | - `sku:XYZ-12345` | | status | string | Filter by a comma-separated list of statuses. You can use statuses to manage inventory. Shopify only displays products with an `ACTIVE` status in online stores, sales channels, and apps. | - `ACTIVE`
- `ARCHIVED`
- `DRAFT` | `ACTIVE` | - `status:ACTIVE,DRAFT` | | tag | string | Filter objects by the `tag` field. | | | - `tag:my_tag` | | tag_not | string | Filter by objects that don’t have the specified tag. | | | - `tag_not:my_tag` | | title | string | Filter by the product [`title`](https://shopify.dev/api/admin-graphql/latest/objects/Product#field-title) field. | | | - `title:The Minimal Snowboard` | | updated_at | time | Filter by the date and time when the product was last updated. | | | - `updated_at:>'2020-10-21T23:39:20Z'`
- `updated_at: - `updated_at:<='2024'` | | variant_id | id | Filter by the product variant [`id`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-id) field. | | | - `variant_id:45779434701121` | | variant_title | string | Filter by the product variant [`title`](https://shopify.dev/api/admin-graphql/latest/objects/ProductVariant#field-title) field. | | | - `variant_title:'Special ski wax'` | | vendor | string | Filter by the origin or source of the product. Learn more about [vendors and managing vendor information](https://help.shopify.com/manual/products/managing-vendor-info). | | | - `vendor:Snowdevil`
- `vendor:Snowdevil OR vendor:Icedevil` | You can apply one or more filters to a query. Learn more about [Shopify API search syntax](https://shopify.dev/api/usage/search-syntax). """ query: String """Reverse the order of the underlying list.""" reverse: Boolean = false """ The ID of a [saved search](https://shopify.dev/api/admin-graphql/latest/objects/savedsearch#field-id). The search’s query string is used as the query argument. """ savedSearchId: ID """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: ProductSortKeys = ID ): ProductConnection! @deprecated(reason: "Use `QueryRoot.products`.") """The number of publications for the shop.""" publicationCount: Int! @deprecated(reason: "Use `QueryRoot.publicationsCount` instead.") """ The shop's limits for specific resources. For example, the maximum number ofvariants allowed per product, or the maximum number of locations allowed. """ resourceLimits: ShopResourceLimits! """The URL of the rich text editor that can be used for mobile devices.""" richTextEditorUrl: URL! """Fetches a list of admin search results by a specified query.""" search( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int! """The search query to filter by.""" query: String! """The search result types to filter by.""" types: [SearchResultType!] ): SearchResultConnection! """ The list of search filter options for the shop. These can be used to filter productvisibility for the shop. """ searchFilters: SearchFilterOptions! """Whether the shop has outstanding setup steps.""" setupRequired: Boolean! """The list of countries that the shop ships to.""" shipsToCountries: [CountryCode!]! """The name of the shop owner.""" shopOwnerName: String! """The list of all legal policies associated with a shop.""" shopPolicies: [ShopPolicy!]! """The paginated list of the shop's staff members.""" staffMembers( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): StaffMemberConnection! @deprecated(reason: "Use `QueryRoot.staffMembers` instead.") """ The storefront access token of a private application. These are scoped per-application. """ storefrontAccessTokens( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): StorefrontAccessTokenConnection! """The URL of the shop's storefront.""" storefrontUrl: URL! @deprecated(reason: "Use `url` instead.") """Whether the shop charges taxes for shipping.""" taxShipping: Boolean! """Whether applicable taxes are included in the shop's product prices.""" taxesIncluded: Boolean! """The shop's time zone abbreviation.""" timezoneAbbreviation: String! """The shop's time zone offset.""" timezoneOffset: String! """The shop's time zone offset expressed as a number of minutes.""" timezoneOffsetMinutes: Int! """ Whether transactional SMS sent by Shopify have been disabled for a shop. """ transactionalSmsDisabled: Boolean! """The published translations associated with the resource.""" translations( """Filters translations locale.""" locale: String! """ Filters translations by market ID. Use this argument to retrieve content specific to a market. """ marketId: ID ): [Translation!]! """The shop's unit system for weights and measures.""" unitSystem: UnitSystem! """The date and time when the shop was last updated.""" updatedAt: DateTime! """The URL of the shop's online store.""" url: URL! """The shop's primary unit of weight for products and shipping.""" weightUnit: WeightUnit! } """ An alert message that appears in the Shopify admin about a problem with a store setting, with an action to take. For example, you could show an alert to ask the merchant to enter their billing information to activate Shopify Plus. """ type ShopAlert { """ The text for the button in the alert that links to related information. For example, _Add credit card_. """ action: ShopAlertAction! """ A description of the alert and further information, such as whether the merchant will be charged. """ description: String! } """An action associated to a shop alert, such as adding a credit card.""" type ShopAlertAction { """The text for the button in the alert. For example, _Add credit card_.""" title: String! """The target URL that the button links to.""" url: URL! } """The assigment status to be used to filter fulfillment orders.""" enum FulfillmentOrderAssignmentStatus { """ Fulfillment orders for which the merchant has requested cancellation of the previously accepted fulfillment request. """ CANCELLATION_REQUESTED """ Fulfillment orders for which the merchant's fulfillment request has been accepted. Any number of fulfillments can be created on these fulfillment orders to completely fulfill the requested items. """ FULFILLMENT_ACCEPTED """Fulfillment orders for which the merchant has requested fulfillment.""" FULFILLMENT_REQUESTED """ Fulfillment orders for which the merchant hasn't yet requested fulfillment. """ FULFILLMENT_UNSUBMITTED } """The set of valid sort keys for the FulfillmentOrder query.""" enum FulfillmentOrderSortKeys { """Sort by the `id` value.""" ID """Sort by the `updated_at` value.""" UPDATED_AT } """An auto-generated type for paginating through multiple Apps.""" type AppConnection { edges: [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: [App!]! """ 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 App and a cursor during pagination. """ type AppEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of AppEdge.""" node: App! } """An address for a shop.""" type ShopAddress implements Node { """ The first line of the address. Typically the street address or PO Box number. """ address1: String """ The second line of the address. Typically the number of the apartment, suite, or unit. """ address2: String """The name of the city, district, village, or town.""" city: String """The name of the company or organization.""" company: String """Whether the address coordinates are valid.""" coordinatesValidated: Boolean! """The name of the country.""" country: String """ The two-letter code for the country of the address. For example, US. """ countryCode: String @deprecated(reason: "Use `countryCodeV2` instead.") """ The two-letter code for the country of the address. For example, US. """ countryCodeV2: CountryCode """The first name.""" firstName: String @deprecated(reason: "Always null in this context.") """ A formatted version of the address, customized by the provided arguments. """ formatted( """Whether to include the company in the formatted address.""" withCompany: Boolean = true ): [String!]! """A comma-separated list of the values for city, province, and country.""" formattedArea: String """A globally-unique ID.""" id: ID! """The last name.""" lastName: String @deprecated(reason: "Always null in this context.") """The latitude coordinate of the address.""" latitude: Float """The longitude coordinate of the address.""" longitude: Float """The full name, based on firstName and lastName.""" name: String @deprecated(reason: "Always null in this context.") """ A phone number associated with the address. Formatted using E.164 standard. For example, _+16135551111_. """ phone: String """The region of the address, such as the province, state, or district.""" province: String """ The alphanumeric code for the region. For example, ON. """ provinceCode: String """The zip or postal code of the address.""" zip: String } """ Represents an object containing all information for channels available to a shop. """ type AvailableChannelDefinitionsByChannel { """The channel definitions for channels installed on a shop.""" channelDefinitions: [ChannelDefinition!]! """The name of the channel.""" channelName: String! } """ The list of all the countries from the combined shipping zones for the shop. """ type CountriesInShippingZones { """The list of all the countries from all the combined shipping zones.""" countryCodes: [CountryCode!]! """Whether 'Rest of World' has been defined in any of the shipping zones.""" includeRestOfWorld: Boolean! } """ Currency formats configured for the merchant. These formats are available to use within Liquid. """ type CurrencyFormats { """Money without currency in HTML.""" moneyFormat: FormattedString! """Money without currency in emails.""" moneyInEmailsFormat: String! """Money with currency in HTML.""" moneyWithCurrencyFormat: FormattedString! """Money with currency in emails.""" moneyWithCurrencyInEmailsFormat: String! } """ An auto-generated type for paginating through multiple CurrencySettings. """ type CurrencySettingConnection { edges: [CurrencySettingEdge!]! """ A list of nodes that are contained in CurrencySettingEdge. 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: [CurrencySetting!]! """ 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 CurrencySetting and a cursor during pagination. """ type CurrencySettingEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of CurrencySettingEdge.""" node: CurrencySetting! } """Represents the shop's customer account requirement preference.""" enum ShopCustomerAccountsSetting { DISABLED OPTIONAL REQUIRED } """Information about the shop's customer accounts.""" type CustomerAccountsV2 { """ Indicates which version of customer accounts the merchant is using in online store and checkout. """ customerAccountsVersion: CustomerAccountsVersion! """Login links are shown in online store and checkout.""" loginLinksVisibleOnStorefrontAndCheckout: Boolean! """Customers are required to log in to their account before checkout.""" loginRequiredAtCheckout: Boolean! """The root url for the customer accounts pages.""" url: URL } """The login redirection target for customer accounts.""" enum CustomerAccountsVersion { """ The customer is redirected to the classic customer accounts login page. """ CLASSIC """The customer is redirected to the new customer accounts login page.""" NEW_CUSTOMER_ACCOUNTS } """An auto-generated type for paginating through multiple Strings.""" type StringConnection { edges: [StringEdge!]! """ A list of nodes that are contained in StringEdge. 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: [String!]! """ 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 String and a cursor during pagination. """ type StringEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of StringEdge.""" node: String! } """An auto-generated type for paginating through multiple Customers.""" type CustomerConnection { edges: [CustomerEdge!]! """ A list of nodes that are contained in CustomerEdge. 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: [Customer!]! """ 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 Customer and a cursor during pagination. """ type CustomerEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of CustomerEdge.""" node: Customer! } """The set of valid sort keys for the Customer query.""" enum CustomerSortKeys { """Sort by the `created_at` value.""" CREATED_AT """Sort by the `id` value.""" ID """Sort by the `location` value.""" LOCATION """Sort by the `name` value.""" NAME """ 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 `updated_at` value.""" UPDATED_AT } """ Represents the feature set available to the shop. Most fields specify whether a feature is enabled for a shop, and some fields return information related to specific features. """ type ShopFeatures { """Whether a shop has access to Avalara AvaTax.""" avalaraAvatax: Boolean! """ The branding of the shop, which influences its look and feel in the Shopify admin. """ branding: ShopBranding! """Represents the Bundles feature configuration for the shop.""" bundles: BundlesFeature! """Whether a shop's online store can have CAPTCHA protection.""" captcha: Boolean! """ Whether a shop's online store can have CAPTCHA protection for domains not managed by Shopify. """ captchaExternalDomains: Boolean! @deprecated(reason: "No longer required for external domains") """Represents the cart transform feature configuration for the shop.""" cartTransform: CartTransformFeature! """Whether the delivery profiles functionality is enabled for this shop.""" deliveryProfiles: Boolean! @deprecated(reason: "Delivery profiles are now 100% enabled across Shopify.") """ Whether a shop has access to the Google Analytics dynamic remarketing feature. """ dynamicRemarketing: Boolean! """Whether a shop can be migrated to use Shopify subscriptions.""" eligibleForSubscriptionMigration: Boolean! """Whether a shop is configured properly to sell subscriptions.""" eligibleForSubscriptions: Boolean! """Whether a shop can create gift cards.""" giftCards: Boolean! """ Whether a shop displays Harmonized System codes on products. This is used for customs when shipping internationally. """ harmonizedSystemCode: Boolean! """Whether a shop can enable international domains.""" internationalDomains: Boolean! @deprecated(reason: "All shops have international domains through Shopify Markets.") """Whether a shop can enable international price overrides.""" internationalPriceOverrides: Boolean! """Whether a shop can enable international price rules.""" internationalPriceRules: Boolean! """ Whether a shop has enabled a legacy subscription gateway to handle older subscriptions. """ legacySubscriptionGatewayEnabled: Boolean! """ Whether to show the Live View metrics in the Shopify admin. Live view is hidden from merchants that are on a trial or don't have a storefront. """ liveView: Boolean! """Whether a shop has access to the onboarding visual.""" onboardingVisual: Boolean! @deprecated(reason: "No longer supported.") """ Whether a shop is configured to sell subscriptions with PayPal Express. """ paypalExpressSubscriptionGatewayStatus: PaypalExpressSubscriptionsGatewayStatus! """Whether a shop has access to all reporting features.""" reports: Boolean! """Whether a shop has ever had subscription products.""" sellsSubscriptions: Boolean! """Whether the shop has a Shopify Plus subscription.""" shopifyPlus: Boolean! @deprecated(reason: "Use Shop.plan.shopifyPlus instead.") """ Whether to show metrics in the Shopify admin. Metrics are hidden for new merchants until they become meaningful. """ showMetrics: Boolean! """Whether a shop has an online store.""" storefront: Boolean! """Whether a shop is using Shopify Balance.""" usingShopifyBalance: Boolean! } """ Possible branding of a shop. Branding can be used to define the look of a shop including its styling and logo in the Shopify Admin. """ enum ShopBranding { """Shop has Rogers branding.""" ROGERS """Shop has Shopify branding.""" SHOPIFY """Shop has Shopify Gold branding.""" SHOPIFY_GOLD """Shop has Shopify Plus branding.""" SHOPIFY_PLUS } """Represents the Bundles feature configuration for the shop.""" type BundlesFeature { """Whether a shop is configured properly to sell bundles.""" eligibleForBundles: Boolean! """The reason why a shop is not eligible for bundles.""" ineligibilityReason: String """ Whether a shop has any fixed bundle products or has a cartTransform function installed. """ sellsBundles: Boolean! } """Represents the cart transform feature configuration for the shop.""" type CartTransformFeature { """The cart transform operations eligible for the shop.""" eligibleOperations: CartTransformEligibleOperations! } """Represents the cart transform feature configuration for the shop.""" type CartTransformEligibleOperations { """The shop is eligible for expand operations.""" expandOperation: Boolean! """The shop is eligible for merge operations.""" mergeOperation: Boolean! """The shop is eligible for update operations.""" updateOperation: Boolean! } """Represents a valid PayPal Express subscriptions gateway status.""" enum PaypalExpressSubscriptionsGatewayStatus { """The status is disabled.""" DISABLED """The status is enabled.""" ENABLED """The status is pending.""" PENDING } """An auto-generated type for paginating through multiple InventoryItems.""" type InventoryItemConnection { edges: [InventoryItemEdge!]! """ A list of nodes that are contained in InventoryItemEdge. 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: [InventoryItem!]! """ 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 InventoryItem and a cursor during pagination. """ type InventoryItemEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of InventoryItemEdge.""" node: InventoryItem! } """ The total number of pending orders on a shop if less then a maximum, or that maximum. The atMax field indicates when this maximum has been reached. """ type LimitedPendingOrderCount { """This is set when the number of pending orders has reached the maximum.""" atMax: Boolean! """ The number of pendings orders on the shop. Limited to a maximum of 10000. """ count: Int! } """ Merchant approval for accelerated onboarding to channel integration apps. """ type MerchantApprovalSignals { """ Whether the shop's Shopify Payments account identity is verified. Returns `false` if the identity is unverified or if the shop doesn't have a Shopify Payments account. """ identityVerified: Boolean! """ Whether Shopify has pre-verified the merchant's business for onboarding to channel integration apps. Returns `false` if the shop isn't marked for verification. """ verifiedByShopify: Boolean! """ Which tier of the Shopify verification was determined for the merchant's business for onboarding to channel integration apps. """ verifiedByShopifyTier: String! } """Possible sort of tags.""" enum ShopTagSort { """Alphabetical sort.""" ALPHABETICAL """Popularity sort.""" POPULAR } """Settings related to payments.""" type PaymentSettings { """List of the digital wallets which the shop supports.""" supportedDigitalWallets: [DigitalWallet!]! } """The billing plan of the shop.""" type ShopPlan { """The name of the shop's billing plan.""" displayName: String! """Whether the shop is a partner development shop for testing purposes.""" partnerDevelopment: Boolean! """Whether the shop has a Shopify Plus subscription.""" shopifyPlus: Boolean! } """The set of valid sort keys for the Product query.""" enum ProductSortKeys { """Sort by the `created_at` value.""" CREATED_AT """Sort by the `id` value.""" ID """Sort by the `inventory_total` value.""" INVENTORY_TOTAL """Sort by the `product_type` value.""" PRODUCT_TYPE """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 """Sort by the `vendor` value.""" VENDOR } """Resource limits of a shop.""" type ShopResourceLimits { """Maximum number of locations allowed.""" locationLimit: Int! """Maximum number of product options allowed.""" maxProductOptions: Int! """The maximum number of variants allowed per product.""" maxProductVariants: Int! """ Whether the shop has reached the limit of the number of URL redirects it can make for resources. """ redirectLimitReached: Boolean! } """The connection type for SearchResult.""" type SearchResultConnection { edges: [SearchResultEdge!]! """ An object that’s used to retrieve [cursor information](https://shopify.dev/api/usage/pagination-graphql) about the current page. """ pageInfo: PageInfo! """ An object that’s used to retrieve [cursor information](https://shopify.dev/api/usage/pagination-graphql) about the current page. """ resultsAfterCount: Int! @deprecated(reason: "The provided information is not accurate.") } """ An auto-generated type which holds one SearchResult and a cursor during pagination. """ type SearchResultEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of SearchResultEdge.""" node: SearchResult! } """Represents an individual result returned from a search.""" type SearchResult { """Returns the search result description text.""" description: String """Returns the Image resource presented to accompany a search result.""" image: Image """Returns the ID of the resource returned in the search result.""" reference: Node! """Returns the resource title.""" title: String! """Returns the absolute URL to the resource in the search result.""" url: URL! } """Specifies the type of resources to be returned from a search.""" enum SearchResultType { """An article.""" ARTICLE """A balance transaction.""" BALANCE_TRANSACTION """A blog.""" BLOG COLLECTION CUSTOMER """A code discount redeem code.""" DISCOUNT_REDEEM_CODE DRAFT_ORDER """A file.""" FILE ORDER """A page.""" PAGE PRICE_RULE PRODUCT """A URL redirect.""" URL_REDIRECT """An inventory transfer.""" INVENTORY_TRANSFER } """ A list of search filters along with their specific options in value and label pair for filtering. """ type SearchFilterOptions { """A list of options that can be use to filter product availability.""" productAvailability: [FilterOption!]! } """A filter option is one possible value in a search filter.""" type FilterOption { """The filter option's label for display purposes.""" label: String! """The filter option's value.""" value: String! } """ Policy that a merchant has configured for their store, such as their refund or privacy policy. """ type ShopPolicy implements HasPublishedTranslations & Node { """The text of the policy. The maximum size is 512kb.""" body: HTML! """ The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) when the policy was created. """ createdAt: Date! """A globally-unique ID.""" id: ID! """ The translated title of the policy. For example, Refund Policy or Politique de remboursement. """ title: String! """The published translations associated with the resource.""" translations( """Filters translations locale.""" locale: String! """ Filters translations by market ID. Use this argument to retrieve content specific to a market. """ marketId: ID ): [Translation!]! """The shop policy type.""" type: ShopPolicyType! """ The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) when the policy was last modified. """ updatedAt: Date! """The public URL of the policy.""" url: URL! } """Available shop policy types.""" enum ShopPolicyType { """The contact information.""" CONTACT_INFORMATION """The legal notice.""" LEGAL_NOTICE """The privacy policy.""" PRIVACY_POLICY """The refund policy.""" REFUND_POLICY """The shipping policy.""" SHIPPING_POLICY """The cancellation policy.""" SUBSCRIPTION_POLICY """The terms of sale.""" TERMS_OF_SALE """The terms of service.""" TERMS_OF_SERVICE } """An auto-generated type for paginating through multiple StaffMembers.""" type StaffMemberConnection { edges: [StaffMemberEdge!]! """ A list of nodes that are contained in StaffMemberEdge. 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: [StaffMember!]! """ 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 StaffMember and a cursor during pagination. """ type StaffMemberEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of StaffMemberEdge.""" node: StaffMember! } """ An auto-generated type for paginating through multiple StorefrontAccessTokens. """ type StorefrontAccessTokenConnection { edges: [StorefrontAccessTokenEdge!]! """ A list of nodes that are contained in StorefrontAccessTokenEdge. 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: [StorefrontAccessToken!]! """ 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 StorefrontAccessToken and a cursor during pagination. """ type StorefrontAccessTokenEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of StorefrontAccessTokenEdge.""" node: StorefrontAccessToken! } """ A token that's used to delegate unauthenticated access scopes to clients that need to access the unauthenticated [Storefront API](https://shopify.dev/docs/api/storefront). An app can have a maximum of 100 active storefront access tokens for each shop. [Get started with the Storefront API](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/getting-started). """ type StorefrontAccessToken implements Node { """List of permissions associated with the token.""" accessScopes: [AccessScope!]! """The issued public access token.""" accessToken: String! """The date and time when the public access token was created.""" createdAt: DateTime! """A globally-unique ID.""" id: ID! """ An arbitrary title for each token determined by the developer, used for reference purposes. """ title: String! """The date and time when the storefront access token was updated.""" updatedAt: DateTime! } """Systems of weights and measures.""" enum UnitSystem { """Imperial system of weights and measures.""" IMPERIAL_SYSTEM """Metric system of weights and measures.""" METRIC_SYSTEM } """Represents a Shopify hosted 3D model.""" type Model3d implements File & Media & Node { """A word or phrase to describe the contents or the function of a file.""" alt: String """The 3d model's bounding box information.""" boundingBox: Model3dBoundingBox """ The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) when the file was created. """ createdAt: DateTime! """Any errors that have occurred on the file.""" fileErrors: [FileError!]! """The status of the file.""" fileStatus: FileStatus! """The 3d model's filename.""" filename: String! """A globally-unique ID.""" id: ID! """The media content type.""" mediaContentType: MediaContentType! """Any errors which have occurred on the media.""" mediaErrors: [MediaError!]! """The warnings attached to the media.""" mediaWarnings: [MediaWarning!]! """The 3d model's original source.""" originalSource: Model3dSource """The preview image for the media.""" preview: MediaPreviewImage """The 3d model's sources.""" sources: [Model3dSource!]! """Current status of the media.""" status: MediaStatus! """ The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) when the file was last updated. """ updatedAt: DateTime! } """Bounding box information of a 3d model.""" type Model3dBoundingBox { """Size in meters of the smallest volume which contains the 3d model.""" size: Vector3! } """ Representation of 3d vectors and points. It can represent either the coordinates of a point in space, a direction, or size. Presented as an object with three floating-point values. """ type Vector3 { """The x coordinate of Vector3.""" x: Float! """The y coordinate of Vector3.""" y: Float! """The z coordinate of Vector3.""" z: Float! } """ A source for a Shopify-hosted 3d model. Types of sources include GLB and USDZ formatted 3d models, where the former is an original 3d model and the latter has been converted from the original. If the original source is in GLB format and over 15 MBs in size, then both the original and the USDZ formatted source are optimized to reduce the file size. """ type Model3dSource { """The 3d model source's filesize.""" filesize: Int! """The 3d model source's format.""" format: String! """The 3d model source's MIME type.""" mimeType: String! """The 3d model source's URL.""" url: String! } """Represents a Shopify hosted video.""" type Video implements File & Media & Node { """A word or phrase to share the nature or contents of a media.""" alt: String """ The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) when the file was created. """ createdAt: DateTime! """ The video's duration in milliseconds. This value is `null` unless the video's status field is [READY](https://shopify.dev/api/admin-graphql/latest/enums/MediaStatus#value-ready). """ duration: Int """Any errors that have occurred on the file.""" fileErrors: [FileError!]! """The status of the file.""" fileStatus: FileStatus! """The video's filename.""" filename: String! """A globally-unique ID.""" id: ID! """The media content type.""" mediaContentType: MediaContentType! """Any errors which have occurred on the media.""" mediaErrors: [MediaError!]! """The warnings attached to the media.""" mediaWarnings: [MediaWarning!]! """ The video's original source. This value is `null` unless the video's status field is [READY](https://shopify.dev/api/admin-graphql/latest/enums/MediaStatus#value-ready). """ originalSource: VideoSource """The preview image for the media.""" preview: MediaPreviewImage """ The video's sources. This value is empty unless the video's status field is [READY](https://shopify.dev/api/admin-graphql/latest/enums/MediaStatus#value-ready). """ sources: [VideoSource!]! """Current status of the media.""" status: MediaStatus! """ The date and time ([ISO 8601 format](http://en.wikipedia.org/wiki/ISO_8601)) when the file was last updated. """ updatedAt: DateTime! } """ Represents a source for a Shopify hosted video. Types of sources include the original video, lower resolution versions of the original video, and an m3u8 playlist file. Only [videos](https://shopify.dev/api/admin-graphql/latest/objects/video) with a status field of [READY](https://shopify.dev/api/admin-graphql/latest/enums/MediaStatus#value-ready) have sources. """ type VideoSource { """The video source's file size in bytes.""" fileSize: Int """The video source's file format extension.""" format: String! """The video source's height.""" height: Int! """The video source's MIME type.""" mimeType: String! """The video source's URL.""" url: String! """The video source's width.""" width: Int! } """ Represents a summary of the current version of data in a resource. The `compare_digest` field can be used as input for mutations that implement a compare-and-swap mechanism. """ interface HasCompareDigest { """The data stored in the resource, represented as a digest.""" compareDigest: String! } """The part of the image that should remain after cropping.""" enum CropRegion { """Keep the bottom of the image.""" BOTTOM """Keep the center of the image.""" CENTER """Keep the left of the image.""" LEFT """Keep the right of the image.""" RIGHT """Keep the top of the image.""" TOP } """List of supported image content types.""" enum ImageContentType { """A JPG image.""" JPG """A PNG image.""" PNG """A WEBP image.""" WEBP } """ The available options for transforming an image. All transformation options are considered best effort. Any transformation that the original image type doesn't support will be ignored. """ input ImageTransformInput { """ The region of the image to remain after cropping. Must be used in conjunction with the `maxWidth` and/or `maxHeight` fields, where the `maxWidth` and `maxHeight` aren't equal. The `crop` argument should coincide with the smaller value. A smaller `maxWidth` indicates a `LEFT` or `RIGHT` crop, while a smaller `maxHeight` indicates a `TOP` or `BOTTOM` crop. For example, `{ maxWidth: 5, maxHeight: 10, crop: LEFT }` will result in an image with a width of 5 and height of 10, where the right side of the image is removed. """ crop: CropRegion """Image height in pixels between 1 and 5760.""" maxHeight: Int """Image width in pixels between 1 and 5760.""" maxWidth: Int """ Convert the source image into the preferred content type. Supported conversions: `.svg` to `.png`, any file type to `.jpg`, and any file type to `.webp`. """ preferredContentType: ImageContentType """ Image size multiplier for high-resolution retina displays. Must be within 1..3. """ scale: Int = 1 } """Possible types of app developer.""" enum AppDeveloperType { """Indicates the app developer works directly for a Merchant.""" MERCHANT """Indicates the app developer is a Partner.""" PARTNER """Indicates the app developer is Shopify.""" SHOPIFY """ Indicates the app developer is unknown. It is not categorized as any of the other developer types. """ UNKNOWN } """Requirements that must be met before an app can be installed.""" type FailedRequirement { """ Action to be taken to resolve a failed requirement, including URL link. """ action: NavigationItem """ A concise set of copy strings to be displayed to merchants, to guide them in resolving problems your app encounters when trying to make use of their Shop and its resources. """ message: String! } """The public-facing category for an app.""" enum AppPublicCategory { """ The app's public category is [custom](https://shopify.dev/apps/distribution#capabilities-and-requirements). """ 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 """ The app's public category is [private](https://shopify.dev/apps/distribution#deprecated-app-types). """ PRIVATE """ The app's public category is [public](https://shopify.dev/apps/distribution#capabilities-and-requirements). """ PUBLIC } """ An auto-generated type for paginating through multiple SubscriptionBillingAttempts. """ type SubscriptionBillingAttemptConnection { edges: [SubscriptionBillingAttemptEdge!]! """ A list of nodes that are contained in SubscriptionBillingAttemptEdge. 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: [SubscriptionBillingAttempt!]! """ 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 SubscriptionBillingAttempt and a cursor during pagination. """ type SubscriptionBillingAttemptEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of SubscriptionBillingAttemptEdge.""" node: SubscriptionBillingAttempt! } """ A record of an execution of the subscription billing process. Billing attempts use idempotency keys to avoid duplicate order creation. A successful billing attempt will create an order. """ type SubscriptionBillingAttempt implements Node { """The date and time when the billing attempt was completed.""" completedAt: DateTime """The date and time when the billing attempt was created.""" createdAt: DateTime! """A code corresponding to a payment error during processing.""" errorCode: SubscriptionBillingAttemptErrorCode @deprecated(reason: "As of API version 2025-01, use `processingError.code` instead to get the errorCode") """A message describing a payment error during processing.""" errorMessage: String @deprecated(reason: "As of API version 2025-01, use `processingError.message` instead to get the errorMessage") """A globally-unique ID.""" id: ID! """A unique key generated by the client to avoid duplicate payments.""" idempotencyKey: String! """ The URL where the customer needs to be redirected so they can complete the 3D Secure payment flow. """ nextActionUrl: URL """The result of this billing attempt if completed successfully.""" order: Order """ The date and time used to calculate fulfillment intervals for a billing attempt that successfully completed after the current anchor date. To prevent fulfillment from being pushed to the next anchor date, this field can override the billing attempt date. """ originTime: DateTime """The reference shared between retried payment attempts.""" paymentGroupId: String """ The reference shared between payment attempts with similar payment details. """ paymentSessionId: String """Error information from processing the billing attempt.""" processingError: SubscriptionBillingAttemptProcessingError """Whether the billing attempt is still processing.""" ready: Boolean! """Whether the billing attempt respects the merchant's inventory policy.""" respectInventoryPolicy: Boolean! """The subscription contract.""" subscriptionContract: SubscriptionContract! """The transactions created by the billing attempt.""" transactions( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): OrderTransactionConnection! """The state of the billing attempt with state-specific data.""" state: SubscriptionBillingAttemptState! } """ The possible error codes associated with making billing attempts. The error codes supplement the `error_message` to provide consistent results and help with dunning management. """ enum SubscriptionBillingAttemptErrorCode { """The amount is too small.""" AMOUNT_TOO_SMALL """There was an error during the authentication.""" AUTHENTICATION_ERROR """Payment method was canceled by buyer.""" BUYER_CANCELED_PAYMENT_METHOD """Card number was incorrect.""" CARD_NUMBER_INCORRECT """Customer is invalid.""" CUSTOMER_INVALID """Customer was not found.""" CUSTOMER_NOT_FOUND """Payment method is expired.""" EXPIRED_PAYMENT_METHOD """Fraud was suspected.""" FRAUD_SUSPECTED """Insufficient funds.""" INSUFFICIENT_FUNDS """Not enough inventory found.""" INSUFFICIENT_INVENTORY """ The billing agreement ID or the transaction ID for the customer's payment method is invalid. """ INVALID_CUSTOMER_BILLING_AGREEMENT """ Payment method is invalid. Please update or create a new payment method. """ INVALID_PAYMENT_METHOD """The shipping address is either missing or invalid.""" INVALID_SHIPPING_ADDRESS """No inventory location found or enabled.""" INVENTORY_ALLOCATIONS_NOT_FOUND """A payment has already been made for this invoice.""" INVOICE_ALREADY_PAID """Payment method was declined by processor.""" PAYMENT_METHOD_DECLINED """ Payment method cannot be used with the current payment gateway test mode configuration. """ PAYMENT_METHOD_INCOMPATIBLE_WITH_GATEWAY_CONFIG """Payment method was not found.""" PAYMENT_METHOD_NOT_FOUND """Payment provider is not enabled.""" PAYMENT_PROVIDER_IS_NOT_ENABLED """Paypal Error General.""" PAYPAL_ERROR_GENERAL """Purchase Type is not supported.""" PURCHASE_TYPE_NOT_SUPPORTED """Gateway is in test mode and attempted to bill a live payment method.""" TEST_MODE """Transient error, try again later.""" TRANSIENT_ERROR """There was an unexpected error during the billing attempt.""" UNEXPECTED_ERROR """The amount exceeds the limit for this payment method.""" AMOUNT_TOO_LARGE """Authentication failed during payment processing.""" AUTHENTICATION_FAILED """Additional authentication is required to complete the payment.""" AUTHENTICATION_REQUIRED """The card issuer requires the cardholder to call them.""" CALL_ISSUER """The payment was cancelled.""" CANCELLED_PAYMENT """The card was declined by the payment processor.""" CARD_DECLINED """The payment confirmation was rejected.""" CONFIRMATION_REJECTED """ The card issuer declined the transaction with a 'do not honor' response. """ DO_NOT_HONOR """The required buyer action has expired.""" EXPIRED_BUYER_ACTION """The card has expired.""" EXPIRED_CARD """Gift cards must have a price greater than zero.""" FREE_GIFT_CARD_NOT_ALLOWED """A generic payment error occurred.""" GENERIC_ERROR """The billing address provided is incorrect.""" INCORRECT_ADDRESS """The card security code entered is incorrect.""" INCORRECT_CVC """The card number entered is incorrect.""" INCORRECT_NUMBER """The PIN entered is incorrect.""" INCORRECT_PIN """The postal/ZIP code provided is incorrect.""" INCORRECT_ZIP """The transaction amount is invalid for this payment method.""" INVALID_AMOUNT """The billing address is invalid.""" INVALID_BILLING_ADDRESS """The currency is not supported for this payment method.""" INVALID_CURRENCY """The card security code is invalid.""" INVALID_CVC """The expiry date of the card provided is invalid.""" INVALID_EXPIRY_DATE """The card number is invalid.""" INVALID_NUMBER """The purchase type is invalid for this payment method.""" INVALID_PURCHASE_TYPE """The payment request is invalid.""" INVALID_REQUEST """Merchant account configuration error.""" MERCHANT_ACCOUNT_ERROR """The transaction was declined due to a merchant-defined rule.""" MERCHANT_RULE """ Non-test order limit reached. Use a test payment gateway to place another order. """ NON_TEST_ORDER_LIMIT_REACHED """The off-session payment was rejected and requires customer action.""" OFF_SESSION_REJECTED """Payment method is not specified on subscription contract.""" PAYMENT_METHOD_NOT_SPECIFIED """The payment method type is not supported.""" PAYMENT_METHOD_UNSUPPORTED """An exception occurred with the payment provider.""" PAYMENT_PROVIDER_ERROR """A processing error occurred with the payment provider.""" PROCESSING_ERROR """The payment retry was declined.""" RETRY_DECLINED """The transaction exceeds the cardholder's limit.""" TRANSACTION_LIMIT_EXCEEDED } """An error that prevented a billing attempt.""" interface SubscriptionBillingAttemptProcessingError { """The code for the error.""" code: SubscriptionBillingAttemptErrorCode! """An explanation of the error.""" message: String! } """The state of a subscription billing attempt with state-specific data.""" union SubscriptionBillingAttemptState = SubscriptionBillingAttemptActionRequiredState | SubscriptionBillingAttemptFailedState | SubscriptionBillingAttemptPendingState | SubscriptionBillingAttemptSuccessState """ The billing attempt state that requires an action to resolve. Must complete the action required for the billing attempt to continue being processed. """ type SubscriptionBillingAttemptActionRequiredState { """The action required to resolve the billing attempt.""" action: SubscriptionBillingAttemptAction! } """The action required to continue processing the billing attempt.""" union SubscriptionBillingAttemptAction = SubscriptionBillingAttemptPaymentChallenge """A payment challenge that the customer must complete.""" type SubscriptionBillingAttemptPaymentChallenge { """URL to redirect the customer for authentication.""" nextActionUrl: URL! """The status of the payment challenge.""" status: SubscriptionBillingAttemptPaymentChallengeStatus! } """The status of the billing attempt authentication process.""" enum SubscriptionBillingAttemptPaymentChallengeStatus { """ The billing attempt is rejected because the customer action was required. The customer has not yet attempted to complete the challenge. """ OFF_SESSION_REJECTED """The customer was brought on session and challenged.""" ON_SESSION_CHALLENGED } """The billing attempt failed due to an error.""" type SubscriptionBillingAttemptFailedState { """The error that caused the billing attempt to fail.""" error: SubscriptionBillingAttemptError! } """Possible error types for a subscription billing attempt.""" union SubscriptionBillingAttemptError = SubscriptionBillingAttemptGeneralError | SubscriptionBillingAttemptInventoryError | SubscriptionBillingAttemptPaymentError | SubscriptionBillingAttemptUnexpectedError """ An error that occurred during a subscription billing attempt that doesn't fit other categories. """ type SubscriptionBillingAttemptGeneralError { """The error code for the failure.""" code: SubscriptionBillingAttemptGeneralErrorCode! } """Error codes for other billing attempt failures.""" enum SubscriptionBillingAttemptGeneralErrorCode { """Customer is invalid.""" CUSTOMER_INVALID """Customer was not found.""" CUSTOMER_NOT_FOUND """Free gift cards are not allowed.""" FREE_GIFT_CARD_NOT_ALLOWED """Billing address is invalid.""" INVALID_BILLING_ADDRESS """Merchant account error.""" MERCHANT_ACCOUNT_ERROR """Non-test order limit reached.""" NON_TEST_ORDER_LIMIT_REACHED """Payment method test mode incompatible with gateway.""" PAYMENT_METHOD_INCOMPATIBLE_WITH_GATEWAY_CONFIG """Payment method was not found.""" PAYMENT_METHOD_NOT_FOUND """Payment method not specified.""" PAYMENT_METHOD_NOT_SPECIFIED """Payment provider is not enabled.""" PAYMENT_PROVIDER_IS_NOT_ENABLED } """ An inventory-related error that occurred during a subscription billing attempt. """ type SubscriptionBillingAttemptInventoryError { """The error code for the inventory-related failure.""" code: SubscriptionBillingAttemptInventoryErrorCode! """ A list of product variants that caused the insufficient inventory error. """ insufficientStockProductVariants( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): ProductVariantConnection } """Error codes for inventory-related billing attempt failures.""" enum SubscriptionBillingAttemptInventoryErrorCode { """Insufficient inventory.""" INSUFFICIENT_INVENTORY """No inventory location found or enabled.""" INVENTORY_ALLOCATIONS_NOT_FOUND } """ A payment-related error that occurred during a subscription billing attempt. """ type SubscriptionBillingAttemptPaymentError { """The error code for the payment failure.""" code: SubscriptionBillingAttemptPaymentErrorCode! } """Error codes for payment-related billing attempt failures.""" enum SubscriptionBillingAttemptPaymentErrorCode { """The transaction amount is too large.""" AMOUNT_TOO_LARGE """The transaction amount is too small.""" AMOUNT_TOO_SMALL """There was an error during the authentication.""" AUTHENTICATION_ERROR """Authentication failed during the payment processing.""" AUTHENTICATION_FAILED """Additional authentication is required for this payment.""" AUTHENTICATION_REQUIRED """The buyer canceled the payment method.""" BUYER_CANCELED_PAYMENT_METHOD """The card issuer requires the cardholder to call.""" CALL_ISSUER """The payment was cancelled.""" CANCELLED_PAYMENT """The card was declined.""" CARD_DECLINED """The card number is incorrect.""" CARD_NUMBER_INCORRECT """The payment confirmation was rejected.""" CONFIRMATION_REJECTED """ The card issuer returned 'do not honor'. The customer should reach out to their card-issuing bank for more information. """ DO_NOT_HONOR """The required buyer action has expired.""" EXPIRED_BUYER_ACTION """The card has expired.""" EXPIRED_CARD """Payment method has expired.""" EXPIRED_PAYMENT_METHOD """Fraud was suspected on this transaction.""" FRAUD_SUSPECTED """A generic payment error occurred.""" GENERIC_ERROR """The billing address is incorrect.""" INCORRECT_ADDRESS """The card security code is incorrect.""" INCORRECT_CVC """The card number is incorrect.""" INCORRECT_NUMBER """The PIN is incorrect.""" INCORRECT_PIN """The postal/ZIP code is incorrect.""" INCORRECT_ZIP """The payment method has insufficient funds to complete the payment.""" INSUFFICIENT_FUNDS """The transaction amount is invalid.""" INVALID_AMOUNT """The currency is not supported.""" INVALID_CURRENCY """The customer billing agreement is invalid.""" INVALID_CUSTOMER_BILLING_AGREEMENT """The card security code is invalid.""" INVALID_CVC """The expiry date is invalid.""" INVALID_EXPIRY_DATE """The card number is invalid.""" INVALID_NUMBER """Payment method is invalid.""" INVALID_PAYMENT_METHOD """The purchase type is invalid.""" INVALID_PURCHASE_TYPE """The payment request is invalid.""" INVALID_REQUEST """The shipping address is invalid.""" INVALID_SHIPPING_ADDRESS """The invoice has already been paid.""" INVOICE_ALREADY_PAID """The payment was declined due to a merchant rule.""" MERCHANT_RULE """The off-session payment was rejected.""" OFF_SESSION_REJECTED """Payment method was declined.""" PAYMENT_METHOD_DECLINED """The payment method type is not supported.""" PAYMENT_METHOD_UNSUPPORTED """An exception occurred with the payment provider.""" PAYMENT_PROVIDER_ERROR """A general PayPal error occurred.""" PAYPAL_ERROR_GENERAL """A processing error occurred.""" PROCESSING_ERROR """Purchase type is not supported.""" PURCHASE_TYPE_NOT_SUPPORTED """The payment retry was declined.""" RETRY_DECLINED """A test mode error occurred.""" TEST_MODE """The transaction exceeded the limit.""" TRANSACTION_LIMIT_EXCEEDED """A transient error occurred, try again later.""" TRANSIENT_ERROR } """ An unexpected error that occurred during a subscription billing attempt. """ type SubscriptionBillingAttemptUnexpectedError { """A message describing the unexpected error.""" message: String! } """The billing attempt is currently being processed.""" type SubscriptionBillingAttemptPendingState { """Always true when the billing attempt is pending.""" processing: Boolean! } """The billing attempt completed successfully and created an order.""" type SubscriptionBillingAttemptSuccessState { """ The order created by the successful billing attempt. May be null if the order was deleted. """ order: Order } """Represents a Subscription Billing Policy.""" type SubscriptionBillingPolicy { """ Specific anchor dates upon which the billing interval calculations should be made. """ anchors: [SellingPlanAnchor!]! """ The kind of interval that's associated with this schedule (e.g. Monthly, Weekly, etc). """ interval: SellingPlanInterval! """The number of billing intervals between invoices.""" intervalCount: Int! """Maximum amount of cycles after which the subscription ends.""" maxCycles: Int """Minimum amount of cycles required in the subscription.""" minCycles: Int } """ Describes the delivery method to use to get the physical goods to the customer. """ union SubscriptionDeliveryMethod = SubscriptionDeliveryMethodLocalDelivery | SubscriptionDeliveryMethodPickup | SubscriptionDeliveryMethodShipping """ A subscription delivery method for local delivery. The other subscription delivery methods can be found in the `SubscriptionDeliveryMethod` union type. """ type SubscriptionDeliveryMethodLocalDelivery { """The address to deliver to.""" address: SubscriptionMailingAddress! """The details of the local delivery method to use.""" localDeliveryOption: SubscriptionDeliveryMethodLocalDeliveryOption! } """Represents a Mailing Address on a Subscription.""" type SubscriptionMailingAddress { """ The first line of the address. Typically the street address or PO Box number. """ address1: String """ The second line of the address. Typically the number of the apartment, suite, or unit. """ address2: String """The name of the city, district, village, or town.""" city: String """The name of the customer's company or organization.""" company: String """The name of the country.""" country: String """ The two-letter code for the country of the address. For example, US. """ countryCode: CountryCode """The first name of the customer.""" firstName: String """The last name of the customer.""" lastName: String """The full name of the customer, based on firstName and lastName.""" name: String """ A unique phone number for the customer. Formatted using E.164 standard. For example, _+16135551111_. """ phone: String """The region of the address, such as the province, state, or district.""" province: String """ The alphanumeric code for the region. For example, ON. """ provinceCode: String """The zip or postal code of the address.""" zip: String } """The selected delivery option on a subscription contract.""" type SubscriptionDeliveryMethodLocalDeliveryOption { """A custom reference to the delivery method for use with automations.""" code: String """ The details displayed to the customer to describe the local delivery option. """ description: String """ The delivery instructions that the customer can provide to the merchant. """ instructions: String """ The phone number that the customer provided to the merchant. Formatted using E.164 standard. For example, `+16135551111`. """ phone: String! """The presentment title of the local delivery option.""" presentmentTitle: String """The title of the local delivery option.""" title: String } """A delivery method with a pickup option.""" type SubscriptionDeliveryMethodPickup { """The details of the pickup delivery method to use.""" pickupOption: SubscriptionDeliveryMethodPickupOption! } """Represents the selected pickup option on a subscription contract.""" type SubscriptionDeliveryMethodPickupOption { """A custom reference to the delivery method for use with automations.""" code: String """The details displayed to the customer to describe the pickup option.""" description: String """The location where the customer will pick up the merchandise.""" location: Location! """The presentment title of the pickup option.""" presentmentTitle: String """The title of the pickup option.""" title: String } """ Represents a shipping delivery method: a mailing address and a shipping option. """ type SubscriptionDeliveryMethodShipping { """The address to ship to.""" address: SubscriptionMailingAddress! """The details of the shipping method to use.""" shippingOption: SubscriptionDeliveryMethodShippingOption! } """Represents the selected shipping option on a subscription contract.""" type SubscriptionDeliveryMethodShippingOption { """ The carrier service that's providing this shipping option. This field isn't currently supported and returns null. """ carrierService: DeliveryCarrierService @deprecated(reason: "This field has never been implemented.") """The code of the shipping option.""" code: String """The description of the shipping option.""" description: String """The presentment title of the shipping option.""" presentmentTitle: String """The title of the shipping option.""" title: String } """Represents a Subscription Delivery Policy.""" type SubscriptionDeliveryPolicy { """ The specific anchor dates upon which the delivery interval calculations should be made. """ anchors: [SellingPlanAnchor!]! """ The kind of interval that's associated with this schedule (e.g. Monthly, Weekly, etc). """ interval: SellingPlanInterval! """The number of delivery intervals between deliveries.""" intervalCount: Int! } """ An auto-generated type for paginating through multiple SubscriptionManualDiscounts. """ type SubscriptionManualDiscountConnection { edges: [SubscriptionManualDiscountEdge!]! """ A list of nodes that are contained in SubscriptionManualDiscountEdge. 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: [SubscriptionManualDiscount!]! """ 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 SubscriptionManualDiscount and a cursor during pagination. """ type SubscriptionManualDiscountEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of SubscriptionManualDiscountEdge.""" node: SubscriptionManualDiscount! } """Custom subscription discount.""" type SubscriptionManualDiscount { """Entitled line items used to apply the subscription discount on.""" entitledLines: SubscriptionDiscountEntitledLines! """The unique ID.""" id: ID! """ The maximum number of times the subscription discount will be applied on orders. """ recurringCycleLimit: Int """The reason that the discount on the subscription draft is rejected.""" rejectionReason: SubscriptionDiscountRejectionReason """Type of line the discount applies on.""" targetType: DiscountTargetType! """The title associated with the subscription discount.""" title: String """The type of the subscription discount.""" type: DiscountType! """The number of times the discount was applied.""" usageCount: Int! """The value of the subscription discount.""" value: SubscriptionDiscountValue! } """Represents the subscription lines the discount applies on.""" type SubscriptionDiscountEntitledLines { """ Specify whether the subscription discount will apply on all subscription lines. """ all: Boolean! """ The list of subscription lines associated with the subscription discount. """ lines( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): SubscriptionLineConnection! } """ An auto-generated type for paginating through multiple SubscriptionLines. """ type SubscriptionLineConnection { edges: [SubscriptionLineEdge!]! """ A list of nodes that are contained in SubscriptionLineEdge. 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: [SubscriptionLine!]! """ 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 SubscriptionLine and a cursor during pagination. """ type SubscriptionLineEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of SubscriptionLineEdge.""" node: SubscriptionLine! } """Represents a Subscription Line.""" type SubscriptionLine { """ The origin contract of the line if it was concatenated from another contract. """ concatenatedOriginContract: SubscriptionContract """ The price per unit for the subscription line in the contract's currency. """ currentPrice: MoneyV2! """List of custom attributes associated to the line item.""" customAttributes: [Attribute!]! """Discount allocations.""" discountAllocations: [SubscriptionDiscountAllocation!]! """The unique ID.""" id: ID! """Total line price including all discounts.""" lineDiscountedPrice: MoneyV2! """Describe the price changes of the line over time.""" pricingPolicy: SubscriptionPricingPolicy """The product ID associated with the subscription line.""" productId: ID """The quantity of the unit selected for the subscription line.""" quantity: Int! """Whether physical shipping is required for the variant.""" requiresShipping: Boolean! """ The selling plan ID associated to the line. Indicates which selling plan was used to create this contract line initially. The selling plan ID is also used to find the associated delivery profile. The subscription contract, subscription line, or selling plan might have changed. As a result, the selling plan's attributes might not match the information on the contract. """ sellingPlanId: ID """ The selling plan name associated to the line. This name describes the order line items created from this subscription line for both merchants and customers. The value can be different from the selling plan's name, because both the selling plan's name and the subscription line's selling_plan_name attribute can be updated independently. """ sellingPlanName: String """Variant SKU number of the item associated with the subscription line.""" sku: String """Whether the variant is taxable.""" taxable: Boolean! """Product title of the item associated with the subscription line.""" title: String! """The product variant ID associated with the subscription line.""" variantId: ID """The image associated with the line item's variant or product.""" variantImage: Image """ Product variant title of the item associated with the subscription line. """ variantTitle: String } """Represents what a particular discount reduces from a line price.""" type SubscriptionDiscountAllocation { """Allocation amount.""" amount: MoneyV2! """Discount that created the allocation.""" discount: SubscriptionDiscount! } """Subscription draft discount types.""" union SubscriptionDiscount = SubscriptionAppliedCodeDiscount | SubscriptionManualDiscount """Represents an applied code discount.""" type SubscriptionAppliedCodeDiscount { """The unique ID.""" id: ID! """The redeem code of the discount that applies on the subscription.""" redeemCode: String! """The reason that the discount on the subscription draft is rejected.""" rejectionReason: SubscriptionDiscountRejectionReason } """The reason a discount on a subscription draft was rejected.""" enum SubscriptionDiscountRejectionReason { """Discount is inactive.""" CURRENTLY_INACTIVE """Given customer does not qualify for the discount.""" CUSTOMER_NOT_ELIGIBLE """Customer usage limit has been reached.""" CUSTOMER_USAGE_LIMIT_REACHED """Purchase type does not qualify for the discount.""" INCOMPATIBLE_PURCHASE_TYPE """Internal error during discount code validation.""" INTERNAL_ERROR """Discount code is not found.""" NOT_FOUND """Discount does not apply to any of the given line items.""" NO_ENTITLED_LINE_ITEMS """No applicable shipping lines.""" NO_ENTITLED_SHIPPING_LINES """Purchase amount of items does not qualify for the discount.""" PURCHASE_NOT_IN_RANGE """Quantity of items does not qualify for the discount.""" QUANTITY_NOT_IN_RANGE """Discount usage limit has been reached.""" USAGE_LIMIT_REACHED } """Represents a Subscription Line Pricing Policy.""" type SubscriptionPricingPolicy { """ The base price per unit for the subscription line in the contract's currency. """ basePrice: MoneyV2! """The adjustments per cycle for the subscription line.""" cycleDiscounts: [SubscriptionCyclePriceAdjustment!]! } """Represents a Subscription Line Pricing Cycle Adjustment.""" type SubscriptionCyclePriceAdjustment { """Price adjustment type.""" adjustmentType: SellingPlanPricingPolicyAdjustmentType! """Price adjustment value.""" adjustmentValue: SellingPlanPricingPolicyAdjustmentValue! """The number of cycles required before this pricing policy applies.""" afterCycle: Int! """The computed price after the adjustments applied.""" computedPrice: MoneyV2! } """ The type of line (line item or shipping line) on an order that the subscription discount is applicable towards. """ enum DiscountTargetType { """The discount applies onto line items.""" LINE_ITEM """The discount applies onto shipping lines.""" SHIPPING_LINE } """The type of the subscription discount.""" enum DiscountType { """Automatic discount type.""" AUTOMATIC_DISCOUNT """Code discount type.""" CODE_DISCOUNT """Manual discount type.""" MANUAL } """The value of the discount and how it will be applied.""" union SubscriptionDiscountValue = SubscriptionDiscountFixedAmountValue | SubscriptionDiscountPercentageValue """The value of the discount and how it will be applied.""" type SubscriptionDiscountFixedAmountValue { """The fixed amount value of the discount.""" amount: MoneyV2! """Whether the amount is applied per item.""" appliesOnEachItem: Boolean! } """The percentage value of the discount.""" type SubscriptionDiscountPercentageValue { """The percentage value of the discount.""" percentage: Int! } """ The possible values of the last billing error on a subscription contract. """ enum SubscriptionContractLastBillingErrorType { """Subscription billing attempt error due to customer error.""" CUSTOMER_ERROR """Subscription billing attempt error due to inventory error.""" INVENTORY_ERROR """All other billing attempt errors.""" OTHER """Subscription billing attempt error due to payment error.""" PAYMENT_ERROR } """ The possible status values of the last payment on a subscription contract. """ enum SubscriptionContractLastPaymentStatus { """Failed subscription billing attempt.""" FAILED """Successful subscription billing attempt.""" SUCCEEDED } """The possible status values of a subscription.""" enum SubscriptionContractSubscriptionStatus { """The contract is active and continuing per its policies.""" ACTIVE """The contract was ended by an unplanned customer action.""" CANCELLED """ The contract has ended per the expected circumstances. All billing and deliverycycles of the subscriptions were executed. """ EXPIRED """ The contract ended because billing failed and no further billing attempts are expected. """ FAILED """ The contract is temporarily paused and is expected to resume in the future. """ PAUSED } """Information about a subscription's pause state.""" type SubscriptionPauseInfo { """Whether the subscription is currently paused.""" isPaused: Boolean! """The date when the subscription was paused.""" pausedAt: DateTime """The date when the subscription is scheduled to resume.""" pausedUntil: DateTime } """Represents subscription contract common fields.""" interface SubscriptionContractBase { """The subscription app that the subscription contract is registered to.""" app: App """The URL of the subscription contract page on the subscription app.""" appAdminUrl: URL """The currency that's used for the subscription contract.""" currencyCode: CurrencyCode! """A list of the custom attributes to be added to the generated orders.""" customAttributes: [Attribute!]! """The customer to whom the subscription contract belongs.""" customer: Customer """The customer payment method that's used for the subscription contract.""" customerPaymentMethod( """Whether to show the customer's revoked payment method.""" showRevoked: Boolean = false ): CustomerPaymentMethod """The delivery method for each billing of the subscription contract.""" deliveryMethod: SubscriptionDeliveryMethod """The delivery price for each billing of the subscription contract.""" deliveryPrice: MoneyV2! """ The list of subscription discounts associated with the subscription contract. """ discounts( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): SubscriptionManualDiscountConnection! """The number of lines associated with the subscription contract.""" lineCount: Int! @deprecated(reason: "Use `linesCount` instead.") """ The list of subscription lines associated with the subscription contract. """ lines( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): SubscriptionLineConnection! """The number of lines associated with the subscription contract.""" linesCount: Count """The note field that will be applied to the generated orders.""" note: String """A list of the subscription contract's orders.""" orders( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): OrderConnection! """The date and time when the subscription contract was updated.""" updatedAt: DateTime! } """ An upcoming billing cycle with sequential-flow effects projected onto its lines (ZUBS-889). """ type FlowPreviewCycle { cycleIndex: Int! """The order number this cycle will bill as, or null if it is skipped.""" ordinal: Int billingAttemptExpectedDate: String """True when a flow rule changes or adds a line on this cycle.""" changed: Boolean! lines: [FlowPreviewLine!]! } """ A projected line on a previewed cycle. Reflects flow discounts, replacements and free one-time items. """ type FlowPreviewLine { variantId: ID! productId: ID title: String variantTitle: String imageUrl: String quantity: Int! currentPrice: MoneyV2! basePrice: MoneyV2 """ The pre-flow price of this line, present when a flow rule changed it (old→new display). """ previousPrice: MoneyV2 sellingPlanId: ID """True for a free one-time item added by a flow on this cycle only.""" isFreeOneTime: Boolean """ Set when a flow rule changed or added this line; drives the customer-facing indicator. """ flowChange: FlowPreviewChange } type FlowPreviewChange { triggerNthOrder: Int! actionType: String! flowName: String } """ An auto-generated type for paginating through multiple SubscriptionBillingCycles. """ type SubscriptionBillingCycleConnection { edges: [SubscriptionBillingCycleEdge!]! """ A list of nodes that are contained in SubscriptionBillingCycleEdge. 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: [SubscriptionBillingCycle!]! """ 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 SubscriptionBillingCycle and a cursor during pagination. """ type SubscriptionBillingCycleEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of SubscriptionBillingCycleEdge.""" node: SubscriptionBillingCycle! } """A subscription billing cycle.""" type SubscriptionBillingCycle { """The date on which the billing attempt is expected to be made.""" billingAttemptExpectedDate: DateTime! """The list of billing attempts associated with the billing cycle.""" billingAttempts( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): SubscriptionBillingAttemptConnection! """The end date of the billing cycle.""" cycleEndAt: DateTime! """The index of the billing cycle.""" cycleIndex: Int! """The start date of the billing cycle.""" cycleStartAt: DateTime! """Whether this billing cycle was edited.""" edited: Boolean! """The active edited contract for the billing cycle.""" editedContract: SubscriptionBillingCycleEditedContract """Whether this billing cycle was skipped.""" skipped: Boolean! """The subscription contract that the billing cycle belongs to.""" sourceContract: SubscriptionContract! """The status of the billing cycle.""" status: SubscriptionBillingCycleBillingCycleStatus! } """Represents a subscription contract with billing cycles.""" type SubscriptionBillingCycleEditedContract implements SubscriptionContractBase { """The subscription app that the subscription contract is registered to.""" app: App """The URL of the subscription contract page on the subscription app.""" appAdminUrl: URL """The billing cycles that the edited contract belongs to.""" billingCycles( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false """ Sort the underlying list using a key. If your query is slow or returns an error, then [try specifying a sort key that matches the field used in the search](https://shopify.dev/api/usage/pagination-graphql#search-performance-considerations). """ sortKey: SubscriptionBillingCyclesSortKeys = CYCLE_INDEX ): SubscriptionBillingCycleConnection! """The date and time when the subscription contract was created.""" createdAt: DateTime! """The currency that's used for the subscription contract.""" currencyCode: CurrencyCode! """A list of the custom attributes to be added to the generated orders.""" customAttributes: [Attribute!]! """The customer to whom the subscription contract belongs.""" customer: Customer """The customer payment method that's used for the subscription contract.""" customerPaymentMethod( """Whether to show the customer's revoked payment method.""" showRevoked: Boolean = false ): CustomerPaymentMethod """The delivery method for each billing of the subscription contract.""" deliveryMethod: SubscriptionDeliveryMethod """The delivery price for each billing of the subscription contract.""" deliveryPrice: MoneyV2! """ The list of subscription discounts associated with the subscription contract. """ discounts( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): SubscriptionManualDiscountConnection! """The number of lines associated with the subscription contract.""" lineCount: Int! @deprecated(reason: "Use `linesCount` instead.") """ The list of subscription lines associated with the subscription contract. """ lines( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): SubscriptionLineConnection! """The number of lines associated with the subscription contract.""" linesCount: Count """The note field that will be applied to the generated orders.""" note: String """A list of the subscription contract's orders.""" orders( """ The elements that come after the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ after: String """ The elements that come before the specified [cursor](https://shopify.dev/api/usage/pagination-graphql). """ before: String """ The first `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ first: Int """ The last `n` elements from the [paginated list](https://shopify.dev/api/usage/pagination-graphql). """ last: Int """Reverse the order of the underlying list.""" reverse: Boolean = false ): OrderConnection! """The date and time when the subscription contract was updated.""" updatedAt: DateTime! } """The set of valid sort keys for the SubscriptionBillingCycles query.""" enum SubscriptionBillingCyclesSortKeys { """Sort by the `cycle_index` value.""" CYCLE_INDEX """Sort by the `id` value.""" ID } """The possible status values of a subscription billing cycle.""" enum SubscriptionBillingCycleBillingCycleStatus { """The billing cycle is billed.""" BILLED """The billing cycle hasn't been billed.""" UNBILLED } """ The input fields to select a subset of subscription billing cycles within a date range. """ input SubscriptionBillingCyclesDateRangeSelector { """The end date and time for the range.""" endDate: DateTime! """The start date and time for the range.""" startDate: DateTime! } """ The input fields to select a subset of subscription billing cycles within an index range. """ input SubscriptionBillingCyclesIndexRangeSelector { """The end index for the range.""" endIndex: Int! """The start index for the range.""" startIndex: Int! } type SubscriptionEventConnection { edges: [SubscriptionEventEdge!]! pageInfo: PageInfo! } type SubscriptionEventEdge { node: SubscriptionEvent! } type SubscriptionEvent { id: ID! type: SubscriptionEventType! """Human-readable summary of what happened.""" title: String! createdAt: DateTime! actor: SubscriptionEventActor! """Numeric ID of the primary resource.""" resourceId: String! resourceType: SubscriptionEventResourceType! """Admin-relative URL to the primary resource.""" resourceUrl: String! """ Numeric ID of a related resource (e.g. the customer on a subscription event). """ associatedResourceId: String associatedResourceType: SubscriptionEventResourceType associatedResourceUrl: String """Additional event-specific data (e.g. skippedDate, cycleIndex).""" metadata: JSON } """The type of subscription event.""" enum SubscriptionEventType { DRAFT_ORDER_INVOICE_SENT SUBSCRIPTION_CREATED SUBSCRIPTION_PAUSED SUBSCRIPTION_RESUMED SUBSCRIPTION_CANCELLED SUBSCRIPTION_SKIPPED SUBSCRIPTION_UNSKIPPED SUBSCRIPTION_BILLING_DATE_CHANGED SUBSCRIPTION_BILLING_CYCLE_EDITED SUBSCRIPTION_DEFAULT_ONETIME_ITEM_FILLED SUBSCRIPTION_FREQUENCY_CHANGED SUBSCRIPTION_ITEMS_UPDATED SUBSCRIPTION_UPDATED RENEWAL_UPCOMING RENEWAL_SUCCESSFUL RENEWAL_FAILED PAYMENT_PROCESSING_ERROR PAYMENT_PROCESSOR_NOTIFICATION ORDER_GENERATED SHIP_NOW_INITIATED FULFILLMENT_CREATED FULFILLMENT_ORDER_READY REFUND_CREATED CUSTOMER_DETAILS_CHANGED SHIPPING_ADDRESS_CHANGED DELIVERY_METHOD_CHANGED DISCOUNT_ADDED EMAIL_NOTIFICATION SUBSCRIPTION_BILLING_FAILURE SUBSCRIPTION_INVENTORY_FAILURE SUBSCRIPTION_USAGE_CAP_APPROACHING SUBSCRIPTION_ACTIVATED SEQUENTIAL_FLOW_ACTION_EXECUTED SEQUENTIAL_FLOW_ACTION_FAILED ADMIN_NOTE APP_UNINSTALLED SYSTEM_NOTE } """Who triggered the event.""" enum SubscriptionEventActor { """The end customer.""" CUSTOMER """The merchant via the admin dashboard.""" MERCHANT """Automated action (webhooks, cron jobs, Shopify Flow).""" SYSTEM } """The primary resource an event belongs to.""" enum SubscriptionEventResourceType { subscription customer order } type CancellationReasons { edges: [CancellationReasonEdge!]! } type CancellationReasonEdge { node: CancellationReason! } type CancellationReason { id: ID! fields: [CancellationReasonField!]! } type CancellationReasonField { key: String! value: String type: String! } type SubscriptionContractDetailsResponse { sellingPlanGroupId: ID subscriptionBillingCycles: SubscriptionBillingCycleConnection deliveryProfiles: DeliveryProfilesData featureFlags: [FeatureFlag!] markets: MarketConnection intervalInfo: IntervalInfoData pauseInfo: SubscriptionPauseInfo productHandles: [ProductHandle!] """ The recommendations offered on this contract: in stock and offered to customers in the contract's market and currency. Read live from the upsell collections when they are set, else from the stored recommendations. price, compareAtPrice and currencyCode are the market price in the contract's currency. """ productRecommendations: [ProductRecommendation!] productFilters: ShopMetafieldData subscriptionLifecycleInfo: SubscriptionLifecycleInfo! pickupLocations: [CustomPickupLocation!]! } type DeliveryProfilesData { profileData: DeliveryProfileConnection syncedAt: DateTime error: ErrorIndicator } """ An auto-generated type for paginating through multiple DeliveryProfiles. """ type DeliveryProfileConnection { edges: [DeliveryProfileEdge!]! """ A list of nodes that are contained in DeliveryProfileEdge. 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: [DeliveryProfile!]! """ 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 DeliveryProfile and a cursor during pagination. """ type DeliveryProfileEdge { """ The position of each node in an array, used in [pagination](https://shopify.dev/api/usage/pagination-graphql). """ cursor: String! """The item at the end of DeliveryProfileEdge.""" node: DeliveryProfile! } type ErrorIndicator { hasError: Boolean! errorMessage: String } type FeatureFlag { name: String! enabled: Boolean! } type IntervalInfoData { contract: SubscriptionContract sellingPlanGroups: SellingPlanGroupConnection error: ErrorIndicator } type ProductHandle { id: ID! handle: String! } type ProductRecommendation { productId: ID! variantId: ID! discountPercentage: Float! productTitle: String variantTitle: String productImage: String price: String compareAtPrice: String currencyCode: CurrencyCode handle: String } type ShopMetafieldData { id: ID namespace: String! key: String! value: String! type: String error: ErrorIndicator } type SubscriptionLifecycleInfo { legacyContractId: String contractId: String! legacyCustomerId: String customerId: String legacyOrderCount: Int totalOrderCount: Int! migratedAt: DateTime } type CustomPickupLocation { name: String! address: String countryCode: String expectedDeliveryDay: String lat: Float lng: Float type: String } input SubscriptionContractDetailsInput { contractId: ID! startDate: DateTime endDate: DateTime marketId: ID featureFlagNames: [String!] } """ A Shopify Location with local pickup enabled. Distinct from CustomPickupLocation, which is the merchant-curated catalog stored in contract attributes. """ type NativePickupLocation { id: ID! name: String! pickupTime: String instructions: String address: NativePickupLocationAddress } type NativePickupLocationAddress { address1: String address2: String city: String zip: String countryCode: String } type AvailableShippingOptionsPayload { options: [AvailableShippingOption!]! """ Set when Shopify could resolve no rates, e.g. an address the shop does not ship to. """ message: String """ Machine-readable reason, set only when the client can act on it. PHONE_REQUIRED means the address phone number is what Shopify refused. `message` carries Shopify's own English and must never be shown to a customer. """ code: String } type AvailableShippingOption { code: String! title: String! presentmentTitle: String description: String price: MoneyV2 } input AddressInput { firstName: String! lastName: String! company: String address1: String! address2: String city: String! province: String country: String! zip: String! phone: String } """ A retry scheduled after a failed billing attempt, per the merchant's dunning policy. """ type RebillingAttempt { id: Int! contractId: ID! billingAttemptId: ID! scheduledFor: DateTime! triggeredAt: DateTime status: RebillingAttemptStatus! errorMessage: String createdAt: DateTime! } enum RebillingAttemptStatus { PENDING TRIGGERED FAILED } """ A product with an active selling plan group, surfaced in the customer-portal empty-state upsell. """ type SubscriptionUpsellProduct { productId: ID! title: String! handle: String! imageUrl: String variantId: ID! price: String! compareAtPrice: String currencyCode: CurrencyCode sellingPlanId: ID! maxDiscountPercentage: Float! """ True when at least two available variants have different prices, so the UI should render "From {price}". """ priceVaries: Boolean! } """Return type for `subscriptionBillingCycleScheduleEdit` mutation.""" type SubscriptionBillingCycleScheduleEditPayload { """The updated billing cycle.""" billingCycle: SubscriptionBillingCycle """The list of errors that occurred from executing the mutation.""" userErrors: [SubscriptionBillingCycleUserError!]! } """The possible errors for a subscription billing cycle.""" type SubscriptionBillingCycleUserError implements DisplayableError { """The error code.""" code: SubscriptionBillingCycleErrorCode """The path to the input field that caused the error.""" field: [String!] """The error message.""" message: String! } """ Possible error codes that can be returned by `SubscriptionBillingCycleUserError`. """ enum SubscriptionBillingCycleErrorCode { """Billing date cannot be set on skipped billing cycle.""" BILLING_DATE_SET_ON_SKIPPED """ Billing cycle selector cannot select billing cycle outside of index range. """ CYCLE_INDEX_OUT_OF_RANGE """Can't find the billing cycle.""" CYCLE_NOT_FOUND """ Billing cycle selector cannot select billing cycle outside of start date range. """ CYCLE_START_DATE_OUT_OF_RANGE """ Billing cycle schedule edit input provided is empty. Must take in parameters to modify schedule. """ EMPTY_BILLING_CYCLE_EDIT_SCHEDULE_INPUT """Billing cycle has incomplete billing attempts in progress.""" INCOMPLETE_BILLING_ATTEMPTS """The input value is invalid.""" INVALID """The index selector is invalid.""" INVALID_CYCLE_INDEX """The date selector is invalid.""" INVALID_DATE """ There's no contract or schedule edit associated with the targeted billing cycle(s). """ NO_CYCLE_EDITS """ Billing date of a cycle cannot be set to a value outside of its billing date range. """ OUT_OF_BOUNDS """ Billing cycle selector cannot select upcoming billing cycle past limit. """ UPCOMING_CYCLE_LIMIT_EXCEEDED } """Return type for `subscriptionBillingAttemptCreate` mutation.""" type SubscriptionBillingAttemptCreatePayload { """The subscription billing attempt.""" subscriptionBillingAttempt: SubscriptionBillingAttempt """The list of errors that occurred from executing the mutation.""" userErrors: [BillingAttemptUserError!]! } """ Represents an error that happens during the execution of a billing attempt mutation. """ type BillingAttemptUserError implements DisplayableError { """The error code.""" code: BillingAttemptUserErrorCode """The path to the input field that caused the error.""" field: [String!] """The error message.""" message: String! } """ Possible error codes that can be returned by `BillingAttemptUserError`. """ enum BillingAttemptUserErrorCode { """ Billing cycle charge attempt made more than 24 hours before the billing cycle `billingAttemptExpectedDate`. """ BILLING_CYCLE_CHARGE_BEFORE_EXPECTED_DATE """Billing cycle must not be skipped.""" BILLING_CYCLE_SKIPPED """The input value is blank.""" BLANK """Subscription contract does not exist.""" CONTRACT_NOT_FOUND """Subscription contract cannot be billed if paused.""" CONTRACT_PAUSED """Subscription contract cannot be billed once terminated.""" CONTRACT_TERMINATED """Subscription contract is under review.""" CONTRACT_UNDER_REVIEW """ Billing cycle selector cannot select billing cycle outside of index range. """ CYCLE_INDEX_OUT_OF_RANGE """ Billing cycle selector cannot select billing cycle outside of start date range. """ CYCLE_START_DATE_OUT_OF_RANGE """The input value is invalid.""" INVALID """Origin time cannot be before the contract creation time.""" ORIGIN_TIME_BEFORE_CONTRACT_CREATION """ Origin time needs to be within the selected billing cycle's start and end at date. """ ORIGIN_TIME_OUT_OF_RANGE """ Billing cycle selector cannot select upcoming billing cycle past limit. """ UPCOMING_CYCLE_LIMIT_EXCEEDED """Failed to process the billing attempt.""" PROCESSING_FAILED """Billing attempt rate limit exceeded - try later.""" THROTTLED } type RescheduleNextBillingDatePayload { success: Boolean! userErrors: [UserError!]! } input RescheduleNextBillingDateInput { contractId: ID! cycleIndex: Int! nextBillingDate: DateTime! } """Return type for `customerPaymentMethodSendUpdateEmail` mutation.""" type CustomerPaymentMethodSendUpdateEmailPayload { """The customer to whom an update payment method email was sent.""" customer: Customer """The list of errors that occurred from executing the mutation.""" userErrors: [UserError!]! } """Return type for `customerAddressUpdate` mutation.""" type CustomerAddressUpdatePayload { """The updated address.""" address: MailingAddress """The list of errors that occurred from executing the mutation.""" userErrors: [UserError!]! } """The input fields to create or update a mailing address.""" input MailingAddressInput { """ The first line of the address. Typically the street address or PO Box number. """ address1: String """ The second line of the address. Typically the number of the apartment, suite, or unit. """ address2: String """The name of the city, district, village, or town.""" city: String """The name of the customer's company or organization.""" company: String """The two-letter code for the country of the address.""" countryCode: CountryCode """The first name of the customer.""" firstName: String """The last name of the customer.""" lastName: String """ A unique phone number for the customer. Formatted using E.164 standard. For example, _+16135551111_. """ phone: String """ The code for the region of the address, such as the province, state, or district. For example QC for Quebec, Canada. """ provinceCode: String """The zip or postal code of the address.""" zip: String } """Return type for `subscriptionContractCancel` mutation.""" type SubscriptionContractCancelPayload { """The new Subscription Contract object.""" contract: SubscriptionContract """The list of errors that occurred from executing the mutation.""" userErrors: [SubscriptionContractStatusUpdateUserError!]! } """Represents a subscription contract status update error.""" type SubscriptionContractStatusUpdateUserError implements DisplayableError { """The error code.""" code: SubscriptionContractStatusUpdateErrorCode """The path to the input field that caused the error.""" field: [String!] """The error message.""" message: String! } """ Possible error codes that can be returned by `SubscriptionContractStatusUpdateUserError`. """ enum SubscriptionContractStatusUpdateErrorCode { """Subscription contract status cannot be changed once terminated.""" CONTRACT_TERMINATED """The input value is invalid.""" INVALID } """Return type for `subscriptionContractPause` mutation.""" type SubscriptionContractPausePayload { """The new Subscription Contract object.""" contract: SubscriptionContract """The list of errors that occurred from executing the mutation.""" userErrors: [SubscriptionContractStatusUpdateUserError!]! } """Return type for `subscriptionContractActivate` mutation.""" type SubscriptionContractActivatePayload { """The new Subscription Contract object.""" contract: SubscriptionContract """The list of errors that occurred from executing the mutation.""" userErrors: [SubscriptionContractStatusUpdateUserError!]! } type QueryRoot { """ Available delivery/billing frequency options for a subscription contract. """ subscriptionContractIntervalInfo(subscriptionContractId: ID!, marketId: ID): SubscriptionIntervalInfoPayload! subscriptionContract(subscriptionContractId: ID!): SubscriptionContract! """ Preview of how sequential flow steps will change a contract's upcoming billing cycles (ZUBS-889). Read-only projection; no mutations. """ subscriptionFlowCyclePreview(contractId: ID!): [FlowPreviewCycle!]! subscriptionBillingCycles(contractId: ID!, billingCyclesDateRangeSelector: SubscriptionBillingCyclesDateRangeSelector, billingCyclesIndexRangeSelector: SubscriptionBillingCyclesIndexRangeSelector, after: String, before: String, first: Int, last: Int, reverse: Boolean = false, sortKey: SubscriptionBillingCyclesSortKeys = CYCLE_INDEX): SubscriptionBillingCycleConnection! """ Timeline of events (created, paused, skipped, etc.) for a subscription. """ subscriptionEvents(subscriptionId: ID!): SubscriptionEventConnection! customer(id: ID!): Customer! """ Cancellation reasons configured by the merchant, shown to customers during cancellation. Pass the language the customer is reading in to receive the merchant's translated labels. """ customerCancellationReasons(language: String): CancellationReasons! """Pause status and scheduled resume date for a subscription contract.""" subscriptionContractPauseInfo(contractId: ID!): SubscriptionPauseInfo! """ Consolidated subscription view combining billing cycles, delivery profiles, interval info, and product data in a single optimized call. """ subscriptionContractDetails(input: SubscriptionContractDetailsInput!): SubscriptionContractDetailsResponse! """ Lifecycle metadata for a subscription: total order count, migration origin, and legacy IDs. """ subscriptionLifecycleInfo(contractId: ID!): SubscriptionLifecycleInfo! """ Shopify Locations this contract can be collected from: local pickup enabled, and every line servable there. Fetched on demand rather than with contract details, since most customers never open the picker. """ availablePickupLocations(contractId: ID!): [NativePickupLocation!]! """ Shipping rates the shop's delivery profiles offer for this contract at a candidate address. Needed to switch a contract to delivery, since Shopify stores whatever shippingOption it is given without validating it. """ availableShippingOptions(contractId: ID!, address: AddressInput!): AvailableShippingOptionsPayload! """ Pending rebilling attempts for a subscription contract, ordered by scheduledFor asc. """ rebillingAttempts(contractId: ID!): [RebillingAttempt!]! """ Products with active selling plan groups, used for the customer-portal empty-state upsell. Only products offered to customers are returned, at their cheapest offered in-stock variant. """ subscriptionUpsellProducts( """ The buyer's country. Prices the products for that market, in its currency, and drops what it does not sell. Omitted, the shop's default market prices them and the market checks are skipped. """ countryCode: String ): [SubscriptionUpsellProduct!]! } type Mutation { """Skip or unskip a specific billing cycle by index.""" subscriptionBillingCycleSkip(contractId: ID!, billingCycleIndex: Int!, skip: Boolean!): SubscriptionBillingCycleScheduleEditPayload """ Triggers an immediate billing attempt for the next billing cycle of a subscription. """ subscriptionShipNow(contractId: ID!): SubscriptionBillingAttemptCreatePayload """Reschedules a specific billing cycle to a new date.""" rescheduleNextBillingDate(input: RescheduleNextBillingDateInput!): RescheduleNextBillingDatePayload! """ Sends an email to the customer prompting them to update their payment method. """ customerPaymentMethodSendUpdateEmail(customerPaymentMethodId: ID!): CustomerPaymentMethodSendUpdateEmailPayload customerAddressUpdate(customerId: ID!, addressId: ID!, address: MailingAddressInput!): CustomerAddressUpdatePayload! subscriptionContractCancel(subscriptionContractId: ID!): SubscriptionContractCancelPayload! """ Pauses a subscription. Optionally set a resume date (pausedUntil) or a number of cycles to skip (pauseCycles). """ customerSubscriptionContractPause(contractId: ID!, pausedUntil: DateTime, pauseCycles: Int): SubscriptionContractPausePayload! """Resumes a paused subscription.""" customerSubscriptionContractActivate(contractId: ID!): SubscriptionContractActivatePayload! }