Metafield Referencer
Types of resources that may use metafields to reference other resources.
Anchor to Possible typesPossible types
- •OBJECT
Represents an installed application on a shop.
- Anchor to accessScopesaccess•[Access
Scopes Scope!]! non-null The access scopes granted to the application by a merchant during installation.
- Anchor to activeSubscriptionsactive•[App
Subscriptions Subscription!]! non-null The active application subscriptions billed to the shop on a recurring basis.
- Anchor to allSubscriptionsall•App
Subscriptions Subscription Connection! non-null All subscriptions created for a shop.
- •App!non-null
Application which is installed.
- Anchor to creditscredits•App
Credit Connection! non-null Credits that can be used towards future app purchases.
- •ID!non-null
A globally-unique ID.
- Anchor to launchUrllaunch•URL!
Url non-null The URL to launch the application.
- Anchor to metafieldmetafield•Metafield
A custom field, including its
namespace
andkey
, that's associated with a Shopify resource for the purposes of adding and storing additional information.- Anchor to metafieldsmetafields•Metafield
Connection! non-null A list of custom fields that a merchant associates with a Shopify resource.
- Anchor to metafieldsByIdentifiersmetafields•[Metafield]!
By Identifiers non-null The metafields associated with the resource matching the supplied list of namespaces and keys.
- Anchor to oneTimePurchasesone•App
Time Purchases Purchase One Time Connection! non-null One-time purchases to a shop.
- Anchor to publicationpublication•Publication
The publication associated with the installed application.
- Anchor to revenueAttributionRecordsrevenue•App
Attribution Records Revenue Attribution Record Connection! non-null The records that track the externally-captured revenue for the app. The records are used for revenue attribution purposes.
- Anchor to uninstallUrluninstall•URL
Url The URL to uninstall the application.
- Anchor to channelchannel•ChannelDeprecated
- Anchor to subscriptionssubscriptions•[App
Subscription!]! non-nullDeprecated
- •OBJECT
An article in the blogging system.
- •Article
Author The name of the author of the article.
- Anchor to blogblog•Blog!non-null
The blog containing the article.
- Anchor to bodybody•HTML!non-null
The text of the article's body, complete with HTML markup.
- Anchor to commentscomments•Comment
Connection! non-null List of the article's comments.
- Anchor to commentsCountcomments•Count
Count Count of comments. Limited to a maximum of 10000 by default.
- Anchor to createdAtcreated•Date
At Time! non-null The date and time (ISO 8601 format) when the article was created.
- Anchor to defaultCursordefault•String!
Cursor non-null A default cursor that returns the single next record, sorted ascending by ID.
- Anchor to eventsevents•Event
Connection! non-null The paginated list of events associated with the host subject.
- Anchor to handlehandle•String!non-null
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.
- •ID!non-null
A globally-unique ID.
- Anchor to imageimage•Image
The image associated with the article.
- Anchor to isPublishedis•Boolean!
Published non-null Whether or not the article is visible.
- Anchor to metafieldmetafield•Metafield
A custom field, including its
namespace
andkey
, that's associated with a Shopify resource for the purposes of adding and storing additional information.- Anchor to metafieldsmetafields•Metafield
Connection! non-null A list of custom fields that a merchant associates with a Shopify resource.
- Anchor to metafieldsByIdentifiersmetafields•[Metafield]!
By Identifiers non-null The metafields associated with the resource matching the supplied list of namespaces and keys.
- Anchor to publishedAtpublished•Date
At Time The date and time (ISO 8601 format) when the article became or will become visible. Returns null when the article isn't visible.
- Anchor to summarysummary•HTML
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.
- •[String!]!non-null
A comma-separated list of tags. Tags are additional short descriptors formatted as a string of comma-separated values.
- Anchor to templateSuffixtemplate•String
Suffix 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 isnull
.- Anchor to titletitle•String!non-null
The title of the article.
- Anchor to translationstranslations•[Translation!]!non-null
The published translations associated with the resource.
- Anchor to updatedAtupdated•Date
At Time The date and time (ISO 8601 format) when the article was last updated.
- Anchor to metafieldDefinitionsmetafield•Metafield
Definitions Definition Connection! non-nullDeprecated
- •Article
- •OBJECT
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.
- Anchor to articlesarticles•Article
Connection! non-null List of the blog's articles.
- Anchor to articlesCountarticles•Count
Count Count of articles. Limited to a maximum of 10000 by default.
- Anchor to commentPolicycomment•Comment
Policy Policy! non-null Indicates whether readers can post comments to the blog and if comments are moderated or not.
- Anchor to createdAtcreated•Date
At Time! non-null The date and time when the blog was created.
- Anchor to eventsevents•Event
Connection! non-null The paginated list of events associated with the host subject.
- Anchor to feedfeed•Blog
Feed FeedBurner provider details. Any blogs that aren't already integrated with FeedBurner can't use the service.
- Anchor to handlehandle•String!non-null
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.
- •ID!non-null
A globally-unique ID.
- Anchor to metafieldmetafield•Metafield
A custom field, including its
namespace
andkey
, that's associated with a Shopify resource for the purposes of adding and storing additional information.- Anchor to metafieldsmetafields•Metafield
Connection! non-null A list of custom fields that a merchant associates with a Shopify resource.
- Anchor to metafieldsByIdentifiersmetafields•[Metafield]!
By Identifiers non-null The metafields associated with the resource matching the supplied list of namespaces and keys.
- •[String!]!non-null
A list of tags associated with the 200 most recent blog articles.
- Anchor to templateSuffixtemplate•String
Suffix 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.- Anchor to titletitle•String!non-null
The title of the blog.
- Anchor to translationstranslations•[Translation!]!non-null
The published translations associated with the resource.
- Anchor to updatedAtupdated•Date
At Time The date and time when the blog was update.
- Anchor to metafieldDefinitionsmetafield•Metafield
Definitions Definition Connection! non-nullDeprecated
- •OBJECT
The
Collection
object represents a group of products that merchants can organize to make their stores easier to browse and help customers find related products. Collections serve as the primary way to categorize and display products across online stores, sales channels, and marketing campaigns.There are two types of collections:
- Custom (manual) collections: You specify the products to include in a collection.
- Smart (automated) collections: You define rules, and products matching those rules are automatically included in the collection.
The
Collection
object provides information to:- Organize products by category, season, or promotion.
- Automate product grouping using rules (for example, by tag, type, or price).
- Configure product sorting and display order (for example, alphabetical, best-selling, price, or manual).
- Manage collection visibility and publication across sales channels.
- Add rich descriptions, images, and metadata to enhance discovery.
NoteCollections can be displayed in a store with Shopify's theme system through Liquid templates and can be customized with template suffixes for unique layouts. They also support advanced features like translated content, resource feedback, and contextual publication for location-based catalogs.
Learn about using metafields with smart collections.
- Anchor to availablePublicationsCountavailable•Count
Publications Count The number of publications that a resource is published to, without feedback errors.
- Anchor to descriptiondescription•String!non-null
A single-line, text-only description of the collection, stripped of any HTML tags and formatting that were included in the description.
- Anchor to truncateAttruncate•Int
At Truncates a string after the given length.
Arguments
- Anchor to descriptionHtmldescription•HTML!
Html non-null 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.
- Anchor to eventsevents•Event
Connection! non-null The paginated list of events associated with the host subject.
- Anchor to feedbackfeedback•Resource
Feedback Information about the collection that's provided through resource feedback.
- Anchor to handlehandle•String!non-null
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 handlesummer-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.
- Anchor to hasProducthas•Boolean!
Product non-null Whether the collection includes the specified product.
- •ID!required
The ID of the product to check.
Arguments
- •ID!
- •ID!non-null
A globally-unique ID.
- Anchor to imageimage•Image
The image associated with the collection.
- Anchor to legacyResourceIdlegacy•Unsigned
Resource Id Int64! non-null The ID of the corresponding resource in the REST Admin API.
- Anchor to metafieldmetafield•Metafield
A custom field, including its
namespace
andkey
, that's associated with a Shopify resource for the purposes of adding and storing additional information.- Anchor to metafieldsmetafields•Metafield
Connection! non-null A list of custom fields that a merchant associates with a Shopify resource.
- Anchor to metafieldsByIdentifiersmetafields•[Metafield]!
By Identifiers non-null The metafields associated with the resource matching the supplied list of namespaces and keys.
- Anchor to productsproducts•Product
Connection! non-null The products that are included in the collection.
- Anchor to publishedOnCurrentPublicationpublished•Boolean!
On Current Publication non-null Whether the resource is published to the app's publication. For example, the resource might be published to the app's online store channel.
- Anchor to publishedOnPublicationpublished•Boolean!
On Publication non-null Whether the resource is published to a specified publication.
- Anchor to publicationIdpublication•ID!
Id required The ID of the publication to check. For example,
.
Arguments
- Anchor to resourcePublicationsresource•Resource
Publications Publication Connection! non-null The list of resources that are published to a publication.
- Anchor to resourcePublicationsCountresource•Count
Publications Count The number of publications that a resource is published to, without feedback errors.
- Anchor to resourcePublicationsV2resource•Resource
Publications V2 Publication V2Connection! non-null The list of resources that are either published or staged to be published to a publication.
- Anchor to ruleSetrule•Collection
Set Rule Set For a smart (automated) collection, specifies the rules that determine whether a product is included.
- •SEO!non-null
If the default SEO fields for page title and description have been modified, contains the modified information.
- Anchor to sortOrdersort•Collection
Order Sort Order! non-null 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.
- Anchor to templateSuffixtemplate•String
Suffix 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 thecollection.custom.liquid
template. If the value isnull
, then the collection is using the defaultcollection.liquid
template.- Anchor to titletitle•String!non-null
The name of the collection. It's displayed in the Shopify admin and is typically displayed in sales channels, such as an online store.
- Anchor to translationstranslations•[Translation!]!non-null
The published translations associated with the resource.
- Anchor to unpublishedPublicationsunpublished•Publication
Publications Connection! non-null The list of publications that the resource isn't published to.
- Anchor to updatedAtupdated•Date
At Time! non-null The date and time (ISO 8601 format) when the collection was last modified.
- Anchor to metafieldDefinitionsmetafield•Metafield
Definitions Definition Connection! non-nullDeprecated - Anchor to publicationCountpublication•Int!
Count non-nullDeprecated - Anchor to onlyPublishedonly•Boolean
Published Default:true Include only the resource's publications that are published. If false, then return all the resource's publications including future publications.
Arguments
- Anchor to publicationspublications•Collection
Publication Connection! non-nullDeprecated - Anchor to publishedOnChannelpublished•Boolean!
On Channel non-nullDeprecated - Anchor to channelIdchannel•ID!
Id required The ID of the channel to check.
Arguments
- Anchor to publishedOnCurrentChannelpublished•Boolean!
On Current Channel non-nullDeprecated - Anchor to storefrontIdstorefront•Storefront
Id ID! non-nullDeprecated - Anchor to unpublishedChannelsunpublished•Channel
Channels Connection! non-nullDeprecated
- •OBJECT
Represents information about a company which is also a customer of the shop.
- Anchor to contactRolescontact•Company
Roles Contact Role Connection! non-null The list of roles for the company contacts.
- Anchor to contactscontacts•Company
Contact Connection! non-null The list of contacts in the company.
- Anchor to contactsCountcontacts•Count
Count The number of contacts that belong to the company.
- Anchor to createdAtcreated•Date
At Time! non-null The date and time (ISO 8601 format) at which the company was created in Shopify.
- Anchor to customerSincecustomer•Date
Since Time! non-null The date and time (ISO 8601 format) at which the company became the customer.
- Anchor to defaultCursordefault•String!
Cursor non-null A default cursor that returns the single next record, sorted ascending by ID.
- Anchor to defaultRoledefault•Company
Role Contact Role The role proposed by default for a contact at the company.
- Anchor to draftOrdersdraft•Draft
Orders Order Connection! non-null The list of the company's draft orders.
- Anchor to eventsevents•Event
Connection! non-null The paginated list of events associated with the host subject.
- Anchor to externalIdexternal•String
Id A unique externally-supplied ID for the company.
- Anchor to hasTimelineCommenthas•Boolean!
Timeline Comment non-null Whether the merchant added a timeline comment to the company.
- •ID!non-null
A globally-unique ID.
- Anchor to lifetimeDurationlifetime•String!
Duration non-null The lifetime duration of the company, since it became a customer of the shop. Examples:
2 days
,3 months
,1 year
.- Anchor to locationslocations•Company
Location Connection! non-null The list of locations in the company.
- Anchor to locationsCountlocations•Count
Count The number of locations that belong to the company.
- Anchor to mainContactmain•Company
Contact Contact The main contact for the company.
- Anchor to metafieldmetafield•Metafield
A custom field, including its
namespace
andkey
, that's associated with a Shopify resource for the purposes of adding and storing additional information.- Anchor to metafieldsmetafields•Metafield
Connection! non-null A list of custom fields that a merchant associates with a Shopify resource.
- Anchor to metafieldsByIdentifiersmetafields•[Metafield]!
By Identifiers non-null The metafields associated with the resource matching the supplied list of namespaces and keys.
- Anchor to namename•String!non-null
The name of the company.
- Anchor to notenote•String
A note about the company.
- Anchor to ordersorders•Order
Connection! non-null The list of the company's orders.
- Anchor to ordersCountorders•Count
Count The total number of orders placed for this company, across all its locations.
- Anchor to totalSpenttotal•Money
Spent V2! non-null The total amount spent by this company, across all its locations.
- Anchor to updatedAtupdated•Date
At Time! non-null The date and time (ISO 8601 format) at which the company was last modified.
- Anchor to contactCountcontact•Int!
Count non-nullDeprecated - Anchor to metafieldDefinitionsmetafield•Metafield
Definitions Definition Connection! non-nullDeprecated
- •OBJECT
A location or branch of a company that's a customer of the shop. Configuration of B2B relationship, for example prices lists and checkout settings, may be done for a location.
- Anchor to billingAddressbilling•Company
Address Address The address used as billing address for the location.
- Anchor to buyerExperienceConfigurationbuyer•Buyer
Experience Configuration Experience Configuration The configuration for the buyer's B2B checkout.
- Anchor to catalogscatalogs•Catalog
Connection! non-null The list of catalogs associated with the company location.
- Anchor to catalogsCountcatalogs•Count
Count The number of catalogs associated with the company location. Limited to a maximum of 10000 by default.
- Anchor to companycompany•Company!non-null
The company that the company location belongs to.
- Anchor to createdAtcreated•Date
At Time! non-null The date and time (ISO 8601 format) at which the company location was created in Shopify.
- Anchor to currencycurrency•Currency
Code! non-null The location's currency based on the shipping address. If the shipping address is empty, then the value is the shop's primary market.
- Anchor to defaultCursordefault•String!
Cursor non-null A default cursor that returns the single next record, sorted ascending by ID.
- Anchor to draftOrdersdraft•Draft
Orders Order Connection! non-null The list of draft orders for the company location.
- Anchor to eventsevents•Event
Connection! non-null The paginated list of events associated with the host subject.
- Anchor to externalIdexternal•String
Id A unique externally-supplied ID for the company location.
- Anchor to hasPriceListhas•Boolean!
Price List non-null Whether the company location has a price list with the specified ID.
- Anchor to priceListIdprice•ID!
List Id required The price list ID to check.
Arguments
- Anchor to hasTimelineCommenthas•Boolean!
Timeline Comment non-null Whether the merchant added a timeline comment to the company location.
- •ID!non-null
A globally-unique ID.
- Anchor to inCatalogin•Boolean!
Catalog non-null Whether the company location is assigned a specific catalog.
- Anchor to catalogIdcatalog•ID!
Id required The ID of the catalog.
Arguments
- Anchor to localelocale•String
The preferred locale of the company location.
- Anchor to metafieldmetafield•Metafield
A custom field, including its
namespace
andkey
, that's associated with a Shopify resource for the purposes of adding and storing additional information.- Anchor to metafieldsmetafields•Metafield
Connection! non-null A list of custom fields that a merchant associates with a Shopify resource.
- Anchor to metafieldsByIdentifiersmetafields•[Metafield]!
By Identifiers non-null The metafields associated with the resource matching the supplied list of namespaces and keys.
- Anchor to namename•String!non-null
The name of the company location.
- Anchor to notenote•String
A note about the company location.
- Anchor to ordersorders•Order
Connection! non-null The list of orders for the company location.
- Anchor to ordersCountorders•Count
Count The total number of orders placed for the location.
- Anchor to phonephone•String
The phone number of the company location.
- Anchor to priceListsprice•Price
Lists List Connection! non-null The list of price lists for the company location.
- Anchor to roleAssignmentsrole•Company
Assignments Contact Role Assignment Connection! non-null The list of roles assigned to the company location.
- Anchor to shippingAddressshipping•Company
Address Address The address used as shipping address for the location.
- Anchor to staffMemberAssignmentsstaff•Company
Member Assignments Location Staff Member Assignment Connection! non-null The list of staff members assigned to the company location.
- Anchor to taxSettingstax•Company
Settings Location Tax Settings! non-null The tax settings for the company location.
- Anchor to totalSpenttotal•Money
Spent V2! non-null The total amount spent by the location.
- Anchor to updatedAtupdated•Date
At Time! non-null The date and time (ISO 8601 format) at which the company location was last modified.
- Anchor to marketmarket•Market!non-nullDeprecated
- Anchor to metafieldDefinitionsmetafield•Metafield
Definitions Definition Connection! non-nullDeprecated - Anchor to orderCountorder•Int!
Count non-nullDeprecated - Anchor to taxExemptionstax•[Tax
Exemptions Exemption!]! non-nullDeprecated - Anchor to taxRegistrationIdtax•String
Registration Id Deprecated
- •OBJECT
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 for apps that don't have a legitimate use for the associated data.
- Anchor to addressesaddresses•[Mailing
Address!]! non-null A list of addresses associated with the customer.
- Anchor to addressesV2addresses•Mailing
V2 Address Connection! non-null The addresses associated with the customer.
- Anchor to amountSpentamount•Money
Spent V2! non-null The total amount that the customer has spent on orders in their lifetime.
- Anchor to canDeletecan•Boolean!
Delete non-null 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.
- Anchor to companyContactProfilescompany•[Company
Contact Profiles Contact!]! non-null A list of the customer's company contact profiles.
- Anchor to createdAtcreated•Date
At Time! non-null The date and time when the customer was added to the store.
- Anchor to dataSaleOptOutdata•Boolean!
Sale Opt Out non-null Whether the customer has opted out of having their data sold.
- Anchor to defaultAddressdefault•Mailing
Address Address The default address associated with the customer.
- Anchor to defaultEmailAddressdefault•Customer
Email Address Email Address The customer's default email address.
- Anchor to defaultPhoneNumberdefault•Customer
Phone Number Phone Number The customer's default phone number.
- Anchor to displayNamedisplay•String!
Name non-null 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.
- Anchor to eventsevents•Event
Connection! non-null A list of events associated with the customer.
- Anchor to firstNamefirst•String
Name The customer's first name.
- •ID!non-null
A globally-unique ID.
- Anchor to imageimage•Image!non-null
The image associated with the customer.
- Anchor to lastNamelast•String
Name The customer's last name.
- Anchor to lastOrderlast•Order
Order The customer's last order.
- Anchor to legacyResourceIdlegacy•Unsigned
Resource Id Int64! non-null The ID of the corresponding resource in the REST Admin API.
- Anchor to lifetimeDurationlifetime•String!
Duration non-null The amount of time since the customer was first added to the store.
Example: 'about 12 years'.
- Anchor to localelocale•String!non-null
The customer's locale.
- Anchor to mergeablemergeable•Customer
Mergeable! non-null Whether the customer can be merged with another customer.
- Anchor to metafieldmetafield•Metafield
A custom field, including its
namespace
andkey
, that's associated with a Shopify resource for the purposes of adding and storing additional information.- Anchor to metafieldsmetafields•Metafield
Connection! non-null A list of custom fields that a merchant associates with a Shopify resource.
- Anchor to metafieldsByIdentifiersmetafields•[Metafield]!
By Identifiers non-null The metafields associated with the resource matching the supplied list of namespaces and keys.
- Anchor to multipassIdentifiermultipass•String
Identifier A unique identifier for the customer that's used with Multipass login.
- Anchor to notenote•String
A note about the customer.
- Anchor to numberOfOrdersnumber•Unsigned
Of Orders Int64! non-null The number of orders that the customer has made at the store in their lifetime.
- Anchor to ordersorders•Order
Connection! non-null A list of the customer's orders.
- Anchor to paymentMethodspayment•Customer
Methods Payment Method Connection! non-null A list of the customer's payment methods.
- Anchor to productSubscriberStatusproduct•Customer
Subscriber Status Product Subscriber Status! non-null Possible subscriber states of a customer defined by their subscription contracts.
- Anchor to statestate•Customer
State! non-null The state of the customer's account with the shop.
Please note that this only meaningful when Classic Customer Accounts is active.
- Anchor to statisticsstatistics•Customer
Statistics! non-null The statistics for a given customer.
- Anchor to storeCreditAccountsstore•Store
Credit Accounts Credit Account Connection! non-null 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.
- Anchor to subscriptionContractssubscription•Subscription
Contracts Contract Connection! non-null A list of the customer's subscription contracts.
- •[String!]!non-null
A comma separated list of tags that have been added to the customer.
- Anchor to taxExempttax•Boolean!
Exempt non-null Whether the customer is exempt from being charged taxes on their orders.
- Anchor to taxExemptionstax•[Tax
Exemptions Exemption!]! non-null The list of tax exemptions applied to the customer.
- Anchor to updatedAtupdated•Date
At Time! non-null The date and time when the customer was last updated.
- Anchor to verifiedEmailverified•Boolean!
Email non-null Whether the customer has verified their email address. Defaults to
true
if the customer is created through the Shopify admin or API.- Anchor to emailemail•StringDeprecated
- Anchor to emailMarketingConsentemail•Customer
Marketing Consent Email Marketing Consent State Deprecated - Anchor to hasTimelineCommenthas•Boolean!
Timeline Comment non-nullDeprecated - Anchor to marketmarket•MarketDeprecated
- Anchor to metafieldDefinitionsmetafield•Metafield
Definitions Definition Connection! non-nullDeprecated - Anchor to phonephone•StringDeprecated
- Anchor to smsMarketingConsentsms•Customer
Marketing Consent Sms Marketing Consent State Deprecated - Anchor to unsubscribeUrlunsubscribe•URL!
Url non-nullDeprecated - Anchor to validEmailAddressvalid•Boolean!
Email Address non-nullDeprecated
- •OBJECT
A delivery customization.
- Anchor to enabledenabled•Boolean!non-null
The enabled status of the delivery customization.
- Anchor to errorHistoryerror•Functions
History Error History The error history on the most recent version of the delivery customization.
- Anchor to functionIdfunction•String!
Id non-null The ID of the Shopify Function implementing the delivery customization.
- •ID!non-null
A globally-unique ID.
- Anchor to metafieldmetafield•Metafield
A custom field, including its
namespace
andkey
, that's associated with a Shopify resource for the purposes of adding and storing additional information.- Anchor to metafieldsmetafields•Metafield
Connection! non-null A list of custom fields that a merchant associates with a Shopify resource.
- Anchor to metafieldsByIdentifiersmetafields•[Metafield]!
By Identifiers non-null The metafields associated with the resource matching the supplied list of namespaces and keys.
- Anchor to shopifyFunctionshopify•Shopify
Function Function! non-null The Shopify Function implementing the delivery customization.
- Anchor to titletitle•String!non-null
The title of the delivery customization.
- Anchor to metafieldDefinitionsmetafield•Metafield
Definitions Definition Connection! non-nullDeprecated
- •OBJECT
The
object enables you to manage 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, including related queries, mutations, limitations, and considerations.
- Anchor to automaticDiscountautomatic•Discount
Discount Automatic! non-null A discount that's applied automatically when an order meets specific criteria. Learn more about automatic discounts.
- Anchor to eventsevents•Event
Connection! non-null The paginated list of events associated with the host subject.
- •ID!non-null
A globally-unique ID.
- Anchor to metafieldmetafield•Metafield
A custom field, including its
namespace
andkey
, that's associated with a Shopify resource for the purposes of adding and storing additional information.- Anchor to metafieldsmetafields•Metafield
Connection! non-null A list of custom fields that a merchant associates with a Shopify resource.
- Anchor to metafieldsByIdentifiersmetafields•[Metafield]!
By Identifiers non-null The metafields associated with the resource matching the supplied list of namespaces and keys.
- Anchor to metafieldDefinitionsmetafield•Metafield
Definitions Definition Connection! non-nullDeprecated
- •OBJECT
The
object enables you to manage code discounts 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, including related queries, mutations, limitations, and considerations.
- Anchor to codeDiscountcode•Discount
Discount Code! non-null The underlying code discount object.
- Anchor to eventsevents•Event
Connection! non-null The paginated list of events associated with the host subject.
- •ID!non-null
A globally-unique ID.
- Anchor to metafieldmetafield•Metafield
A custom field, including its
namespace
andkey
, that's associated with a Shopify resource for the purposes of adding and storing additional information.- Anchor to metafieldsmetafields•Metafield
Connection! non-null A list of custom fields that a merchant associates with a Shopify resource.
- Anchor to metafieldsByIdentifiersmetafields•[Metafield]!
By Identifiers non-null The metafields associated with the resource matching the supplied list of namespaces and keys.
- Anchor to metafieldDefinitionsmetafield•Metafield
Definitions Definition Connection! non-nullDeprecated
- •OBJECT
The
object enables you to manage 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, 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, including related mutations, limitations, and considerations.
- Anchor to discountdiscount•Discount!non-null
A discount that's applied at checkout or on cart.
Discounts can be automatic or code-based.
- Anchor to eventsevents•Event
Connection! non-null The paginated list of events associated with the host subject.
- •ID!non-null
A globally-unique ID.
- Anchor to metafieldmetafield•Metafield
A custom field, including its
namespace
andkey
, that's associated with a Shopify resource for the purposes of adding and storing additional information.- Anchor to metafieldsmetafields•Metafield
Connection! non-null A list of custom fields that a merchant associates with a Shopify resource.
- Anchor to metafieldsByIdentifiersmetafields•[Metafield]!
By Identifiers non-null The metafields associated with the resource matching the supplied list of namespaces and keys.
- Anchor to metafieldDefinitionsmetafield•Metafield
Definitions Definition Connection! non-nullDeprecated
- •OBJECT
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.
For draft orders in multiple currencies
is the source of truth for what a customer is going to be charged and
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 for apps that don't have a legitimate use for the associated data.
Draft orders created on or after April 1, 2025 will be automatically purged after one year of inactivity.
- Anchor to acceptAutomaticDiscountsaccept•Boolean
Automatic Discounts Whether or not to accept automatic discounts on the draft order during calculation. If false, only discount codes and custom draft order discounts (see
) will be applied. If true, eligible automatic discounts will be applied in addition to discount codes and custom draft order discounts.
- Anchor to allowDiscountCodesInCheckoutallow•Boolean!
Discount Codes In Checkout non-null Whether discount codes are allowed during checkout of this draft order.
- Anchor to allVariantPricesOverriddenall•Boolean!
Variant Prices Overridden non-null Whether all variant prices have been overridden.
- Anchor to amountDueLaterSetamount•Money
Due Later Set Bag! non-null The amount due later. When there are payment terms, this is the total price minus the deposit amount (if any). When there are no payment terms, this is 0.
- Anchor to amountDueNowSetamount•Money
Due Now Set Bag! non-null The amount due now. When there are payment terms this is the value of the deposit (0 by default). When there are no payment terms, this is the total price.
- Anchor to anyVariantPricesOverriddenany•Boolean!
Variant Prices Overridden non-null Whether any variant prices have been overridden.
- Anchor to appliedDiscountapplied•Draft
Discount Order Applied Discount The custom order-level discount applied.
- Anchor to billingAddressbilling•Mailing
Address Address The billing address of the customer.
- Anchor to billingAddressMatchesShippingAddressbilling•Boolean!
Address Matches Shipping Address non-null Whether the billing address matches the shipping address.
- Anchor to bypassCartValidationsbypass•Boolean
Cart Validations Whether to bypass cart validations on this draft order.
- Anchor to completedAtcompleted•Date
At Time The date and time when the draft order was converted to a new order, and had it's status changed to Completed.
- Anchor to createdAtcreated•Date
At Time! non-null The date and time when the draft order was created in Shopify.
- Anchor to currencyCodecurrency•Currency
Code Code! non-null The shop currency used for calculation.
- Anchor to customAttributescustom•[Attribute!]!
Attributes non-null The custom information added to the draft order on behalf of the customer.
- Anchor to customercustomer•Customer
The customer who will be sent an invoice.
- Anchor to defaultCursordefault•String!
Cursor non-null A default cursor that returns the single next record, sorted ascending by ID.
- Anchor to depositdeposit•Deposit
Configuration The portion required to be paid at checkout.
- Anchor to discountCodesdiscount•[String!]!
Codes non-null All discount codes applied.
- Anchor to emailemail•String
The email address of the customer, which is used to send notifications.
- Anchor to eventsevents•Event
Connection! non-null The list of events associated with the draft order.
- Anchor to hasTimelineCommenthas•Boolean!
Timeline Comment non-null Whether the merchant has added timeline comments to the draft order.
- •ID!non-null
A globally-unique ID.
- Anchor to invoiceEmailTemplateSubjectinvoice•String!
Email Template Subject non-null The subject defined for the draft invoice email template.
- Anchor to invoiceSentAtinvoice•Date
Sent At Time The date and time when the invoice was last emailed to the customer.
- Anchor to invoiceUrlinvoice•URL
Url The link to the checkout, which is sent to the customer in the invoice email.
- Anchor to legacyResourceIdlegacy•Unsigned
Resource Id Int64! non-null The ID of the corresponding resource in the REST Admin API.
- Anchor to lineItemsline•Draft
Items Order Line Item Connection! non-null The list of the line items in the draft order.
- Anchor to lineItemsSubtotalPriceline•Money
Items Subtotal Price Bag! non-null A subtotal of the line items and corresponding discounts, excluding include shipping charges, shipping discounts, taxes, or order discounts.
- Anchor to localizedFieldslocalized•Localized
Fields Field Connection! non-null List of localized fields for the resource.
- Anchor to metafieldmetafield•Metafield
A custom field, including its
namespace
andkey
, that's associated with a Shopify resource for the purposes of adding and storing additional information.- Anchor to metafieldsmetafields•Metafield
Connection! non-null A list of custom fields that a merchant associates with a Shopify resource.
- Anchor to metafieldsByIdentifiersmetafields•[Metafield]!
By Identifiers non-null The metafields associated with the resource matching the supplied list of namespaces and keys.
- Anchor to namename•String!non-null
The identifier for the draft order, which is unique within the store. For example, #D1223.
- Anchor to note2note2•String
The text from an optional note attached to the draft order.
- Anchor to orderorder•Order
The order that was created from the draft order.
- Anchor to paymentTermspayment•Payment
Terms Terms The associated payment terms for this draft order.
- Anchor to phonephone•String
The assigned phone number.
- Anchor to platformDiscountsplatform•[Draft
Discounts Order Platform Discount!]! non-null The list of platform discounts applied.
- Anchor to poNumberpo•String
Number The purchase order number.
- Anchor to presentmentCurrencyCodepresentment•Currency
Currency Code Code! non-null The payment currency used for calculation.
- Anchor to purchasingEntitypurchasing•Purchasing
Entity Entity The purchasing entity.
- Anchor to readyready•Boolean!non-null
Whether the draft order is ready and can be completed. Draft orders might have asynchronous operations that can take time to finish.
- Anchor to reserveInventoryUntilreserve•Date
Inventory Until Time The time after which inventory will automatically be restocked.
- Anchor to shippingAddressshipping•Mailing
Address Address The shipping address of the customer.
- Anchor to shippingLineshipping•Shipping
Line Line The line item containing the shipping information and costs.
- Anchor to statusstatus•Draft
Order Status! non-null The status of the draft order.
- Anchor to subtotalPriceSetsubtotal•Money
Price Set Bag! non-null The subtotal, of the line items and their discounts, excluding shipping charges, shipping discounts, and taxes.
- •[String!]!non-null
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 mutation.- Anchor to taxesIncludedtaxes•Boolean!
Included non-null Whether the line item prices include taxes.
- Anchor to taxExempttax•Boolean!
Exempt non-null Whether the draft order is tax exempt.
- Anchor to taxLinestax•[Tax
Lines Line!]! non-null The list of of taxes lines charged for each line item and shipping line.
- Anchor to totalDiscountsSettotal•Money
Discounts Set Bag! non-null Total discounts.
- Anchor to totalLineItemsPriceSettotal•Money
Line Items Price Set Bag! non-null Total price of line items.
- Anchor to totalPriceSettotal•Money
Price Set Bag! non-null The total price, includes taxes, shipping charges, and discounts.
- Anchor to totalQuantityOfLineItemstotal•Int!
Quantity Of Line Items non-null 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.
- Anchor to totalShippingPriceSettotal•Money
Shipping Price Set Bag! non-null The total shipping price.
- Anchor to totalTaxSettotal•Money
Tax Set Bag! non-null The total tax.
- Anchor to totalWeighttotal•Unsigned
Weight Int64! non-null The total weight in grams of the draft order.
- Anchor to transformerFingerprinttransformer•String
Fingerprint 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.
- Anchor to updatedAtupdated•Date
At Time! non-null 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.
- Anchor to visibleToCustomervisible•Boolean!
To Customer non-null Whether the draft order will be visible to the customer on the self-serve portal.
- Anchor to warningswarnings•[Draft
Order Warning!]! non-null The list of warnings raised while calculating.
- Anchor to localizationExtensionslocalization•Localization
Extensions Extension Connection! non-nullDeprecated - Anchor to marketNamemarket•String!
Name non-nullDeprecated - Anchor to marketRegionCountryCodemarket•Country
Region Country Code Code! non-nullDeprecated - Anchor to subtotalPricesubtotal•Money!
Price non-nullDeprecated - Anchor to totalPricetotal•Money!
Price non-nullDeprecated - Anchor to totalShippingPricetotal•Money!
Shipping Price non-nullDeprecated - Anchor to totalTaxtotal•Money!
Tax non-nullDeprecated
- •OBJECT
The FulfillmentOrder object represents either an item or a group of items in an Order that are expected to be fulfilled from the same location. There can be more than one fulfillment order for an order at a given location.
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 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.
NoteShopify 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.
Retrieving fulfillment orders
Fulfillment orders from an order
All fulfillment orders related to a given order can be retrieved with the Order.fulfillmentOrders connection.
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 connection. Use the
argument to control whether all assigned fulfillment orders should be returned or only those where a merchant has sent a fulfillment request and it has yet to be responded to.
The API client must be granted the
access scope to access the assigned fulfillment orders.
All fulfillment orders
Apps can retrieve all fulfillment orders with the 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 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. 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.
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 to the fulfillment service which operates the location to request that they fulfill the associated items. A fulfillment service has the option to accept or reject 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 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 mutation. They can provide tracking information right away or create fulfillments without it and then update the tracking information for fulfillments with the fulfillmentTrackingInfoUpdate mutation.
Learn about managing fulfillment orders as a fulfillment service.
API access scopes
Fulfillment orders are governed by the following API access scopes:
- The
and
access scopes grant access to fulfillment orders assigned to merchant-managed locations.
- The
and
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
and
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
access scope and don't have the
or
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
and
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 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 to the fulfillment order webhooks to be notified whenever fulfillment order related domain events occur.
- Anchor to assignedLocationassigned•Fulfillment
Location Order Assigned Location! non-null 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 mutation has been called, and you see the original fulfillment order in the 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, SCHEDULED, or ON_HOLD status, and the shop's location properties might be undergoing edits (for example, in the Shopify admin).
- Anchor to channelIdchannel•ID
Id ID of the channel that created the order.
- Anchor to createdAtcreated•Date
At Time! non-null Date and time when the fulfillment order was created.
- Anchor to deliveryMethoddelivery•Delivery
Method Method Delivery method of this fulfillment order.
- Anchor to destinationdestination•Fulfillment
Order Destination The destination where the items should be sent.
- Anchor to fulfillAtfulfill•Date
At Time 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
date for a subscription order might be the 1st of each month, a pre-order
date would be
nil
, and a standard orderdate would be the order creation date.
- Anchor to fulfillByfulfill•Date
By Time The latest date and time by which all items in the fulfillment order need to be fulfilled.
- Anchor to fulfillmentHoldsfulfillment•[Fulfillment
Holds Hold!]! non-null The fulfillment holds applied on the fulfillment order.
- Anchor to fulfillmentOrdersForMergefulfillment•Fulfillment
Orders For Merge Order Connection! non-null Fulfillment orders eligible for merging with the given fulfillment order.
- Anchor to fulfillmentsfulfillments•Fulfillment
Connection! non-null A list of fulfillments for the fulfillment order.
- •ID!non-null
A globally-unique ID.
- Anchor to internationalDutiesinternational•Fulfillment
Duties Order International Duties The duties delivery method of this fulfillment order.
- Anchor to lineItemsline•Fulfillment
Items Order Line Item Connection! non-null A list of the fulfillment order's line items.
- Anchor to locationsForMovelocations•Fulfillment
For Move Order Location For Move Connection! non-null A list of locations that the fulfillment order can potentially move to.
- Anchor to merchantRequestsmerchant•Fulfillment
Requests Order Merchant Request Connection! non-null A list of requests sent by the merchant or an order management app to the fulfillment service for the fulfillment order.
- Anchor to orderorder•Order!non-null
The order that's associated with the fulfillment order.
- Anchor to orderIdorder•ID!
Id non-null ID of the order that's associated with the fulfillment order.
- Anchor to orderNameorder•String!
Name non-null 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.
- Anchor to orderProcessedAtorder•Date
Processed At Time! non-null 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.
- Anchor to requestStatusrequest•Fulfillment
Status Order Request Status! non-null The request status of the fulfillment order.
- Anchor to statusstatus•Fulfillment
Order Status! non-null The status of the fulfillment order.
- Anchor to supportedActionssupported•[Fulfillment
Actions Order Supported Action!]! non-null The actions that can be performed on this fulfillment order.
- Anchor to updatedAtupdated
At
- The