# Update Metafield — Shopify 

> Updates the value of an existing metafield on a Shopify resource (product, customer, order, etc.) via the metafieldsSet mutation. Use this to change custom data stored on a record you've already identified. Select the owner resource and…

- Key: `shopify-update-metafield`
- Type: Action (Write)
- Version: 0.0.21
- App: Shopify  (`shopify`) — https://pipedream.com/apps/shopify.md
- This page (HTML): https://pipedream.com/apps/shopify/actions/update-metafield
- Hints: destructive · open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/shopify/actions/update-metafield/update-metafield.mjs

## Description

Updates the value of an existing metafield on a Shopify resource (product, customer, order, etc.) via the `metafieldsSet` mutation. Use this to change custom data stored on a record you've already identified. Select the owner resource and record, then the specific metafield to update, and provide the new value. This action resolves the selected metafield and reuses its existing `namespace`, `key`, and `type` — only the value is changed, and the metafield must already exist. The value must be a string serialized to the metafield's `type` — for example `10` for `number_integer`, `{"color":"red"}` for `json`, or `2026-08-12` for `date`. To discover a resource's metafields first, use a list/get metafields action. [See the documentation](https://shopify.dev/docs/api/admin-graphql/latest/mutations/metafieldsSet)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `ownerResource` | `string` | Yes | Filter by the resource type on which the metafield is attached to |

## Run it

**MCP**

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_PROJECT_ID!,
        "x-pd-environment": "production",
        "x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
        "x-pd-app-slug": "shopify",
      },
    },
  },
)

const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)

const { tools } = await mcp.listTools()

// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
  name: "shopify-update-metafield",
  arguments: {
    ownerResource: "Resource Type",
  },
})
```

**TypeScript**

```ts
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "shopify-update-metafield",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    shopify: { authProvisionId: "apn_xxxxxxx" },
    ownerResource: "Resource Type",
  },
})

console.log(result)
```

**cURL**

```bash
curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
  -H "Content-Type: application/json" \
  -H "X-PD-Environment: production" \
  -H "Authorization: Bearer {access_token}" \
  -d '{
    "external_user_id": "{external_user_id}",
    "id": "shopify-update-metafield",
    "configured_props": {
      "shopify": { "authProvisionId": "apn_xxxxxxx" },
      "ownerResource": "Resource Type"
    }
  }'
```

---

- App: https://pipedream.com/apps/shopify.md · All apps: https://pipedream.com/apps
