diff --git a/README.md b/README.md index 40d7481..e9f3b2e 100644 --- a/README.md +++ b/README.md @@ -2112,3 +2112,92 @@ variables --- +### B2B +
Get contextualized products +

+ +Including the buyer argument on the @inContext directive will contextualize any storefront queries for a B2B customer. + +With a contextualized query, you can access a quantityRule and quantityPriceBreaks on a product variant, as well as get a price that's contextualized for the B2B customer. + +The customerAccessToken and companyLocationId in the BuyerInput are obtained from the Customers API. For details on how to obtain those, see [Headless with B2B](https://shopify.dev/docs/storefronts/headless/bring-your-own-stack/b2b) + +```gql +query getB2BProducts ($buyer: BuyerInput) @inContext(buyer: $buyer) { + products(first: 5) { + nodes { + id + variants(first: 5) { + nodes { + id + price + quantityRule { + maximum + minimum + increment + } + quantityPriceBreaks(first: 5) { + nodes { + minimumQuantity + price { + amount + currencyCode + } + } + } + } + } + } + } +} + +variables +{ + "buyer": { + "customerAccessToken": "shpsb_eyJh123456789", + "companyLocationId": "gid://shopify/CompanyLocation/10079785100" + } +} +``` +

+
+
Create a cart with buyer identity +

+ +Including the buyerIdentity of a B2B customer will create a contexualized cart. Checkouts made with this cart will be B2B checkouts. + +The customerAccessToken and companyLocationId in the buyerIdentity are obtained from the Customers API. For details on how to obtain those, see [Headless with B2B](https://shopify.dev/docs/storefronts/headless/bring-your-own-stack/b2b) + +```gql +mutation createCart($cartInput: CartInput) { + cartCreate(input: $cartInput) { + cart { + id + createdAt + updatedAt + buyerIdentity { + email + phone + customer { + id + } + countryCode + } + } + } +} + +variables +{ + "cartInput": { + "buyerIdentity": { + "customerAccessToken": "shpsb_eyJh123456789", + "companyLocationId": "gid://shopify/CompanyLocation/10079785100" + } + } +} +``` +

+
+ +--- diff --git a/builds/storefront-api-learning-kit-insomnia.json b/builds/storefront-api-learning-kit-insomnia.json index c23108c..1c0144a 100644 --- a/builds/storefront-api-learning-kit-insomnia.json +++ b/builds/storefront-api-learning-kit-insomnia.json @@ -1 +1 @@ -{"_type":"export","__export_format":4,"__export_date":"2023-02-03T20:20:50.324Z","resources":[{"_id":"wrk_1","parentId":null,"modified":1622496642376,"created":1622496642376,"name":"Storefront API Learning Kit","description":"","scope":"collection","_type":"workspace"},{"_id":"env_1","parentId":"wrk_1","modified":1622728350592,"created":1622496642560,"name":"Base Environment","data":{"base_url":"shop.myshopify.com","api_version":"2023-01","storefront_access_token":"12a35b67c890defg123h456i7f89j01k"},"dataPropertyOrder":{"&":["base_url","api_version","storefront_access_token"]},"color":null,"isPrivate":false,"metaSortKey":1622496642560,"_type":"environment"},{"_id":"wrk_1_fld_0_0","parentId":"wrk_1","modified":1675455642,"created":1675455642,"name":"About this repo","description":"","_type":"request_group","metaSortKey":0,"resourceenvironment":{},"environmentPropertyOrder":null},{"_id":"wrk_1_fld_0_0_fld_1_0","parentId":"wrk_1_fld_0_0","modified":1675455642,"created":1675455642,"name":"About this repo","description":"","_type":"request","metaSortKey":0,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# This repo provides example queries demonstrating how to use Shopify's GraphQL [Storefront API](https://shopify.dev/docs/storefront-api/getting-started). Downloading the [Storefront API insomnia collection package](builds/storefront-api-learning-kit-insomnia.json), gives you access to a complete set of sample queries for use in the [Insomnia](https://insomnia.rest/) http client. The Insomnia desktop app comes with rich GraphQL features, including automatic schema fetching and autocomplete, which are extremely valuable in learning a new API.\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_0_fld_1_1","parentId":"wrk_1_fld_0_0","modified":1675455642,"created":1675455642,"name":"How to use this repo","description":"","_type":"request","metaSortKey":1,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# To import the Insomnia package, first [download the latest collection](builds/storefront-api-learning-kit-insomnia.json) (you'll need to save the raw JSON file).\\n# From the Insomnia Dashboard screen, click `Create`, followed by clicking `File`. Select the file you downloaded.\\n# If you don't want to download the Insomnia package, the query examples are listed out below. \"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_1","parentId":"wrk_1","modified":1675455642,"created":1675455642,"name":"Getting started","description":"","_type":"request_group","metaSortKey":1,"resourceenvironment":{},"environmentPropertyOrder":null},{"_id":"wrk_1_fld_0_1_fld_1_0","parentId":"wrk_1_fld_0_1","modified":1675455642,"created":1675455642,"name":"Introduction","description":"","_type":"request","metaSortKey":0,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# This learning kit provides a set of common GraphQL queries and mutations used with the Shopify Storefront API.\\n\\n# If not already familiar with GraphQL, or Shopify APIs, please consult the Shopify GraphQL learning kit https://shopifypartnerblog.myshopify.com/blogs/blog/shopify-graphql-learning-kit\\n\\n# The Shopify Storefront API gives you full creative control to customize your customers' buying experience.\\n\\n# With the Storefront API you can access several Shopify resource types with the following access scopes:\\n# - Read products, variants, and collections.\\n# - Read and modify customer details.\\n# - Read and modify checkouts.\\n# - Read store content like articles, blogs and comments.\\n# - Read subscription selling plans.\\n# - Read and modify cart objects.\\n\\n# Unlike the Admin API, the Storefront API is an unauthenticated API.\\n# Any data exposed by the Storefront API can be seen by any visitor to the store.\\n# Only use the Storefront API when you're comfortable with that risk and the data that is being exposed.\\n# Risk can be mitigated by only providing access scopes required.\\n# For a complete list of access scopes consult Shopify documentation at https://shopify.dev/api/usage/access-scopes#unauthenticated-access-scopes\\n\\n# Access to the Storefront API can be granted by a merchant via a public sales channel, or by creating a Headless channel in your Shopify Admin.\\n# For simplicity of this tutorial, we'll create a Headless channel in the Shopify Admin.\\n# The process to add the Headless channel is documented in the next section titled \\\"Installing the Headless Channel \\\".\\n\\n# Documentation for accessing the Storefront API using the Headless channel can be found [here](https://shopify.dev//custom-storefronts/building-with-the-storefront-api/getting-started#step-1-enable-storefront-api-access)\\n\\n# The home of Storefront API-related developer documents and tutorials can be found at https://shopify.dev/api/storefront\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_1_fld_1_1","parentId":"wrk_1_fld_0_1","modified":1675455642,"created":1675455642,"name":"Installing the headless channel","description":"","_type":"request","metaSortKey":1,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# To start using the Storefront API you'll need to enable access by installing the __Headless__ channel on your store.\\n# To install, you can follow the directions outlined here or get it from the [Shopify App Store](https://apps.shopify.com/headless).\\n\\n# Installing the Headless Channel from Shopify Admin\\n# 1. From your Shopify admin, click __Sales channels__.\\n# 2. Click __Recommended sales channels__.\\n# 3. In the __Picked for you modal__, scroll to the Build custom storefronts section.\\n# 4. Within the __Headless: Build your own commerce stack__ card, click __Add__.\\n# 5. Click __Add sales channel__.\\n# 6. Click __Create storefront__.\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_1_fld_1_2","parentId":"wrk_1_fld_0_1","modified":1675455642,"created":1675455642,"name":"Configure your environment variables","description":"","_type":"request","metaSortKey":2,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# Environment variables are JSON key-value pairs that allow you to refer to values without having to write them out every time.\\n\\n# For the tutorial, three environment variables will be utilized.\\n\\n# 1. `base_url` will be the Shopify store being connected to.\\n# - If your store is mydevstore.myshopify.com, enter “mydevstore.myshopify.com” here.\\n# 2. `api_version` is the Storefront API version used for the API requests.\\n# - This can be changed to an earlier version or unstable depending on your use case.\\n# 3. `storefront_access_token` is used to populate the X-Shopify-Storefront-Access-Token request header.\\n# - This is the Public access token associated with the Storefront you created in the \\\"Installing the Headless Channel\\\" section.\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_1_fld_1_3","parentId":"wrk_1_fld_0_1","modified":1675455642,"created":1675455642,"name":"Making your first request","description":"","_type":"request","metaSortKey":3,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# You should see at the top of the frame that we're using the \\\"base_url\\\" and \\\"api_version\\\" to build out the address for the endpoint.\\n# You can also click the \\\"Headers\\\" tab at the top to see the \\\"storefront_access_token\\\" being used.\\n# Hovering over environment variables should show you the value that will be substituted into the request.\\n# If you don’t see your values, ensure you have the right environment selected.\\n\\n# Once you've confirmed these three fields are set in your environment, try running the shop query below.\\n# If the Storefront API access token has been configured correctly, you should get your shop’s info returned.\\n\\nquery getShopDetails{\\n shop {\\n\\t\\t\\tname\\n primaryDomain{\\n host\\n url\\n }\\n paymentSettings{\\n currencyCode\\n acceptedCardBrands\\n enabledPresentmentCurrencies\\n }\\n\\t\\t}\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_2","parentId":"wrk_1","modified":1675455642,"created":1675455642,"name":"Metafields metaobjects","description":"","_type":"request_group","metaSortKey":2,"resourceenvironment":{},"environmentPropertyOrder":null},{"_id":"wrk_1_fld_0_2_fld_1_0","parentId":"wrk_1_fld_0_2","modified":1675455642,"created":1675455642,"name":"Expose metafield to SFAPI","description":"","_type":"request","metaSortKey":0,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# Metafields allow merchants to store additional information for Shopify resources including:\\n# - Products\\n# - Collections\\n# - Customers\\n# - Blogs\\n# - Pages\\n# - Shop\\n# - Discounts\\n# - Draft Orders\\n# - Locations\\n# - Orders\\n# - Product Images\\n# - Product Variants\\n\\n# For a complete list please consult https://shopify.dev/api/admin-graphql/2022-10/enums/MetafieldOwnerType\\n\\n# Unlike the Admin API, metafields must first be made visible to the Storefront API.\\n# To make metafields visible to the Storefront API use the Shopify Admin API mutation metafieldStorefrontVisibilityCreate.\\n\\n# Ensure you are calling the Admin API https://shopify.dev/api/admin-graphql#endpoints with valid Admin API credentials https://shopify.dev/api/admin-graphql#authentication when exposing metafields to the Storefront API.\\n\\n# For more information on the metafieldStorefrontVisibilityCreate mutation consult the Shopify Admin API doc https://shopify.dev/docs/admin-api/graphql/reference/metafields/metafieldstorefrontvisibilitycreate\\n\\n# For a complete Storefront API metafield reference please consult the metafield tutorial at\\n# https://shopify.dev/tutorials/retrieve-metafields-with-storefront-api#expose-metafields-to-the-storefront-api\\n\\nmutation createMetafieldStorefrontVisibility(\\n\\t$input: MetafieldStorefrontVisibilityInput!\\n) {\\n\\tmetafieldStorefrontVisibilityCreate(input: $input) {\\n\\t\\tmetafieldStorefrontVisibility {\\n\\t\\t\\tid # MetafieldStorefrontVisibility record id\\n\\t\\t\\tkey # Key must be unique within this namespace on this resource\\n\\t\\t\\townerType\\n\\t\\t\\tnamespace\\n\\t\\t\\tupdatedAt\\n\\t\\t}\\n\\t\\tuserErrors {\\n\\t\\t\\tfield\\n\\t\\t\\tmessage\\n\\t\\t}\\n\\t}\\n}\\n\",\"variables\":\"{\\n\\t\\\"input\\\": {\\n\\t\\t\\\"key\\\": \\\"drying_instructions\\\",\\n\\t\\t\\\"namespace\\\": \\\"garment_care\\\",\\n\\t\\t\\\"ownerType\\\": \\\"COLLECTION\\\"\\n\\t}\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_2_fld_1_1","parentId":"wrk_1_fld_0_2","modified":1675455642,"created":1675455642,"name":"Retrieve metafields","description":"","_type":"request","metaSortKey":1,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# Once a metafield has been exposed it can be retrieved using the Storefront API. In order to retrieve a single metafield, specify the namespace and key arguments.\\n# To query for a list of metafields pass the identifiers argument again specifying namespace and key\\n# For more information please consult https://shopify.dev/custom-storefronts/products-collections/metafields#step-2-retrieve-metafields\\n\\n# The following example retrieves a specific metafield and a list of metafields that match the supplied namespace and key and collection id.\\n# Ensure that you've added a value to any metafields you wish to query back by updating it using Admin API https://shopify.dev/apps/metafields/manage-metafields#step-3-update-a-metafield\\n\\nquery getCollectionMetaField(\\n\\t$id: ID!\\n\\t$namespace: String!\\n\\t$key: String!\\n\\t$another_namespace: String!\\n\\t$another_key: String!\\n) {\\n\\tcollection(id: $id) {\\n\\t\\tmetafield(namespace: $namespace, key: $key) {\\n\\t\\t\\tkey\\n\\t\\t\\tnamespace\\n\\t\\t\\tvalue\\n\\t\\t\\tid # metafield id\\n\\t\\t}\\n\\t}\\n\\n\\tcollection(id: $id) {\\n\\t\\tmetafields(\\n\\t\\t\\tidentifiers: [\\n\\t\\t\\t\\t{ namespace: $namespace, key: $key },\\n\\t\\t\\t\\t{ namespace: $another_namespace, key: $another_key }\\n\\t\\t\\t]\\n\\t\\t) {\\n\\t\\t\\tkey\\n\\t\\t\\tnamespace\\n\\t\\t\\tvalue\\n\\t\\t\\tid # metafield id\\n\\t\\t}\\n\\t}\\n}\\n\",\"variables\":\"{\\n\\t\\\"id\\\": \\\"gid://shopify/Collection/288378781858\\\",\\n\\t\\\"namespace\\\": \\\"garment_care\\\",\\n\\t\\\"key\\\": \\\"wash_temperature\\\",\\n\\t\\\"another_namespace\\\": \\\"bakery\\\",\\n\\t\\\"another_key\\\": \\\"ingredients-new\\\"\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_2_fld_1_2","parentId":"wrk_1_fld_0_2","modified":1675455642,"created":1675455642,"name":"Retrieve storefront visibilities","description":"","_type":"request","metaSortKey":2,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# To retrieve a list of MetafieldStorefrontVisibility records use the metafieldStorefrontVisibilities query available on the Admin API and return a list of exposed metafield records.\\n\\n# Ensure you are calling the Admin API https://shopify.dev/api/admin-graphql#endpoints with valid Admin API credentials https://shopify.dev/api/admin-graphql#authentication when retrieving a list of MetafieldStorefrontVisibility records.\\n# For a complete reference please consult https://shopify.dev/api/admin-graphql/2022-10/queries/metafieldStorefrontVisibilities#top\\n\\nquery getMetafieldStorefrontVisibilities($first: Int!, $namespace: String!) {\\n\\tmetafieldStorefrontVisibilities(first: $first, namespace: $namespace) {\\n\\t\\tedges {\\n\\t\\t\\tnode {\\n\\t\\t\\t\\tid # Metafield visibility record id\\n\\t\\t\\t\\tnamespace\\n\\t\\t\\t\\tkey\\n\\t\\t\\t\\tcreatedAt\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"variables\":\"{\\n \\\"first\\\": 5,\\n \\\"namespace\\\": \\\"garment_care\\\"\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_2_fld_1_3","parentId":"wrk_1_fld_0_2","modified":1675455642,"created":1675455642,"name":"Delete storefront visibilities","description":"","_type":"request","metaSortKey":3,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# If you no longer need to access a metafield with the Storefront API, you can hide it again by using the GraphQL Admin API to delete the MetafieldStorefrontVisibility record that you created.\\n# The metafieldStorefrontVisibilityDelete mutation requires the visibility record of the metafield you wish to hide from the Storefront API.\\n# The metafield will no longer be accessible through the Storefront API.\\n\\n# Ensure you are calling the Admin API https://shopify.dev/api/admin-graphql#endpoints with valid Admin API credentials https://shopify.dev/api/admin-graphql#authentication when deleting a MetafieldStorefrontVisibility record.\\n# For a complete reference please consult https://shopify.dev/api/admin-graphql/2022-10/mutations/metafieldStorefrontVisibilityDelete\\n\\nmutation deleteMetafieldStorefrontVisibilities($id: ID!) {\\n\\tmetafieldStorefrontVisibilityDelete(id: $id) {\\n\\t\\tdeletedMetafieldStorefrontVisibilityId # The visibility record of the metafield hidden from Storefront API\\n\\n\\t\\tuserErrors {\\n\\t\\t\\tfield\\n\\t\\t\\tmessage\\n\\t\\t}\\n\\t}\\n}\\n\",\"variables\":\"{\\n\\t\\\"id\\\": \\\"gid://shopify/MetafieldStorefrontVisibility/1684242594\\\"\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_2_fld_1_4","parentId":"wrk_1_fld_0_2","modified":1675455642,"created":1675455642,"name":"Retrieve metaobjects","description":"","_type":"request","metaSortKey":4,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# Metaobjects are custom data structures introduced with version 2023-01 that your app can define and create to store your app's information.\\n# Similar to metafields, they can be associated with a Shopify resource such as a product or a collection.\\n# However, they can also exist on their own. Metaobjects provide you with a way to create resources that Shopify doesn't offer out of the box.\\n\\n# In order to query metaobjects with the Storefront API you must first create a metaobject definition using the Admin API with the metaobjectDefinitionCreate mutation\\n# and create a corresponding metaobject using the Admin API mutation metaobjectCreate.\\n# For more information consult Shopify Admin API docs at https://shopify.dev/api/admin-graphql/2023-01/mutations/metaobjectDefinitionCreate\\n# and https://shopify.dev/api/admin-graphql/2023-01/mutations/metaobjectCreate\\n\\n# When creating a new metaobject definition to create new associated metaobjects that you want to access using Storefront API, be sure to set \\\"access\\\" for the \\\"storefront\\\" property to \\\"PUBLIC_READ\\\".\\n# For more information about the MetaObjectDefinitionCreateInput please see https://shopify.dev/api/admin-graphql/2023-01/mutations/metaobjectDefinitionCreate#field-metaobjectdefinitioncreateinput-access\\n# Ensure you are calling the Admin API https://shopify.dev/api/admin-graphql#endpoints with valid Admin API credentials https://shopify.dev/api/admin-graphql#authentication\\n\\n# The following example returns a list of the first ten metaobjects for a given type from the Storefront API. As well as type, which is a required argument, either first or last must be passed.\\n# Other optional arguments include reverse and sortKey which determines whether to sort the returned list by \\\"id\\\", \\\"type\\\", \\\"updated_at\\\", or \\\"display_name\\\".\\n# For more information consult Storefront API documentation at https://shopify.dev/api/storefront/2023-01/queries/metaobjects\\n\\nquery getMetaObjects(\\n\\t$type: String!,\\n\\t$sortKey: String,\\n\\t$first: Int,\\n\\t$reverse: Boolean\\n){\\n\\tmetaobjects(\\n\\t\\ttype: $type,\\n\\t\\tsortKey: $sortKey,\\n\\t\\tfirst: $first,\\n\\t\\treverse: $reverse\\n\\t) {\\n\\t\\tedges {\\n\\t\\t\\tnode {\\n\\t\\t\\t\\tid\\n\\t\\t\\t\\tfields {\\n\\t\\t\\t\\t\\tkey\\n\\t\\t\\t\\t\\tvalue\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\thandle\\n\\t\\t\\t\\tupdatedAt\\n\\t\\t\\t\\ttype\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"variables\":\"{\\n \\\"type\\\": \\\"Product_Highlights\\\",\\n \\\"sortKey\\\": \\\"id\\\",\\n \\\"first\\\": 10,\\n \\\"reverse\\\": true\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_2_fld_1_5","parentId":"wrk_1_fld_0_2","modified":1675455642,"created":1675455642,"name":"Retrieve metaobject","description":"","_type":"request","metaSortKey":5,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# The following example retreives a single metaobject by a given metaobject id.\\n# For more information consult Storefront API documentation at https://shopify.dev/api/storefront/2023-01/queries/metaobject\\n\\n\\nquery getMetaObject($id: ID!) { # A metaobject can be retrieved by handle or id\\n\\tmetaobject(id: $id) {\\n\\t\\tid\\n\\t\\ttype\\n\\t\\tupdatedAt\\n\\t\\thandle\\n\\n\\t\\tfields {\\n\\t\\t\\tkey\\n\\t\\t\\tvalue\\n\\t\\t\\ttype\\n\\t\\t}\\n\\n\\t\\tfields {\\n\\t\\t\\tkey\\n\\t\\t\\tvalue\\n\\t\\t\\ttype\\n\\t\\t}\\n\\t}\\n}\\n\",\"variables\":\"{\\n\\t\\\"id\\\": \\\"gid://shopify/Metaobject/819214\\\"\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_3","parentId":"wrk_1","modified":1675455642,"created":1675455642,"name":"International pricing","description":"","_type":"request_group","metaSortKey":3,"resourceenvironment":{},"environmentPropertyOrder":null},{"_id":"wrk_1_fld_0_3_fld_1_0","parentId":"wrk_1_fld_0_3","modified":1675455642,"created":1675455642,"name":"Get available countries and currencies","description":"","_type":"request","metaSortKey":0,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# To present pricing in local currency enable the market of the passed in country context within Markets.\\n# If the country is not enabled in Markets the currency of the active localized experience will be the store's default currency.\\n\\n# To present a localized language experience enable it from Markets.\\n# If an alternate language is not enabled for the passed in country context, the active language will be the store's default.\\n\\nquery getCountriesAndCurrencies($country: CountryCode) @inContext(country: $country) {\\n localization {\\n\\t\\tlanguage{ #The language of the active localized experience.\\n\\t\\t\\tisoCode\\n\\t\\t\\tname\\n\\t\\t}\\n availableCountries {\\n currency {\\n isoCode\\n name\\n symbol\\n }\\n isoCode\\n name\\n unitSystem\\n }\\n country { #The currency of the active localized experience.\\n currency {\\n isoCode\\n name\\n symbol\\n }\\n isoCode\\n name\\n unitSystem\\n }\\n }\\n}\\n\",\"variables\":\"{\\n\\t\\\"country\\\": \\\"FR\\\"\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_3_fld_1_1","parentId":"wrk_1_fld_0_3","modified":1675455642,"created":1675455642,"name":"Get product prices","description":"","_type":"request","metaSortKey":1,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"query allProducts($country: CountryCode) @inContext(country: $country) {\\n products(first: 1) {\\n edges {\\n node {\\n\\t\\t\\t\\ttitle\\n variants(first:1) {\\n edges {\\n node {\\n\\t\\t\\t\\t\\t\\t\\ttitle\\n price {\\n amount\\n currencyCode #active local currency\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n}\\n\",\"variables\":\"{\\n\\t\\\"country\\\": \\\"CA\\\"\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_3_fld_1_2","parentId":"wrk_1_fld_0_3","modified":1675455642,"created":1675455642,"name":"Get price ranges for products","description":"","_type":"request","metaSortKey":2,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"query getProductPriceRanges($country: CountryCode) @inContext(country: $country) {\\n products(first: 1) {\\n edges {\\n node {\\n title\\n priceRange {\\n minVariantPrice {\\n amount\\n currencyCode #active local currency\\n }\\n maxVariantPrice {\\n amount\\n currencyCode\\n }\\n }\\n compareAtPriceRange {\\n minVariantPrice {\\n amount\\n currencyCode #active local currency\\n }\\n maxVariantPrice {\\n amount\\n currencyCode\\n }\\n }\\n }\\n }\\n }\\n}\\n\",\"variables\":\"{\\n\\t\\\"country\\\": \\\"CA\\\"\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_3_fld_1_3","parentId":"wrk_1_fld_0_3","modified":1675455642,"created":1675455642,"name":"Get customer orders","description":"","_type":"request","metaSortKey":3,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"query getcustomerOrders($customerAccessToken: String!, $country: CountryCode)@inContext(country: $country) {\\n customer(customerAccessToken: $customerAccessToken) {\\n orders(first:10) {\\n edges {\\n node {\\n totalPrice {\\n amount\\n currencyCode # store's currency\\n }\\n lineItems(first:10) {\\n edges {\\n node {\\n originalTotalPrice {\\n amount\\n currencyCode # store's currency\\n }\\n variant {\\n price {\\n amount\\n currencyCode # active local currency\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n}\\n\",\"variables\":\"{\\n\\t\\\"customerAccessToken\\\": \\\"customerAccessToken\\\",\\n\\t\\\"country\\\": \\\"FR\\\"\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_3_fld_1_4","parentId":"wrk_1_fld_0_3","modified":1675455642,"created":1675455642,"name":"Create cart in local context","description":"","_type":"request","metaSortKey":4,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# Generates a cart in the currency and language of the context passed in.\\n# Requires that the country passed be enabled in Markets and that the language passed in is enabled for that market.\\n\\nmutation cartCreate($cartInput: CartInput!, $country: CountryCode, $language: LanguageCode)@inContext(country: $country, language: $language){\\n\\tcartCreate(input: $cartInput) {\\n\\t\\tuserErrors {\\n\\t\\t\\tcode\\n\\t\\t\\tmessage\\n\\t\\t}\\n\\t\\tcart {\\n\\t\\t\\tid\\n\\t\\t\\tcheckoutUrl #URL for cart in local currency and language passed in\\n\\t\\t\\tlines(first: 50) {\\n\\t\\t\\t\\tedges {\\n\\t\\t\\t\\t\\tnode {\\n\\t\\t\\t\\t\\t\\tid\\n\\t\\t\\t\\t\\t\\tmerchandise {\\n\\t\\t\\t\\t\\t\\t\\t... on ProductVariant {\\n\\t\\t\\t\\t\\t\\t\\t\\ttitle\\n\\t\\t\\t\\t\\t\\t\\t\\tproduct {\\n\\t\\t\\t\\t\\t\\t\\t\\t\\ttitle\\n\\t\\t\\t\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t\\t\\t\\tid\\n\\t\\t\\t\\t\\t\\t\\t\\tquantityAvailable\\n\\t\\t\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t\\tcost {\\n\\t\\t\\t\\tsubtotalAmount {\\n\\t\\t\\t\\t\\tamount #active local currency\\n\\t\\t\\t\\t\\tcurrencyCode\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\ttotalAmount {\\n\\t\\t\\t\\t\\tamount #active local currency\\n\\t\\t\\t\\t\\tcurrencyCode\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"variables\":\"{\\n\\t\\\"cartInput\\\": {\\n\\t\\t\\\"lines\\\": [\\n\\t\\t\\t{\\n\\t\\t\\t\\t\\\"quantity\\\": 3,\\n\\t\\t\\t\\t\\\"merchandiseId\\\": \\\"gid://shopify/ProductVariant/42485059584162\\\"\\n\\t\\t\\t},\\n\\t\\t\\t{\\n\\t\\t\\t\\t\\\"quantity\\\": 1,\\n\\t\\t\\t\\t\\\"merchandiseId\\\": \\\"gid://shopify/ProductVariant/42790980223138\\\"\\n\\t\\t\\t}\\n\\t\\t]\\n\\n\\t},\\n\\t\\\"country\\\": \\\"US\\\",\\n\\t\\\"language\\\": \\\"ES\\\"\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_4","parentId":"wrk_1","modified":1675455642,"created":1675455642,"name":"Local pickup","description":"","_type":"request_group","metaSortKey":4,"resourceenvironment":{},"environmentPropertyOrder":null},{"_id":"wrk_1_fld_0_4_fld_1_0","parentId":"wrk_1_fld_0_4","modified":1675455642,"created":1675455642,"name":"Get pickup availability for variants","description":"","_type":"request","metaSortKey":0,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# Before sending this request, please make sure your app has unauthenticated_read_product_pickup_locations scope, and store pick up has been enabled. For all the requirements please check this dev doc: https://shopify.dev/custom-storefronts/products-collections/local-pickup#requirements\\n\\n# You can also use \\\"id\\\" to replace \\\"handle\\\" as argument to query product. \\n\\nquery getStoreAvailability($handle: String! $name: String! $value:String!) {\\n product(handle:$handle) {\\n variantBySelectedOptions(selectedOptions: {name: $name, value: $value}) {\\n storeAvailability(first: 1) {\\n edges {\\n node {\\n available\\n pickUpTime\\n location {\\n name\\n }\\n }\\n }\\n }\\n }\\n }\\n}\",\"variables\":\"{\\n\\t\\\"handle\\\": \\\"Orange\\\",\\n\\t\\\"name\\\": \\\"Weight\\\",\\n\\t\\\"value\\\": \\\"2 lb\\\"\\n}\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_4_fld_1_1","parentId":"wrk_1_fld_0_4","modified":1675455642,"created":1675455642,"name":"Get nearest pickup locations","description":"","_type":"request","metaSortKey":1,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# This query will return the first 5 shop locations that support in-store pickup. The `near` parameter is used to sort results based on proximity to the provided location. Results could also be sorted by city, location id, or location name by using CITY, ID, or NAME respectively as the sortKey.\\n\\nquery getNearestPickupLocations($location: GeoCoordinateInput!) {\\n locations(near:$location, first: 5, sortKey: DISTANCE) {\\n edges {\\n node {\\n id\\n name\\n address {\\n formatted\\n }\\n }\\n }\\n }\\n}\\n\",\"variables\":\"{\\n \\\"location\\\": {\\n \\\"latitude\\\": 45.4553,\\n \\\"longitude\\\": -75.6973\\n }\\n}\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_4_fld_1_2","parentId":"wrk_1_fld_0_4","modified":1675455642,"created":1675455642,"name":"Get preferred pickup location availability","description":"","_type":"request","metaSortKey":2,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# Before sending this request, please make sure your app has unauthenticated_read_product_pickup_locations scope.\\n\\n# This query will return in-store pickup locations that have the product stocked, sorted by proximity to a buyers preferred store pickup location. The buyer's preferred pickup location is passed as the `preferredLocationId` argument.\\n\\nquery getPreferredStoreAvailability ($preferredLocationId: ID, $handle: String!,$selectedOptions: [SelectedOptionInput!]!)@inContext(preferredLocationId: $preferredLocationId) {\\n product(handle: $handle) {\\n variantBySelectedOptions(selectedOptions: $selectedOptions) {\\n storeAvailability(first: 1) {\\n edges {\\n node {\\n available\\n pickUpTime\\n location {\\n name\\n }\\n }\\n }\\n }\\n }\\n }\\n}\",\"variables\":\"{\\n\\t\\\"preferredLocationId\\\": \\\"gid://shopify/Location/65607794710\\\",\\n\\t\\\"handle\\\": \\\"Orange\\\",\\n\\t\\\"selectedOptions\\\": {\\n\\t\\t\\\"name\\\": \\\"Weight\\\",\\n\\t\\t\\\"value\\\": \\\"1 lb\\\"\\n\\t}\\n}\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_5","parentId":"wrk_1","modified":1675455642,"created":1675455642,"name":"Collections","description":"","_type":"request_group","metaSortKey":5,"resourceenvironment":{},"environmentPropertyOrder":null},{"_id":"wrk_1_fld_0_5_fld_1_0","parentId":"wrk_1_fld_0_5","modified":1675455642,"created":1675455642,"name":"Get collections","description":"","_type":"request","metaSortKey":0,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# Simple query to return the first 10 collections in the shop.\\n\\n# Since a shop can contain multiple collections, pagination is required.\\n\\nquery getCollections {\\n collections(first: 10) {\\n edges {\\n cursor\\n node {\\n id\\n handle\\n }\\n }\\n pageInfo {\\n hasNextPage\\n hasPreviousPage\\n }\\n }\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_5_fld_1_1","parentId":"wrk_1_fld_0_5","modified":1675455642,"created":1675455642,"name":"Get collection by handle","description":"","_type":"request","metaSortKey":1,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# Simple query to return details from a collection object by passing the collection.handle as an argument.\\n\\nquery getCollectionByHandle($handle: String!) {\\n collection(handle: $handle) {\\n id\\n title\\n description\\n }\\n}\\n\",\"variables\":\"{\\n \\\"handle\\\": \\\"all\\\"\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_5_fld_1_2","parentId":"wrk_1_fld_0_5","modified":1675455642,"created":1675455642,"name":"Get collection by id","description":"","_type":"request","metaSortKey":2,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# Query that returns details from a collection object by passing the collection.id as an argument.\\n\\nquery getCollectionById($id: ID!) {\\n\\tcollection(id: $id) {\\n\\t\\ttitle\\n\\t\\tdescription\\n handle\\n\\t}\\n}\\n\",\"variables\":\"{\\n \\\"id\\\": \\\"gid://shopify/Collection/1\\\"\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_5_fld_1_3","parentId":"wrk_1_fld_0_5","modified":1675455642,"created":1675455642,"name":"Get products in collection","description":"","_type":"request","metaSortKey":3,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"\\n# This query returns data from a single collection, specified by the handle.\\n\\n# The data returned in the product connection can be used to display a page of products.\\n\\n# The `products` connection requires pagination in this query, since collections can contain a large number of products.\\n# This query includes the `sortKey` argument on the products connection, this returns products in the order specified by the sortKey\\n\\n# Products can contain multiple images, so the `images` connection requires pagination.\\n\\n# Since products can contain multiple variants, we've asked the products connection to return price ranges.\\n\\n# In this example we only want to display 1 image per product, so we're only asking for first:1\\n\\nquery getProductsInCollection($handle: String!) {\\n\\tcollection(handle: $handle) {\\n\\t\\tid\\n\\t\\ttitle\\n\\t\\tproducts(first: 50, sortKey: BEST_SELLING) {\\n\\t\\t\\tedges {\\n\\t\\t\\t\\tnode {\\n\\t\\t\\t\\t\\tid\\n\\t\\t\\t\\t\\ttitle\\n\\t\\t\\t\\t\\tvendor\\n\\t\\t\\t\\t\\tavailableForSale\\n\\t\\t\\t\\t\\timages(first: 1) {\\n\\t\\t\\t\\t\\t\\tedges {\\n\\t\\t\\t\\t\\t\\t\\tnode {\\n\\t\\t\\t\\t\\t\\t\\t\\tid\\n\\t\\t\\t\\t\\t\\t\\t\\turl\\n\\t\\t\\t\\t\\t\\t\\t\\twidth\\n\\t\\t\\t\\t\\t\\t\\t\\theight\\n\\t\\t\\t\\t\\t\\t\\t\\taltText\\n\\t\\t\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\tpriceRange { # Returns range of prices for a product in the shop's currency.\\n\\t\\t\\t\\t\\t\\tminVariantPrice {\\n\\t\\t\\t\\t\\t\\t\\tamount\\n\\t\\t\\t\\t\\t\\t\\tcurrencyCode\\n\\t\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t\\tmaxVariantPrice {\\n\\t\\t\\t\\t\\t\\t\\tamount\\n\\t\\t\\t\\t\\t\\t\\tcurrencyCode\\n\\t\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"variables\":\"{\\n \\\"handle\\\": \\\"all\\\"\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_5_fld_1_4","parentId":"wrk_1_fld_0_5","modified":1675455642,"created":1675455642,"name":"Get all metafields for namespace in collection","description":"","_type":"request","metaSortKey":4,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# Uses the `collectionByHandle` query to specify a collection by passing the handle.\\n\\n# Identifiers are used to identify the metafields associated with the resource matching the supplied list of namespaces and keys.\\n\\n# The `metafields` connection is using the `namespace` argument to return only metafields in a specific namespace.\\n\\n# Since collections can have a large number of metafields in a given namespace, pagination is required on the `metafields` connection.\\n\\n# By default, the Storefront API can't read metafields. To make specific metafields visible in the Storefront API, you need to create a MetafieldStorefrontVisibility record.\\n\\n# For more information please consult #https://shopify.dev/custom-storefronts/products-collections/metafields\\n\\nquery getCollectionMetafieldsByNamespace($handle: String! $namespace: String!) {\\n \\tcollection(handle: $handle) {\\n\\t\\tid\\n\\t\\tmetafields(identifiers: [{ namespace: $namespace, key: $key }]) {\\n\\t\\t\\tkey\\n\\t\\t\\tnamespace\\n\\t\\t\\tvalue\\n\\t\\t\\tid\\n\\t\\t}\\n\\t}\\n}\\n\",\"variables\":\"{\\n \\\"handle\\\": \\\"all\\\",\\n \\\"namespace\\\": \\\"global\\\"\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_5_fld_1_5","parentId":"wrk_1_fld_0_5","modified":1675455642,"created":1675455642,"name":"Filter products in collection","description":"","_type":"request","metaSortKey":5,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# You can use the Storefront API to filter products in a collection using product filters.\\n\\n# This functionality lets you build a desired customer experience on a storefront, such as the ability to narrow down the search results that you display to customers.\\n\\n# Products in collections can be filtered by type, vendor, variant options, price, stock and metafield value.\\n\\n# Please note there are requirements to using product filters in collections here - https://shopify.dev/custom-storefronts/products-collections/filter-products#requirements\\n\\n# In the following example, products in the collection that have the \\\"shoes\\\" product type are returned.\\n\\n# Further examples of product filters can be found in the above documentation.\\n\\nquery getProductsOfProductTypeInCollection($handle: String!, $value: String!) {\\n\\tcollection(handle: $handle) {\\n\\t\\thandle\\n\\t\\tproducts(first: 10, filters: { productType: $value }) {\\n\\t\\t\\tedges {\\n\\t\\t\\t\\tnode {\\n\\t\\t\\t\\t\\thandle\\n\\t\\t\\t\\t\\tproductType\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"variables\":\"{\\n \\\"handle\\\": \\\"filterable-collection\\\",\\n\\t\\\"value\\\": \\\"shoes\\\"\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_6","parentId":"wrk_1","modified":1675455642,"created":1675455642,"name":"Products","description":"","_type":"request_group","metaSortKey":6,"resourceenvironment":{},"environmentPropertyOrder":null},{"_id":"wrk_1_fld_0_6_fld_1_0","parentId":"wrk_1_fld_0_6","modified":1675455642,"created":1675455642,"name":"Get 3 products and 3 variants","description":"","_type":"request","metaSortKey":0,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"\\n# This query gets the products connection, which is available from the QueryRoot, and asks for the first 3 products.\\n# It selects edges, the node, and fields from each of the returned product objects.\\n# Since products also have a variants connection, we repeat a similar process to get information on the first 3 variants on each of those products.\\n\\n\\nquery getProductsAndVariants {\\n products(first: 3) {\\n edges {\\n cursor\\n node {\\n id\\n title\\n description\\n handle\\n variants(first: 3) {\\n edges {\\n cursor\\n node {\\n id\\n title\\n quantityAvailable\\n price {\\n amount\\n currencyCode\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_6_fld_1_1","parentId":"wrk_1_fld_0_6","modified":1675455642,"created":1675455642,"name":"Get product by handle","description":"","_type":"request","metaSortKey":1,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"\\n# This query gets a single product connection, available from the QueryRoot, that matches the handle \\\"my-test-product\\\".\\n# As only one product connection will be returned, we don't need to specify edges, node, or cursor. This query can also be used to get a product by id by replacing (handle: $handle) with (id: $id)\\n\\nquery getProductByHandle {\\n product(handle: \\\"my-test-product\\\") {\\n id\\n title\\n description\\n variants(first: 3) {\\n edges {\\n cursor\\n node {\\n id\\n title\\n quantityAvailable\\n price {\\n amount\\n currencyCode\\n }\\n }\\n }\\n }\\n }\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_6_fld_1_2","parentId":"wrk_1_fld_0_6","modified":1675455642,"created":1675455642,"name":"Get product recommendations","description":"","_type":"request","metaSortKey":2,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"\\n# This query gets a single product connection, available from the QueryRoot, that matches the base64-encoded id of the product.\\n# As only one product connection will be returned, we don't need to specify edges, node, or cursor.\\n\\nquery getProductRecommendations {\\n productRecommendations(productId: \\\"gid://shopify/Product/123456789\\\") {\\n id\\n title\\n description\\n variants(first: 3) {\\n edges {\\n cursor\\n node {\\n id\\n title\\n quantityAvailable\\n price {\\n amount\\n currencyCode\\n }\\n }\\n }\\n }\\n }\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_6_fld_1_3","parentId":"wrk_1_fld_0_6","modified":1675455642,"created":1675455642,"name":"Get product selling plans","description":"","_type":"request","metaSortKey":3,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# This query gets the first 30 products, the first 5 selling plan groups associated with them, and the first 5 selling plans within the groups.\\n# We use fragments to return the price adjustments for each selling plan.\\n\\nquery getProductSellingPlans {\\n products(first: 30) {\\n pageInfo {\\n hasNextPage\\n hasPreviousPage\\n }\\n edges {\\n cursor\\n node {\\n id\\n title\\n sellingPlanGroups(first: 5) {\\n pageInfo {\\n hasNextPage\\n hasPreviousPage\\n }\\n edges {\\n cursor\\n node {\\n appName\\n name\\n options {\\n name\\n values\\n }\\n sellingPlans(first: 5) {\\n pageInfo {\\n hasNextPage\\n hasPreviousPage\\n }\\n edges {\\n cursor\\n node {\\n id\\n description\\n recurringDeliveries\\n priceAdjustments {\\n adjustmentValue {\\n ... on SellingPlanPercentagePriceAdjustment {\\n adjustmentPercentage\\n }\\n ... on SellingPlanFixedAmountPriceAdjustment {\\n adjustmentAmount {\\n amount\\n currencyCode\\n }\\n }\\n ... on SellingPlanFixedPriceAdjustment {\\n price {\\n amount\\n currencyCode\\n }\\n }\\n }\\n orderCount\\n }\\n options {\\n name\\n value\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_6_fld_1_4","parentId":"wrk_1_fld_0_6","modified":1675455642,"created":1675455642,"name":"Get product media","description":"","_type":"request","metaSortKey":4,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"\\n# This query gets 3 products and their media; we use a fragment here to specify the fields that we want to return for each possible media type.\\n# You cannot retrieve media for product variants with the Storefront API, only products. You cannot upload media, add media to a product, or delete media with the Storefront API, use the Admin API for these tasks.\\n# https://shopify.dev/tutorials/manage-product-media-with-admin-api#retrieve-product-media-by-using-the-storefront-api\\n\\nquery getProductMedia {\\n products(first: 3) {\\n edges {\\n cursor\\n node {\\n id\\n title\\n description\\n media(first: 10) {\\n edges {\\n node {\\n mediaContentType\\n alt\\n ...mediaFieldsByType\\n }\\n }\\n }\\n }\\n }\\n }\\n}\\n\\nfragment mediaFieldsByType on Media {\\n ...on ExternalVideo {\\n id\\n host\\n originUrl\\n }\\n ...on MediaImage {\\n image {\\n url\\n }\\n }\\n ...on Model3d {\\n sources {\\n url\\n mimeType\\n format\\n filesize\\n }\\n }\\n ...on Video {\\n sources {\\n url\\n mimeType\\n format\\n height\\n width\\n }\\n }\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_6_fld_1_5","parentId":"wrk_1_fld_0_6","modified":1675455642,"created":1675455642,"name":"Get product tags","description":"","_type":"request","metaSortKey":5,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# Returns product tags. This query requires the unauthenticated_read_product_tags scope, more info can be found here: https://shopify.dev/api/usage/access-scopes\\n\\nquery getProductTags {\\n productTags(first:10) {\\n edges{\\n\\t\\t\\tnode\\n\\t\\t}\\n }\\n}\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_6_fld_1_6","parentId":"wrk_1_fld_0_6","modified":1675455642,"created":1675455642,"name":"Get product types","description":"","_type":"request","metaSortKey":6,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# Returns product types. This query requires the unauthenticated_read_product_listings scope, more info can be found here: https://shopify.dev/api/usage/access-scopes\\nquery getProductTypes {\\n productTypes(first: 10) {\\n\\t\\tedges{\\n\\t\\t\\tnode\\n\\t\\t}\\n }\\n}\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_7","parentId":"wrk_1","modified":1675455642,"created":1675455642,"name":"Customers","description":"","_type":"request_group","metaSortKey":7,"resourceenvironment":{},"environmentPropertyOrder":null},{"_id":"wrk_1_fld_0_7_fld_1_0","parentId":"wrk_1_fld_0_7","modified":1675455642,"created":1675455642,"name":"Create an access token","description":"","_type":"request","metaSortKey":0,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# The Storefront API allows access to a customer’s addresses, orders and metafields. To access customers, an app must have unauthenticated_read_customers access scope.\\n\\n# To query a customer, a customerAccessToken is required. This is obtained via the customerAccessTokenCreate mutation which exchanges a user’s email address and password for an access token.\\n\\nmutation customerAccessTokenCreate($input: CustomerAccessTokenCreateInput!) {\\n customerAccessTokenCreate(input: $input) {\\n customerAccessToken {\\n accessToken\\n expiresAt\\n }\\n customerUserErrors {\\n code\\n field\\n message\\n }\\n }\\n}\\n\",\"variables\":\"{\\n \\\"input\\\": {\\n \\\"email\\\": \\\"user@example.com\\\",\\n \\\"password\\\": \\\"HiZqFuDvDdQ7\\\"\\n }\\n}\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_7_fld_1_1","parentId":"wrk_1_fld_0_7","modified":1675455642,"created":1675455642,"name":"Get customer orders","description":"","_type":"request","metaSortKey":1,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# To query a customer, a customerAccessToken is required. This is obtained via the customerAccessTokenCreate mutation which exchanges a user’s email address and password for an access token.\\n\\nquery getCustomerOrders($customerAccessToken: String!){\\n customer(customerAccessToken: $customerAccessToken) {\\n id\\n orders(first:3) {\\n edges {\\n node {\\n orderNumber\\n }\\n }\\n }\\n }\\n}\\n\\n\",\"variables\":\"{\\n \\\"customerAccessToken\\\": \\\"d794063da4e26c9b1a8d7b77bdfd6862\\\"\\n}\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_7_fld_1_2","parentId":"wrk_1_fld_0_7","modified":1675455642,"created":1675455642,"name":"Get customer metafields","description":"","_type":"request","metaSortKey":2,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# To query a customer, a customerAccessToken is required. This is obtained via the customerAccessTokenCreate mutation which exchanges a user’s email address and password for an access token.\\n\\n# By default, the Storefront API can't read metafields. To make specific metafields visible in the Storefront API, you need to create a MetafieldStorefrontVisibility record. See metafields/expose_metafield_to_SFAPI query for more details: # https://github.com/Shopify/storefront-api-learning-kit/tree/main/examples/05_collections/05_get_all_metafields_for_namespace_in_collection\\n\\n# If you would like to know more regarding metafields, check out this dev doc #https://shopify.dev/tutorials/retrieve-metafields-with-storefront-api#expose-metafields-to-the-storefront-api\\n\\n# Identifiers are used to identify the metafields associated with the resource matching the supplied list of namespaces and keys.\\n\\n# To know more about metafields, please navigate to metafields directory of this repo to get more information.\\n\\nquery CustomerMetafields($customerAccessToken: String!, $identifiers: [HasMetafieldsIdentifier!]!){\\n customer(customerAccessToken: $customerAccessToken) {\\n id\\n email\\n metafields (identifiers:$identifiers) {\\n\\t\\t\\tid\\n\\t\\t\\tkey\\n\\t\\t\\tvalue\\n\\t\\t\\tnamespace\\n\\t\\t\\ttype\\n }\\n }\\n}\\n\\n\",\"variables\":\"{\\n\\t\\\"customerAccessToken\\\": \\\"7cd6d36137f41d57bb8e85ae0d178d60\\\",\\n\\t\\\"identifiers\\\": [\\n\\t\\t{\\n\\t\\t\\t\\\"namespace\\\": \\\"Membership\\\",\\n\\t\\t\\t\\\"key\\\": \\\"VIP level\\\"\\n\\t\\t},\\n\\t\\t{\\n\\t\\t\\t\\\"namespace\\\": \\\"Membership\\\",\\n\\t\\t\\t\\\"key\\\": \\\"startDate\\\"\\n\\t\\t},\\n {\\n\\t\\t\\t\\\"namespace\\\": \\\"note\\\",\\n\\t\\t\\t\\\"key\\\": \\\"preference\\\"\\n\\t\\t}\\n\\t]\\n}\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_7_fld_1_3","parentId":"wrk_1_fld_0_7","modified":1675455642,"created":1675455642,"name":"Update customer","description":"","_type":"request","metaSortKey":3,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# To query a customer, a customerAccessToken is required. This is obtained via the customerAccessTokenCreate mutation which exchanges a user’s email address and password for an access token.\\n\\nmutation customerUpdate($customerAccessToken: String!, $customer: CustomerUpdateInput!) {\\n customerUpdate(customerAccessToken: $customerAccessToken, customer: $customer) {\\n customer {\\n id\\n }\\n customerAccessToken {\\n accessToken\\n expiresAt\\n }\\n customerUserErrors {\\n code\\n field\\n message\\n }\\n }\\n}\\n\\n\",\"variables\":\"{\\n \\\"customerAccessToken\\\": \\\"d794063da4e26c9b1a8d7b77bdfd6862\\\",\\n \\\"customer\\\": {\\n \\\"phone\\\": \\\"+61401425227\\\"\\n }\\n}\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_7_fld_1_4","parentId":"wrk_1_fld_0_7","modified":1675455642,"created":1675455642,"name":"Create customer","description":"","_type":"request","metaSortKey":4,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# This mutation will create a customer account with password for the customer to login.\\n\\nmutation createCustomerAccount($input: CustomerCreateInput!) {\\n customerCreate(input: $input) {\\n customer {\\n id\\n email\\n firstName\\n lastName\\n phone\\n }\\n customerUserErrors {\\n code\\n field\\n message\\n }\\n }\\n}\\n\",\"variables\":\"{\\n \\\"input\\\": {\\n \\\"acceptsMarketing\\\": true,\\n \\\"email\\\": \\\"example@example.com\\\",\\n \\\"firstName\\\": \\\"John\\\",\\n \\\"lastName\\\": \\\"Smith\\\",\\n \\\"password\\\": \\\"qwerty12345\\\",\\n \\\"phone\\\": \\\"+64213444048\\\"\\n }\\n }\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_7_fld_1_5","parentId":"wrk_1_fld_0_7","modified":1675455642,"created":1675455642,"name":"Activate customer","description":"","_type":"request","metaSortKey":5,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# Once a customer account is created, an email will be sent to the customer with the account activation url. This mutation will use the activationToken from the activation url to active the customer account. \\n# You can also use the activation url directly to activate the customer account. See customerActivateByUrl mutation https://shopify.dev/api/storefront/2023-01/mutations/customerActivateByUrl\\n\\nmutation activateCustomerAccount($id: ID!, $input: CustomerActivateInput!) {\\n customerActivate(id: $id, input: $input) {\\n customer {\\n id\\n email\\n firstName\\n lastName\\n phone\\n }\\n customerAccessToken {\\n accessToken\\n expiresAt\\n }\\n customerUserErrors {\\n code\\n field\\n message\\n }\\n }\\n}\\n\\n\",\"variables\":\"{\\n\\t\\\"id\\\": \\\"gid://shopify/Customer/5820694691862\\\",\\n\\t\\\"input\\\": {\\n\\t\\t\\\"activationToken\\\": \\\"da48cbd301e7c31a9d5dca03fcf5cdb6-1671054502\\\",\\n\\t\\t\\\"password\\\": \\\"qwerty12345\\\"\\n\\t}\\n}\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_7_fld_1_6","parentId":"wrk_1_fld_0_7","modified":1675455642,"created":1675455642,"name":"Recover customer","description":"","_type":"request","metaSortKey":6,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# This mutation will send a email to customer to reset password of the customer account.\\n\\n# Note that this mutation is throttled by IP. if you are using authenticated access, you can pass a Shopify-Storefront-Buyer-IP header to enable the IP based throttling that will protect your app from any single user, such as a bot, consuming too much capacity.\\n\\nmutation recoverCustomerAccount($email: String!) {\\n customerRecover(email: $email) {\\n customerUserErrors {\\n code\\n field\\n message\\n }\\n }\\n}\\n\\n\\n\",\"variables\":\"{\\n\\t\\\"email\\\":\\\"example@example.com\\\"\\n}\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_7_fld_1_7","parentId":"wrk_1_fld_0_7","modified":1675455642,"created":1675455642,"name":"Reset customer","description":"","_type":"request","metaSortKey":7,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# This mutation is used to reset the customer account password. After sending recoverCustomerAccount request, the customer will receive an email with an account recovery url for resetting customer account. This url will include the customer id and resetToken.\\n# You can also use the url directly to reset the customer account. See customerResetByUrl mutation https://shopify.dev/api/storefront/2022-10/mutations/customerResetByUrl\\n\\nmutation resetCustomerAccount($id: ID!, $input: CustomerResetInput!) {\\n customerReset(id: $id, input: $input) {\\n customer {\\n id\\n email\\n firstName\\n lastName\\n phone\\n }\\n customerAccessToken {\\n accessToken\\n expiresAt\\n }\\n customerUserErrors {\\n code\\n field\\n message\\n }\\n }\\n}\\n\",\"variables\":\"{\\n\\t\\\"id\\\": \\\"gid://shopify/Customer/5820694691862\\\",\\n\\t\\\"input\\\": {\\n\\t\\t\\\"password\\\": \\\"12345qwerty\\\",\\n\\t\\t\\\"resetToken\\\": \\\"2279f05aebbb8319553e46f2b71c88c7-1671131136\\\"\\n\\t}\\n}\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_7_fld_1_8","parentId":"wrk_1_fld_0_7","modified":1675455642,"created":1675455642,"name":"Create customer address","description":"","_type":"request","metaSortKey":8,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# To query a customer, a customerAccessToken is required. This is obtained via the customerAccessTokenCreate mutation which exchanges a user’s email address and password for an access token.\\n\\n# This request will create a new address that appends to the current address array of the customer record.\\n\\nmutation customerAddressCreate($customerAccessToken: String!, $address: MailingAddressInput!) {\\n customerAddressCreate(customerAccessToken: $customerAccessToken, address: $address) {\\n customerUserErrors {\\n code\\n field\\n message\\n }\\n customerAddress {\\n id\\n }\\n }\\n}\",\"variables\":\"{\\n\\t\\\"customerAccessToken\\\": \\\"7cd6d36137f41d57bb8e85ae0d178d60\\\",\\n\\t\\\"address\\\": {\\n\\t\\t\\\"lastName\\\": \\\"Smith\\\",\\n\\t\\t\\\"firstName\\\": \\\"Mary\\\",\\n\\t\\t\\\"address1\\\": \\\"123 Test Street\\\",\\n\\t\\t\\\"province\\\": \\\"ON\\\",\\n\\t\\t\\\"country\\\": \\\"Canada\\\",\\n\\t\\t\\\"zip\\\": \\\"M5T1G4\\\",\\n\\t\\t\\\"city\\\": \\\"Toronto\\\"\\n\\t}\\n}\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_8","parentId":"wrk_1","modified":1675455642,"created":1675455642,"name":"Manage a cart","description":"","_type":"request_group","metaSortKey":8,"resourceenvironment":{},"environmentPropertyOrder":null},{"_id":"wrk_1_fld_0_8_fld_1_0","parentId":"wrk_1_fld_0_8","modified":1675455642,"created":1675455642,"name":"Create a cart with one line item","description":"","_type":"request","metaSortKey":0,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# This mutation creates a cart and returns information about the cart to ensure it's correct (id, lines, product variant id, etc) as well as some information about the cart you may want (e.g. cost, subtotalAmount, totalTaxAmount, totalDutyAmount). The checkoutUrl object contains the url of the checkout for the created cart\\nmutation createCart($cartInput: CartInput) {\\n cartCreate(input: $cartInput) {\\n cart {\\n id\\n createdAt\\n updatedAt\\n checkoutUrl\\n lines(first: 10) {\\n edges {\\n node {\\n id\\n merchandise {\\n ... on ProductVariant {\\n id\\n }\\n }\\n }\\n }\\n }\\n attributes {\\n key\\n value\\n }\\n cost {\\n totalAmount {\\n amount\\n currencyCode\\n }\\n subtotalAmount {\\n amount\\n currencyCode\\n }\\n totalTaxAmount {\\n amount\\n currencyCode\\n }\\n totalDutyAmount {\\n amount\\n currencyCode\\n }\\n }\\n }\\n }\\n}\\n\",\"variables\":\"{\\n \\\"cartInput\\\": {\\n \\\"lines\\\": [\\n {\\n \\\"quantity\\\": 1,\\n \\\"merchandiseId\\\": \\\"gid://shopify/ProductVariant/123\\\"\\n\\t\\t }\\n\\t\\t],\\n\\t\\t\\\"attributes\\\": {\\n\\t\\t \\\"key\\\": \\\"cart_attribute_key\\\",\\n\\t\\t \\\"value\\\": \\\"This is a cart attribute value\\\"\\n }\\n }\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_8_fld_1_1","parentId":"wrk_1_fld_0_8","modified":1675455642,"created":1675455642,"name":"Query a cart","description":"","_type":"request","metaSortKey":1,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# Query a cart by id and return some of the cart's objects. See documentation here for comprehensive list: https://shopify.dev/api/storefront/latest/queries/cart \\nquery cartQuery($cartId: ID!) {\\n cart(id: $cartId) {\\n id\\n createdAt\\n updatedAt\\n checkoutUrl\\n lines(first: 10) {\\n edges {\\n node {\\n id\\n quantity\\n merchandise {\\n ... on ProductVariant {\\n id\\n }\\n }\\n attributes {\\n key\\n value\\n }\\n }\\n }\\n }\\n attributes {\\n key\\n value\\n }\\n cost {\\n totalAmount {\\n amount\\n currencyCode\\n }\\n subtotalAmount {\\n amount\\n currencyCode\\n }\\n totalTaxAmount {\\n amount\\n currencyCode\\n }\\n totalDutyAmount {\\n amount\\n currencyCode\\n }\\n }\\n buyerIdentity {\\n email\\n phone\\n customer {\\n id\\n }\\n countryCode\\n }\\n }\\n}\\n\",\"variables\":\"{\\n \\\"cartId\\\": \\\"gid://shopify/Cart/50b74bf9dc2bc7a410053b5ffb31ba51\\\"\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_8_fld_1_2","parentId":"wrk_1_fld_0_8","modified":1675455642,"created":1675455642,"name":"Update line items","description":"","_type":"request","metaSortKey":2,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# This mutation is used to add a product variant of the same type to the cart. In the below example, the quantity of the variant (in variables.json) is increased and the id and quantity are returned to confirm they are correct.\\nmutation updateCartLines($cartId: ID!, $lines: [CartLineUpdateInput!]!) {\\n cartLinesUpdate(cartId: $cartId, lines: $lines) {\\n cart {\\n id\\n lines(first: 10) {\\n edges {\\n node {\\n id\\n quantity\\n merchandise {\\n ... on ProductVariant {\\n id\\n }\\n }\\n }\\n }\\n }\\n cost {\\n totalAmount {\\n amount\\n currencyCode\\n }\\n subtotalAmount {\\n amount\\n currencyCode\\n }\\n totalTaxAmount {\\n amount\\n currencyCode\\n }\\n totalDutyAmount {\\n amount\\n currencyCode\\n }\\n }\\n }\\n }\\n}\\n\",\"variables\":\"{\\n \\\"cartId\\\": \\\"gid://shopify/Cart/50b74bf9dc2bc7a410053b5ffb31ba51\\\",\\n \\\"lines\\\": {\\n \\\"id\\\": \\\"gid://shopify/CartLine/7b9ed49f-830e-4142-9c81-e7f8249863ad?cart=50b74bf9dc2bc7a410053b5ffb31ba51\\\",\\n \\\"quantity\\\": 3\\n }\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_8_fld_1_3","parentId":"wrk_1_fld_0_8","modified":1675455642,"created":1675455642,"name":"Update buyer identity","description":"","_type":"request","metaSortKey":3,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# cartBuyerIdentityUpdate is used to associate customer info with a cart and is used to determine international pricing. The below example is updating the buyerIdentity and returning the info (email, phone, delivery address preferences) to ensure that it updated correctly\\nmutation updateCartBuyerIdentity($buyerIdentity: CartBuyerIdentityInput!, $cartId: ID!) {\\n cartBuyerIdentityUpdate(buyerIdentity: $buyerIdentity, cartId: $cartId) {\\n cart {\\n\\t\\t\\tid\\n\\t\\t\\tbuyerIdentity {\\n\\t\\t\\t\\temail\\n\\t\\t\\t\\tphone\\n\\t\\t\\t\\tdeliveryAddressPreferences {\\n\\t\\t\\t\\t\\t... on MailingAddress {\\n\\t\\t\\t\\t\\t\\taddress1\\n\\t\\t\\t\\t\\t\\tcity\\n\\t\\t\\t\\t\\t\\tcountry\\n\\t\\t\\t\\t\\t\\tfirstName\\n\\t\\t\\t\\t\\t\\tlastName\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n }\\n userErrors {\\n field\\n message\\n }\\n }\\n}\\n\",\"variables\":\"{\\n\\t\\\"buyerIdentity\\\": {\\n\\t\\t\\\"countryCode\\\": \\\"CA\\\",\\n\\t\\t\\\"deliveryAddressPreferences\\\": [\\n\\t\\t\\t{\\n\\t\\t\\t\\t\\\"deliveryAddress\\\": {\\n\\t\\t\\t\\t\\t\\\"address1\\\": \\\"123 Fake St.\\\",\\n\\t\\t\\t\\t\\t\\\"city\\\": \\\"Toronto\\\",\\n\\t\\t\\t\\t\\t\\\"company\\\": \\\"Shopify\\\",\\n\\t\\t\\t\\t\\t\\\"country\\\": \\\"Canada\\\",\\n\\t\\t\\t\\t\\t\\\"firstName\\\": \\\"Alice\\\",\\n\\t\\t\\t\\t\\t\\\"lastName\\\": \\\"Bob\\\",\\n\\t\\t\\t\\t\\t\\\"province\\\": \\\"ON\\\"\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t],\\n\\t\\t\\\"email\\\": \\\"example-email@shopify.com\\\"\\n\\t},\\n\\t\\\"cartId\\\": \\\"gid://shopify/Cart/684d5f8c6e463f6057e77c15e34082f0\\\"\\n}\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_8_fld_1_4","parentId":"wrk_1_fld_0_8","modified":1675455642,"created":1675455642,"name":"Retrieve checkout url","description":"","_type":"request","metaSortKey":4,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# Query gets cart by id and returns the cart's checkoutURL. That url directs you to the web checkout flow. More info here: https://shopify.dev/custom-storefronts/checkout/create#shopify-web-checkout\\nquery checkoutURL($cartId: ID!) {\\n cart(id: $cartId) {\\n checkoutUrl\\n }\\n}\\n\",\"variables\":\"{\\n \\\"cartId\\\": \\\"gid://shopify/Cart/50b74bf9dc2bc7a410053b5ffb31ba51\\\"\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_8_fld_1_5","parentId":"wrk_1_fld_0_8","modified":1675455642,"created":1675455642,"name":"Update cart discount codes","description":"","_type":"request","metaSortKey":5,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# This mutation updates the discount codes applied to a given cart and returns the cart id and discountCodes' 'code' and 'applicable' fields\\nmutation updateCartDiscountCodes($cartId: ID!, $discountCodes: [String!] ) {\\n cartDiscountCodesUpdate(cartId: $cartId, discountCodes: $discountCodes) {\\n cart {\\n id\\n discountCodes{\\n code\\n applicable\\n }\\n cost {\\n totalAmount {\\n amount\\n currencyCode\\n }\\n subtotalAmount {\\n amount\\n currencyCode\\n }\\n totalTaxAmount {\\n amount\\n currencyCode\\n }\\n totalDutyAmount {\\n amount\\n currencyCode\\n }\\n } \\n }\\n\\n userErrors {\\n field\\n message\\n }\\n }\\n}\",\"variables\":\"{\\n\\t\\\"cartId\\\": \\\"gid://shopify/Cart/50b74bf9dc2bc7a410053b5ffb31ba51\\\",\\n\\t\\\"discountCodes\\\": [\\n\\t\\t\\\"10_OFF\\\"\\n\\t]\\n}\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_8_fld_1_6","parentId":"wrk_1_fld_0_8","modified":1675455642,"created":1675455642,"name":"Update cart attributes","description":"","_type":"request","metaSortKey":6,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# Updates the attributes of a given cart. Cart attributes are used to store info that isn't included in the existing cart fields. The variables for this mutation provide an example of such a use case i.e. \\\"attributes\\\": {\\n# \\\"key\\\": \\\"gift_wrap\\\",\\n# \\\"value\\\": \\\"true\\\"\\n# }\\n# The key/value can be passed as an object or objects in an array, but in either case the update overwrites the existing attributes.\\nmutation updateCartAttributes($attributes: [AttributeInput!]!, $cartId: ID!) {\\n cartAttributesUpdate(attributes: $attributes, cartId: $cartId) {\\n cart {\\n id\\n attributes{\\n key\\n value\\n }\\n }\\n userErrors {\\n field\\n message\\n }\\n }\\n}\",\"variables\":\"{\\n \\\"attributes\\\": {\\n \\\"key\\\": \\\"gift_wrap\\\",\\n \\\"value\\\": \\\"true\\\"\\n },\\n \\\"cartId\\\": \\\"gid://shopify/Cart/50b74bf9dc2bc7a410053b5ffb31ba51\\\"\\n }\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_8_fld_1_7","parentId":"wrk_1_fld_0_8","modified":1675455642,"created":1675455642,"name":"Update cart note","description":"","_type":"request","metaSortKey":7,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# Updates cart note, returns cart id and note. Notes are similiar to cart attributes in that they contain additional info about an order. However, notes can be a string whereas attributes require key/value pairs. \\nmutation updateCartNote($cartId: ID!) {\\n cartNoteUpdate(cartId: $cartId) {\\n cart {\\n id\\n note\\n\\n }\\n userErrors {\\n field\\n message\\n }\\n }\\n}\",\"variables\":\"{\\n\\t\\\"cartId\\\": \\\"gid://shopify/Cart/50b74bf9dc2bc7a410053b5ffb31ba51\\\",\\n\\t\\\"note\\\": \\\"This is a test note\\\"\\n}\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_8_fld_1_8","parentId":"wrk_1_fld_0_8","modified":1675455642,"created":1675455642,"name":"Remove cart lines","description":"","_type":"request","metaSortKey":8,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# Remove lines from existing cart. Use the cost, subtotal, etc or userError message to confirm that the correct line has been removed. The userError message will let you know if the line in the request does not exist. \\nmutation removeCartLines($cartId: ID!, $lineIds: [ID!]!) {\\n cartLinesRemove(cartId: $cartId, lineIds: $lineIds) {\\n cart {\\n id\\n lines(first: 10){\\n edges\\n {\\n node{\\n quantity\\n merchandise{\\n ... on ProductVariant { \\n id\\n }\\n }\\n }\\n }\\n }\\n cost {\\n totalAmount {\\n amount\\n currencyCode\\n }\\n subtotalAmount {\\n amount\\n currencyCode\\n }\\n totalTaxAmount {\\n amount\\n currencyCode\\n }\\n totalDutyAmount {\\n amount\\n currencyCode\\n }\\n } \\n }\\n \\n userErrors {\\n field\\n message\\n }\\n }\\n}\",\"variables\":\"{\\n\\t\\\"cartId\\\": \\\"gid://shopify/Cart/50b74bf9dc2bc7a410053b5ffb31ba51\\\",\\n\\t\\\"lineIds\\\": [\\n\\t\\t\\\"gid://shopify/CartLine/7b9ed49f-830e-4142-9c81-e7f8249863ad?cart=50b74bf9dc2bc7a410053b5ffb31ba51\\\"\\n\\t]\\n}\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_8_fld_1_9","parentId":"wrk_1_fld_0_8","modified":1675455642,"created":1675455642,"name":"Add cart lines","description":"","_type":"request","metaSortKey":9,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# This mutation adds lines to existing cart, returns the quantity and product id. This mutation also accepts sellingPlanId \\nmutation addCartLines($cartId: ID!, $lines: [CartLineInput!]!) {\\n cartLinesAdd(cartId: $cartId, lines: $lines) {\\n cart {\\n id\\n lines(first: 10){\\n edges\\n {\\n node{\\n quantity\\n merchandise{\\n ... on ProductVariant { \\t\\t\\t\\t\\t\\t\\n id\\n }\\n }\\n }\\n }\\n }\\n cost {\\n totalAmount {\\n amount\\n currencyCode\\n }\\n subtotalAmount {\\n amount\\n currencyCode\\n }\\n totalTaxAmount {\\n amount\\n currencyCode\\n }\\n totalDutyAmount {\\n amount\\n currencyCode\\n }\\n } \\n}\\n\\n\\n userErrors {\\n field\\n message\\n }\\n }\\n}\\n\",\"variables\":\"{\\n\\t\\\"cartId\\\": \\\"gid://shopify/Cart/e623277ec9e65c98f583268f06900ce7\\\",\\n\\t\\\"lines\\\": {\\n\\t\\t\\\"merchandiseId\\\": \\\"gid://shopify/ProductVariant/40993523892280\\\",\\n\\t\\t\\\"quantity\\\": 3\\n\\t}\\n}\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_9","parentId":"wrk_1","modified":1675455642,"created":1675455642,"name":"Shop content","description":"","_type":"request_group","metaSortKey":9,"resourceenvironment":{},"environmentPropertyOrder":null},{"_id":"wrk_1_fld_0_9_fld_1_0","parentId":"wrk_1_fld_0_9","modified":1675455642,"created":1675455642,"name":"Get shop policies","description":"","_type":"request","metaSortKey":0,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"\\n# The ShopPolicy object represents a policy that a merchant has configured for their store, such as their refund or privacy policy.\\n\\n# This query displays the different shop policies that can be returned using the Storefront API.\\n\\nquery getShopPolicies {\\n\\tshop {\\n\\t\\tprivacyPolicy {\\n\\t\\t\\tid\\n\\t\\t\\tbody # Policy text, maximum size of 64kb.\\n\\t\\t\\ttitle\\n\\t\\t}\\n\\t\\trefundPolicy {\\n\\t\\t\\tid\\n\\t\\t\\tbody\\n\\t\\t\\ttitle\\n\\t\\t}\\n\\t\\tshippingPolicy {\\n\\t\\t\\tid\\n\\t\\t\\tbody\\n\\t\\t\\ttitle\\n\\t\\t}\\n\\t\\ttermsOfService {\\n\\t\\t\\tid\\n\\t\\t\\tbody\\n\\t\\t\\ttitle\\n\\t\\t}\\n\\t\\tsubscriptionPolicy {\\n\\t\\t\\tid\\n\\t\\t\\tbody\\n\\t\\t\\ttitle\\n\\t\\t}\\n\\t}\\n}\\n\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_9_fld_1_1","parentId":"wrk_1_fld_0_9","modified":1675455642,"created":1675455642,"name":"Get blog by handle","description":"","_type":"request","metaSortKey":1,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# The blog object is an blog published to the online store channel.\\n\\n# Each store can have multiple blogs, and each blog can have many articles (blog posts).\\n\\n# This query fetches a specific blog by it's handle and returns the blog along with it's associated articles.\\n\\n# Blogs are meant to be used as a type of magazine or newsletter for the shop, with content that changes over time.\\n\\n# If your shop needs a static page (such as an \\\"About Us\\\" page), we recommend that you use a Page instead.\\n\\nquery getBlogByHandle($handle: String!) {\\n\\tblog(handle: $handle) {\\n\\t\\tid\\n\\t\\ttitle\\n\\t\\tarticles(first: 5) {\\n\\t\\t\\tedges {\\n\\t\\t\\t\\tnode {\\n\\t\\t\\t\\t\\tid\\n\\t\\t\\t\\t\\ttitle\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"variables\":\"{\\n\\t\\\"handle\\\": \\\"my-blog\\\"\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_9_fld_1_2","parentId":"wrk_1_fld_0_9","modified":1675455642,"created":1675455642,"name":"Get page by handle","description":"","_type":"request","metaSortKey":2,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# The page object represents a custom page on the online store.\\n\\n# Shopify merchants can create pages to hold static HTML content such as an 'About Us' page.\\n\\n# This simple query fetches a page by it's handle and returns the title and description of the page, complete with HTML formatting.\\n\\nquery getPageByHandle($handle: String!) {\\n\\tpage(handle: $handle) {\\n\\t\\tid\\n\\t\\ttitle\\n body # The description of the page, complete with HTML formatting.\\n\\t}\\n}\\n\",\"variables\":\"{\\n\\t\\\"handle\\\": \\\"my-page\\\"\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"}]} \ No newline at end of file +{"_type":"export","__export_format":4,"__export_date":"2024-07-24T13:48:26.430Z","resources":[{"_id":"wrk_1","parentId":null,"modified":1622496642376,"created":1622496642376,"name":"Storefront API Learning Kit","description":"","scope":"collection","_type":"workspace"},{"_id":"env_1","parentId":"wrk_1","modified":1622728350592,"created":1622496642560,"name":"Base Environment","data":{"base_url":"shop.myshopify.com","api_version":"2023-01","storefront_access_token":"12a35b67c890defg123h456i7f89j01k"},"dataPropertyOrder":{"&":["base_url","api_version","storefront_access_token"]},"color":null,"isPrivate":false,"metaSortKey":1622496642560,"_type":"environment"},{"_id":"wrk_1_fld_0_0","parentId":"wrk_1","modified":1721828898,"created":1721828898,"name":"About this repo","description":"","_type":"request_group","metaSortKey":0,"resourceenvironment":{},"environmentPropertyOrder":null},{"_id":"wrk_1_fld_0_0_fld_1_0","parentId":"wrk_1_fld_0_0","modified":1721828898,"created":1721828898,"name":"About this repo","description":"","_type":"request","metaSortKey":0,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# This repo provides example queries demonstrating how to use Shopify's GraphQL [Storefront API](https://shopify.dev/docs/storefront-api/getting-started). Downloading the [Storefront API insomnia collection package](builds/storefront-api-learning-kit-insomnia.json), gives you access to a complete set of sample queries for use in the [Insomnia](https://insomnia.rest/) http client. The Insomnia desktop app comes with rich GraphQL features, including automatic schema fetching and autocomplete, which are extremely valuable in learning a new API.\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_0_fld_1_1","parentId":"wrk_1_fld_0_0","modified":1721828898,"created":1721828898,"name":"How to use this repo","description":"","_type":"request","metaSortKey":1,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# To import the Insomnia package, first [download the latest collection](builds/storefront-api-learning-kit-insomnia.json) (you'll need to save the raw JSON file).\\n# From the Insomnia Dashboard screen, click `Create`, followed by clicking `File`. Select the file you downloaded.\\n# If you don't want to download the Insomnia package, the query examples are listed out below. \"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_1","parentId":"wrk_1","modified":1721828898,"created":1721828898,"name":"Getting started","description":"","_type":"request_group","metaSortKey":1,"resourceenvironment":{},"environmentPropertyOrder":null},{"_id":"wrk_1_fld_0_1_fld_1_0","parentId":"wrk_1_fld_0_1","modified":1721828898,"created":1721828898,"name":"Introduction","description":"","_type":"request","metaSortKey":0,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# This learning kit provides a set of common GraphQL queries and mutations used with the Shopify Storefront API.\\n\\n# If not already familiar with GraphQL, or Shopify APIs, please consult the Shopify GraphQL learning kit https://shopifypartnerblog.myshopify.com/blogs/blog/shopify-graphql-learning-kit\\n\\n# The Shopify Storefront API gives you full creative control to customize your customers' buying experience.\\n\\n# With the Storefront API you can access several Shopify resource types with the following access scopes:\\n# - Read products, variants, and collections.\\n# - Read and modify customer details.\\n# - Read and modify checkouts.\\n# - Read store content like articles, blogs and comments.\\n# - Read subscription selling plans.\\n# - Read and modify cart objects.\\n\\n# Unlike the Admin API, the Storefront API is an unauthenticated API.\\n# Any data exposed by the Storefront API can be seen by any visitor to the store.\\n# Only use the Storefront API when you're comfortable with that risk and the data that is being exposed.\\n# Risk can be mitigated by only providing access scopes required.\\n# For a complete list of access scopes consult Shopify documentation at https://shopify.dev/api/usage/access-scopes#unauthenticated-access-scopes\\n\\n# Access to the Storefront API can be granted by a merchant via a public sales channel, or by creating a Headless channel in your Shopify Admin.\\n# For simplicity of this tutorial, we'll create a Headless channel in the Shopify Admin.\\n# The process to add the Headless channel is documented in the next section titled \\\"Installing the Headless Channel \\\".\\n\\n# Documentation for accessing the Storefront API using the Headless channel can be found [here](https://shopify.dev//custom-storefronts/building-with-the-storefront-api/getting-started#step-1-enable-storefront-api-access)\\n\\n# The home of Storefront API-related developer documents and tutorials can be found at https://shopify.dev/api/storefront\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_1_fld_1_1","parentId":"wrk_1_fld_0_1","modified":1721828898,"created":1721828898,"name":"Installing the headless channel","description":"","_type":"request","metaSortKey":1,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# To start using the Storefront API you'll need to enable access by installing the __Headless__ channel on your store.\\n# To install, you can follow the directions outlined here or get it from the [Shopify App Store](https://apps.shopify.com/headless).\\n\\n# Installing the Headless Channel from Shopify Admin\\n# 1. From your Shopify admin, click __Sales channels__.\\n# 2. Click __Recommended sales channels__.\\n# 3. In the __Picked for you modal__, scroll to the Build custom storefronts section.\\n# 4. Within the __Headless: Build your own commerce stack__ card, click __Add__.\\n# 5. Click __Add sales channel__.\\n# 6. Click __Create storefront__.\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_1_fld_1_2","parentId":"wrk_1_fld_0_1","modified":1721828898,"created":1721828898,"name":"Configure your environment variables","description":"","_type":"request","metaSortKey":2,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# Environment variables are JSON key-value pairs that allow you to refer to values without having to write them out every time.\\n\\n# For the tutorial, three environment variables will be utilized.\\n\\n# 1. `base_url` will be the Shopify store being connected to.\\n# - If your store is mydevstore.myshopify.com, enter “mydevstore.myshopify.com” here.\\n# 2. `api_version` is the Storefront API version used for the API requests.\\n# - This can be changed to an earlier version or unstable depending on your use case.\\n# 3. `storefront_access_token` is used to populate the X-Shopify-Storefront-Access-Token request header.\\n# - This is the Public access token associated with the Storefront you created in the \\\"Installing the Headless Channel\\\" section.\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_1_fld_1_3","parentId":"wrk_1_fld_0_1","modified":1721828898,"created":1721828898,"name":"Making your first request","description":"","_type":"request","metaSortKey":3,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# You should see at the top of the frame that we're using the \\\"base_url\\\" and \\\"api_version\\\" to build out the address for the endpoint.\\n# You can also click the \\\"Headers\\\" tab at the top to see the \\\"storefront_access_token\\\" being used.\\n# Hovering over environment variables should show you the value that will be substituted into the request.\\n# If you don’t see your values, ensure you have the right environment selected.\\n\\n# Once you've confirmed these three fields are set in your environment, try running the shop query below.\\n# If the Storefront API access token has been configured correctly, you should get your shop’s info returned.\\n\\nquery getShopDetails{\\n shop {\\n\\t\\t\\tname\\n primaryDomain{\\n host\\n url\\n }\\n paymentSettings{\\n currencyCode\\n acceptedCardBrands\\n enabledPresentmentCurrencies\\n }\\n\\t\\t}\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_2","parentId":"wrk_1","modified":1721828898,"created":1721828898,"name":"Metafields metaobjects","description":"","_type":"request_group","metaSortKey":2,"resourceenvironment":{},"environmentPropertyOrder":null},{"_id":"wrk_1_fld_0_2_fld_1_0","parentId":"wrk_1_fld_0_2","modified":1721828898,"created":1721828898,"name":"Expose metafield to SFAPI","description":"","_type":"request","metaSortKey":0,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# Metafields allow merchants to store additional information for Shopify resources including:\\n# - Products\\n# - Collections\\n# - Customers\\n# - Blogs\\n# - Pages\\n# - Shop\\n# - Discounts\\n# - Draft Orders\\n# - Locations\\n# - Orders\\n# - Product Images\\n# - Product Variants\\n\\n# For a complete list please consult https://shopify.dev/api/admin-graphql/2022-10/enums/MetafieldOwnerType\\n\\n# Unlike the Admin API, metafields must first be made visible to the Storefront API.\\n# To make metafields visible to the Storefront API use the Shopify Admin API mutation metafieldStorefrontVisibilityCreate.\\n\\n# Ensure you are calling the Admin API https://shopify.dev/api/admin-graphql#endpoints with valid Admin API credentials https://shopify.dev/api/admin-graphql#authentication when exposing metafields to the Storefront API.\\n\\n# For more information on the metafieldStorefrontVisibilityCreate mutation consult the Shopify Admin API doc https://shopify.dev/docs/admin-api/graphql/reference/metafields/metafieldstorefrontvisibilitycreate\\n\\n# For a complete Storefront API metafield reference please consult the metafield tutorial at\\n# https://shopify.dev/tutorials/retrieve-metafields-with-storefront-api#expose-metafields-to-the-storefront-api\\n\\nmutation createMetafieldStorefrontVisibility(\\n\\t$input: MetafieldStorefrontVisibilityInput!\\n) {\\n\\tmetafieldStorefrontVisibilityCreate(input: $input) {\\n\\t\\tmetafieldStorefrontVisibility {\\n\\t\\t\\tid # MetafieldStorefrontVisibility record id\\n\\t\\t\\tkey # Key must be unique within this namespace on this resource\\n\\t\\t\\townerType\\n\\t\\t\\tnamespace\\n\\t\\t\\tupdatedAt\\n\\t\\t}\\n\\t\\tuserErrors {\\n\\t\\t\\tfield\\n\\t\\t\\tmessage\\n\\t\\t}\\n\\t}\\n}\\n\",\"variables\":\"{\\n\\t\\\"input\\\": {\\n\\t\\t\\\"key\\\": \\\"drying_instructions\\\",\\n\\t\\t\\\"namespace\\\": \\\"garment_care\\\",\\n\\t\\t\\\"ownerType\\\": \\\"COLLECTION\\\"\\n\\t}\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_2_fld_1_1","parentId":"wrk_1_fld_0_2","modified":1721828898,"created":1721828898,"name":"Retrieve metafields","description":"","_type":"request","metaSortKey":1,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# Once a metafield has been exposed it can be retrieved using the Storefront API. In order to retrieve a single metafield, specify the namespace and key arguments.\\n# To query for a list of metafields pass the identifiers argument again specifying namespace and key\\n# For more information please consult https://shopify.dev/custom-storefronts/products-collections/metafields#step-2-retrieve-metafields\\n\\n# The following example retrieves a specific metafield and a list of metafields that match the supplied namespace and key and collection id.\\n# Ensure that you've added a value to any metafields you wish to query back by updating it using Admin API https://shopify.dev/apps/metafields/manage-metafields#step-3-update-a-metafield\\n\\nquery getCollectionMetaField(\\n\\t$id: ID!\\n\\t$namespace: String!\\n\\t$key: String!\\n\\t$another_namespace: String!\\n\\t$another_key: String!\\n) {\\n\\tcollection(id: $id) {\\n\\t\\tmetafield(namespace: $namespace, key: $key) {\\n\\t\\t\\tkey\\n\\t\\t\\tnamespace\\n\\t\\t\\tvalue\\n\\t\\t\\tid # metafield id\\n\\t\\t}\\n\\t}\\n\\n\\tcollection(id: $id) {\\n\\t\\tmetafields(\\n\\t\\t\\tidentifiers: [\\n\\t\\t\\t\\t{ namespace: $namespace, key: $key },\\n\\t\\t\\t\\t{ namespace: $another_namespace, key: $another_key }\\n\\t\\t\\t]\\n\\t\\t) {\\n\\t\\t\\tkey\\n\\t\\t\\tnamespace\\n\\t\\t\\tvalue\\n\\t\\t\\tid # metafield id\\n\\t\\t}\\n\\t}\\n}\\n\",\"variables\":\"{\\n\\t\\\"id\\\": \\\"gid://shopify/Collection/288378781858\\\",\\n\\t\\\"namespace\\\": \\\"garment_care\\\",\\n\\t\\\"key\\\": \\\"wash_temperature\\\",\\n\\t\\\"another_namespace\\\": \\\"bakery\\\",\\n\\t\\\"another_key\\\": \\\"ingredients-new\\\"\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_2_fld_1_2","parentId":"wrk_1_fld_0_2","modified":1721828898,"created":1721828898,"name":"Retrieve storefront visibilities","description":"","_type":"request","metaSortKey":2,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# To retrieve a list of MetafieldStorefrontVisibility records use the metafieldStorefrontVisibilities query available on the Admin API and return a list of exposed metafield records.\\n\\n# Ensure you are calling the Admin API https://shopify.dev/api/admin-graphql#endpoints with valid Admin API credentials https://shopify.dev/api/admin-graphql#authentication when retrieving a list of MetafieldStorefrontVisibility records.\\n# For a complete reference please consult https://shopify.dev/api/admin-graphql/2022-10/queries/metafieldStorefrontVisibilities#top\\n\\nquery getMetafieldStorefrontVisibilities($first: Int!, $namespace: String!) {\\n\\tmetafieldStorefrontVisibilities(first: $first, namespace: $namespace) {\\n\\t\\tedges {\\n\\t\\t\\tnode {\\n\\t\\t\\t\\tid # Metafield visibility record id\\n\\t\\t\\t\\tnamespace\\n\\t\\t\\t\\tkey\\n\\t\\t\\t\\tcreatedAt\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"variables\":\"{\\n \\\"first\\\": 5,\\n \\\"namespace\\\": \\\"garment_care\\\"\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_2_fld_1_3","parentId":"wrk_1_fld_0_2","modified":1721828898,"created":1721828898,"name":"Delete storefront visibilities","description":"","_type":"request","metaSortKey":3,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# If you no longer need to access a metafield with the Storefront API, you can hide it again by using the GraphQL Admin API to delete the MetafieldStorefrontVisibility record that you created.\\n# The metafieldStorefrontVisibilityDelete mutation requires the visibility record of the metafield you wish to hide from the Storefront API.\\n# The metafield will no longer be accessible through the Storefront API.\\n\\n# Ensure you are calling the Admin API https://shopify.dev/api/admin-graphql#endpoints with valid Admin API credentials https://shopify.dev/api/admin-graphql#authentication when deleting a MetafieldStorefrontVisibility record.\\n# For a complete reference please consult https://shopify.dev/api/admin-graphql/2022-10/mutations/metafieldStorefrontVisibilityDelete\\n\\nmutation deleteMetafieldStorefrontVisibilities($id: ID!) {\\n\\tmetafieldStorefrontVisibilityDelete(id: $id) {\\n\\t\\tdeletedMetafieldStorefrontVisibilityId # The visibility record of the metafield hidden from Storefront API\\n\\n\\t\\tuserErrors {\\n\\t\\t\\tfield\\n\\t\\t\\tmessage\\n\\t\\t}\\n\\t}\\n}\\n\",\"variables\":\"{\\n\\t\\\"id\\\": \\\"gid://shopify/MetafieldStorefrontVisibility/1684242594\\\"\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_2_fld_1_4","parentId":"wrk_1_fld_0_2","modified":1721828898,"created":1721828898,"name":"Retrieve metaobjects","description":"","_type":"request","metaSortKey":4,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# Metaobjects are custom data structures introduced with version 2023-01 that your app can define and create to store your app's information.\\n# Similar to metafields, they can be associated with a Shopify resource such as a product or a collection.\\n# However, they can also exist on their own. Metaobjects provide you with a way to create resources that Shopify doesn't offer out of the box.\\n\\n# In order to query metaobjects with the Storefront API you must first create a metaobject definition using the Admin API with the metaobjectDefinitionCreate mutation\\n# and create a corresponding metaobject using the Admin API mutation metaobjectCreate.\\n# For more information consult Shopify Admin API docs at https://shopify.dev/api/admin-graphql/2023-01/mutations/metaobjectDefinitionCreate\\n# and https://shopify.dev/api/admin-graphql/2023-01/mutations/metaobjectCreate\\n\\n# When creating a new metaobject definition to create new associated metaobjects that you want to access using Storefront API, be sure to set \\\"access\\\" for the \\\"storefront\\\" property to \\\"PUBLIC_READ\\\".\\n# For more information about the MetaObjectDefinitionCreateInput please see https://shopify.dev/api/admin-graphql/2023-01/mutations/metaobjectDefinitionCreate#field-metaobjectdefinitioncreateinput-access\\n# Ensure you are calling the Admin API https://shopify.dev/api/admin-graphql#endpoints with valid Admin API credentials https://shopify.dev/api/admin-graphql#authentication\\n\\n# The following example returns a list of the first ten metaobjects for a given type from the Storefront API. As well as type, which is a required argument, either first or last must be passed.\\n# Other optional arguments include reverse and sortKey which determines whether to sort the returned list by \\\"id\\\", \\\"type\\\", \\\"updated_at\\\", or \\\"display_name\\\".\\n# For more information consult Storefront API documentation at https://shopify.dev/api/storefront/2023-01/queries/metaobjects\\n\\nquery getMetaObjects(\\n\\t$type: String!,\\n\\t$sortKey: String,\\n\\t$first: Int,\\n\\t$reverse: Boolean\\n){\\n\\tmetaobjects(\\n\\t\\ttype: $type,\\n\\t\\tsortKey: $sortKey,\\n\\t\\tfirst: $first,\\n\\t\\treverse: $reverse\\n\\t) {\\n\\t\\tedges {\\n\\t\\t\\tnode {\\n\\t\\t\\t\\tid\\n\\t\\t\\t\\tfields {\\n\\t\\t\\t\\t\\tkey\\n\\t\\t\\t\\t\\tvalue\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\thandle\\n\\t\\t\\t\\tupdatedAt\\n\\t\\t\\t\\ttype\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"variables\":\"{\\n \\\"type\\\": \\\"Product_Highlights\\\",\\n \\\"sortKey\\\": \\\"id\\\",\\n \\\"first\\\": 10,\\n \\\"reverse\\\": true\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_2_fld_1_5","parentId":"wrk_1_fld_0_2","modified":1721828898,"created":1721828898,"name":"Retrieve metaobject","description":"","_type":"request","metaSortKey":5,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# The following example retreives a single metaobject by a given metaobject id.\\n# For more information consult Storefront API documentation at https://shopify.dev/api/storefront/2023-01/queries/metaobject\\n\\n\\nquery getMetaObject($id: ID!) { # A metaobject can be retrieved by handle or id\\n\\tmetaobject(id: $id) {\\n\\t\\tid\\n\\t\\ttype\\n\\t\\tupdatedAt\\n\\t\\thandle\\n\\n\\t\\tfields {\\n\\t\\t\\tkey\\n\\t\\t\\tvalue\\n\\t\\t\\ttype\\n\\t\\t}\\n\\n\\t\\tfields {\\n\\t\\t\\tkey\\n\\t\\t\\tvalue\\n\\t\\t\\ttype\\n\\t\\t}\\n\\t}\\n}\\n\",\"variables\":\"{\\n\\t\\\"id\\\": \\\"gid://shopify/Metaobject/819214\\\"\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_3","parentId":"wrk_1","modified":1721828898,"created":1721828898,"name":"International pricing","description":"","_type":"request_group","metaSortKey":3,"resourceenvironment":{},"environmentPropertyOrder":null},{"_id":"wrk_1_fld_0_3_fld_1_0","parentId":"wrk_1_fld_0_3","modified":1721828898,"created":1721828898,"name":"Get available countries and currencies","description":"","_type":"request","metaSortKey":0,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# To present pricing in local currency enable the market of the passed in country context within Markets.\\n# If the country is not enabled in Markets the currency of the active localized experience will be the store's default currency.\\n\\n# To present a localized language experience enable it from Markets.\\n# If an alternate language is not enabled for the passed in country context, the active language will be the store's default.\\n\\nquery getCountriesAndCurrencies($country: CountryCode) @inContext(country: $country) {\\n localization {\\n\\t\\tlanguage{ #The language of the active localized experience.\\n\\t\\t\\tisoCode\\n\\t\\t\\tname\\n\\t\\t}\\n availableCountries {\\n currency {\\n isoCode\\n name\\n symbol\\n }\\n isoCode\\n name\\n unitSystem\\n }\\n country { #The currency of the active localized experience.\\n currency {\\n isoCode\\n name\\n symbol\\n }\\n isoCode\\n name\\n unitSystem\\n }\\n }\\n}\\n\",\"variables\":\"{\\n\\t\\\"country\\\": \\\"FR\\\"\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_3_fld_1_1","parentId":"wrk_1_fld_0_3","modified":1721828898,"created":1721828898,"name":"Get product prices","description":"","_type":"request","metaSortKey":1,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"query allProducts($country: CountryCode) @inContext(country: $country) {\\n products(first: 1) {\\n edges {\\n node {\\n\\t\\t\\t\\ttitle\\n variants(first:1) {\\n edges {\\n node {\\n\\t\\t\\t\\t\\t\\t\\ttitle\\n price {\\n amount\\n currencyCode #active local currency\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n}\\n\",\"variables\":\"{\\n\\t\\\"country\\\": \\\"CA\\\"\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_3_fld_1_2","parentId":"wrk_1_fld_0_3","modified":1721828898,"created":1721828898,"name":"Get price ranges for products","description":"","_type":"request","metaSortKey":2,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"query getProductPriceRanges($country: CountryCode) @inContext(country: $country) {\\n products(first: 1) {\\n edges {\\n node {\\n title\\n priceRange {\\n minVariantPrice {\\n amount\\n currencyCode #active local currency\\n }\\n maxVariantPrice {\\n amount\\n currencyCode\\n }\\n }\\n compareAtPriceRange {\\n minVariantPrice {\\n amount\\n currencyCode #active local currency\\n }\\n maxVariantPrice {\\n amount\\n currencyCode\\n }\\n }\\n }\\n }\\n }\\n}\\n\",\"variables\":\"{\\n\\t\\\"country\\\": \\\"CA\\\"\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_3_fld_1_3","parentId":"wrk_1_fld_0_3","modified":1721828898,"created":1721828898,"name":"Get customer orders","description":"","_type":"request","metaSortKey":3,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"query getcustomerOrders($customerAccessToken: String!, $country: CountryCode)@inContext(country: $country) {\\n customer(customerAccessToken: $customerAccessToken) {\\n orders(first:10) {\\n edges {\\n node {\\n totalPrice {\\n amount\\n currencyCode # store's currency\\n }\\n lineItems(first:10) {\\n edges {\\n node {\\n originalTotalPrice {\\n amount\\n currencyCode # store's currency\\n }\\n variant {\\n price {\\n amount\\n currencyCode # active local currency\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n}\\n\",\"variables\":\"{\\n\\t\\\"customerAccessToken\\\": \\\"customerAccessToken\\\",\\n\\t\\\"country\\\": \\\"FR\\\"\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_3_fld_1_4","parentId":"wrk_1_fld_0_3","modified":1721828898,"created":1721828898,"name":"Create cart in local context","description":"","_type":"request","metaSortKey":4,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# Generates a cart in the currency and language of the context passed in.\\n# Requires that the country passed be enabled in Markets and that the language passed in is enabled for that market.\\n\\nmutation cartCreate($cartInput: CartInput!, $country: CountryCode, $language: LanguageCode)@inContext(country: $country, language: $language){\\n\\tcartCreate(input: $cartInput) {\\n\\t\\tuserErrors {\\n\\t\\t\\tcode\\n\\t\\t\\tmessage\\n\\t\\t}\\n\\t\\tcart {\\n\\t\\t\\tid\\n\\t\\t\\tcheckoutUrl #URL for cart in local currency and language passed in\\n\\t\\t\\tlines(first: 50) {\\n\\t\\t\\t\\tedges {\\n\\t\\t\\t\\t\\tnode {\\n\\t\\t\\t\\t\\t\\tid\\n\\t\\t\\t\\t\\t\\tmerchandise {\\n\\t\\t\\t\\t\\t\\t\\t... on ProductVariant {\\n\\t\\t\\t\\t\\t\\t\\t\\ttitle\\n\\t\\t\\t\\t\\t\\t\\t\\tproduct {\\n\\t\\t\\t\\t\\t\\t\\t\\t\\ttitle\\n\\t\\t\\t\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t\\t\\t\\tid\\n\\t\\t\\t\\t\\t\\t\\t\\tquantityAvailable\\n\\t\\t\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t\\tcost {\\n\\t\\t\\t\\tsubtotalAmount {\\n\\t\\t\\t\\t\\tamount #active local currency\\n\\t\\t\\t\\t\\tcurrencyCode\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\ttotalAmount {\\n\\t\\t\\t\\t\\tamount #active local currency\\n\\t\\t\\t\\t\\tcurrencyCode\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"variables\":\"{\\n\\t\\\"cartInput\\\": {\\n\\t\\t\\\"lines\\\": [\\n\\t\\t\\t{\\n\\t\\t\\t\\t\\\"quantity\\\": 3,\\n\\t\\t\\t\\t\\\"merchandiseId\\\": \\\"gid://shopify/ProductVariant/42485059584162\\\"\\n\\t\\t\\t},\\n\\t\\t\\t{\\n\\t\\t\\t\\t\\\"quantity\\\": 1,\\n\\t\\t\\t\\t\\\"merchandiseId\\\": \\\"gid://shopify/ProductVariant/42790980223138\\\"\\n\\t\\t\\t}\\n\\t\\t]\\n\\n\\t},\\n\\t\\\"country\\\": \\\"US\\\",\\n\\t\\\"language\\\": \\\"ES\\\"\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_4","parentId":"wrk_1","modified":1721828898,"created":1721828898,"name":"Local pickup","description":"","_type":"request_group","metaSortKey":4,"resourceenvironment":{},"environmentPropertyOrder":null},{"_id":"wrk_1_fld_0_4_fld_1_0","parentId":"wrk_1_fld_0_4","modified":1721828898,"created":1721828898,"name":"Get pickup availability for variants","description":"","_type":"request","metaSortKey":0,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# Before sending this request, please make sure your app has unauthenticated_read_product_pickup_locations scope, and store pick up has been enabled. For all the requirements please check this dev doc: https://shopify.dev/custom-storefronts/products-collections/local-pickup#requirements\\n\\n# You can also use \\\"id\\\" to replace \\\"handle\\\" as argument to query product. \\n\\nquery getStoreAvailability($handle: String! $name: String! $value:String!) {\\n product(handle:$handle) {\\n variantBySelectedOptions(selectedOptions: {name: $name, value: $value}) {\\n storeAvailability(first: 1) {\\n edges {\\n node {\\n available\\n pickUpTime\\n location {\\n name\\n }\\n }\\n }\\n }\\n }\\n }\\n}\",\"variables\":\"{\\n\\t\\\"handle\\\": \\\"Orange\\\",\\n\\t\\\"name\\\": \\\"Weight\\\",\\n\\t\\\"value\\\": \\\"2 lb\\\"\\n}\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_4_fld_1_1","parentId":"wrk_1_fld_0_4","modified":1721828898,"created":1721828898,"name":"Get nearest pickup locations","description":"","_type":"request","metaSortKey":1,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# This query will return the first 5 shop locations that support in-store pickup. The `near` parameter is used to sort results based on proximity to the provided location. Results could also be sorted by city, location id, or location name by using CITY, ID, or NAME respectively as the sortKey.\\n\\nquery getNearestPickupLocations($location: GeoCoordinateInput!) {\\n locations(near:$location, first: 5, sortKey: DISTANCE) {\\n edges {\\n node {\\n id\\n name\\n address {\\n formatted\\n }\\n }\\n }\\n }\\n}\\n\",\"variables\":\"{\\n \\\"location\\\": {\\n \\\"latitude\\\": 45.4553,\\n \\\"longitude\\\": -75.6973\\n }\\n}\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_4_fld_1_2","parentId":"wrk_1_fld_0_4","modified":1721828898,"created":1721828898,"name":"Get preferred pickup location availability","description":"","_type":"request","metaSortKey":2,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# Before sending this request, please make sure your app has unauthenticated_read_product_pickup_locations scope.\\n\\n# This query will return in-store pickup locations that have the product stocked, sorted by proximity to a buyers preferred store pickup location. The buyer's preferred pickup location is passed as the `preferredLocationId` argument.\\n\\nquery getPreferredStoreAvailability ($preferredLocationId: ID, $handle: String!,$selectedOptions: [SelectedOptionInput!]!)@inContext(preferredLocationId: $preferredLocationId) {\\n product(handle: $handle) {\\n variantBySelectedOptions(selectedOptions: $selectedOptions) {\\n storeAvailability(first: 1) {\\n edges {\\n node {\\n available\\n pickUpTime\\n location {\\n name\\n }\\n }\\n }\\n }\\n }\\n }\\n}\",\"variables\":\"{\\n\\t\\\"preferredLocationId\\\": \\\"gid://shopify/Location/65607794710\\\",\\n\\t\\\"handle\\\": \\\"Orange\\\",\\n\\t\\\"selectedOptions\\\": {\\n\\t\\t\\\"name\\\": \\\"Weight\\\",\\n\\t\\t\\\"value\\\": \\\"1 lb\\\"\\n\\t}\\n}\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_5","parentId":"wrk_1","modified":1721828898,"created":1721828898,"name":"Collections","description":"","_type":"request_group","metaSortKey":5,"resourceenvironment":{},"environmentPropertyOrder":null},{"_id":"wrk_1_fld_0_5_fld_1_0","parentId":"wrk_1_fld_0_5","modified":1721828898,"created":1721828898,"name":"Get collections","description":"","_type":"request","metaSortKey":0,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# Simple query to return the first 10 collections in the shop.\\n\\n# Since a shop can contain multiple collections, pagination is required.\\n\\nquery getCollections {\\n collections(first: 10) {\\n edges {\\n cursor\\n node {\\n id\\n handle\\n }\\n }\\n pageInfo {\\n hasNextPage\\n hasPreviousPage\\n }\\n }\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_5_fld_1_1","parentId":"wrk_1_fld_0_5","modified":1721828898,"created":1721828898,"name":"Get collection by handle","description":"","_type":"request","metaSortKey":1,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# Simple query to return details from a collection object by passing the collection.handle as an argument.\\n\\nquery getCollectionByHandle($handle: String!) {\\n collection(handle: $handle) {\\n id\\n title\\n description\\n }\\n}\\n\",\"variables\":\"{\\n \\\"handle\\\": \\\"all\\\"\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_5_fld_1_2","parentId":"wrk_1_fld_0_5","modified":1721828898,"created":1721828898,"name":"Get collection by id","description":"","_type":"request","metaSortKey":2,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# Query that returns details from a collection object by passing the collection.id as an argument.\\n\\nquery getCollectionById($id: ID!) {\\n\\tcollection(id: $id) {\\n\\t\\ttitle\\n\\t\\tdescription\\n handle\\n\\t}\\n}\\n\",\"variables\":\"{\\n \\\"id\\\": \\\"gid://shopify/Collection/1\\\"\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_5_fld_1_3","parentId":"wrk_1_fld_0_5","modified":1721828898,"created":1721828898,"name":"Get products in collection","description":"","_type":"request","metaSortKey":3,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"\\n# This query returns data from a single collection, specified by the handle.\\n\\n# The data returned in the product connection can be used to display a page of products.\\n\\n# The `products` connection requires pagination in this query, since collections can contain a large number of products.\\n# This query includes the `sortKey` argument on the products connection, this returns products in the order specified by the sortKey\\n\\n# Products can contain multiple images, so the `images` connection requires pagination.\\n\\n# Since products can contain multiple variants, we've asked the products connection to return price ranges.\\n\\n# In this example we only want to display 1 image per product, so we're only asking for first:1\\n\\nquery getProductsInCollection($handle: String!) {\\n\\tcollection(handle: $handle) {\\n\\t\\tid\\n\\t\\ttitle\\n\\t\\tproducts(first: 50, sortKey: BEST_SELLING) {\\n\\t\\t\\tedges {\\n\\t\\t\\t\\tnode {\\n\\t\\t\\t\\t\\tid\\n\\t\\t\\t\\t\\ttitle\\n\\t\\t\\t\\t\\tvendor\\n\\t\\t\\t\\t\\tavailableForSale\\n\\t\\t\\t\\t\\timages(first: 1) {\\n\\t\\t\\t\\t\\t\\tedges {\\n\\t\\t\\t\\t\\t\\t\\tnode {\\n\\t\\t\\t\\t\\t\\t\\t\\tid\\n\\t\\t\\t\\t\\t\\t\\t\\turl\\n\\t\\t\\t\\t\\t\\t\\t\\twidth\\n\\t\\t\\t\\t\\t\\t\\t\\theight\\n\\t\\t\\t\\t\\t\\t\\t\\taltText\\n\\t\\t\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\tpriceRange { # Returns range of prices for a product in the shop's currency.\\n\\t\\t\\t\\t\\t\\tminVariantPrice {\\n\\t\\t\\t\\t\\t\\t\\tamount\\n\\t\\t\\t\\t\\t\\t\\tcurrencyCode\\n\\t\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t\\tmaxVariantPrice {\\n\\t\\t\\t\\t\\t\\t\\tamount\\n\\t\\t\\t\\t\\t\\t\\tcurrencyCode\\n\\t\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"variables\":\"{\\n \\\"handle\\\": \\\"all\\\"\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_5_fld_1_4","parentId":"wrk_1_fld_0_5","modified":1721828898,"created":1721828898,"name":"Get all metafields for namespace in collection","description":"","_type":"request","metaSortKey":4,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# Uses the `collectionByHandle` query to specify a collection by passing the handle.\\n\\n# Identifiers are used to identify the metafields associated with the resource matching the supplied list of namespaces and keys.\\n\\n# The `metafields` connection is using the `namespace` argument to return only metafields in a specific namespace.\\n\\n# Since collections can have a large number of metafields in a given namespace, pagination is required on the `metafields` connection.\\n\\n# By default, the Storefront API can't read metafields. To make specific metafields visible in the Storefront API, you need to create a MetafieldStorefrontVisibility record.\\n\\n# For more information please consult #https://shopify.dev/custom-storefronts/products-collections/metafields\\n\\nquery getCollectionMetafieldsByNamespace($handle: String! $namespace: String!) {\\n \\tcollection(handle: $handle) {\\n\\t\\tid\\n\\t\\tmetafields(identifiers: [{ namespace: $namespace, key: $key }]) {\\n\\t\\t\\tkey\\n\\t\\t\\tnamespace\\n\\t\\t\\tvalue\\n\\t\\t\\tid\\n\\t\\t}\\n\\t}\\n}\\n\",\"variables\":\"{\\n \\\"handle\\\": \\\"all\\\",\\n \\\"namespace\\\": \\\"global\\\"\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_5_fld_1_5","parentId":"wrk_1_fld_0_5","modified":1721828898,"created":1721828898,"name":"Filter products in collection","description":"","_type":"request","metaSortKey":5,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# You can use the Storefront API to filter products in a collection using product filters.\\n\\n# This functionality lets you build a desired customer experience on a storefront, such as the ability to narrow down the search results that you display to customers.\\n\\n# Products in collections can be filtered by type, vendor, variant options, price, stock and metafield value.\\n\\n# Please note there are requirements to using product filters in collections here - https://shopify.dev/custom-storefronts/products-collections/filter-products#requirements\\n\\n# In the following example, products in the collection that have the \\\"shoes\\\" product type are returned.\\n\\n# Further examples of product filters can be found in the above documentation.\\n\\nquery getProductsOfProductTypeInCollection($handle: String!, $value: String!) {\\n\\tcollection(handle: $handle) {\\n\\t\\thandle\\n\\t\\tproducts(first: 10, filters: { productType: $value }) {\\n\\t\\t\\tedges {\\n\\t\\t\\t\\tnode {\\n\\t\\t\\t\\t\\thandle\\n\\t\\t\\t\\t\\tproductType\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"variables\":\"{\\n \\\"handle\\\": \\\"filterable-collection\\\",\\n\\t\\\"value\\\": \\\"shoes\\\"\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_6","parentId":"wrk_1","modified":1721828898,"created":1721828898,"name":"Products","description":"","_type":"request_group","metaSortKey":6,"resourceenvironment":{},"environmentPropertyOrder":null},{"_id":"wrk_1_fld_0_6_fld_1_0","parentId":"wrk_1_fld_0_6","modified":1721828898,"created":1721828898,"name":"Get 3 products and 3 variants","description":"","_type":"request","metaSortKey":0,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"\\n# This query gets the products connection, which is available from the QueryRoot, and asks for the first 3 products.\\n# It selects edges, the node, and fields from each of the returned product objects.\\n# Since products also have a variants connection, we repeat a similar process to get information on the first 3 variants on each of those products.\\n\\n\\nquery getProductsAndVariants {\\n products(first: 3) {\\n edges {\\n cursor\\n node {\\n id\\n title\\n description\\n handle\\n variants(first: 3) {\\n edges {\\n cursor\\n node {\\n id\\n title\\n quantityAvailable\\n price {\\n amount\\n currencyCode\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_6_fld_1_1","parentId":"wrk_1_fld_0_6","modified":1721828898,"created":1721828898,"name":"Get product by handle","description":"","_type":"request","metaSortKey":1,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"\\n# This query gets a single product connection, available from the QueryRoot, that matches the handle \\\"my-test-product\\\".\\n# As only one product connection will be returned, we don't need to specify edges, node, or cursor. This query can also be used to get a product by id by replacing (handle: $handle) with (id: $id)\\n\\nquery getProductByHandle {\\n product(handle: \\\"my-test-product\\\") {\\n id\\n title\\n description\\n variants(first: 3) {\\n edges {\\n cursor\\n node {\\n id\\n title\\n quantityAvailable\\n price {\\n amount\\n currencyCode\\n }\\n }\\n }\\n }\\n }\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_6_fld_1_2","parentId":"wrk_1_fld_0_6","modified":1721828898,"created":1721828898,"name":"Get product recommendations","description":"","_type":"request","metaSortKey":2,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"\\n# This query gets a single product connection, available from the QueryRoot, that matches the base64-encoded id of the product.\\n# As only one product connection will be returned, we don't need to specify edges, node, or cursor.\\n\\nquery getProductRecommendations {\\n productRecommendations(productId: \\\"gid://shopify/Product/123456789\\\") {\\n id\\n title\\n description\\n variants(first: 3) {\\n edges {\\n cursor\\n node {\\n id\\n title\\n quantityAvailable\\n price {\\n amount\\n currencyCode\\n }\\n }\\n }\\n }\\n }\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_6_fld_1_3","parentId":"wrk_1_fld_0_6","modified":1721828898,"created":1721828898,"name":"Get product selling plans","description":"","_type":"request","metaSortKey":3,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# This query gets the first 30 products, the first 5 selling plan groups associated with them, and the first 5 selling plans within the groups.\\n# We use fragments to return the price adjustments for each selling plan.\\n\\nquery getProductSellingPlans {\\n products(first: 30) {\\n pageInfo {\\n hasNextPage\\n hasPreviousPage\\n }\\n edges {\\n cursor\\n node {\\n id\\n title\\n sellingPlanGroups(first: 5) {\\n pageInfo {\\n hasNextPage\\n hasPreviousPage\\n }\\n edges {\\n cursor\\n node {\\n appName\\n name\\n options {\\n name\\n values\\n }\\n sellingPlans(first: 5) {\\n pageInfo {\\n hasNextPage\\n hasPreviousPage\\n }\\n edges {\\n cursor\\n node {\\n id\\n description\\n recurringDeliveries\\n priceAdjustments {\\n adjustmentValue {\\n ... on SellingPlanPercentagePriceAdjustment {\\n adjustmentPercentage\\n }\\n ... on SellingPlanFixedAmountPriceAdjustment {\\n adjustmentAmount {\\n amount\\n currencyCode\\n }\\n }\\n ... on SellingPlanFixedPriceAdjustment {\\n price {\\n amount\\n currencyCode\\n }\\n }\\n }\\n orderCount\\n }\\n options {\\n name\\n value\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_6_fld_1_4","parentId":"wrk_1_fld_0_6","modified":1721828898,"created":1721828898,"name":"Get product media","description":"","_type":"request","metaSortKey":4,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"\\n# This query gets 3 products and their media; we use a fragment here to specify the fields that we want to return for each possible media type.\\n# You cannot retrieve media for product variants with the Storefront API, only products. You cannot upload media, add media to a product, or delete media with the Storefront API, use the Admin API for these tasks.\\n# https://shopify.dev/tutorials/manage-product-media-with-admin-api#retrieve-product-media-by-using-the-storefront-api\\n\\nquery getProductMedia {\\n products(first: 3) {\\n edges {\\n cursor\\n node {\\n id\\n title\\n description\\n media(first: 10) {\\n edges {\\n node {\\n mediaContentType\\n alt\\n ...mediaFieldsByType\\n }\\n }\\n }\\n }\\n }\\n }\\n}\\n\\nfragment mediaFieldsByType on Media {\\n ...on ExternalVideo {\\n id\\n host\\n originUrl\\n }\\n ...on MediaImage {\\n image {\\n url\\n }\\n }\\n ...on Model3d {\\n sources {\\n url\\n mimeType\\n format\\n filesize\\n }\\n }\\n ...on Video {\\n sources {\\n url\\n mimeType\\n format\\n height\\n width\\n }\\n }\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_6_fld_1_5","parentId":"wrk_1_fld_0_6","modified":1721828898,"created":1721828898,"name":"Get product tags","description":"","_type":"request","metaSortKey":5,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# Returns product tags. This query requires the unauthenticated_read_product_tags scope, more info can be found here: https://shopify.dev/api/usage/access-scopes\\n\\nquery getProductTags {\\n productTags(first:10) {\\n edges{\\n\\t\\t\\tnode\\n\\t\\t}\\n }\\n}\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_6_fld_1_6","parentId":"wrk_1_fld_0_6","modified":1721828898,"created":1721828898,"name":"Get product types","description":"","_type":"request","metaSortKey":6,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# Returns product types. This query requires the unauthenticated_read_product_listings scope, more info can be found here: https://shopify.dev/api/usage/access-scopes\\nquery getProductTypes {\\n productTypes(first: 10) {\\n\\t\\tedges{\\n\\t\\t\\tnode\\n\\t\\t}\\n }\\n}\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_7","parentId":"wrk_1","modified":1721828898,"created":1721828898,"name":"Customers","description":"","_type":"request_group","metaSortKey":7,"resourceenvironment":{},"environmentPropertyOrder":null},{"_id":"wrk_1_fld_0_7_fld_1_0","parentId":"wrk_1_fld_0_7","modified":1721828898,"created":1721828898,"name":"Create an access token","description":"","_type":"request","metaSortKey":0,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# The Storefront API allows access to a customer’s addresses, orders and metafields. To access customers, an app must have unauthenticated_read_customers access scope.\\n\\n# To query a customer, a customerAccessToken is required. This is obtained via the customerAccessTokenCreate mutation which exchanges a user’s email address and password for an access token.\\n\\nmutation customerAccessTokenCreate($input: CustomerAccessTokenCreateInput!) {\\n customerAccessTokenCreate(input: $input) {\\n customerAccessToken {\\n accessToken\\n expiresAt\\n }\\n customerUserErrors {\\n code\\n field\\n message\\n }\\n }\\n}\\n\",\"variables\":\"{\\n \\\"input\\\": {\\n \\\"email\\\": \\\"user@example.com\\\",\\n \\\"password\\\": \\\"HiZqFuDvDdQ7\\\"\\n }\\n}\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_7_fld_1_1","parentId":"wrk_1_fld_0_7","modified":1721828898,"created":1721828898,"name":"Get customer orders","description":"","_type":"request","metaSortKey":1,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# To query a customer, a customerAccessToken is required. This is obtained via the customerAccessTokenCreate mutation which exchanges a user’s email address and password for an access token.\\n\\nquery getCustomerOrders($customerAccessToken: String!){\\n customer(customerAccessToken: $customerAccessToken) {\\n id\\n orders(first:3) {\\n edges {\\n node {\\n orderNumber\\n }\\n }\\n }\\n }\\n}\\n\\n\",\"variables\":\"{\\n \\\"customerAccessToken\\\": \\\"d794063da4e26c9b1a8d7b77bdfd6862\\\"\\n}\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_7_fld_1_2","parentId":"wrk_1_fld_0_7","modified":1721828898,"created":1721828898,"name":"Get customer metafields","description":"","_type":"request","metaSortKey":2,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# To query a customer, a customerAccessToken is required. This is obtained via the customerAccessTokenCreate mutation which exchanges a user’s email address and password for an access token.\\n\\n# By default, the Storefront API can't read metafields. To make specific metafields visible in the Storefront API, you need to create a MetafieldStorefrontVisibility record. See metafields/expose_metafield_to_SFAPI query for more details: # https://github.com/Shopify/storefront-api-learning-kit/tree/main/examples/05_collections/05_get_all_metafields_for_namespace_in_collection\\n\\n# If you would like to know more regarding metafields, check out this dev doc #https://shopify.dev/tutorials/retrieve-metafields-with-storefront-api#expose-metafields-to-the-storefront-api\\n\\n# Identifiers are used to identify the metafields associated with the resource matching the supplied list of namespaces and keys.\\n\\n# To know more about metafields, please navigate to metafields directory of this repo to get more information.\\n\\nquery CustomerMetafields($customerAccessToken: String!, $identifiers: [HasMetafieldsIdentifier!]!){\\n customer(customerAccessToken: $customerAccessToken) {\\n id\\n email\\n metafields (identifiers:$identifiers) {\\n\\t\\t\\tid\\n\\t\\t\\tkey\\n\\t\\t\\tvalue\\n\\t\\t\\tnamespace\\n\\t\\t\\ttype\\n }\\n }\\n}\\n\\n\",\"variables\":\"{\\n\\t\\\"customerAccessToken\\\": \\\"7cd6d36137f41d57bb8e85ae0d178d60\\\",\\n\\t\\\"identifiers\\\": [\\n\\t\\t{\\n\\t\\t\\t\\\"namespace\\\": \\\"Membership\\\",\\n\\t\\t\\t\\\"key\\\": \\\"VIP level\\\"\\n\\t\\t},\\n\\t\\t{\\n\\t\\t\\t\\\"namespace\\\": \\\"Membership\\\",\\n\\t\\t\\t\\\"key\\\": \\\"startDate\\\"\\n\\t\\t},\\n {\\n\\t\\t\\t\\\"namespace\\\": \\\"note\\\",\\n\\t\\t\\t\\\"key\\\": \\\"preference\\\"\\n\\t\\t}\\n\\t]\\n}\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_7_fld_1_3","parentId":"wrk_1_fld_0_7","modified":1721828898,"created":1721828898,"name":"Update customer","description":"","_type":"request","metaSortKey":3,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# To query a customer, a customerAccessToken is required. This is obtained via the customerAccessTokenCreate mutation which exchanges a user’s email address and password for an access token.\\n\\nmutation customerUpdate($customerAccessToken: String!, $customer: CustomerUpdateInput!) {\\n customerUpdate(customerAccessToken: $customerAccessToken, customer: $customer) {\\n customer {\\n id\\n }\\n customerAccessToken {\\n accessToken\\n expiresAt\\n }\\n customerUserErrors {\\n code\\n field\\n message\\n }\\n }\\n}\\n\\n\",\"variables\":\"{\\n \\\"customerAccessToken\\\": \\\"d794063da4e26c9b1a8d7b77bdfd6862\\\",\\n \\\"customer\\\": {\\n \\\"phone\\\": \\\"+61401425227\\\"\\n }\\n}\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_7_fld_1_4","parentId":"wrk_1_fld_0_7","modified":1721828898,"created":1721828898,"name":"Create customer","description":"","_type":"request","metaSortKey":4,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# This mutation will create a customer account with password for the customer to login.\\n\\nmutation createCustomerAccount($input: CustomerCreateInput!) {\\n customerCreate(input: $input) {\\n customer {\\n id\\n email\\n firstName\\n lastName\\n phone\\n }\\n customerUserErrors {\\n code\\n field\\n message\\n }\\n }\\n}\\n\",\"variables\":\"{\\n \\\"input\\\": {\\n \\\"acceptsMarketing\\\": true,\\n \\\"email\\\": \\\"example@example.com\\\",\\n \\\"firstName\\\": \\\"John\\\",\\n \\\"lastName\\\": \\\"Smith\\\",\\n \\\"password\\\": \\\"qwerty12345\\\",\\n \\\"phone\\\": \\\"+64213444048\\\"\\n }\\n }\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_7_fld_1_5","parentId":"wrk_1_fld_0_7","modified":1721828898,"created":1721828898,"name":"Activate customer","description":"","_type":"request","metaSortKey":5,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# Once a customer account is created, an email will be sent to the customer with the account activation url. This mutation will use the activationToken from the activation url to active the customer account. \\n# You can also use the activation url directly to activate the customer account. See customerActivateByUrl mutation https://shopify.dev/api/storefront/2023-01/mutations/customerActivateByUrl\\n\\nmutation activateCustomerAccount($id: ID!, $input: CustomerActivateInput!) {\\n customerActivate(id: $id, input: $input) {\\n customer {\\n id\\n email\\n firstName\\n lastName\\n phone\\n }\\n customerAccessToken {\\n accessToken\\n expiresAt\\n }\\n customerUserErrors {\\n code\\n field\\n message\\n }\\n }\\n}\\n\\n\",\"variables\":\"{\\n\\t\\\"id\\\": \\\"gid://shopify/Customer/5820694691862\\\",\\n\\t\\\"input\\\": {\\n\\t\\t\\\"activationToken\\\": \\\"da48cbd301e7c31a9d5dca03fcf5cdb6-1671054502\\\",\\n\\t\\t\\\"password\\\": \\\"qwerty12345\\\"\\n\\t}\\n}\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_7_fld_1_6","parentId":"wrk_1_fld_0_7","modified":1721828898,"created":1721828898,"name":"Recover customer","description":"","_type":"request","metaSortKey":6,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# This mutation will send a email to customer to reset password of the customer account.\\n\\n# Note that this mutation is throttled by IP. if you are using authenticated access, you can pass a Shopify-Storefront-Buyer-IP header to enable the IP based throttling that will protect your app from any single user, such as a bot, consuming too much capacity.\\n\\nmutation recoverCustomerAccount($email: String!) {\\n customerRecover(email: $email) {\\n customerUserErrors {\\n code\\n field\\n message\\n }\\n }\\n}\\n\\n\\n\",\"variables\":\"{\\n\\t\\\"email\\\":\\\"example@example.com\\\"\\n}\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_7_fld_1_7","parentId":"wrk_1_fld_0_7","modified":1721828898,"created":1721828898,"name":"Reset customer","description":"","_type":"request","metaSortKey":7,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# This mutation is used to reset the customer account password. After sending recoverCustomerAccount request, the customer will receive an email with an account recovery url for resetting customer account. This url will include the customer id and resetToken.\\n# You can also use the url directly to reset the customer account. See customerResetByUrl mutation https://shopify.dev/api/storefront/2022-10/mutations/customerResetByUrl\\n\\nmutation resetCustomerAccount($id: ID!, $input: CustomerResetInput!) {\\n customerReset(id: $id, input: $input) {\\n customer {\\n id\\n email\\n firstName\\n lastName\\n phone\\n }\\n customerAccessToken {\\n accessToken\\n expiresAt\\n }\\n customerUserErrors {\\n code\\n field\\n message\\n }\\n }\\n}\\n\",\"variables\":\"{\\n\\t\\\"id\\\": \\\"gid://shopify/Customer/5820694691862\\\",\\n\\t\\\"input\\\": {\\n\\t\\t\\\"password\\\": \\\"12345qwerty\\\",\\n\\t\\t\\\"resetToken\\\": \\\"2279f05aebbb8319553e46f2b71c88c7-1671131136\\\"\\n\\t}\\n}\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_7_fld_1_8","parentId":"wrk_1_fld_0_7","modified":1721828898,"created":1721828898,"name":"Create customer address","description":"","_type":"request","metaSortKey":8,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# To query a customer, a customerAccessToken is required. This is obtained via the customerAccessTokenCreate mutation which exchanges a user’s email address and password for an access token.\\n\\n# This request will create a new address that appends to the current address array of the customer record.\\n\\nmutation customerAddressCreate($customerAccessToken: String!, $address: MailingAddressInput!) {\\n customerAddressCreate(customerAccessToken: $customerAccessToken, address: $address) {\\n customerUserErrors {\\n code\\n field\\n message\\n }\\n customerAddress {\\n id\\n }\\n }\\n}\",\"variables\":\"{\\n\\t\\\"customerAccessToken\\\": \\\"7cd6d36137f41d57bb8e85ae0d178d60\\\",\\n\\t\\\"address\\\": {\\n\\t\\t\\\"lastName\\\": \\\"Smith\\\",\\n\\t\\t\\\"firstName\\\": \\\"Mary\\\",\\n\\t\\t\\\"address1\\\": \\\"123 Test Street\\\",\\n\\t\\t\\\"province\\\": \\\"ON\\\",\\n\\t\\t\\\"country\\\": \\\"Canada\\\",\\n\\t\\t\\\"zip\\\": \\\"M5T1G4\\\",\\n\\t\\t\\\"city\\\": \\\"Toronto\\\"\\n\\t}\\n}\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_8","parentId":"wrk_1","modified":1721828898,"created":1721828898,"name":"Manage a cart","description":"","_type":"request_group","metaSortKey":8,"resourceenvironment":{},"environmentPropertyOrder":null},{"_id":"wrk_1_fld_0_8_fld_1_0","parentId":"wrk_1_fld_0_8","modified":1721828898,"created":1721828898,"name":"Create a cart with one line item","description":"","_type":"request","metaSortKey":0,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# This mutation creates a cart and returns information about the cart to ensure it's correct (id, lines, product variant id, etc) as well as some information about the cart you may want (e.g. cost, subtotalAmount, totalTaxAmount, totalDutyAmount). The checkoutUrl object contains the url of the checkout for the created cart\\nmutation createCart($cartInput: CartInput) {\\n cartCreate(input: $cartInput) {\\n cart {\\n id\\n createdAt\\n updatedAt\\n checkoutUrl\\n lines(first: 10) {\\n edges {\\n node {\\n id\\n merchandise {\\n ... on ProductVariant {\\n id\\n }\\n }\\n }\\n }\\n }\\n attributes {\\n key\\n value\\n }\\n cost {\\n totalAmount {\\n amount\\n currencyCode\\n }\\n subtotalAmount {\\n amount\\n currencyCode\\n }\\n totalTaxAmount {\\n amount\\n currencyCode\\n }\\n totalDutyAmount {\\n amount\\n currencyCode\\n }\\n }\\n }\\n }\\n}\\n\",\"variables\":\"{\\n \\\"cartInput\\\": {\\n \\\"lines\\\": [\\n {\\n \\\"quantity\\\": 1,\\n \\\"merchandiseId\\\": \\\"gid://shopify/ProductVariant/123\\\"\\n\\t\\t }\\n\\t\\t],\\n\\t\\t\\\"attributes\\\": {\\n\\t\\t \\\"key\\\": \\\"cart_attribute_key\\\",\\n\\t\\t \\\"value\\\": \\\"This is a cart attribute value\\\"\\n }\\n }\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_8_fld_1_1","parentId":"wrk_1_fld_0_8","modified":1721828898,"created":1721828898,"name":"Query a cart","description":"","_type":"request","metaSortKey":1,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# Query a cart by id and return some of the cart's objects. See documentation here for comprehensive list: https://shopify.dev/api/storefront/latest/queries/cart \\nquery cartQuery($cartId: ID!) {\\n cart(id: $cartId) {\\n id\\n createdAt\\n updatedAt\\n checkoutUrl\\n lines(first: 10) {\\n edges {\\n node {\\n id\\n quantity\\n merchandise {\\n ... on ProductVariant {\\n id\\n }\\n }\\n attributes {\\n key\\n value\\n }\\n }\\n }\\n }\\n attributes {\\n key\\n value\\n }\\n cost {\\n totalAmount {\\n amount\\n currencyCode\\n }\\n subtotalAmount {\\n amount\\n currencyCode\\n }\\n totalTaxAmount {\\n amount\\n currencyCode\\n }\\n totalDutyAmount {\\n amount\\n currencyCode\\n }\\n }\\n buyerIdentity {\\n email\\n phone\\n customer {\\n id\\n }\\n countryCode\\n }\\n }\\n}\\n\",\"variables\":\"{\\n \\\"cartId\\\": \\\"gid://shopify/Cart/50b74bf9dc2bc7a410053b5ffb31ba51\\\"\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_8_fld_1_2","parentId":"wrk_1_fld_0_8","modified":1721828898,"created":1721828898,"name":"Update line items","description":"","_type":"request","metaSortKey":2,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# This mutation is used to add a product variant of the same type to the cart. In the below example, the quantity of the variant (in variables.json) is increased and the id and quantity are returned to confirm they are correct.\\nmutation updateCartLines($cartId: ID!, $lines: [CartLineUpdateInput!]!) {\\n cartLinesUpdate(cartId: $cartId, lines: $lines) {\\n cart {\\n id\\n lines(first: 10) {\\n edges {\\n node {\\n id\\n quantity\\n merchandise {\\n ... on ProductVariant {\\n id\\n }\\n }\\n }\\n }\\n }\\n cost {\\n totalAmount {\\n amount\\n currencyCode\\n }\\n subtotalAmount {\\n amount\\n currencyCode\\n }\\n totalTaxAmount {\\n amount\\n currencyCode\\n }\\n totalDutyAmount {\\n amount\\n currencyCode\\n }\\n }\\n }\\n }\\n}\\n\",\"variables\":\"{\\n \\\"cartId\\\": \\\"gid://shopify/Cart/50b74bf9dc2bc7a410053b5ffb31ba51\\\",\\n \\\"lines\\\": {\\n \\\"id\\\": \\\"gid://shopify/CartLine/7b9ed49f-830e-4142-9c81-e7f8249863ad?cart=50b74bf9dc2bc7a410053b5ffb31ba51\\\",\\n \\\"quantity\\\": 3\\n }\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_8_fld_1_3","parentId":"wrk_1_fld_0_8","modified":1721828898,"created":1721828898,"name":"Update buyer identity","description":"","_type":"request","metaSortKey":3,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# cartBuyerIdentityUpdate is used to associate customer info with a cart and is used to determine international pricing. The below example is updating the buyerIdentity and returning the info (email, phone, delivery address preferences) to ensure that it updated correctly\\nmutation updateCartBuyerIdentity($buyerIdentity: CartBuyerIdentityInput!, $cartId: ID!) {\\n cartBuyerIdentityUpdate(buyerIdentity: $buyerIdentity, cartId: $cartId) {\\n cart {\\n\\t\\t\\tid\\n\\t\\t\\tbuyerIdentity {\\n\\t\\t\\t\\temail\\n\\t\\t\\t\\tphone\\n\\t\\t\\t\\tdeliveryAddressPreferences {\\n\\t\\t\\t\\t\\t... on MailingAddress {\\n\\t\\t\\t\\t\\t\\taddress1\\n\\t\\t\\t\\t\\t\\tcity\\n\\t\\t\\t\\t\\t\\tcountry\\n\\t\\t\\t\\t\\t\\tfirstName\\n\\t\\t\\t\\t\\t\\tlastName\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n }\\n userErrors {\\n field\\n message\\n }\\n }\\n}\\n\",\"variables\":\"{\\n\\t\\\"buyerIdentity\\\": {\\n\\t\\t\\\"countryCode\\\": \\\"CA\\\",\\n\\t\\t\\\"deliveryAddressPreferences\\\": [\\n\\t\\t\\t{\\n\\t\\t\\t\\t\\\"deliveryAddress\\\": {\\n\\t\\t\\t\\t\\t\\\"address1\\\": \\\"123 Fake St.\\\",\\n\\t\\t\\t\\t\\t\\\"city\\\": \\\"Toronto\\\",\\n\\t\\t\\t\\t\\t\\\"company\\\": \\\"Shopify\\\",\\n\\t\\t\\t\\t\\t\\\"country\\\": \\\"Canada\\\",\\n\\t\\t\\t\\t\\t\\\"firstName\\\": \\\"Alice\\\",\\n\\t\\t\\t\\t\\t\\\"lastName\\\": \\\"Bob\\\",\\n\\t\\t\\t\\t\\t\\\"province\\\": \\\"ON\\\"\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t],\\n\\t\\t\\\"email\\\": \\\"example-email@shopify.com\\\"\\n\\t},\\n\\t\\\"cartId\\\": \\\"gid://shopify/Cart/684d5f8c6e463f6057e77c15e34082f0\\\"\\n}\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_8_fld_1_4","parentId":"wrk_1_fld_0_8","modified":1721828898,"created":1721828898,"name":"Retrieve checkout url","description":"","_type":"request","metaSortKey":4,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# Query gets cart by id and returns the cart's checkoutURL. That url directs you to the web checkout flow. More info here: https://shopify.dev/custom-storefronts/checkout/create#shopify-web-checkout\\nquery checkoutURL($cartId: ID!) {\\n cart(id: $cartId) {\\n checkoutUrl\\n }\\n}\\n\",\"variables\":\"{\\n \\\"cartId\\\": \\\"gid://shopify/Cart/50b74bf9dc2bc7a410053b5ffb31ba51\\\"\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_8_fld_1_5","parentId":"wrk_1_fld_0_8","modified":1721828898,"created":1721828898,"name":"Update cart discount codes","description":"","_type":"request","metaSortKey":5,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# This mutation updates the discount codes applied to a given cart and returns the cart id and discountCodes' 'code' and 'applicable' fields\\nmutation updateCartDiscountCodes($cartId: ID!, $discountCodes: [String!] ) {\\n cartDiscountCodesUpdate(cartId: $cartId, discountCodes: $discountCodes) {\\n cart {\\n id\\n discountCodes{\\n code\\n applicable\\n }\\n cost {\\n totalAmount {\\n amount\\n currencyCode\\n }\\n subtotalAmount {\\n amount\\n currencyCode\\n }\\n totalTaxAmount {\\n amount\\n currencyCode\\n }\\n totalDutyAmount {\\n amount\\n currencyCode\\n }\\n } \\n }\\n\\n userErrors {\\n field\\n message\\n }\\n }\\n}\",\"variables\":\"{\\n\\t\\\"cartId\\\": \\\"gid://shopify/Cart/50b74bf9dc2bc7a410053b5ffb31ba51\\\",\\n\\t\\\"discountCodes\\\": [\\n\\t\\t\\\"10_OFF\\\"\\n\\t]\\n}\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_8_fld_1_6","parentId":"wrk_1_fld_0_8","modified":1721828898,"created":1721828898,"name":"Update cart attributes","description":"","_type":"request","metaSortKey":6,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# Updates the attributes of a given cart. Cart attributes are used to store info that isn't included in the existing cart fields. The variables for this mutation provide an example of such a use case i.e. \\\"attributes\\\": {\\n# \\\"key\\\": \\\"gift_wrap\\\",\\n# \\\"value\\\": \\\"true\\\"\\n# }\\n# The key/value can be passed as an object or objects in an array, but in either case the update overwrites the existing attributes.\\nmutation updateCartAttributes($attributes: [AttributeInput!]!, $cartId: ID!) {\\n cartAttributesUpdate(attributes: $attributes, cartId: $cartId) {\\n cart {\\n id\\n attributes{\\n key\\n value\\n }\\n }\\n userErrors {\\n field\\n message\\n }\\n }\\n}\",\"variables\":\"{\\n \\\"attributes\\\": {\\n \\\"key\\\": \\\"gift_wrap\\\",\\n \\\"value\\\": \\\"true\\\"\\n },\\n \\\"cartId\\\": \\\"gid://shopify/Cart/50b74bf9dc2bc7a410053b5ffb31ba51\\\"\\n }\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_8_fld_1_7","parentId":"wrk_1_fld_0_8","modified":1721828898,"created":1721828898,"name":"Update cart note","description":"","_type":"request","metaSortKey":7,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# Updates cart note, returns cart id and note. Notes are similiar to cart attributes in that they contain additional info about an order. However, notes can be a string whereas attributes require key/value pairs. \\nmutation updateCartNote($cartId: ID!) {\\n cartNoteUpdate(cartId: $cartId) {\\n cart {\\n id\\n note\\n\\n }\\n userErrors {\\n field\\n message\\n }\\n }\\n}\",\"variables\":\"{\\n\\t\\\"cartId\\\": \\\"gid://shopify/Cart/50b74bf9dc2bc7a410053b5ffb31ba51\\\",\\n\\t\\\"note\\\": \\\"This is a test note\\\"\\n}\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_8_fld_1_8","parentId":"wrk_1_fld_0_8","modified":1721828898,"created":1721828898,"name":"Remove cart lines","description":"","_type":"request","metaSortKey":8,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# Remove lines from existing cart. Use the cost, subtotal, etc or userError message to confirm that the correct line has been removed. The userError message will let you know if the line in the request does not exist. \\nmutation removeCartLines($cartId: ID!, $lineIds: [ID!]!) {\\n cartLinesRemove(cartId: $cartId, lineIds: $lineIds) {\\n cart {\\n id\\n lines(first: 10){\\n edges\\n {\\n node{\\n quantity\\n merchandise{\\n ... on ProductVariant { \\n id\\n }\\n }\\n }\\n }\\n }\\n cost {\\n totalAmount {\\n amount\\n currencyCode\\n }\\n subtotalAmount {\\n amount\\n currencyCode\\n }\\n totalTaxAmount {\\n amount\\n currencyCode\\n }\\n totalDutyAmount {\\n amount\\n currencyCode\\n }\\n } \\n }\\n \\n userErrors {\\n field\\n message\\n }\\n }\\n}\",\"variables\":\"{\\n\\t\\\"cartId\\\": \\\"gid://shopify/Cart/50b74bf9dc2bc7a410053b5ffb31ba51\\\",\\n\\t\\\"lineIds\\\": [\\n\\t\\t\\\"gid://shopify/CartLine/7b9ed49f-830e-4142-9c81-e7f8249863ad?cart=50b74bf9dc2bc7a410053b5ffb31ba51\\\"\\n\\t]\\n}\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_8_fld_1_9","parentId":"wrk_1_fld_0_8","modified":1721828898,"created":1721828898,"name":"Add cart lines","description":"","_type":"request","metaSortKey":9,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# This mutation adds lines to existing cart, returns the quantity and product id. This mutation also accepts sellingPlanId \\nmutation addCartLines($cartId: ID!, $lines: [CartLineInput!]!) {\\n cartLinesAdd(cartId: $cartId, lines: $lines) {\\n cart {\\n id\\n lines(first: 10){\\n edges\\n {\\n node{\\n quantity\\n merchandise{\\n ... on ProductVariant { \\t\\t\\t\\t\\t\\t\\n id\\n }\\n }\\n }\\n }\\n }\\n cost {\\n totalAmount {\\n amount\\n currencyCode\\n }\\n subtotalAmount {\\n amount\\n currencyCode\\n }\\n totalTaxAmount {\\n amount\\n currencyCode\\n }\\n totalDutyAmount {\\n amount\\n currencyCode\\n }\\n } \\n}\\n\\n\\n userErrors {\\n field\\n message\\n }\\n }\\n}\\n\",\"variables\":\"{\\n\\t\\\"cartId\\\": \\\"gid://shopify/Cart/e623277ec9e65c98f583268f06900ce7\\\",\\n\\t\\\"lines\\\": {\\n\\t\\t\\\"merchandiseId\\\": \\\"gid://shopify/ProductVariant/40993523892280\\\",\\n\\t\\t\\\"quantity\\\": 3\\n\\t}\\n}\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_9","parentId":"wrk_1","modified":1721828898,"created":1721828898,"name":"Shop content","description":"","_type":"request_group","metaSortKey":9,"resourceenvironment":{},"environmentPropertyOrder":null},{"_id":"wrk_1_fld_0_9_fld_1_0","parentId":"wrk_1_fld_0_9","modified":1721828898,"created":1721828898,"name":"Get shop policies","description":"","_type":"request","metaSortKey":0,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"\\n# The ShopPolicy object represents a policy that a merchant has configured for their store, such as their refund or privacy policy.\\n\\n# This query displays the different shop policies that can be returned using the Storefront API.\\n\\nquery getShopPolicies {\\n\\tshop {\\n\\t\\tprivacyPolicy {\\n\\t\\t\\tid\\n\\t\\t\\tbody # Policy text, maximum size of 64kb.\\n\\t\\t\\ttitle\\n\\t\\t}\\n\\t\\trefundPolicy {\\n\\t\\t\\tid\\n\\t\\t\\tbody\\n\\t\\t\\ttitle\\n\\t\\t}\\n\\t\\tshippingPolicy {\\n\\t\\t\\tid\\n\\t\\t\\tbody\\n\\t\\t\\ttitle\\n\\t\\t}\\n\\t\\ttermsOfService {\\n\\t\\t\\tid\\n\\t\\t\\tbody\\n\\t\\t\\ttitle\\n\\t\\t}\\n\\t\\tsubscriptionPolicy {\\n\\t\\t\\tid\\n\\t\\t\\tbody\\n\\t\\t\\ttitle\\n\\t\\t}\\n\\t}\\n}\\n\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_9_fld_1_1","parentId":"wrk_1_fld_0_9","modified":1721828898,"created":1721828898,"name":"Get blog by handle","description":"","_type":"request","metaSortKey":1,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# The blog object is an blog published to the online store channel.\\n\\n# Each store can have multiple blogs, and each blog can have many articles (blog posts).\\n\\n# This query fetches a specific blog by it's handle and returns the blog along with it's associated articles.\\n\\n# Blogs are meant to be used as a type of magazine or newsletter for the shop, with content that changes over time.\\n\\n# If your shop needs a static page (such as an \\\"About Us\\\" page), we recommend that you use a Page instead.\\n\\nquery getBlogByHandle($handle: String!) {\\n\\tblog(handle: $handle) {\\n\\t\\tid\\n\\t\\ttitle\\n\\t\\tarticles(first: 5) {\\n\\t\\t\\tedges {\\n\\t\\t\\t\\tnode {\\n\\t\\t\\t\\t\\tid\\n\\t\\t\\t\\t\\ttitle\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"variables\":\"{\\n\\t\\\"handle\\\": \\\"my-blog\\\"\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_9_fld_1_2","parentId":"wrk_1_fld_0_9","modified":1721828898,"created":1721828898,"name":"Get page by handle","description":"","_type":"request","metaSortKey":2,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# The page object represents a custom page on the online store.\\n\\n# Shopify merchants can create pages to hold static HTML content such as an 'About Us' page.\\n\\n# This simple query fetches a page by it's handle and returns the title and description of the page, complete with HTML formatting.\\n\\nquery getPageByHandle($handle: String!) {\\n\\tpage(handle: $handle) {\\n\\t\\tid\\n\\t\\ttitle\\n body # The description of the page, complete with HTML formatting.\\n\\t}\\n}\\n\",\"variables\":\"{\\n\\t\\\"handle\\\": \\\"my-page\\\"\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_10","parentId":"wrk_1","modified":1721828898,"created":1721828898,"name":"B2B","description":"","_type":"request_group","metaSortKey":10,"resourceenvironment":{},"environmentPropertyOrder":null},{"_id":"wrk_1_fld_0_10_fld_1_0","parentId":"wrk_1_fld_0_10","modified":1721828898,"created":1721828898,"name":"Get contextualized products","description":"","_type":"request","metaSortKey":0,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# Including the buyer argument on the @inContext directive will contextualize any storefront queries for a B2B customer.\\n\\n# With a contextualized query, you can access a quantityRule and quantityPriceBreaks on a product variant, as well as get a price that's contextualized for the B2B customer.\\n\\n# The customerAccessToken and companyLocationId in the BuyerInput are obtained from the Customers API. For details on how to obtain those, see [Headless with B2B](https://shopify.dev/docs/storefronts/headless/bring-your-own-stack/b2b)\\n\\nquery getB2BProducts ($buyer: BuyerInput) @inContext(buyer: $buyer) {\\n products(first: 5) {\\n nodes {\\n id\\n variants(first: 5) {\\n nodes {\\n id\\n price\\n quantityRule {\\n maximum\\n minimum\\n increment\\n }\\n quantityPriceBreaks(first: 5) {\\n nodes {\\n minimumQuantity\\n price {\\n amount\\n currencyCode\\n }\\n }\\n }\\n }\\n }\\n }\\n }\\n}\\n\",\"variables\":\"{\\n \\\"buyer\\\": {\\n \\\"customerAccessToken\\\": \\\"shpsb_eyJh123456789\\\",\\n \\\"companyLocationId\\\": \\\"gid://shopify/CompanyLocation/10079785100\\\"\\n }\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"},{"_id":"wrk_1_fld_0_10_fld_1_1","parentId":"wrk_1_fld_0_10","modified":1721828898,"created":1721828898,"name":"Create a cart with buyer identity","description":"","_type":"request","metaSortKey":1,"url":"https://{{ _.base_url }}/api/{{ _.api_version }}/graphql.json","method":"POST","body":{"mimeType":"application/graphql","text":"{\"query\":\"# Including the buyerIdentity of a B2B customer will create a contexualized cart. Checkouts made with this cart will be B2B checkouts.\\n\\n# The customerAccessToken and companyLocationId in the buyerIdentity are obtained from the Customers API. For details on how to obtain those, see [Headless with B2B](https://shopify.dev/docs/storefronts/headless/bring-your-own-stack/b2b)\\n\\nmutation createCart($cartInput: CartInput) {\\n cartCreate(input: $cartInput) {\\n cart {\\n id\\n createdAt\\n updatedAt\\n buyerIdentity {\\n email\\n phone\\n customer {\\n id\\n }\\n countryCode\\n }\\n }\\n }\\n}\\n\",\"variables\":\"{\\n \\\"cartInput\\\": {\\n \\\"buyerIdentity\\\": {\\n \\\"customerAccessToken\\\": \\\"shpsb_eyJh123456789\\\",\\n \\\"companyLocationId\\\": \\\"gid://shopify/CompanyLocation/10079785100\\\"\\n }\\n }\\n}\\n\"}"},"parameters":[],"headers":[{"name":"Content-Type","value":"application/json","id":"pair_1"},{"name":"X-Shopify-Storefront-Access-Token","value":"{{ _.storefront_access_token }}","description":"","id":"pair_2"}],"authentication":{},"isPrivate":false,"settingStoreCookies":false,"settingSendCookies":false,"settingDisableRenderRequestBody":false,"settingEncodeUrl":true,"settingRebuildPath":true,"settingFollowRedirects":"global"}]} \ No newline at end of file diff --git a/examples/10_B2B/01_get_contextualized_products/query.graphql b/examples/10_B2B/01_get_contextualized_products/query.graphql new file mode 100644 index 0000000..c8ceb82 --- /dev/null +++ b/examples/10_B2B/01_get_contextualized_products/query.graphql @@ -0,0 +1,33 @@ +# Including the buyer argument on the @inContext directive will contextualize any storefront queries for a B2B customer. + +# With a contextualized query, you can access a quantityRule and quantityPriceBreaks on a product variant, as well as get a price that's contextualized for the B2B customer. + +# The customerAccessToken and companyLocationId in the BuyerInput are obtained from the Customers API. For details on how to obtain those, see [Headless with B2B](https://shopify.dev/docs/storefronts/headless/bring-your-own-stack/b2b) + +query getB2BProducts ($buyer: BuyerInput) @inContext(buyer: $buyer) { + products(first: 5) { + nodes { + id + variants(first: 5) { + nodes { + id + price + quantityRule { + maximum + minimum + increment + } + quantityPriceBreaks(first: 5) { + nodes { + minimumQuantity + price { + amount + currencyCode + } + } + } + } + } + } + } +} diff --git a/examples/10_B2B/01_get_contextualized_products/variables.json b/examples/10_B2B/01_get_contextualized_products/variables.json new file mode 100644 index 0000000..79f4249 --- /dev/null +++ b/examples/10_B2B/01_get_contextualized_products/variables.json @@ -0,0 +1,6 @@ +{ + "buyer": { + "customerAccessToken": "shpsb_eyJh123456789", + "companyLocationId": "gid://shopify/CompanyLocation/10079785100" + } +} diff --git a/examples/10_B2B/02_create_a_cart_with_buyer_identity/query.graphql b/examples/10_B2B/02_create_a_cart_with_buyer_identity/query.graphql new file mode 100644 index 0000000..5d2eee4 --- /dev/null +++ b/examples/10_B2B/02_create_a_cart_with_buyer_identity/query.graphql @@ -0,0 +1,21 @@ +# Including the buyerIdentity of a B2B customer will create a contexualized cart. Checkouts made with this cart will be B2B checkouts. + +# The customerAccessToken and companyLocationId in the buyerIdentity are obtained from the Customers API. For details on how to obtain those, see [Headless with B2B](https://shopify.dev/docs/storefronts/headless/bring-your-own-stack/b2b) + +mutation createCart($cartInput: CartInput) { + cartCreate(input: $cartInput) { + cart { + id + createdAt + updatedAt + buyerIdentity { + email + phone + customer { + id + } + countryCode + } + } + } +} diff --git a/examples/10_B2B/02_create_a_cart_with_buyer_identity/variables.json b/examples/10_B2B/02_create_a_cart_with_buyer_identity/variables.json new file mode 100644 index 0000000..7219df8 --- /dev/null +++ b/examples/10_B2B/02_create_a_cart_with_buyer_identity/variables.json @@ -0,0 +1,8 @@ +{ + "cartInput": { + "buyerIdentity": { + "customerAccessToken": "shpsb_eyJh123456789", + "companyLocationId": "gid://shopify/CompanyLocation/10079785100" + } + } +}