Skip to main content
Anchor to LegacyInteroperability

LegacyInteroperability

interface

Interoperability metadata for types that directly correspond to a REST Admin API resource. For example, on the Product type, LegacyInteroperability returns metadata for the corresponding Product object in the REST Admin API.

•UnsignedInt64!
non-null

The ID of the corresponding resource in the REST Admin API.


Was this section helpful?

Anchor to Types implemented inTypes implemented in

•OBJECT

Information about a customer of the shop, such as the customer's contact details, purchase history, and marketing preferences.

Tracks the customer's total spending through the amountSpent field and provides access to associated data such as payment methods and subscription contracts.


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.


•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 presentment_money is the source of truth for what a customer is going to be charged and shop_money is an estimate of what the merchant might receive in their shop currency.

Caution: Only use this data if it's required for your app's functionality. Shopify will restrict access to scopes 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.

•OBJECT

A shipment of one or more items from an Order. Tracks which LineItem objects ship, their quantities, and the shipment's tracking information.

Includes tracking details such as the carrier, tracking numbers, and URLs. The fulfillment connects to both the original order and any associated FulfillmentOrder objects. FulfillmentEvent objects record milestones throughout the shipment lifecycle, from creation through delivery.

Multiple fulfillments can exist for a single order when items either ship separately or from different locations.

•OBJECT

A product variant's inventory information across all locations. The inventory item connects the product variant to its inventory levels at different locations, tracking stock keeping unit (SKU), whether quantities are tracked, shipping requirements, and customs information for the product.

Learn more about inventory object relationships.

•OBJECT

A physical location where merchants store and fulfill inventory. Locations include retail stores, warehouses, popups, dropshippers, or other places where inventory is managed or stocked.

Active locations can fulfill online orders when configured with shipping rates, local pickup, or local delivery options. Locations track inventory quantities for products and process order fulfillment. Third-party apps using FulfillmentService can create and manage their own locations.

•OBJECT

Represents actions that market a merchant's store or products.

•OBJECT

Metafields enable you to attach additional information to a Shopify resource, such as a Product or a Collection. For more information about where you can attach metafields refer to HasMetafields. Some examples of the data that metafields enable you to store are specifications, size charts, downloadable documents, release dates, images, or part numbers. Metafields are identified by an owner resource, namespace, and key. and store a value along with type information for that value.

•OBJECT

The Order object represents a customer's request to purchase one or more products from a store. Use the Order object to handle the complete purchase lifecycle from checkout to fulfillment.

Use the Order object when you need to:

  • Display order details on customer account pages or admin dashboards.
  • Create orders for phone sales, wholesale customers, or subscription services.
  • Update order information like shipping addresses, notes, or fulfillment status.
  • Process returns, exchanges, and partial refunds.
  • Generate invoices, receipts, and shipping labels.

The Order object serves as the central hub connecting customer information, product details, payment processing, and fulfillment data within the GraphQL Admin API schema.


Note

Only the last 60 days' worth of orders from a store are accessible from the Order object by default. If you want to access older records, then you need to request access to all orders. If your app is granted access, then you can add the read_all_orders, read_orders, and write_orders scopes.



Caution

Only use orders 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.


Learn more about building apps for orders and fulfillment.

•OBJECT

A set of conditions, including entitlements and prerequisites, that must be met for a discount code to apply.


Note

Use the types and queries included our discount tutorials instead. These will replace the GraphQL Admin API's PriceRule object and DiscountCode union, and the REST Admin API's deprecatedPriceRule resource.


•OBJECT

The Product object lets you manage products in a merchant’s store.

Products are the goods and services that merchants offer to customers. They can include various details such as title, description, price, images, and options such as size or color. You can use product variants to create or update different versions of the same product. You can also add or update product media. Products can be organized by grouping them into a collection.

Learn more about working with Shopify's product model, including limitations and considerations.

•OBJECT

The ProductVariant object represents a version of a product that comes in more than one option, such as size or color. For example, if a merchant sells t-shirts with options for size and color, then a small, blue t-shirt would be one product variant and a large, blue t-shirt would be another.

Use the ProductVariant object to manage the full lifecycle and configuration of a product's variants. Common use cases for using the ProductVariant object include:

  • Tracking inventory for each variant
  • Setting unique prices for each variant
  • Assigning barcodes and SKUs to connect variants to fulfillment services
  • Attaching variant-specific images and media
  • Setting delivery and tax requirements
  • Supporting product bundles, subscriptions, and selling plans

A ProductVariant is associated with a parent Product object. ProductVariant serves as the central link between a product's merchandising configuration, inventory, pricing, fulfillment, and sales channels within the GraphQL Admin API schema. Each variant can reference other GraphQL types such as:

Learn more about Shopify's product model.

•OBJECT

The Refund object represents a financial record of money returned to a customer from an order. It provides a comprehensive view of all refunded amounts, transactions, and restocking instructions associated with returning products or correcting order issues.

The Refund object provides information to:

  • Process customer returns and issue payments back to customers
  • Handle partial or full refunds for line items with optional inventory restocking
  • Refund shipping costs, duties, and additional fees
  • Issue store credit refunds as an alternative to original payment method returns
  • Track and reconcile all financial transactions related to refunds

Each Refund object maintains detailed records of what was refunded, how much was refunded, which payment transactions were involved, and any inventory restocking that occurred. The refund can include multiple components such as product line items, shipping charges, taxes, duties, and additional fees, all calculated with proper currency handling for international orders.

Refunds are always associated with an order and can optionally be linked to a return if the refund was initiated through the returns process. The refund tracks both the presentment currency (what the customer sees) and the shop currency for accurate financial reporting.


Note

The existence of a Refund object doesn't guarantee that the money has been returned to the customer. The actual financial processing happens through associated OrderTransaction objects, which can be in various states, such as pending, processing, success, or failure. To determine if money has actually been refunded, check the status of the associated transactions.


Learn more about managing returns, refunding duties, and processing refunds.

•OBJECT

A representation of a search query in the Shopify admin used on resource index views. Preserves complex queries with search terms and filters, enabling merchants to quickly access frequently used data views. For example, a saved search can be applied to the product index table to filter products. The query string combines free-text search terms with structured filters to narrow results based on resource attributes.

The search applies to a specific resource type such as Customer, Product, Order, or Collection objects.

•OBJECT
Theme app extensions

If your app integrates with a Shopify theme and you plan to submit it to the Shopify App Store, you must use theme app extensions instead of Script tags. Script tags can only be used with vintage themes. Learn more.

A script tag represents remote JavaScript code that is loaded into the pages of a shop's storefront or the Order status page of checkout.

•OBJECT

A dispute occurs when a buyer questions the legitimacy of a charge with their financial institution.

•OBJECT

A transfer of funds between a merchant's Shopify Payments balance and their ShopifyPaymentsBankAccount. Provides the net amount, issue date, and current ShopifyPaymentsPayoutStatus.

The payout includes a ShopifyPaymentsPayoutSummary that breaks down fees and gross amounts by transaction type, such as charges, refunds, and adjustments. The ShopifyPaymentsPayoutTransactionType indicates whether funds move into the bank account (deposit) or back to Shopify Payments (withdrawal).

•OBJECT

A webhook subscription is a persisted data object created by an app using the REST Admin API or GraphQL Admin API. It describes the topic that the app wants to receive, and a destination where Shopify should send webhooks of the specified topic. When an event for a given topic occurs, the webhook subscription sends a relevant payload to the destination. Learn more about the webhooks system.


Was this section helpful?