how to create metafield in shopify

Shopify API: How to Create Metafield for a Product

You can use the Metafield resource to add extra information to other Admin API resources. Metafields can be used for a variety of purposes, like adding a summary to a blog article. Metafields can also be used to share data with other Shopify apps. I will show you how to create metafield with Shopify API using Postman.

Step 1 : Generate API credentials from the Shopify admin

shopify dashboard
  • Click Create a new private app
  • In the App details section, enter a name for your app, and an emergency developer email
  • In the Admin API section, select the areas of your store that you want the app to access
 Admin API section shopify
  • Click Save

The Admin API section displays the app’s API key and password when you save the app’s details. In the next step, you’ll use these credentials to make authorized requests.

Step 2: Retrieve product id with Postman

You can use the API key and password that you generated for the basic HTTP authorization of your request. The URL format for basic authorization is as follows:

https://{username}:{password}@{shop}.myshopify.com/admin/api/{api-version}/{resource}.json
  1. {username} – The API key that you generated.
  2. {password} – The API password that you generated.
  3. {shop} – The name of your development store.
  4. {api-version} – The supported API version that you want to use.
  5. {resource} – A resource endpoint from the REST Admin API.

Or you can copy the Example URL in the Admin API section. Remember to change {resource} to products.

https://e175161fa050aa637380b9500e857ea0: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@hexasync.myshopify.com/admin/api/2021-07/products.json
 Admin API section
  • Log in to your Postman and create new workspace
  • Paste the URL above and click Get
postman example
  • Find the product you want to create metafield and copy its ID

For example, my product id is 4922900381759

Step 3: Create metafield with product id

  • Open a new tab in Postman and change the URL with this Endpoint
POST /products/#{id}/metafields.json

For example, my URL:

https://e175161fa050aa637380b9500e857ea0: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@hexasync.myshopify.com/admin/api/2021-07/products/4922900381759/metafields.json
  • In the Body section, click raw and choose JSON
postman body example
  • Enter this code
{
  "metafield": {
    "namespace": "newvalue",
    "key": "Image 1 Path",
    "value": "https://drive.google.com/file/d/1aUzK8PQ7qrDvz6sc1YfuoBl7m9uj1nFQ/view",
    "type": "string"
  }
}
  1. {namesapce} – A container for a set of metafields. You need to define a custom namespace for your metafields to distinguish them from the metafields used by other apps. Minimum length: 2 characters. Maximum length: 20 characters.
  2. {key} – The name of the metafield. Minimum length: 3 characters. Maximum length: 30 characters.
  3. {value} – The information to be stored as metadata.
  4. {type} – The metafield’s information type. See the full list of types.
metafield code postman example
  • Click Get

Response

{
    "metafield": {
        "id": 19203610017855,
        "namespace": "newvalue",
        "key": "Image 1 Path",
        "value": "https://drive.google.com/file/d/1aUzK8PQ7qrDvz6sc1YfuoBl7m9uj1nFQ/view",
        "value_type": "string",
        "description": null,
        "owner_id": 4922900381759,
        "created_at": "2021-07-22T12:42:44+09:00",
        "updated_at": "2021-07-22T12:42:44+09:00",
        "owner_resource": "product",
        "type": "string",
        "admin_graphql_api_id": "gid://shopify/Metafield/19203610017855"
    }
}
result metafield postman example

The source of this metafield is an image I save on my Google drive. You can create as much as metafields as you want, just change the {key} value.

I have just provided you with three steps on how to create Metafield using Shopify API. I hope it would be helpful for you when using the Shopify API. For more information, you can refer to our DevDocs.

Share on facebook
Share on google
Share on twitter
Share on linkedin
Share on pinterest
Share on print
Share on email