# Shop - admin-graphql - OBJECT Version: 2024-01 ## Description Represents a collection of general settings and information about the shop. ### Access Scopes ## Fields * [alerts](/docs/api/admin-graphql/2024-01/objects/ShopAlert): ShopAlert! - A list of the shop's active alert messages that appear in the Shopify admin. * [allProductCategories](/docs/api/admin-graphql/2024-01/objects/ProductCategory): ProductCategory! - A list of the shop's product categories. Limit: 1000 product categories. * [analyticsToken](/docs/api/admin-graphql/2024-01/scalars/String): String! - The token required to query the shop's reports or dashboards. * [billingAddress](/docs/api/admin-graphql/2024-01/objects/ShopAddress): ShopAddress! - The shop's billing address information. * [channelCount](/docs/api/admin-graphql/2024-01/scalars/Int): Int! - Exposes the number of channels. * [channelDefinitionsForInstalledChannels](/docs/api/admin-graphql/2024-01/objects/AvailableChannelDefinitionsByChannel): AvailableChannelDefinitionsByChannel! - List of all channel definitions associated with a shop. * [checkoutApiSupported](/docs/api/admin-graphql/2024-01/scalars/Boolean): Boolean! - Specifies whether the shop supports checkouts via Checkout API. * [collectionByHandle](/docs/api/admin-graphql/2024-01/objects/Collection): Collection - Return a collection by its handle. * [contactEmail](/docs/api/admin-graphql/2024-01/scalars/String): String! - The public-facing contact email address for the shop. Customers will use this email to communicate with the shop owner. * [countriesInShippingZones](/docs/api/admin-graphql/2024-01/objects/CountriesInShippingZones): CountriesInShippingZones! - Countries that have been defined in shipping zones for the shop. * [currencyCode](/docs/api/admin-graphql/2024-01/enums/CurrencyCode): CurrencyCode! - The three letter code for the currency that the shop sells in. * [currencyFormats](/docs/api/admin-graphql/2024-01/objects/CurrencyFormats): CurrencyFormats! - How currencies are displayed on your store. * [customerAccounts](/docs/api/admin-graphql/2024-01/enums/ShopCustomerAccountsSetting): ShopCustomerAccountsSetting! - Whether customer accounts are required, optional, or disabled for the shop. * [customerAccountsV2](/docs/api/admin-graphql/2024-01/objects/CustomerAccountsV2): CustomerAccountsV2! - Information about the shop's customer accounts. * [description](/docs/api/admin-graphql/2024-01/scalars/String): String - The shop's meta description used in search engine results. * [domains](/docs/api/admin-graphql/2024-01/objects/Domain): Domain! - The domains configured for the shop. * [email](/docs/api/admin-graphql/2024-01/scalars/String): String! - The shop owner's email address. Shopify will use this email address to communicate with the shop owner. * [enabledPresentmentCurrencies](/docs/api/admin-graphql/2024-01/enums/CurrencyCode): CurrencyCode! - The presentment currencies enabled for the shop. * [features](/docs/api/admin-graphql/2024-01/objects/ShopFeatures): ShopFeatures! - The set of features enabled for the shop. * [fulfillmentServices](/docs/api/admin-graphql/2024-01/objects/FulfillmentService): FulfillmentService! - List of the shop's installed fulfillment services. * [ianaTimezone](/docs/api/admin-graphql/2024-01/scalars/String): String! - The shop's time zone as defined by the IANA. * [id](/docs/api/admin-graphql/2024-01/scalars/ID): ID! - A globally-unique ID. * [limitedPendingOrderCount](/docs/api/admin-graphql/2024-01/objects/LimitedPendingOrderCount): LimitedPendingOrderCount! - The number of pendings orders on the shop. Limited to a maximum of 10000. * [merchantApprovalSignals](/docs/api/admin-graphql/2024-01/objects/MerchantApprovalSignals): MerchantApprovalSignals - The approval signals for a shop to support onboarding to channel apps. * [metafield](/docs/api/admin-graphql/2024-01/objects/Metafield): Metafield - A [custom field](https://shopify.dev/docs/apps/build/custom-data), including its `namespace` and `key`, that's associated with a Shopify resource for the purposes of adding and storing additional information. * [myshopifyDomain](/docs/api/admin-graphql/2024-01/scalars/String): String! - The shop's .myshopify.com domain name. * [name](/docs/api/admin-graphql/2024-01/scalars/String): String! - The shop's name. * [navigationSettings](/docs/api/admin-graphql/2024-01/objects/NavigationItem): NavigationItem! - The shop's settings related to navigation. * [orderNumberFormatPrefix](/docs/api/admin-graphql/2024-01/scalars/String): String! - The prefix that appears before order numbers. * [orderNumberFormatSuffix](/docs/api/admin-graphql/2024-01/scalars/String): String! - The suffix that appears after order numbers. * [paymentSettings](/docs/api/admin-graphql/2024-01/objects/PaymentSettings): PaymentSettings! - The shop's settings related to payments. * [pendingOrderCount](/docs/api/admin-graphql/2024-01/scalars/Int): Int! - Number of pending orders on the shop. * [plan](/docs/api/admin-graphql/2024-01/objects/ShopPlan): ShopPlan! - The shop's billing plan. * [primaryDomain](/docs/api/admin-graphql/2024-01/objects/Domain): Domain! - The primary domain of the shop's online store. * [privateMetafield](/docs/api/admin-graphql/2024-01/objects/PrivateMetafield): PrivateMetafield - Returns a private metafield by namespace and key that belongs to the resource. * [productByHandle](/docs/api/admin-graphql/2024-01/objects/Product): Product - Return a product by its handle. * [publicationCount](/docs/api/admin-graphql/2024-01/scalars/Int): Int! - The number of publications for the shop. * [resourceLimits](/docs/api/admin-graphql/2024-01/objects/ShopResourceLimits): ShopResourceLimits! - The shop's limits for specific resources. For example, the maximum number ofvariants allowed per product, or the maximum number of locations allowed. * [richTextEditorUrl](/docs/api/admin-graphql/2024-01/scalars/URL): URL! - The URL of the rich text editor that can be used for mobile devices. * [searchFilters](/docs/api/admin-graphql/2024-01/objects/SearchFilterOptions): SearchFilterOptions! - The list of search filter options for the shop. These can be used to filter productvisibility for the shop. * [setupRequired](/docs/api/admin-graphql/2024-01/scalars/Boolean): Boolean! - Whether the shop has outstanding setup steps. * [shipsToCountries](/docs/api/admin-graphql/2024-01/enums/CountryCode): CountryCode! - The list of countries that the shop ships to. * [shopPolicies](/docs/api/admin-graphql/2024-01/objects/ShopPolicy): ShopPolicy! - The list of all legal policies associated with a shop. * [storefrontUrl](/docs/api/admin-graphql/2024-01/scalars/URL): URL! - The URL of the shop's storefront. * [taxShipping](/docs/api/admin-graphql/2024-01/scalars/Boolean): Boolean! - Whether the shop charges taxes for shipping. * [taxesIncluded](/docs/api/admin-graphql/2024-01/scalars/Boolean): Boolean! - Whether applicable taxes are included in the shop's product prices. * [timezoneAbbreviation](/docs/api/admin-graphql/2024-01/scalars/String): String! - The shop's time zone abbreviation. * [timezoneOffset](/docs/api/admin-graphql/2024-01/scalars/String): String! - The shop's time zone offset. * [timezoneOffsetMinutes](/docs/api/admin-graphql/2024-01/scalars/Int): Int! - The shop's time zone offset expressed as a number of minutes. * [transactionalSmsDisabled](/docs/api/admin-graphql/2024-01/scalars/Boolean): Boolean! - Whether transactional SMS sent by Shopify have been disabled for a shop. * [translations](/docs/api/admin-graphql/2024-01/objects/Translation): Translation! - The published translations associated with the resource. * [unitSystem](/docs/api/admin-graphql/2024-01/enums/UnitSystem): UnitSystem! - The shop's unit system for weights and measures. * [uploadedImagesByIds](/docs/api/admin-graphql/2024-01/objects/Image): Image! - Fetches a list of images uploaded to the shop by their IDs. * [url](/docs/api/admin-graphql/2024-01/scalars/URL): URL! - The URL of the shop's online store. * [weightUnit](/docs/api/admin-graphql/2024-01/enums/WeightUnit): WeightUnit! - The shop's primary unit of weight for products and shipping. ## Connections * [assignedFulfillmentOrders](/docs/api/admin-graphql/2024-01/connections/FulfillmentOrderConnection): FulfillmentOrderConnection! * [availableChannelApps](/docs/api/admin-graphql/2024-01/connections/AppConnection): AppConnection! * [channels](/docs/api/admin-graphql/2024-01/connections/ChannelConnection): ChannelConnection! * [collectionSavedSearches](/docs/api/admin-graphql/2024-01/connections/SavedSearchConnection): SavedSearchConnection! * [collections](/docs/api/admin-graphql/2024-01/connections/CollectionConnection): CollectionConnection! * [currencySettings](/docs/api/admin-graphql/2024-01/connections/CurrencySettingConnection): CurrencySettingConnection! * [customerSavedSearches](/docs/api/admin-graphql/2024-01/connections/SavedSearchConnection): SavedSearchConnection! * [customerTags](/docs/api/admin-graphql/2024-01/connections/StringConnection): StringConnection! * [customers](/docs/api/admin-graphql/2024-01/connections/CustomerConnection): CustomerConnection! * [draftOrderSavedSearches](/docs/api/admin-graphql/2024-01/connections/SavedSearchConnection): SavedSearchConnection! * [draftOrderTags](/docs/api/admin-graphql/2024-01/connections/StringConnection): StringConnection! * [draftOrders](/docs/api/admin-graphql/2024-01/connections/DraftOrderConnection): DraftOrderConnection! * [fulfillmentOrders](/docs/api/admin-graphql/2024-01/connections/FulfillmentOrderConnection): FulfillmentOrderConnection! * [inventoryItems](/docs/api/admin-graphql/2024-01/connections/InventoryItemConnection): InventoryItemConnection! * [locations](/docs/api/admin-graphql/2024-01/connections/LocationConnection): LocationConnection! * [marketingEvents](/docs/api/admin-graphql/2024-01/connections/MarketingEventConnection): MarketingEventConnection! * [metafields](/docs/api/admin-graphql/2024-01/connections/MetafieldConnection): MetafieldConnection! * [orderSavedSearches](/docs/api/admin-graphql/2024-01/connections/SavedSearchConnection): SavedSearchConnection! * [orderTags](/docs/api/admin-graphql/2024-01/connections/StringConnection): StringConnection! * [orders](/docs/api/admin-graphql/2024-01/connections/OrderConnection): OrderConnection! * [priceRuleSavedSearches](/docs/api/admin-graphql/2024-01/connections/SavedSearchConnection): SavedSearchConnection! * [priceRules](/docs/api/admin-graphql/2024-01/connections/PriceRuleConnection): PriceRuleConnection! * [privateMetafields](/docs/api/admin-graphql/2024-01/connections/PrivateMetafieldConnection): PrivateMetafieldConnection! * [productImages](/docs/api/admin-graphql/2024-01/connections/ImageConnection): ImageConnection! * [productSavedSearches](/docs/api/admin-graphql/2024-01/connections/SavedSearchConnection): SavedSearchConnection! * [productTags](/docs/api/admin-graphql/2024-01/connections/StringConnection): StringConnection! * [productTypes](/docs/api/admin-graphql/2024-01/connections/StringConnection): StringConnection! * [productVariants](/docs/api/admin-graphql/2024-01/connections/ProductVariantConnection): ProductVariantConnection! * [productVendors](/docs/api/admin-graphql/2024-01/connections/StringConnection): StringConnection! * [products](/docs/api/admin-graphql/2024-01/connections/ProductConnection): ProductConnection! * [search](/docs/api/admin-graphql/2024-01/connections/SearchResultConnection): SearchResultConnection! * [staffMembers](/docs/api/admin-graphql/2024-01/connections/StaffMemberConnection): StaffMemberConnection! * [storefrontAccessTokens](/docs/api/admin-graphql/2024-01/connections/StorefrontAccessTokenConnection): StorefrontAccessTokenConnection! ## Related queries * [shop](/docs/api/admin-graphql/2024-01/queries/shop) Returns the Shop resource corresponding to the access token used in the request. The Shop resource contains business and store management settings for the shop. ## Related mutations * [collectionDelete](/docs/api/admin-graphql/2024-01/mutations/collectionDelete) Deletes a collection. * [collectionPublish](/docs/api/admin-graphql/2024-01/mutations/collectionPublish) Publishes a collection to a channel. * [collectionUnpublish](/docs/api/admin-graphql/2024-01/mutations/collectionUnpublish) Unpublishes a collection. * [customerDelete](/docs/api/admin-graphql/2024-01/mutations/customerDelete) Delete a customer. As of API version 2022-10, apps using protected customer data must meet the protected customer data [requirements](https://shopify.dev/apps/store/data-protection/protected-customer-data). * [delegateAccessTokenCreate](/docs/api/admin-graphql/2024-01/mutations/delegateAccessTokenCreate) Creates a delegate access token. To learn more about creating delegate access tokens, refer to [Delegate OAuth access tokens to subsystems](https://shopify.dev/docs/apps/build/authentication-authorization/access-tokens/use-delegate-tokens). * [delegateAccessTokenDestroy](/docs/api/admin-graphql/2024-01/mutations/delegateAccessTokenDestroy) Destroys a delegate access token. * [priceRuleDelete](/docs/api/admin-graphql/2024-01/mutations/priceRuleDelete) Delete a price rule. * [productCreate](/docs/api/admin-graphql/2024-01/mutations/productCreate) Creates a product. Learn more about the [product model](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model) and [adding product data](https://shopify.dev/docs/apps/build/graphql/migrate/new-product-model/add-data). * [productDelete](/docs/api/admin-graphql/2024-01/mutations/productDelete) Deletes a product, including all associated variants and media. As of API version `2023-01`, if you need to delete a large product, such as one that has many [variants](https://shopify.dev/api/admin-graphql/latest/input-objects/ProductVariantInput) that are active at several [locations](https://shopify.dev/api/admin-graphql/latest/input-objects/InventoryLevelInput), you may encounter timeout errors. To avoid these timeout errors, you can instead use the asynchronous [ProductDeleteAsync](https://shopify.dev/api/admin-graphql/latest/mutations/productDeleteAsync) mutation. * [productDuplicate](/docs/api/admin-graphql/2024-01/mutations/productDuplicate) Duplicates a product. If you need to duplicate a large product, such as one that has many [variants](https://shopify.dev/api/admin-graphql/latest/input-objects/ProductVariantInput) that are active at several [locations](https://shopify.dev/api/admin-graphql/latest/input-objects/InventoryLevelInput), you might encounter timeout errors. To avoid these timeout errors, you can instead duplicate the product asynchronously. In API version 2024-10 and higher, include `synchronous: false` argument in this mutation to perform the duplication asynchronously. In API version 2024-07 and lower, use the asynchronous [`ProductDuplicateAsyncV2`](https://shopify.dev/api/admin-graphql/2024-07/mutations/productDuplicateAsyncV2). * [productPublish](/docs/api/admin-graphql/2024-01/mutations/productPublish) Publishes a product. Products that are sold exclusively on subscription (`requiresSellingPlan: true`) can only be published on online stores. * [productUnpublish](/docs/api/admin-graphql/2024-01/mutations/productUnpublish) Unpublishes a product. * [publishablePublish](/docs/api/admin-graphql/2024-01/mutations/publishablePublish) Publishes a resource to a channel. If the resource is a product, then it's visible in the channel only if the product status is `active`. Products that are sold exclusively on subscription (`requiresSellingPlan: true`) can be published only on online stores. * [publishablePublishToCurrentChannel](/docs/api/admin-graphql/2024-01/mutations/publishablePublishToCurrentChannel) Publishes a resource to current channel. If the resource is a product, then it's visible in the channel only if the product status is `active`. Products that are sold exclusively on subscription (`requiresSellingPlan: true`) can be published only on online stores. * [publishableUnpublish](/docs/api/admin-graphql/2024-01/mutations/publishableUnpublish) Unpublishes a resource from a channel. If the resource is a product, then it's visible in the channel only if the product status is `active`. * [publishableUnpublishToCurrentChannel](/docs/api/admin-graphql/2024-01/mutations/publishableUnpublishToCurrentChannel) Unpublishes a resource from the current channel. If the resource is a product, then it's visible in the channel only if the product status is `active`. * [savedSearchDelete](/docs/api/admin-graphql/2024-01/mutations/savedSearchDelete) Delete a saved search. * [storefrontAccessTokenCreate](/docs/api/admin-graphql/2024-01/mutations/storefrontAccessTokenCreate) Creates a storefront access token for use with the [Storefront API](https://shopify.dev/docs/api/storefront). An app can have a maximum of 100 active storefront access tokens for each shop. [Get started with the Storefront API](https://shopify.dev/docs/storefronts/headless/building-with-the-storefront-api/getting-started). ## Related Unions * [MetafieldReferencer](/docs/api/admin-graphql/2024-01/unions/MetafieldReferencer) Types of resources that may use metafields to reference other resources. ## Examples ### Get a metafield attached to a shop Curl example: "curl -X POST \\\nhttps://your-development-store.myshopify.com/admin/api/2024-01/graphql.json \\\n-H 'Content-Type: application/json' \\\n-H 'X-Shopify-Access-Token: {access_token}' \\\n-d '{\n\"query\": \"query ShopMetafield($namespace: String!, $key: String!) { shop { copyrightYear: metafield(namespace: $namespace, key: $key) { value } } }\",\n \"variables\": {\n \"namespace\": \"my_fields\",\n \"key\": \"copyright_year\"\n }\n}'\n" Node example: "const client = new shopify.clients.Graphql({session});\nconst data = await client.query({\n data: {\n \"query\": `query ShopMetafield($namespace: String!, $key: String!) {\n shop {\n copyrightYear: metafield(namespace: $namespace, key: $key) {\n value\n }\n }\n }`,\n \"variables\": {\n \"namespace\": \"my_fields\",\n \"key\": \"copyright_year\"\n },\n },\n});\n" Ruby example: "session = ShopifyAPI::Auth::Session.new(\n shop: \"your-development-store.myshopify.com\",\n access_token: access_token\n)\nclient = ShopifyAPI::Clients::Graphql::Admin.new(\n session: session\n)\n\nquery = <<~QUERY\n query ShopMetafield($namespace: String!, $key: String!) {\n shop {\n copyrightYear: metafield(namespace: $namespace, key: $key) {\n value\n }\n }\n }\nQUERY\n\nvariables = {\n \"namespace\": \"my_fields\",\n \"key\": \"copyright_year\"\n}\n\nresponse = client.query(query: query, variables: variables)\n" Remix example: "const { admin } = await authenticate.admin(request);\n\nconst response = await admin.graphql(\n `#graphql\n query ShopMetafield($namespace: String!, $key: String!) {\n shop {\n copyrightYear: metafield(namespace: $namespace, key: $key) {\n value\n }\n }\n }`,\n {\n variables: {\n \"namespace\": \"my_fields\",\n \"key\": \"copyright_year\"\n },\n },\n);\n\nconst data = await response.json();\n" Graphql query: "query ShopMetafield($namespace: String!, $key: String!) {\n shop {\n copyrightYear: metafield(namespace: $namespace, key: $key) {\n value\n }\n }\n}" #### Graphql Input { "namespace": "my_fields", "key": "copyright_year" } #### Graphql Response { "data": { "shop": { "copyrightYear": { "value": "2022" } } } } ### Get metafields attached to a shop Curl example: "curl -X POST \\\nhttps://your-development-store.myshopify.com/admin/api/2024-01/graphql.json \\\n-H 'Content-Type: application/json' \\\n-H 'X-Shopify-Access-Token: {access_token}' \\\n-d '{\n\"query\": \"query ShopMetafields { shop { metafields(first: 3) { edges { node { namespace key value } } } } }\"\n}'\n" Node example: "const client = new shopify.clients.Graphql({session});\nconst data = await client.query({\n data: `query ShopMetafields {\n shop {\n metafields(first: 3) {\n edges {\n node {\n namespace\n key\n value\n }\n }\n }\n }\n }`,\n});\n" Ruby example: "session = ShopifyAPI::Auth::Session.new(\n shop: \"your-development-store.myshopify.com\",\n access_token: access_token\n)\nclient = ShopifyAPI::Clients::Graphql::Admin.new(\n session: session\n)\n\nquery = <<~QUERY\n query ShopMetafields {\n shop {\n metafields(first: 3) {\n edges {\n node {\n namespace\n key\n value\n }\n }\n }\n }\n }\nQUERY\n\nresponse = client.query(query: query)\n" Remix example: "const { admin } = await authenticate.admin(request);\n\nconst response = await admin.graphql(\n `#graphql\n query ShopMetafields {\n shop {\n metafields(first: 3) {\n edges {\n node {\n namespace\n key\n value\n }\n }\n }\n }\n }`,\n);\n\nconst data = await response.json();\n" Graphql query: "query ShopMetafields {\n shop {\n metafields(first: 3) {\n edges {\n node {\n namespace\n key\n value\n }\n }\n }\n }\n}" #### Graphql Input {} #### Graphql Response { "data": { "shop": { "metafields": { "edges": [ { "node": { "namespace": "my_fields", "key": "copyright_year", "value": "2022" } } ] } } } } ### Receive a list of all FulfillmentServices Curl example: "curl -X POST \\\nhttps://your-development-store.myshopify.com/admin/api/2024-01/graphql.json \\\n-H 'Content-Type: application/json' \\\n-H 'X-Shopify-Access-Token: {access_token}' \\\n-d '{\n\"query\": \"query FulfillmentServiceList { shop { fulfillmentServices { id callbackUrl fulfillmentOrdersOptIn permitsSkuSharing handle inventoryManagement serviceName } } }\"\n}'\n" Node example: "const client = new shopify.clients.Graphql({session});\nconst data = await client.query({\n data: `query FulfillmentServiceList {\n shop {\n fulfillmentServices {\n id\n callbackUrl\n fulfillmentOrdersOptIn\n permitsSkuSharing\n handle\n inventoryManagement\n serviceName\n }\n }\n }`,\n});\n" Ruby example: "session = ShopifyAPI::Auth::Session.new(\n shop: \"your-development-store.myshopify.com\",\n access_token: access_token\n)\nclient = ShopifyAPI::Clients::Graphql::Admin.new(\n session: session\n)\n\nquery = <<~QUERY\n query FulfillmentServiceList {\n shop {\n fulfillmentServices {\n id\n callbackUrl\n fulfillmentOrdersOptIn\n permitsSkuSharing\n handle\n inventoryManagement\n serviceName\n }\n }\n }\nQUERY\n\nresponse = client.query(query: query)\n" Remix example: "const { admin } = await authenticate.admin(request);\n\nconst response = await admin.graphql(\n `#graphql\n query FulfillmentServiceList {\n shop {\n fulfillmentServices {\n id\n callbackUrl\n fulfillmentOrdersOptIn\n permitsSkuSharing\n handle\n inventoryManagement\n serviceName\n }\n }\n }`,\n);\n\nconst data = await response.json();\n" Graphql query: "query FulfillmentServiceList {\n shop {\n fulfillmentServices {\n id\n callbackUrl\n fulfillmentOrdersOptIn\n permitsSkuSharing\n handle\n inventoryManagement\n serviceName\n }\n }\n}" #### Graphql Input null #### Graphql Response { "data": { "shop": { "fulfillmentServices": [ { "id": "gid://shopify/FulfillmentService/manual", "callbackUrl": null, "fulfillmentOrdersOptIn": false, "permitsSkuSharing": true, "handle": "manual", "inventoryManagement": false, "serviceName": "Manual" }, { "id": "gid://shopify/FulfillmentService/18961920?id=true", "callbackUrl": "http://shipwire.com", "fulfillmentOrdersOptIn": true, "permitsSkuSharing": true, "handle": "shipwire", "inventoryManagement": false, "serviceName": "Shipwire" }, { "id": "gid://shopify/FulfillmentService/198258461?id=true", "callbackUrl": "http://google.com", "fulfillmentOrdersOptIn": true, "permitsSkuSharing": false, "handle": "on-demand-delivery", "inventoryManagement": false, "serviceName": "On Demand Delivery" }, { "id": "gid://shopify/FulfillmentService/736057333?id=true", "callbackUrl": null, "fulfillmentOrdersOptIn": false, "permitsSkuSharing": false, "handle": "mr-acme-drop-shipper", "inventoryManagement": false, "serviceName": "Mr. ACME Drop Shipper" }, { "id": "gid://shopify/FulfillmentService/1061774486?id=true", "callbackUrl": null, "fulfillmentOrdersOptIn": false, "permitsSkuSharing": false, "handle": "mr-drop-shipper", "inventoryManagement": false, "serviceName": "Mr. Drop Shipper" } ] } } } ### Retrieve information about a shop Curl example: "curl -X POST \\\nhttps://your-development-store.myshopify.com/admin/api/2024-01/graphql.json \\\n-H 'Content-Type: application/json' \\\n-H 'X-Shopify-Access-Token: {access_token}' \\\n-d '{\n\"query\": \"query { shop { name currencyCode checkoutApiSupported taxesIncluded resourceLimits { maxProductVariants } } }\"\n}'\n" Node example: "const client = new shopify.clients.Graphql({session});\nconst data = await client.query({\n data: `query {\n shop {\n name\n currencyCode\n checkoutApiSupported\n taxesIncluded\n resourceLimits {\n maxProductVariants\n }\n }\n }`,\n});\n" Ruby example: "session = ShopifyAPI::Auth::Session.new(\n shop: \"your-development-store.myshopify.com\",\n access_token: access_token\n)\nclient = ShopifyAPI::Clients::Graphql::Admin.new(\n session: session\n)\n\nquery = <<~QUERY\n query {\n shop {\n name\n currencyCode\n checkoutApiSupported\n taxesIncluded\n resourceLimits {\n maxProductVariants\n }\n }\n }\nQUERY\n\nresponse = client.query(query: query)\n" Remix example: "const { admin } = await authenticate.admin(request);\n\nconst response = await admin.graphql(\n `#graphql\n query {\n shop {\n name\n currencyCode\n checkoutApiSupported\n taxesIncluded\n resourceLimits {\n maxProductVariants\n }\n }\n }`,\n);\n\nconst data = await response.json();\n" Graphql query: "query {\n shop {\n name\n currencyCode\n checkoutApiSupported\n taxesIncluded\n resourceLimits {\n maxProductVariants\n }\n }\n}" #### Graphql Input null #### Graphql Response { "data": { "shop": { "name": "Snowdevil", "currencyCode": "USD", "checkoutApiSupported": true, "taxesIncluded": false, "resourceLimits": { "maxProductVariants": 100 } } } } ### Retrieves a list of fulfillment orders assigned to the shop locations that are owned by the app Curl example: "curl -X POST \\\nhttps://your-development-store.myshopify.com/admin/api/2024-01/graphql.json \\\n-H 'Content-Type: application/json' \\\n-H 'X-Shopify-Access-Token: {access_token}' \\\n-d '{\n\"query\": \"query AssignedFulfillmentOrderList($assignmentStatus: FulfillmentOrderAssignmentStatus) { shop { assignedFulfillmentOrders(first: 10, assignmentStatus: $assignmentStatus) { edges { node { id status requestStatus destination { firstName lastName address1 city province zip countryCode phone } lineItems(first: 10) { edges { node { id productTitle sku remainingQuantity } } } } } } } }\",\n \"variables\": {\n \"assignmentStatus\": \"FULFILLMENT_REQUESTED\"\n }\n}'\n" Node example: "const client = new shopify.clients.Graphql({session});\nconst data = await client.query({\n data: {\n \"query\": `query AssignedFulfillmentOrderList($assignmentStatus: FulfillmentOrderAssignmentStatus) {\n shop {\n assignedFulfillmentOrders(first: 10, assignmentStatus: $assignmentStatus) {\n edges {\n node {\n id\n status\n requestStatus\n destination {\n firstName\n lastName\n address1\n city\n province\n zip\n countryCode\n phone\n }\n lineItems(first: 10) {\n edges {\n node {\n id\n productTitle\n sku\n remainingQuantity\n }\n }\n }\n }\n }\n }\n }\n }`,\n \"variables\": {\n \"assignmentStatus\": \"FULFILLMENT_REQUESTED\"\n },\n },\n});\n" Ruby example: "session = ShopifyAPI::Auth::Session.new(\n shop: \"your-development-store.myshopify.com\",\n access_token: access_token\n)\nclient = ShopifyAPI::Clients::Graphql::Admin.new(\n session: session\n)\n\nquery = <<~QUERY\n query AssignedFulfillmentOrderList($assignmentStatus: FulfillmentOrderAssignmentStatus) {\n shop {\n assignedFulfillmentOrders(first: 10, assignmentStatus: $assignmentStatus) {\n edges {\n node {\n id\n status\n requestStatus\n destination {\n firstName\n lastName\n address1\n city\n province\n zip\n countryCode\n phone\n }\n lineItems(first: 10) {\n edges {\n node {\n id\n productTitle\n sku\n remainingQuantity\n }\n }\n }\n }\n }\n }\n }\n }\nQUERY\n\nvariables = {\n \"assignmentStatus\": \"FULFILLMENT_REQUESTED\"\n}\n\nresponse = client.query(query: query, variables: variables)\n" Remix example: "const { admin } = await authenticate.admin(request);\n\nconst response = await admin.graphql(\n `#graphql\n query AssignedFulfillmentOrderList($assignmentStatus: FulfillmentOrderAssignmentStatus) {\n shop {\n assignedFulfillmentOrders(first: 10, assignmentStatus: $assignmentStatus) {\n edges {\n node {\n id\n status\n requestStatus\n destination {\n firstName\n lastName\n address1\n city\n province\n zip\n countryCode\n phone\n }\n lineItems(first: 10) {\n edges {\n node {\n id\n productTitle\n sku\n remainingQuantity\n }\n }\n }\n }\n }\n }\n }\n }`,\n {\n variables: {\n \"assignmentStatus\": \"FULFILLMENT_REQUESTED\"\n },\n },\n);\n\nconst data = await response.json();\n" Graphql query: "query AssignedFulfillmentOrderList($assignmentStatus: FulfillmentOrderAssignmentStatus) {\n shop {\n assignedFulfillmentOrders(first: 10, assignmentStatus: $assignmentStatus) {\n edges {\n node {\n id\n status\n requestStatus\n destination {\n firstName\n lastName\n address1\n city\n province\n zip\n countryCode\n phone\n }\n lineItems(first: 10) {\n edges {\n node {\n id\n productTitle\n sku\n remainingQuantity\n }\n }\n }\n }\n }\n }\n }\n}" #### Graphql Input { "assignmentStatus": "FULFILLMENT_REQUESTED" } #### Graphql Response { "data": { "shop": { "assignedFulfillmentOrders": { "edges": [ { "node": { "id": "gid://shopify/FulfillmentOrder/1046001474", "status": "OPEN", "requestStatus": "SUBMITTED", "destination": null, "lineItems": { "edges": [] } } } ] } } } } ### Retrieves a list of all users Curl example: "curl -X POST \\\nhttps://your-development-store.myshopify.com/admin/api/2024-01/graphql.json \\\n-H 'Content-Type: application/json' \\\n-H 'X-Shopify-Access-Token: {access_token}' \\\n-d '{\n\"query\": \"query { shop { staffMembers(first: 10) { edges { node { active avatar { url } email exists firstName id initials isShopOwner lastName locale name phone } } } } }\"\n}'\n" Node example: "const client = new shopify.clients.Graphql({session});\nconst data = await client.query({\n data: `query {\n shop {\n staffMembers(first: 10) {\n edges {\n node {\n active\n avatar {\n url\n }\n email\n exists\n firstName\n id\n initials\n isShopOwner\n lastName\n locale\n name\n phone\n }\n }\n }\n }\n }`,\n});\n" Ruby example: "session = ShopifyAPI::Auth::Session.new(\n shop: \"your-development-store.myshopify.com\",\n access_token: access_token\n)\nclient = ShopifyAPI::Clients::Graphql::Admin.new(\n session: session\n)\n\nquery = <<~QUERY\n query {\n shop {\n staffMembers(first: 10) {\n edges {\n node {\n active\n avatar {\n url\n }\n email\n exists\n firstName\n id\n initials\n isShopOwner\n lastName\n locale\n name\n phone\n }\n }\n }\n }\n }\nQUERY\n\nresponse = client.query(query: query)\n" Remix example: "const { admin } = await authenticate.admin(request);\n\nconst response = await admin.graphql(\n `#graphql\n query {\n shop {\n staffMembers(first: 10) {\n edges {\n node {\n active\n avatar {\n url\n }\n email\n exists\n firstName\n id\n initials\n isShopOwner\n lastName\n locale\n name\n phone\n }\n }\n }\n }\n }`,\n);\n\nconst data = await response.json();\n" Graphql query: "query {\n shop {\n staffMembers(first: 10) {\n edges {\n node {\n active\n avatar {\n url\n }\n email\n exists\n firstName\n id\n initials\n isShopOwner\n lastName\n locale\n name\n phone\n }\n }\n }\n }\n}" #### Graphql Input null #### Graphql Response { "data": { "shop": { "staffMembers": { "edges": [ { "node": { "active": true, "avatar": { "url": "https://cdn.shopify.com/proxy/106ea358a244c6081c66489854c884cbfa858aec3c1730397e34bd4f4992f21e/www.gravatar.com/avatar/a902d35d9cd3096a7285782c69dd4622.jpg?s=2048&d=https%3A%2F%2Fcdn.shopify.com%2Fshopifycloud%2Fshopify%2Fassets%2Fno-gravatar-new-04e7c2331218ac202e79e31be502fd5631bc96cb0206580dbcb0720ebbbd7c73.png" }, "email": "sales@example.com", "exists": true, "firstName": "angie", "id": "gid://shopify/StaffMember/1039577421", "initials": [ "a", "l" ], "isShopOwner": false, "lastName": "lucuos", "locale": "en", "name": "angie lucuos", "phone": null } }, { "node": { "active": true, "avatar": { "url": "https://cdn.shopify.com/proxy/29f98977e6ce2b24120b4d26ce7fde694b7bafc46a6be575ce88cf26a789c4e6/www.gravatar.com/avatar/4df4299bb7b53d4a9e8989238f81c15d.jpg?s=2048&d=https%3A%2F%2Fcdn.shopify.com%2Fshopifycloud%2Fshopify%2Fassets%2Fno-gravatar-new-04e7c2331218ac202e79e31be502fd5631bc96cb0206580dbcb0720ebbbd7c73.png" }, "email": "arnie@champion.example.com", "exists": true, "firstName": "Arnold", "id": "gid://shopify/StaffMember/863601736", "initials": [ "S", "n" ], "isShopOwner": false, "lastName": "Schwarzenegger", "locale": "en", "name": "Snow Devil Inc.", "phone": null } }, { "node": { "active": true, "avatar": { "url": "https://cdn.shopify.com/s/files/1/2637/1970/users/foo.jpg?v=1731443626" }, "email": "bob@example.com", "exists": true, "firstName": "bob", "id": "gid://shopify/StaffMember/902541635", "initials": [ "b", "b" ], "isShopOwner": true, "lastName": "bobsen", "locale": "en", "name": "bob bobsen", "phone": null } }, { "node": { "active": true, "avatar": { "url": "https://cdn.shopify.com/proxy/a2fa3a40bc8b418a7e6a69413fb84a57164b6f4ce6757d4163ffda4302e02682/www.gravatar.com/avatar/59aa4f8e9b82c046003452b23e3b881e.jpg?s=2048&d=https%3A%2F%2Fcdn.shopify.com%2Fshopifycloud%2Fshopify%2Fassets%2Fno-gravatar-new-04e7c2331218ac202e79e31be502fd5631bc96cb0206580dbcb0720ebbbd7c73.png" }, "email": "pos@shopify.com", "exists": true, "firstName": "bob", "id": "gid://shopify/StaffMember/1004723144", "initials": [ "b", "b" ], "isShopOwner": false, "lastName": "bobsen", "locale": "en", "name": "bob bobsen", "phone": null } }, { "node": { "active": true, "avatar": { "url": "https://cdn.shopify.com/proxy/739472b8350cf18a7f2058ef2d37019d4026bcb276844fa3d192eed26b594e27/www.gravatar.com/avatar/6fe88e20596eb227b53b543c2cece91e.jpg?s=2048&d=https%3A%2F%2Fcdn.shopify.com%2Fshopifycloud%2Fshopify%2Fassets%2Fno-gravatar-new-04e7c2331218ac202e79e31be502fd5631bc96cb0206580dbcb0720ebbbd7c73.png" }, "email": "collaborator_bob@example.com", "exists": true, "firstName": "collaborator", "id": "gid://shopify/StaffMember/688782760", "initials": [ "S", "n" ], "isShopOwner": false, "lastName": "bob", "locale": "en", "name": "Snow Devil Inc.", "phone": null } }, { "node": { "active": true, "avatar": { "url": "https://cdn.shopify.com/proxy/8149b06b8974a1092082b18147941ef437a669fa6db5aba0ccd80bee9b33b788/www.gravatar.com/avatar/866ad7602839b586d7d18cb11b131881.jpg?s=2048&d=https%3A%2F%2Fcdn.shopify.com%2Fshopifycloud%2Fshopify%2Fassets%2Fno-gravatar-new-04e7c2331218ac202e79e31be502fd5631bc96cb0206580dbcb0720ebbbd7c73.png" }, "email": "customereventsbob@example.com", "exists": true, "firstName": "customereventsbob", "id": "gid://shopify/StaffMember/216359514", "initials": [ "c", "b" ], "isShopOwner": false, "lastName": "bobsen", "locale": "en", "name": "customereventsbob bobsen", "phone": null } }, { "node": { "active": true, "avatar": { "url": "https://cdn.shopify.com/proxy/9a11b2a61faef02c90cae564d6cd8f61c9c5932abdc470375ea4af38d2234678/www.gravatar.com/avatar/a30775a5f88642adceaa3a6ff418ff4d.jpg?s=2048&d=https%3A%2F%2Fcdn.shopify.com%2Fshopifycloud%2Fshopify%2Fassets%2Fno-gravatar-new-04e7c2331218ac202e79e31be502fd5631bc96cb0206580dbcb0720ebbbd7c73.png" }, "email": "customereventsbobnoapps@example.com", "exists": true, "firstName": "customereventsbobnoapps", "id": "gid://shopify/StaffMember/257608065", "initials": [ "c", "b" ], "isShopOwner": false, "lastName": "bobsen", "locale": "en", "name": "customereventsbobnoapps bobsen", "phone": null } }, { "node": { "active": true, "avatar": { "url": "https://cdn.shopify.com/proxy/d0f4af069a9948a91f75815dcf3c24b7bd775bb8fa66571da1b257f2fd2eacf5/www.gravatar.com/avatar/3111a27ed0d92a4209a15190114490d4.jpg?s=2048&d=https%3A%2F%2Fcdn.shopify.com%2Fshopifycloud%2Fshopify%2Fassets%2Fno-gravatar-new-04e7c2331218ac202e79e31be502fd5631bc96cb0206580dbcb0720ebbbd7c73.png" }, "email": "customereventsbobwithoneapp@example.com", "exists": true, "firstName": "customereventsbobwithoneapp", "id": "gid://shopify/StaffMember/584611871", "initials": [ "c", "b" ], "isShopOwner": false, "lastName": "bobsen", "locale": "en", "name": "customereventsbobwithoneapp bobsen", "phone": null } }, { "node": { "active": false, "avatar": { "url": "https://cdn.shopify.com/proxy/0feaeef95fe37c482d1472c776d9f5c35f3f4b0a051fef68bf702422c284f5fd/www.gravatar.com/avatar/cc9f2fc36ad3c135e4984fc6f63c4c16.jpg?s=2048&d=https%3A%2F%2Fcdn.shopify.com%2Fshopifycloud%2Fshopify%2Fassets%2Fno-gravatar-new-04e7c2331218ac202e79e31be502fd5631bc96cb0206580dbcb0720ebbbd7c73.png" }, "email": "deactivateduser@example.com", "exists": true, "firstName": "deactivated", "id": "gid://shopify/StaffMember/667736507", "initials": [ "d", "u" ], "isShopOwner": false, "lastName": "user", "locale": "en", "name": "deactivated user", "phone": null } }, { "node": { "active": true, "avatar": { "url": "https://cdn.shopify.com/proxy/bb267d2b2b59370b919f9c8f42719ece9e33c84ee51230220405746dd8c5c504/www.gravatar.com/avatar/68bd9ae0240cb5cfd89463b1fe778375.jpg?s=2048&d=https%3A%2F%2Fcdn.shopify.com%2Fshopifycloud%2Fshopify%2Fassets%2Fno-gravatar-new-04e7c2331218ac202e79e31be502fd5631bc96cb0206580dbcb0720ebbbd7c73.png" }, "email": "existingbob@example.com", "exists": true, "firstName": "existingbob", "id": "gid://shopify/StaffMember/2108187", "initials": [ "e", "b" ], "isShopOwner": false, "lastName": "bobsen", "locale": "en", "name": "existingbob bobsen", "phone": "3213213211" } } ] } } } } ### Retrieves a list of currencies enabled on a shop Curl example: "curl -X POST \\\nhttps://your-development-store.myshopify.com/admin/api/2024-01/graphql.json \\\n-H 'Content-Type: application/json' \\\n-H 'X-Shopify-Access-Token: {access_token}' \\\n-d '{\n\"query\": \"query { shop { currencySettings(first: 1) { edges { node { currencyCode rateUpdatedAt } } } } }\"\n}'\n" Node example: "const client = new shopify.clients.Graphql({session});\nconst data = await client.query({\n data: `query {\n shop {\n currencySettings(first: 1) {\n edges {\n node {\n currencyCode\n rateUpdatedAt\n }\n }\n }\n }\n }`,\n});\n" Ruby example: "session = ShopifyAPI::Auth::Session.new(\n shop: \"your-development-store.myshopify.com\",\n access_token: access_token\n)\nclient = ShopifyAPI::Clients::Graphql::Admin.new(\n session: session\n)\n\nquery = <<~QUERY\n query {\n shop {\n currencySettings(first: 1) {\n edges {\n node {\n currencyCode\n rateUpdatedAt\n }\n }\n }\n }\n }\nQUERY\n\nresponse = client.query(query: query)\n" Remix example: "const { admin } = await authenticate.admin(request);\n\nconst response = await admin.graphql(\n `#graphql\n query {\n shop {\n currencySettings(first: 1) {\n edges {\n node {\n currencyCode\n rateUpdatedAt\n }\n }\n }\n }\n }`,\n);\n\nconst data = await response.json();\n" Graphql query: "query {\n shop {\n currencySettings(first: 1) {\n edges {\n node {\n currencyCode\n rateUpdatedAt\n }\n }\n }\n }\n}" #### Graphql Input null #### Graphql Response { "data": { "shop": { "currencySettings": { "edges": [ { "node": { "currencyCode": "CAD", "rateUpdatedAt": "2018-01-24T00:01:01Z" } } ] } } } } ### Retrieves a list of storefront access tokens that have been issued Curl example: "curl -X POST \\\nhttps://your-development-store.myshopify.com/admin/api/2024-01/graphql.json \\\n-H 'Content-Type: application/json' \\\n-H 'X-Shopify-Access-Token: {access_token}' \\\n-d '{\n\"query\": \"query storefrontAccessToken { shop { storefrontAccessTokens(first: 10) { edges { node { id accessToken accessScopes { handle } createdAt title } } } } }\"\n}'\n" Node example: "const client = new shopify.clients.Graphql({session});\nconst data = await client.query({\n data: `query storefrontAccessToken {\n shop {\n storefrontAccessTokens(first: 10) {\n edges {\n node {\n id\n accessToken\n accessScopes {\n handle\n }\n createdAt\n title\n }\n }\n }\n }\n }`,\n});\n" Ruby example: "session = ShopifyAPI::Auth::Session.new(\n shop: \"your-development-store.myshopify.com\",\n access_token: access_token\n)\nclient = ShopifyAPI::Clients::Graphql::Admin.new(\n session: session\n)\n\nquery = <<~QUERY\n query storefrontAccessToken {\n shop {\n storefrontAccessTokens(first: 10) {\n edges {\n node {\n id\n accessToken\n accessScopes {\n handle\n }\n createdAt\n title\n }\n }\n }\n }\n }\nQUERY\n\nresponse = client.query(query: query)\n" Remix example: "const { admin } = await authenticate.admin(request);\n\nconst response = await admin.graphql(\n `#graphql\n query storefrontAccessToken {\n shop {\n storefrontAccessTokens(first: 10) {\n edges {\n node {\n id\n accessToken\n accessScopes {\n handle\n }\n createdAt\n title\n }\n }\n }\n }\n }`,\n);\n\nconst data = await response.json();\n" Graphql query: "query storefrontAccessToken {\n shop {\n storefrontAccessTokens(first: 10) {\n edges {\n node {\n id\n accessToken\n accessScopes {\n handle\n }\n createdAt\n title\n }\n }\n }\n }\n}" #### Graphql Input null #### Graphql Response { "data": { "shop": { "storefrontAccessTokens": { "edges": [ { "node": { "id": "gid://shopify/StorefrontAccessToken/55270800", "accessToken": "678d97641255a4ab5feff997ee233f4c", "accessScopes": [ { "handle": "unauthenticated_read_product_listings" }, { "handle": "unauthenticated_write_checkouts" }, { "handle": "unauthenticated_read_checkouts" }, { "handle": "unauthenticated_read_selling_plans" } ], "createdAt": "2024-11-12T20:33:46Z", "title": "Buy Button Extension" } } ] } } } }