A space to discuss GraphQL queries, mutations, troubleshooting, throttling, and best practices.
My Shopify app needs to query all of a store's order history using the admin API. We currently have the read_all_orders scope granted, but wanted to check whether the read_marketplace_orders scope is also necessary to ensure we can query all orders.
What is the difference between the read_orders and read_marketplace_orders scopes?
Solved! Go to the solution
This is an accepted solution.
Hello there,
The read_orders and read_marketplace_orders scopes are both scopes used in the Shopify API to grant access to order data, but they have some differences in terms of the data they provide access to:
read_orders scope: This scope grants access to the orders created by the merchant in their own Shopify store. It allows your Shopify app to query and retrieve information about orders that were created within the merchant's own store, including orders from all sales channels (e.g., online store, point of sale, etc.) and orders that were created by the merchant or their staff.
read_marketplace_orders scope: This scope grants access to the orders created by the merchant in the context of a marketplace channel. It allows your Shopify app to query and retrieve information about orders that were created within a marketplace channel, which is a sales channel that allows merchants to sell their products on third-party marketplaces, such as Amazon or eBay, from within their Shopify store.
In summary, the read_orders scope provides access to all orders created by the merchant in their own Shopify store, regardless of the sales channel, while the read_marketplace_orders scope provides access to orders created within a marketplace channel specifically. If your Shopify app needs to query all order history for a store, including orders from both the merchant's own store and any connected marketplace channels, you would likely need to have both the read_orders and read_marketplace_orders scopes granted to ensure comprehensive access to all orders.
This is an accepted solution.
Hello there,
The read_orders and read_marketplace_orders scopes are both scopes used in the Shopify API to grant access to order data, but they have some differences in terms of the data they provide access to:
read_orders scope: This scope grants access to the orders created by the merchant in their own Shopify store. It allows your Shopify app to query and retrieve information about orders that were created within the merchant's own store, including orders from all sales channels (e.g., online store, point of sale, etc.) and orders that were created by the merchant or their staff.
read_marketplace_orders scope: This scope grants access to the orders created by the merchant in the context of a marketplace channel. It allows your Shopify app to query and retrieve information about orders that were created within a marketplace channel, which is a sales channel that allows merchants to sell their products on third-party marketplaces, such as Amazon or eBay, from within their Shopify store.
In summary, the read_orders scope provides access to all orders created by the merchant in their own Shopify store, regardless of the sales channel, while the read_marketplace_orders scope provides access to orders created within a marketplace channel specifically. If your Shopify app needs to query all order history for a store, including orders from both the merchant's own store and any connected marketplace channels, you would likely need to have both the read_orders and read_marketplace_orders scopes granted to ensure comprehensive access to all orders.
Thanks for the detailed reply! So, if I queried all of a store's order history using GraphQL (https://shopify.dev/docs/api/admin-graphql/2022-10/objects/order), would it include marketplace orders? Or are marketplace orders queried from a different GraphQL object?