-
-
Notifications
You must be signed in to change notification settings - Fork 113
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Isn't a valid override of... #284
Comments
Okay I solved it by naming every key that occurs more than once. For example:
This should really be documented somewhere. |
I'm struggling with this also - naming each field doesn't seem like a scalable answer |
You just have to name the fields that are lower in the tree and have the same name as a field in an ancestor object. In the response from the the GraphQL api the fields are also renamed so you have to adjust your model serialization if you have any. So yeah this should be improved. |
@alexolivier @janoschpelzer
|
@vasilich6107 Yes everything is working now without having to use naming, thanks! |
Thanks for quick feedback @janoschpelzer |
released in |
Facing the same issue using fragments that request the same field. Using version 7.9.0-beta |
Bug description
In my generated graph_ql.graphql.api file I see "Isn't a valid override" errors in a lot of places so I can't run my app. The error looks like this:
The problem seems to be, that
node
is already defined in a parent class and that's because in the graph ql query anode {...}
statement is nested in anothernode {...}
statement like this:Any ideas how to solve this?
Specs
Artemis version: 7.0.0-beta.2
build.yaml:
GraphQL query:
``` query checkoutById($checkoutId: ID!) { node(id: $checkoutId) { __typename ...on Checkout { id webUrl totalPriceV2 { amount currencyCode } discountApplications(first: 10) { edges { node { __typename ...on DiscountCodeApplication { applicable code value { __typename ...on PricingPercentageValue { percentage } } } } } } lineItems(first: 250) { edges { node { id quantity title variant { id quantityAvailable product { id title description availableForSale publishedAt vendor productType images(first: 5) { edges { node { originalSrc } } } variants(first: 1) { pageInfo { hasNextPage } edges { node { id title priceV2 { amount currencyCode } quantityAvailable metafields(first: 20) { edges { node { key value } } } } } } } priceV2 { amount currencyCode } metafields(first: 20) { edges { node { key value } } } } } } } } } } ```Artemis output:
GraphQL schema:
Other formatting libraries include:
For a more general solution, the [Unicode CLDR number formatting database] is available with many implementations
(such as TwitterCldr).
"""
type MoneyV2 {
"Decimal money amount."
amount: Decimal!
"Currency of the money."
currencyCode: CurrencyCode!
}
"""
An auto-generated type for paginating through multiple MoneyV2s.
"""
type MoneyV2Connection {
"A list of edges."
edges: [MoneyV2Edge!]!
"Information to aid in pagination."
pageInfo: PageInfo!
}
"""
An auto-generated type which holds one MoneyV2 and a cursor during pagination.
"""
type MoneyV2Edge {
"A cursor for use in pagination."
cursor: String!
"The item at the end of MoneyV2Edge."
node: MoneyV2!
}
"The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start."
type Mutation {
"Updates the attributes of a checkout."
checkoutAttributesUpdate(
"The ID of the checkout."
checkoutId: ID!,
"The fields used to update a checkout's attributes."
input: CheckoutAttributesUpdateInput!
): CheckoutAttributesUpdatePayload @deprecated(reason : "Use
checkoutAttributesUpdateV2
instead")"Updates the attributes of a checkout."
checkoutAttributesUpdateV2(
"The ID of the checkout."
checkoutId: ID!,
"The checkout attributes to update."
input: CheckoutAttributesUpdateV2Input!
): CheckoutAttributesUpdateV2Payload
"Completes a checkout without providing payment information. You can use this mutation for free items or items whose purchase price is covered by a gift card."
checkoutCompleteFree(
"The ID of the checkout."
checkoutId: ID!
): CheckoutCompleteFreePayload
"Completes a checkout using a credit card token from Shopify's Vault."
checkoutCompleteWithCreditCard(
"The ID of the checkout."
checkoutId: ID!,
"The credit card info to apply as a payment."
payment: CreditCardPaymentInput!
): CheckoutCompleteWithCreditCardPayload @deprecated(reason : "Use
checkoutCompleteWithCreditCardV2
instead")"Completes a checkout using a credit card token from Shopify's card vault. Before you can complete checkouts using CheckoutCompleteWithCreditCardV2, you need to request payment processing."
checkoutCompleteWithCreditCardV2(
"The ID of the checkout."
checkoutId: ID!,
"The credit card info to apply as a payment."
payment: CreditCardPaymentInputV2!
): CheckoutCompleteWithCreditCardV2Payload
"Completes a checkout with a tokenized payment."
checkoutCompleteWithTokenizedPayment(
"The ID of the checkout."
checkoutId: ID!,
"The info to apply as a tokenized payment."
payment: TokenizedPaymentInput!
): CheckoutCompleteWithTokenizedPaymentPayload @deprecated(reason : "Use
checkoutCompleteWithTokenizedPaymentV2
instead")"Completes a checkout with a tokenized payment."
checkoutCompleteWithTokenizedPaymentV2(
"The ID of the checkout."
checkoutId: ID!,
"The info to apply as a tokenized payment."
payment: TokenizedPaymentInputV2!
): CheckoutCompleteWithTokenizedPaymentV2Payload @deprecated(reason : "Use
checkoutCompleteWithTokenizedPaymentV3
instead")"Completes a checkout with a tokenized payment."
checkoutCompleteWithTokenizedPaymentV3(
"The ID of the checkout."
checkoutId: ID!,
"The info to apply as a tokenized payment."
payment: TokenizedPaymentInputV3!
): CheckoutCompleteWithTokenizedPaymentV3Payload
"Creates a new checkout."
checkoutCreate(
"The fields used to create a checkout."
input: CheckoutCreateInput!
): CheckoutCreatePayload
"Associates a customer to the checkout."
checkoutCustomerAssociate(
"The ID of the checkout."
checkoutId: ID!,
"The customer access token of the customer to associate."
customerAccessToken: String!
): CheckoutCustomerAssociatePayload @deprecated(reason : "Use
checkoutCustomerAssociateV2
instead")"Associates a customer to the checkout."
checkoutCustomerAssociateV2(
"The ID of the checkout."
checkoutId: ID!,
"The customer access token of the customer to associate."
customerAccessToken: String!
): CheckoutCustomerAssociateV2Payload
"Disassociates the current checkout customer from the checkout."
checkoutCustomerDisassociate(
"The ID of the checkout."
checkoutId: ID!
): CheckoutCustomerDisassociatePayload @deprecated(reason : "Use
checkoutCustomerDisassociateV2
instead")"Disassociates the current checkout customer from the checkout."
checkoutCustomerDisassociateV2(
"The ID of the checkout."
checkoutId: ID!
): CheckoutCustomerDisassociateV2Payload
"Applies a discount to an existing checkout using a discount code."
checkoutDiscountCodeApply(
"The ID of the checkout."
checkoutId: ID!,
"The discount code to apply to the checkout."
discountCode: String!
): CheckoutDiscountCodeApplyPayload @deprecated(reason : "Use
checkoutDiscountCodeApplyV2
instead")"Applies a discount to an existing checkout using a discount code."
checkoutDiscountCodeApplyV2(
"The ID of the checkout."
checkoutId: ID!,
"The discount code to apply to the checkout."
discountCode: String!
): CheckoutDiscountCodeApplyV2Payload
"Removes the applied discount from an existing checkout."
checkoutDiscountCodeRemove(
"The ID of the checkout."
checkoutId: ID!
): CheckoutDiscountCodeRemovePayload
"Updates the email on an existing checkout."
checkoutEmailUpdate(
"The ID of the checkout."
checkoutId: ID!,
"The email to update the checkout with."
email: String!
): CheckoutEmailUpdatePayload @deprecated(reason : "Use
checkoutEmailUpdateV2
instead")"Updates the email on an existing checkout."
checkoutEmailUpdateV2(
"The ID of the checkout."
checkoutId: ID!,
"The email to update the checkout with."
email: String!
): CheckoutEmailUpdateV2Payload
"Applies a gift card to an existing checkout using a gift card code. This will replace all currently applied gift cards."
checkoutGiftCardApply(
"The ID of the checkout."
checkoutId: ID!,
"The code of the gift card to apply on the checkout."
giftCardCode: String!
): CheckoutGiftCardApplyPayload @deprecated(reason : "Use
checkoutGiftCardsAppend
instead")"Removes an applied gift card from the checkout."
checkoutGiftCardRemove(
"The ID of the Applied Gift Card to remove from the Checkout."
appliedGiftCardId: ID!,
"The ID of the checkout."
checkoutId: ID!
): CheckoutGiftCardRemovePayload @deprecated(reason : "Use
checkoutGiftCardRemoveV2
instead")"Removes an applied gift card from the checkout."
checkoutGiftCardRemoveV2(
"The ID of the Applied Gift Card to remove from the Checkout."
appliedGiftCardId: ID!,
"The ID of the checkout."
checkoutId: ID!
): CheckoutGiftCardRemoveV2Payload
"Appends gift cards to an existing checkout."
checkoutGiftCardsAppend(
"The ID of the checkout."
checkoutId: ID!,
"A list of gift card codes to append to the checkout."
giftCardCodes: [String!]!
): CheckoutGiftCardsAppendPayload
"Adds a list of line items to a checkout."
checkoutLineItemsAdd(
"The ID of the checkout."
checkoutId: ID!,
"A list of line item objects to add to the checkout."
lineItems: [CheckoutLineItemInput!]!
): CheckoutLineItemsAddPayload
"Removes line items from an existing checkout."
checkoutLineItemsRemove(
"The checkout on which to remove line items."
checkoutId: ID!,
"Line item ids to remove."
lineItemIds: [ID!]!
): CheckoutLineItemsRemovePayload
"Sets a list of line items to a checkout."
checkoutLineItemsReplace(
"The ID of the checkout."
checkoutId: ID!,
"A list of line item objects to set on the checkout."
lineItems: [CheckoutLineItemInput!]!
): CheckoutLineItemsReplacePayload
"Updates line items on a checkout."
checkoutLineItemsUpdate(
"The checkout on which to update line items."
checkoutId: ID!,
"Line items to update."
lineItems: [CheckoutLineItemUpdateInput!]!
): CheckoutLineItemsUpdatePayload
"Updates the shipping address of an existing checkout."
checkoutShippingAddressUpdate(
"The ID of the checkout."
checkoutId: ID!,
"The shipping address to where the line items will be shipped."
shippingAddress: MailingAddressInput!
): CheckoutShippingAddressUpdatePayload @deprecated(reason : "Use
checkoutShippingAddressUpdateV2
instead")"Updates the shipping address of an existing checkout."
checkoutShippingAddressUpdateV2(
"The ID of the checkout."
checkoutId: ID!,
"The shipping address to where the line items will be shipped."
shippingAddress: MailingAddressInput!
): CheckoutShippingAddressUpdateV2Payload
"Updates the shipping lines on an existing checkout."
checkoutShippingLineUpdate(
"The ID of the checkout."
checkoutId: ID!,
"A unique identifier to a Checkout’s shipping provider, price, and title combination, enabling the customer to select the availableShippingRates."
shippingRateHandle: String!
): CheckoutShippingLineUpdatePayload
"""
}
"An order is a customer’s completed request to purchase one or more products from a shop. An order is created when a customer completes the checkout process, during which time they provides an email address, billing address and payment information."
type Order implements Node {
"The reason for the order's cancellation. Returns
null
if the order wasn't canceled."cancelReason: OrderCancelReason
"The date and time when the order was canceled. Returns null if the order wasn't canceled."
canceledAt: DateTime
"The code of the currency used for the payment."
currencyCode: CurrencyCode!
"The subtotal of line items and their discounts, excluding line items that have been removed. Does not contain order-level discounts, duties, shipping costs, or shipping discounts. Taxes are not included unless the order is a taxes-included order."
currentSubtotalPrice: MoneyV2!
"The total amount of the order, including duties, taxes and discounts, minus amounts for line items that have been removed."
currentTotalPrice: MoneyV2!
"The total of all taxes applied to the order, excluding taxes for returned line items."
currentTotalTax: MoneyV2!
"The locale code in which this specific order happened."
customerLocale: String
"The unique URL that the customer can use to access the order."
customerUrl: URL
"Discounts that have been applied on the order."
discountApplications(
"Returns the elements that come after the specified cursor."
after: String,
"Returns the elements that come before the specified cursor."
before: String,
"Returns up to the first
n
elements from the list."first: Int,
"Returns up to the last
n
elements from the list."last: Int,
"Reverse the order of the underlying list."
reverse: Boolean = false
): DiscountApplicationConnection!
"Whether the order has had any edits applied or not."
edited: Boolean!
"The customer's email address."
email: String
"The financial status of the order."
financialStatus: OrderFinancialStatus
"The fulfillment status for the order."
fulfillmentStatus: OrderFulfillmentStatus!
"Globally unique identifier."
id: ID!
"List of the order’s line items."
lineItems(
"Returns the elements that come after the specified cursor."
after: String,
"Returns the elements that come before the specified cursor."
before: String,
"Returns up to the first
n
elements from the list."first: Int,
"Returns up to the last
n
elements from the list."last: Int,
"Reverse the order of the underlying list."
reverse: Boolean = false
): OrderLineItemConnection!
"""
}
"""
An auto-generated type for paginating through multiple Orders.
"""
type OrderConnection {
"A list of edges."
edges: [OrderEdge!]!
"Information to aid in pagination."
pageInfo: PageInfo!
}
"""
An auto-generated type which holds one Order and a cursor during pagination.
"""
type OrderEdge {
"A cursor for use in pagination."
cursor: String!
"The item at the end of OrderEdge."
node: Order!
}
"Represents a single line in an order. There is one line item for each distinct product variant."
type OrderLineItem {
"The number of entries associated to the line item minus the items that have been removed."
currentQuantity: Int!
"List of custom attributes associated to the line item."
customAttributes: [Attribute!]!
"The discounts that have been allocated onto the order line item by discount applications."
discountAllocations: [DiscountAllocation!]!
"The total price of the line item, including discounts, and displayed in the presentment currency."
discountedTotalPrice: MoneyV2!
"The total price of the line item, not including any discounts. The total price is calculated using the original unit price multiplied by the quantity, and it is displayed in the presentment currency."
originalTotalPrice: MoneyV2!
"The number of products variants associated to the line item."
quantity: Int!
"The title of the product combined with title of the variant."
title: String!
"The product variant object associated to the line item."
variant: ProductVariant
}
"""
An auto-generated type for paginating through multiple OrderLineItems.
"""
type OrderLineItemConnection {
"A list of edges."
edges: [OrderLineItemEdge!]!
"Information to aid in pagination."
pageInfo: PageInfo!
}
"""
An auto-generated type which holds one OrderLineItem and a cursor during pagination.
"""
type OrderLineItemEdge {
"A cursor for use in pagination."
cursor: String!
"The item at the end of OrderLineItemEdge."
node: OrderLineItem!
}
"Shopify merchants can create pages to hold static HTML content. Each Page object represents a custom page on the online store."
type Page implements Node {
"The description of the page, complete with HTML formatting."
body: HTML!
"Summary of the page body."
bodySummary: String!
"The timestamp of the page creation."
createdAt: DateTime!
"A human-friendly unique string for the page automatically generated from its title."
handle: String!
"Globally unique identifier."
id: ID!
"The title of the page."
title: String!
"The timestamp of the latest page update."
updatedAt: DateTime!
"The url pointing to the page accessible from the web."
url: URL!
}
"""
An auto-generated type for paginating through multiple Pages.
"""
type PageConnection {
"A list of edges."
edges: [PageEdge!]!
"Information to aid in pagination."
pageInfo: PageInfo!
}
"""
An auto-generated type which holds one Page and a cursor during pagination.
"""
type PageEdge {
"A cursor for use in pagination."
cursor: String!
"The item at the end of PageEdge."
node: Page!
}
"Information about pagination in a connection."
type PageInfo {
"Indicates if there are more pages to fetch."
hasNextPage: Boolean!
"Indicates if there are any pages prior to the current page."
hasPreviousPage: Boolean!
}
"A payment applied to a checkout."
type Payment implements Node {
"The amount of the payment."
amount: Money! @deprecated(reason : "Use
amountV2
instead")"The amount of the payment."
amountV2: MoneyV2!
"The billing address for the payment."
billingAddress: MailingAddress
"The checkout to which the payment belongs."
checkout: Checkout!
"The credit card used for the payment in the case of direct payments."
creditCard: CreditCard
"A message describing a processing error during asynchronous processing."
errorMessage: String
"Globally unique identifier."
id: ID!
"""
}
"Settings related to payments."
type PaymentSettings {
"List of the card brands which the shop accepts."
acceptedCardBrands: [CardBrand!]!
"The url pointing to the endpoint to vault credit cards."
cardVaultUrl: URL!
"The country where the shop is located."
countryCode: CountryCode!
"The three-letter code for the shop's primary currency."
currencyCode: CurrencyCode!
"A list of enabled currencies (ISO 4217 format) that the shop accepts. Merchants can enable currencies from their Shopify Payments settings in the Shopify admin."
enabledPresentmentCurrencies: [CurrencyCode!]!
"The shop’s Shopify Payments account id."
shopifyPaymentsAccountId: String
"List of the digital wallets which the shop supports."
supportedDigitalWallets: [DigitalWallet!]!
}
"The value of the percentage pricing object."
type PricingPercentageValue {
"The percentage value of the object."
percentage: Float!
}
"""
A product represents an individual item for sale in a Shopify store. Products are often physical, but they don't have to be.
For example, a digital download (such as a movie, music or ebook file) also qualifies as a product, as do services (such as equipment rental, work for hire, customization of another product or an extended warranty).
"""
type Product implements HasMetafields & Node {
"Indicates if at least one product variant is available for sale."
availableForSale: Boolean!
"List of collections a product belongs to."
collections(
"Returns the elements that come after the specified cursor."
after: String,
"Returns the elements that come before the specified cursor."
before: String,
"Returns up to the first
n
elements from the list."first: Int,
"Returns up to the last
n
elements from the list."last: Int,
"Reverse the order of the underlying list."
reverse: Boolean = false
): CollectionConnection!
"The compare at price of the product across all variants."
compareAtPriceRange: ProductPriceRange!
"The date and time when the product was created."
createdAt: DateTime!
"Stripped description of the product, single line with HTML tags removed."
description(
"Truncates string after the given length."
truncateAt: Int
): String!
"The description of the product, complete with HTML formatting."
descriptionHtml: HTML!
"""
}
"""
An auto-generated type for paginating through multiple Products.
"""
type ProductConnection {
"A list of edges."
edges: [ProductEdge!]!
"Information to aid in pagination."
pageInfo: PageInfo!
}
"""
An auto-generated type which holds one Product and a cursor during pagination.
"""
type ProductEdge {
"A cursor for use in pagination."
cursor: String!
"The item at the end of ProductEdge."
node: Product!
}
"""
Product property names like "Size", "Color", and "Material" that the customers can select.
Variants are selected based on permutations of these options.
255 characters limit each.
"""
type ProductOption implements Node {
"Globally unique identifier."
id: ID!
"The product option’s name."
name: String!
"The corresponding value to the product option name."
values: [String!]!
}
"The price range of the product."
type ProductPriceRange {
"The highest variant's price."
maxVariantPrice: MoneyV2!
"The lowest variant's price."
minVariantPrice: MoneyV2!
}
"""
An auto-generated type for paginating through multiple ProductPriceRanges.
"""
type ProductPriceRangeConnection {
"A list of edges."
edges: [ProductPriceRangeEdge!]!
"Information to aid in pagination."
pageInfo: PageInfo!
}
"""
An auto-generated type which holds one ProductPriceRange and a cursor during pagination.
"""
type ProductPriceRangeEdge {
"A cursor for use in pagination."
cursor: String!
"The item at the end of ProductPriceRangeEdge."
node: ProductPriceRange!
}
"A product variant represents a different version of a product, such as differing sizes or differing colors."
type ProductVariant implements HasMetafields & Node {
"Indicates if the product variant is in stock."
available: Boolean @deprecated(reason : "Use
availableForSale
instead")"Indicates if the product variant is available for sale."
availableForSale: Boolean!
"The compare at price of the variant. This can be used to mark a variant as on sale, when
compareAtPrice
is higher thanprice
."compareAtPrice: Money @deprecated(reason : "Use
compareAtPriceV2
instead")"The compare at price of the variant. This can be used to mark a variant as on sale, when
compareAtPriceV2
is higher thanpriceV2
."compareAtPriceV2: MoneyV2
"Whether a product is out of stock but still available for purchase (used for backorders)."
currentlyNotInStock: Boolean!
"Globally unique identifier."
id: ID!
"Image associated with the product variant. This field falls back to the product image if no image is available."
image(
"Crops the image according to the specified region. This argument is deprecated: Use
crop
onImage.transformedSrc
instead."crop: CropRegion,
"Image height in pixels between 1 and 2048. This argument is deprecated: Use
maxHeight
onImage.transformedSrc
instead."maxHeight: Int,
"Image width in pixels between 1 and 2048. This argument is deprecated: Use
maxWidth
onImage.transformedSrc
instead."maxWidth: Int,
"Image size multiplier for high-resolution retina displays. Must be between 1 and 3. This argument is deprecated: Use
scale
onImage.transformedSrc
instead."scale: Int = 1
): Image
"The metafield associated with the resource."
metafield(
"Identifier for the metafield (maximum of 30 characters)."
key: String!,
"Container for a set of metafields (maximum of 20 characters)."
namespace: String!
): Metafield
"A paginated list of metafields associated with the resource."
metafields(
"Returns the elements that come after the specified cursor."
after: String,
"Returns the elements that come before the specified cursor."
before: String,
"Returns up to the first
n
elements from the list."first: Int,
"Returns up to the last
n
elements from the list."last: Int,
"Container for a set of metafields (maximum of 20 characters)."
namespace: String,
"Reverse the order of the underlying list."
reverse: Boolean = false
): MetafieldConnection!
"List of prices and compare-at prices in the presentment currencies for this shop."
presentmentPrices(
"Returns the elements that come after the specified cursor."
after: String,
"Returns the elements that come before the specified cursor."
before: String,
"Returns up to the first
n
elements from the list."first: Int,
"Returns up to the last
n
elements from the list."last: Int,
"The presentment currencies prices should return in."
presentmentCurrencies: [CurrencyCode!],
"Reverse the order of the underlying list."
reverse: Boolean = false
): ProductVariantPricePairConnection!
"List of unit prices in the presentment currencies for this shop."
presentmentUnitPrices(
"Returns the elements that come after the specified cursor."
after: String,
"Returns the elements that come before the specified cursor."
before: String,
"Returns up to the first
n
elements from the list."first: Int,
"Returns up to the last
n
elements from the list."last: Int,
"Specify the currencies in which to return presentment unit prices."
presentmentCurrencies: [CurrencyCode!],
"Reverse the order of the underlying list."
reverse: Boolean = false
): MoneyV2Connection!
"The product variant’s price."
price: Money! @deprecated(reason : "Use
priceV2
instead")"The product variant’s price."
priceV2: MoneyV2!
"The product object that the product variant belongs to."
product: Product!
"The total sellable quantity of the variant for online sales channels."
quantityAvailable: Int
"Whether a customer needs to provide a shipping address when placing an order for the product variant."
requiresShipping: Boolean!
"List of product options applied to the variant."
selectedOptions: [SelectedOption!]!
"The SKU (stock keeping unit) associated with the variant."
sku: String
"The product variant’s title."
title: String!
"The unit price value for the variant based on the variant's measurement."
unitPrice: MoneyV2
"The unit price measurement for the variant."
unitPriceMeasurement: UnitPriceMeasurement
"The weight of the product variant in the unit system specified with
weight_unit
."weight: Float
"Unit of measurement for weight."
weightUnit: WeightUnit!
}
"""
An auto-generated type for paginating through multiple ProductVariants.
"""
type ProductVariantConnection {
"A list of edges."
edges: [ProductVariantEdge!]!
"Information to aid in pagination."
pageInfo: PageInfo!
}
"""
An auto-generated type which holds one ProductVariant and a cursor during pagination.
"""
type ProductVariantEdge {
"A cursor for use in pagination."
cursor: String!
"The item at the end of ProductVariantEdge."
node: ProductVariant!
}
"""
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 ProductVariantPricePairs.
"""
type ProductVariantPricePairConnection {
"A list of edges."
edges: [ProductVariantPricePairEdge!]!
"Information to aid in pagination."
pageInfo: PageInfo!
}
"""
An auto-generated type which holds one ProductVariantPricePair and a cursor during pagination.
"""
type ProductVariantPricePairEdge {
"A cursor for use in pagination."
cursor: String!
"The item at the end of ProductVariantPricePairEdge."
node: ProductVariantPricePair!
}
"The schema’s entry-point for queries. This acts as the public, top-level API from which all queries must start."
type QueryRoot {
"List of the shop's articles."
articles(
"Returns the elements that come after the specified cursor."
after: String,
"Returns the elements that come before the specified cursor."
before: String,
"Returns up to the first
n
elements from the list."first: Int,
"Returns up to the last
n
elements from the list."last: Int,
"""
}
"SEO information."
type SEO {
"The meta description."
description: String
"The SEO title."
title: String
}
"""
Script discount applications capture the intentions of a discount that
was created by a Shopify Script.
"""
type ScriptDiscountApplication implements DiscountApplication {
"The method by which the discount's value is allocated to its entitled items."
allocationMethod: DiscountApplicationAllocationMethod!
"The description of the application as defined by the Script."
description: String! @deprecated(reason : "Use
title
instead")"Which lines of targetType that the discount is allocated over."
targetSelection: DiscountApplicationTargetSelection!
"The type of line that the discount is applicable towards."
targetType: DiscountApplicationTargetType!
"The title of the application as defined by the Script."
title: String!
"The value of the discount application."
value: PricingValue!
}
"""
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."
value: String!
}
"A shipping rate to be applied to a checkout."
type ShippingRate {
"Human-readable unique identifier for this shipping rate."
handle: String!
"Price of this shipping rate."
price: Money! @deprecated(reason : "Use
priceV2
instead")"Price of this shipping rate."
priceV2: MoneyV2!
"Title of this shipping rate."
title: String!
}
"Shop represents a collection of the general settings and information about the shop."
type Shop {
"List of the shop' articles."
articles(
"Returns the elements that come after the specified cursor."
after: String,
"Returns the elements that come before the specified cursor."
before: String,
"Returns up to the first
n
elements from the list."first: Int,
"Returns up to the last
n
elements from the list."last: Int,
"""
}
"Policy that a merchant has configured for their store, such as their refund or privacy policy."
type ShopPolicy implements Node {
"Policy text, maximum size of 64kb."
body: String!
"Policy’s handle."
handle: String!
"Globally unique identifier."
id: ID!
"Policy’s title."
title: String!
"Public URL to the policy."
url: URL!
}
"""
An auto-generated type for paginating through multiple Strings.
"""
type StringConnection {
"A list of edges."
edges: [StringEdge!]!
"Information to aid in pagination."
pageInfo: PageInfo!
}
"""
An auto-generated type which holds one String and a cursor during pagination.
"""
type StringEdge {
"A cursor for use in pagination."
cursor: String!
"The item at the end of StringEdge."
node: String!
}
"An object representing exchange of money for a product or service."
type Transaction {
"The amount of money that the transaction was for."
amount: Money! @deprecated(reason : "Use
amountV2
instead")"The amount of money that the transaction was for."
amountV2: MoneyV2!
"The kind of the transaction."
kind: TransactionKind!
"The status of the transaction."
status: TransactionStatus! @deprecated(reason : "Use
statusV2
instead")"The status of the transaction."
statusV2: TransactionStatus
"Whether the transaction was done in test mode or not."
test: Boolean!
}
"""
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!
}
"Represents an error in the input of a mutation."
type UserError implements DisplayableError {
"Path to the input field which caused the error."
field: [String!]
"The error message."
message: String!
}
"Represents a Shopify hosted video."
type Video implements Media & Node {
"A word or phrase to share the nature or contents of a media."
alt: String
"Globally unique identifier."
id: ID!
"The media content type."
mediaContentType: MediaContentType!
"The preview image for the media."
previewImage: Image
"The sources for a video."
sources: [VideoSource!]!
}
"Represents a source for a Shopify hosted video."
type VideoSource {
"The format of the video source."
format: String!
"The height of the video."
height: Int!
"The video MIME type."
mimeType: String!
"The URL of the video."
url: String!
"The width of the video."
width: Int!
}
"The set of valid sort keys for the Article query."
enum ArticleSortKeys {
"Sort by the
author
value."AUTHOR
"Sort by the
blog_title
value."BLOG_TITLE
"Sort by the
id
value."ID
"Sort by the
published_at
value."PUBLISHED_AT
"""
}
"The set of valid sort keys for the Blog query."
enum BlogSortKeys {
"Sort by the
handle
value."HANDLE
"Sort by the
id
value."ID
"""
}
"Card brand, such as Visa or Mastercard, which can be used for payments."
enum CardBrand {
"American Express."
AMERICAN_EXPRESS
"Diners Club."
DINERS_CLUB
"Discover."
DISCOVER
"JCB."
JCB
"Mastercard."
MASTERCARD
"Visa."
VISA
}
"Possible error codes that could be returned by CheckoutUserError."
enum CheckoutErrorCode {
"Checkout is already completed."
ALREADY_COMPLETED
"Input email contains an invalid domain name."
BAD_DOMAIN
"Input value is blank."
BLANK
"Cart does not meet discount requirements notice."
CART_DOES_NOT_MEET_DISCOUNT_REQUIREMENTS_NOTICE
"Customer already used once per customer discount notice."
CUSTOMER_ALREADY_USED_ONCE_PER_CUSTOMER_DISCOUNT_NOTICE
"Discount already applied."
DISCOUNT_ALREADY_APPLIED
"Discount disabled."
DISCOUNT_DISABLED
"Discount expired."
DISCOUNT_EXPIRED
"Discount limit reached."
DISCOUNT_LIMIT_REACHED
"Discount not found."
DISCOUNT_NOT_FOUND
"Checkout is already completed."
EMPTY
"Gift card has already been applied."
GIFT_CARD_ALREADY_APPLIED
"Gift card code is invalid."
GIFT_CARD_CODE_INVALID
"Gift card currency does not match checkout currency."
GIFT_CARD_CURRENCY_MISMATCH
"Gift card has no funds left."
GIFT_CARD_DEPLETED
"Gift card is disabled."
GIFT_CARD_DISABLED
"Gift card is expired."
GIFT_CARD_EXPIRED
"Gift card was not found."
GIFT_CARD_NOT_FOUND
"Gift card cannot be applied to a checkout that contains a gift card."
GIFT_CARD_UNUSABLE
"Input value should be greater than or equal to minimum allowed value."
GREATER_THAN_OR_EQUAL_TO
"Input value is invalid."
INVALID
"Input Zip is invalid for country provided."
INVALID_FOR_COUNTRY
"Input Zip is invalid for country and province provided."
INVALID_FOR_COUNTRY_AND_PROVINCE
"Invalid province in country."
INVALID_PROVINCE_IN_COUNTRY
"Invalid region in country."
INVALID_REGION_IN_COUNTRY
"Invalid state in country."
INVALID_STATE_IN_COUNTRY
"Input value should be less than maximum allowed value."
LESS_THAN
"Input value should be less or equal to maximum allowed value."
LESS_THAN_OR_EQUAL_TO
"Line item was not found in checkout."
LINE_ITEM_NOT_FOUND
"Checkout is locked."
LOCKED
"Missing payment input."
MISSING_PAYMENT_INPUT
"Not enough in stock."
NOT_ENOUGH_IN_STOCK
"Input value is not supported."
NOT_SUPPORTED
"Input value is not present."
PRESENT
"Shipping rate expired."
SHIPPING_RATE_EXPIRED
"Input value is too long."
TOO_LONG
"The amount of the payment does not match the value to be paid."
TOTAL_PRICE_MISMATCH
"Unable to apply discount."
UNABLE_TO_APPLY
}
"The set of valid sort keys for the Collection query."
enum CollectionSortKeys {
"Sort by the
id
value."ID
"""
}
"ISO 3166-1 alpha-2 country codes with some differences."
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
"Turkey."
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
}
"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
}
"Currency 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 (BYR)."
BYR @deprecated(reason : "
BYR
is deprecated. UseBYN
available from version2021-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
"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 (VEF)."
VEF @deprecated(reason : "
VEF
is deprecated. UseVES
available from version2020-10
onwards instead.")"Venezuelan Bolivares (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
"Yemeni Rial (YER)."
YER
"South African Rand (ZAR)."
ZAR
"Zambian Kwacha (ZMW)."
ZMW
}
"Possible error codes that could be returned by CustomerUserError."
enum CustomerErrorCode {
"Customer already enabled."
ALREADY_ENABLED
"Input email contains an invalid domain name."
BAD_DOMAIN
"Input value is blank."
BLANK
"Input contains HTML tags."
CONTAINS_HTML_TAGS
"Input contains URL."
CONTAINS_URL
"Customer is disabled."
CUSTOMER_DISABLED
"Input value is invalid."
INVALID
"Multipass token is not valid."
INVALID_MULTIPASS_REQUEST
"Address does not exist."
NOT_FOUND
"Input password starts or ends with whitespace."
PASSWORD_STARTS_OR_ENDS_WITH_WHITESPACE
"Input value is already taken."
TAKEN
"Invalid activation token."
TOKEN_INVALID
"Input value is too long."
TOO_LONG
"Input value is too short."
TOO_SHORT
"Unidentified customer."
UNIDENTIFIED_CUSTOMER
}
"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
}
"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.")
}
"""
Which lines on the order that the discount is allocated over, of the type
defined by the Discount Application's target_type.
"""
enum DiscountApplicationTargetSelection {
"The discount is allocated onto all the lines."
ALL
"The discount is allocated onto only the lines it is 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
}
"List of supported image content types."
enum ImageContentType {
"A JPG image."
JPG
"A PNG image."
PNG
"A WEBP image."
WEBP
}
"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
}
"Metafield value types."
enum MetafieldValueType {
"An integer metafield."
INTEGER
"A json string metafield."
JSON_STRING
"A string metafield."
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
}
"Represents the order's current financial status."
enum OrderFinancialStatus {
"Displayed as Authorized."
AUTHORIZED
"Displayed as Paid."
PAID
"Displayed as Partially paid."
PARTIALLY_PAID
"Displayed as Partially refunded."
PARTIALLY_REFUNDED
"Displayed as Pending."
PENDING
"Displayed as Refunded."
REFUNDED
"Displayed as Voided."
VOIDED
}
"Represents the order's current fulfillment status."
enum OrderFulfillmentStatus {
"Displayed as Fulfilled."
FULFILLED
"Displayed as In progress."
IN_PROGRESS
"Displayed as Open."
OPEN
"Displayed as Partially fulfilled."
PARTIALLY_FULFILLED
"Displayed as Pending fulfillment."
PENDING_FULFILLMENT
"Displayed as Restocked."
RESTOCKED
"Displayed as Unfulfilled."
UNFULFILLED
}
"The set of valid sort keys for the Order query."
enum OrderSortKeys {
"Sort by the
id
value."ID
"Sort by the
processed_at
value."PROCESSED_AT
"""
}
"The set of valid sort keys for the Page query."
enum PageSortKeys {
"Sort by the
id
value."ID
"""
}
"The valid values for the types of payment token."
enum PaymentTokenType {
"Apple Pay token type."
APPLE_PAY
"Google Pay token type."
GOOGLE_PAY
"Shopify Pay token type."
SHOPIFY_PAY
"Vault payment token type."
VAULT
}
"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
"""
}
"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 Product query."
enum ProductSortKeys {
"Sort by the
best_selling
value."BEST_SELLING
"Sort by the
created_at
value."CREATED_AT
"Sort by the
id
value."ID
"Sort by the
price
value."PRICE
"Sort by the
product_type
value."PRODUCT_TYPE
"""
}
"The set of valid sort keys for the ProductVariant query."
enum ProductVariantSortKeys {
"Sort by the
id
value."ID
"Sort by the
position
value."POSITION
"""
}
"The different kinds of order transactions."
enum TransactionKind {
"""
}
"Transaction statuses describe the status of a transaction."
enum TransactionStatus {
"There was an error while processing the transaction."
ERROR
"The transaction failed."
FAILURE
"The transaction is pending."
PENDING
"The transaction succeeded."
SUCCESS
}
"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
}
"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
}
"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
}
"Specifies the input fields required for an attribute."
input AttributeInput {
"Key or name of the attribute."
key: String!
"Value of the attribute."
value: String!
}
"Specifies the fields required to update a checkout's attributes."
input CheckoutAttributesUpdateInput {
"""
}
"Specifies the fields required to update a checkout's attributes."
input CheckoutAttributesUpdateV2Input {
"""
}
"Specifies the fields required to create a checkout."
input CheckoutCreateInput {
"""
}
"Specifies the input fields to create a line item on a checkout."
input CheckoutLineItemInput {
"Extra information in the form of an array of Key-Value pairs about the line item."
customAttributes: [AttributeInput!]
"The quantity of the line item."
quantity: Int!
"The identifier of the product variant for the line item."
variantId: ID!
}
"Specifies the input fields to update a line item on the checkout."
input CheckoutLineItemUpdateInput {
"Extra information in the form of an array of Key-Value pairs about the line item."
customAttributes: [AttributeInput!]
"The identifier of the line item."
id: ID
"The quantity of the line item."
quantity: Int
"The variant identifier of the line item."
variantId: ID
}
"""
Specifies the fields required to complete a checkout with
a Shopify vaulted credit card payment.
"""
input CreditCardPaymentInput {
"The amount of the payment."
amount: Money!
"The billing address for the payment."
billingAddress: MailingAddressInput!
"A unique client generated key used to avoid duplicate charges. When a duplicate payment is found, the original is returned instead of creating a new one. For more information, refer to Idempotent requests."
idempotencyKey: String!
"Executes the payment in test mode if possible. Defaults to
false
."test: Boolean = false
"The ID returned by Shopify's Card Vault."
vaultId: String!
}
"""
Specifies the fields required to complete a checkout with
a Shopify vaulted credit card payment.
"""
input CreditCardPaymentInputV2 {
"The billing address for the payment."
billingAddress: MailingAddressInput!
"A unique client generated key used to avoid duplicate charges. When a duplicate payment is found, the original is returned instead of creating a new one. For more information, refer to Idempotent requests."
idempotencyKey: String!
"The amount and currency of the payment."
paymentAmount: MoneyInput!
"Executes the payment in test mode if possible. Defaults to
false
."test: Boolean = false
"The ID returned by Shopify's Card Vault."
vaultId: String!
}
"Specifies the input fields required to create a customer access token."
input CustomerAccessTokenCreateInput {
"The email associated to the customer."
email: String!
"The login password to be used by the customer."
password: String!
}
"Specifies the input fields required to activate a customer."
input CustomerActivateInput {
"The activation token required to activate the customer."
activationToken: String!
"New password that will be set during activation."
password: String!
}
"Specifies the fields required to create a new customer."
input CustomerCreateInput {
"Indicates whether the customer has consented to be sent marketing material via email."
acceptsMarketing: Boolean
"The customer’s email."
email: String!
"The customer’s first name."
firstName: String
"The customer’s last name."
lastName: String
"The login password used by the customer."
password: String!
"""
}
"Specifies the fields required to reset a customer’s password."
input CustomerResetInput {
"New password that will be set as part of the reset password process."
password: String!
"The reset token required to reset the customer’s password."
resetToken: String!
}
"Specifies the fields required to update the Customer information."
input CustomerUpdateInput {
"Indicates whether the customer has consented to be sent marketing material via email."
acceptsMarketing: Boolean
"The customer’s email."
email: String
"The customer’s first name."
firstName: String
"The customer’s last name."
lastName: String
"The login password used by the customer."
password: String
"""
}
"Specifies the fields accepted to create or update a mailing address."
input MailingAddressInput {
"""
}
"Specifies the fields for a monetary value with currency."
input MoneyInput {
"Decimal money amount."
amount: Decimal!
"Currency of the money."
currencyCode: CurrencyCode!
}
"Specifies the input fields required for a selected option."
input SelectedOptionInput {
"The product option’s name."
name: String!
"The product option’s value."
value: String!
}
"""
Specifies the fields required to complete a checkout with
a tokenized payment.
"""
input TokenizedPaymentInput {
"The amount of the payment."
amount: Money!
"The billing address for the payment."
billingAddress: MailingAddressInput!
"A unique client generated key used to avoid duplicate charges. When a duplicate payment is found, the original is returned instead of creating a new one. For more information, refer to Idempotent requests."
idempotencyKey: String!
"Public Hash Key used for AndroidPay payments only."
identifier: String
"A simple string or JSON containing the required payment data for the tokenized payment."
paymentData: String!
"Executes the payment in test mode if possible. Defaults to
false
."test: Boolean = false
"The type of payment token."
type: String!
}
"""
Specifies the fields required to complete a checkout with
a tokenized payment.
"""
input TokenizedPaymentInputV2 {
"The billing address for the payment."
billingAddress: MailingAddressInput!
"A unique client generated key used to avoid duplicate charges. When a duplicate payment is found, the original is returned instead of creating a new one. For more information, refer to Idempotent requests."
idempotencyKey: String!
"Public Hash Key used for AndroidPay payments only."
identifier: String
"The amount and currency of the payment."
paymentAmount: MoneyInput!
"A simple string or JSON containing the required payment data for the tokenized payment."
paymentData: String!
"Whether to execute the payment in test mode, if possible. Test mode is not supported in production stores. Defaults to
false
."test: Boolean = false
"The type of payment token."
type: String!
}
"""
Specifies the fields required to complete a checkout with
a tokenized payment.
"""
input TokenizedPaymentInputV3 {
"The billing address for the payment."
billingAddress: MailingAddressInput!
"A unique client generated key used to avoid duplicate charges. When a duplicate payment is found, the original is returned instead of creating a new one. For more information, refer to Idempotent requests."
idempotencyKey: String!
"Public Hash Key used for AndroidPay payments only."
identifier: String
"The amount and currency of the payment."
paymentAmount: MoneyInput!
"A simple string or JSON containing the required payment data for the tokenized payment."
paymentData: String!
"Whether to execute the payment in test mode, if possible. Test mode is not supported in production stores. Defaults to
false
."test: Boolean = false
"The type of payment token."
type: PaymentTokenType!
}
"An ISO-8601 encoded UTC date time string. Example value:
\"2019-07-03T20:47:55Z\"
."scalar DateTime
"A signed decimal number, which supports arbitrary precision and is serialized as a string. Example value:
\"29.99\"
."scalar Decimal
"A string containing HTML code. Example value:
\"<p>Grey cotton knit sweater.</p>\"
."scalar HTML
"A monetary value string. Example value:
\"100.57\"
."scalar Money
"""
An RFC 3986 and RFC 3987 compliant URI string.
Example value:
"https://johns-apparel.myshopify.com"
."""
scalar URL
The text was updated successfully, but these errors were encountered: