# metafieldDefinitionPin - admin-graphql - MUTATION Version: 2024-10 ## Description You can organize your metafields in your Shopify admin by pinning/unpinning metafield definitions. The order of your pinned metafield definitions determines the order in which your metafields are displayed on the corresponding pages in your Shopify admin. By default, only pinned metafields are automatically displayed. ### Access Scopes API client to have access to the namespace and the resource type associated with the metafield definition. ## Arguments * [definitionId](/docs/api/admin-graphql/2024-10/scalars/ID): ID! - The ID of the metafield definition to pin. ## Returns * [pinnedDefinition](/docs/api/admin-graphql/2024-10/objects/MetafieldDefinition): MetafieldDefinition The metafield definition that was pinned. * [userErrors](/docs/api/admin-graphql/2024-10/objects/MetafieldDefinitionPinUserError): MetafieldDefinitionPinUserError! The list of errors that occurred from executing the mutation. ## Examples ### Pin a metafield definition Curl example: "curl -X POST \\\nhttps://your-development-store.myshopify.com/admin/api/2024-10/graphql.json \\\n-H 'Content-Type: application/json' \\\n-H 'X-Shopify-Access-Token: {access_token}' \\\n-d '{\n\"query\": \"mutation metafieldDefinitionPin($definitionId: ID!) { metafieldDefinitionPin(definitionId: $definitionId) { pinnedDefinition { name key namespace pinnedPosition } userErrors { field message } } }\",\n \"variables\": {\n \"definitionId\": \"gid://shopify/MetafieldDefinition/1071456171\"\n }\n}'\n" Node example: "const client = new shopify.clients.Graphql({session});\nconst data = await client.query({\n data: {\n \"query\": `mutation metafieldDefinitionPin($definitionId: ID!) {\n metafieldDefinitionPin(definitionId: $definitionId) {\n pinnedDefinition {\n name\n key\n namespace\n pinnedPosition\n }\n userErrors {\n field\n message\n }\n }\n }`,\n \"variables\": {\n \"definitionId\": \"gid://shopify/MetafieldDefinition/1071456171\"\n },\n },\n});\n" Ruby example: "session = ShopifyAPI::Auth::Session.new(\n shop: \"your-development-store.myshopify.com\",\n access_token: access_token\n)\nclient = ShopifyAPI::Clients::Graphql::Admin.new(\n session: session\n)\n\nquery = <<~QUERY\n mutation metafieldDefinitionPin($definitionId: ID!) {\n metafieldDefinitionPin(definitionId: $definitionId) {\n pinnedDefinition {\n name\n key\n namespace\n pinnedPosition\n }\n userErrors {\n field\n message\n }\n }\n }\nQUERY\n\nvariables = {\n \"definitionId\": \"gid://shopify/MetafieldDefinition/1071456171\"\n}\n\nresponse = client.query(query: query, variables: variables)\n" Remix example: "const { admin } = await authenticate.admin(request);\n\nconst response = await admin.graphql(\n `#graphql\n mutation metafieldDefinitionPin($definitionId: ID!) {\n metafieldDefinitionPin(definitionId: $definitionId) {\n pinnedDefinition {\n name\n key\n namespace\n pinnedPosition\n }\n userErrors {\n field\n message\n }\n }\n }`,\n {\n variables: {\n \"definitionId\": \"gid://shopify/MetafieldDefinition/1071456171\"\n },\n },\n);\n\nconst data = await response.json();\n" Graphql query: "mutation metafieldDefinitionPin($definitionId: ID!) {\n metafieldDefinitionPin(definitionId: $definitionId) {\n pinnedDefinition {\n name\n key\n namespace\n pinnedPosition\n }\n userErrors {\n field\n message\n }\n }\n}" #### Graphql Input { "definitionId": "gid://shopify/MetafieldDefinition/1071456171" } #### Graphql Response { "data": { "metafieldDefinitionPin": { "pinnedDefinition": { "name": "Instructions to wash your product", "key": "wash", "namespace": "instructions", "pinnedPosition": 1 }, "userErrors": [] } } }