metafield Definition Createmutation
Requires API client to have access to the namespace and the resource type associated with the metafield definition.
Creates a metafield definition. Any metafields existing under the same owner type, namespace, and key will be checked against this definition and will have their type updated accordingly. For metafields that are not valid, they will remain unchanged but any attempts to update them must align with this definition.
Arguments
Specifies the input fields for a metafield definition.
MetafieldDefinitionCreatePayload returns
The metafield definition that was created.
The list of errors that occurred from executing the mutation.
Code examples for MUTATION: metafieldDefinitionCreate
Query Reference for MUTATION: metafieldDefinitionCreate
"mutation metafieldDefinitionCreate($definition: MetafieldDefinitionInput!) {\n metafieldDefinitionCreate(definition: $definition) {\n createdDefinition {\n # MetafieldDefinition fields\n }\n userErrors {\n field\n message\n }\n }\n}"
Input Reference for MUTATION: metafieldDefinitionCreate
"{\n \"definition\": {\n \"access\": {\n \"admin\": \"MERCHANT_READ\",\n \"customerAccount\": \"NONE\",\n \"grants\": [\n {\n \"access\": \"READ\",\n \"grantee\": \"<your-grantee>\"\n }\n ],\n \"storefront\": \"NONE\"\n },\n \"capabilities\": {\n \"adminFilterable\": {\n \"enabled\": true\n },\n \"smartCollectionCondition\": {\n \"enabled\": true\n }\n },\n \"description\": \"<your-description>\",\n \"key\": \"<your-key>\",\n \"name\": \"<your-name>\",\n \"namespace\": \"<your-namespace>\",\n \"ownerType\": \"API_PERMISSION\",\n \"pin\": true,\n \"type\": \"<your-type>\",\n \"validations\": [\n {\n \"name\": \"<your-name>\",\n \"value\": \"<your-value>\"\n }\n ]\n }\n}"
Schema Reference for MUTATION: metafieldDefinitionCreate
"input MetafieldDefinitionInput {\n access: MetafieldAccessInput\n capabilities: MetafieldCapabilityCreateInput\n description: String\n key: String!\n name: String!\n namespace: String\n ownerType: MetafieldOwnerType!\n pin: Boolean\n type: String!\n useAsCollectionCondition: Boolean\n validations: [MetafieldDefinitionValidationInput!]\n visibleToStorefrontApi: Boolean\n}\n\ninput MetafieldAccessInput {\n admin: MetafieldAdminAccessInput!\n customerAccount: MetafieldCustomerAccountAccessInput\n grants: [MetafieldAccessGrantInput!]\n storefront: MetafieldStorefrontAccessInput\n}\n\ninput MetafieldCapabilityCreateInput {\n adminFilterable: MetafieldCapabilityAdminFilterableInput\n smartCollectionCondition: MetafieldCapabilitySmartCollectionConditionInput\n}\n\ninput MetafieldDefinitionValidationInput {\n name: String!\n value: String!\n}\n"
Display Examples for MUTATION: metafieldDefinitionCreate
[ { "example": { "type_name": "metafielddefinitioncreate", "title": "Create a metafield definition", "description": "You can create a metafield definition using the `metafieldDefinitionCreate` mutation.\nThe following example shows how to add a metafield definition called \"Ingredients\" to the Product\nresource, which stores multi-line text (such as a list of ingredients used to make the product).\n", "query_string": "mutation CreateMetafieldDefinition($definition: MetafieldDefinitionInput!) {\n metafieldDefinitionCreate(definition: $definition) {\n createdDefinition {\n id\n name\n }\n userErrors {\n field\n message\n code\n }\n }\n}", "variables": { "definition": { "name": "Ingredients", "namespace": "bakery", "key": "ingredients", "description": "A list of ingredients used to make the product.", "type": "multi_line_text_field", "ownerType": "PRODUCT" } }, "response": { "data": { "metafieldDefinitionCreate": { "createdDefinition": { "id": "gid://shopify/MetafieldDefinition/1071456166", "name": "Ingredients" }, "userErrors": [] } } }, "api_name": "admin", "minimum_api_version": "2023-10", "maximum_api_version": "unstable", "location": "/components/content/metafields/test/unit/graph_api/admin/mutations/metafield_definition_create_test.rb", "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 CreateMetafieldDefinition($definition: MetafieldDefinitionInput!) { metafieldDefinitionCreate(definition: $definition) { createdDefinition { id name } userErrors { field message code } } }\",\n \"variables\": {\n \"definition\": {\n \"name\": \"Ingredients\",\n \"namespace\": \"bakery\",\n \"key\": \"ingredients\",\n \"description\": \"A list of ingredients used to make the product.\",\n \"type\": \"multi_line_text_field\",\n \"ownerType\": \"PRODUCT\"\n }\n }\n}'\n", "remix_example": "const { admin } = await authenticate.admin(request);\n\nconst response = await admin.graphql(\n `#graphql\n mutation CreateMetafieldDefinition($definition: MetafieldDefinitionInput!) {\n metafieldDefinitionCreate(definition: $definition) {\n createdDefinition {\n id\n name\n }\n userErrors {\n field\n message\n code\n }\n }\n }`,\n {\n variables: {\n \"definition\": {\n \"name\": \"Ingredients\",\n \"namespace\": \"bakery\",\n \"key\": \"ingredients\",\n \"description\": \"A list of ingredients used to make the product.\",\n \"type\": \"multi_line_text_field\",\n \"ownerType\": \"PRODUCT\"\n }\n },\n },\n);\n\nconst data = await response.json();\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 CreateMetafieldDefinition($definition: MetafieldDefinitionInput!) {\n metafieldDefinitionCreate(definition: $definition) {\n createdDefinition {\n id\n name\n }\n userErrors {\n field\n message\n code\n }\n }\n }\nQUERY\n\nvariables = {\n \"definition\": {\n \"name\": \"Ingredients\",\n \"namespace\": \"bakery\",\n \"key\": \"ingredients\",\n \"description\": \"A list of ingredients used to make the product.\",\n \"type\": \"multi_line_text_field\",\n \"ownerType\": \"PRODUCT\"\n }\n}\n\nresponse = client.query(query: query, variables: variables)\n", "node_example": "const client = new shopify.clients.Graphql({session});\nconst data = await client.query({\n data: {\n \"query\": `mutation CreateMetafieldDefinition($definition: MetafieldDefinitionInput!) {\n metafieldDefinitionCreate(definition: $definition) {\n createdDefinition {\n id\n name\n }\n userErrors {\n field\n message\n code\n }\n }\n }`,\n \"variables\": {\n \"definition\": {\n \"name\": \"Ingredients\",\n \"namespace\": \"bakery\",\n \"key\": \"ingredients\",\n \"description\": \"A list of ingredients used to make the product.\",\n \"type\": \"multi_line_text_field\",\n \"ownerType\": \"PRODUCT\"\n }\n },\n },\n});\n", "php_example": "use Shopify\\Clients\\Graphql;\n\n$client = new Graphql(\"your-development-store.myshopify.com\", $accessToken);\n$query = <<<QUERY\n mutation CreateMetafieldDefinition($definition: MetafieldDefinitionInput!) {\n metafieldDefinitionCreate(definition: $definition) {\n createdDefinition {\n id\n name\n }\n userErrors {\n field\n message\n code\n }\n }\n }\nQUERY;\n\n$variables = [\n \"definition\" => [\n \"name\" => \"Ingredients\",\n \"namespace\" => \"bakery\",\n \"key\" => \"ingredients\",\n \"description\" => \"A list of ingredients used to make the product.\",\n \"type\" => \"multi_line_text_field\",\n \"ownerType\" => \"PRODUCT\",\n ],\n];\n\n$response = $client->query([\"query\" => $query, \"variables\" => $variables]);\n" }, "titleStringKey": "variables", "inputVariableEntries": [ { "arg": { "name": "definition", "description": "Specifies the input fields for a metafield definition.", "type": { "kind": "INPUT_OBJECT", "name": "MetafieldDefinitionInput", "list": false, "non_null": true }, "defaultValue": null, "typeSignature": "MetafieldDefinitionInput!", "isDeprecated": false, "deprecationReason": null, "kind": "ARGUMENT" }, "key": "definition", "argValue": " {\"name\":\"Ingredients\",\"namespace\":\"bakery\",\"key\":\"ingredients\",\"description\":\"A list of ingredients used to make the product.\",\"type\":\"multi_line_text_field\",\"ownerType\":\"PRODUCT\"}", "typeKind": "MUTATION" } ] }, { "example": { "type_name": "metafielddefinitioncreate", "title": "Create a metafield definition to be used with automated collections", "description": "You can use metafield definitions as collection condition rules for automated collections.\nThe first step is to enable the metafield definition `useAsCollectionCondition` flag.\nThis flag can be activated on a maximum of 128 definitions per product and variant metafield defintions.\nNote that you cannot delete the metafield definition if it is being used as a collection condition rule.\n", "query_string": "mutation CreateMetafieldDefinition($definition: MetafieldDefinitionInput!) {\n metafieldDefinitionCreate(definition: $definition) {\n createdDefinition {\n id\n name\n useAsCollectionCondition\n }\n userErrors {\n field\n message\n code\n }\n }\n}", "variables": { "definition": { "name": "Material", "namespace": "custom", "key": "material", "description": "A list of materials used to make the product.", "type": "list.single_line_text_field", "ownerType": "PRODUCT", "useAsCollectionCondition": true } }, "response": { "data": { "metafieldDefinitionCreate": { "createdDefinition": { "id": "gid://shopify/MetafieldDefinition/1071456167", "name": "Material", "useAsCollectionCondition": true }, "userErrors": [] } } }, "api_name": "admin", "minimum_api_version": "2023-10", "maximum_api_version": "unstable", "location": "/components/content/metafields/test/unit/graph_api/admin/mutations/metafield_definition_create_test.rb", "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 CreateMetafieldDefinition($definition: MetafieldDefinitionInput!) { metafieldDefinitionCreate(definition: $definition) { createdDefinition { id name useAsCollectionCondition } userErrors { field message code } } }\",\n \"variables\": {\n \"definition\": {\n \"name\": \"Material\",\n \"namespace\": \"custom\",\n \"key\": \"material\",\n \"description\": \"A list of materials used to make the product.\",\n \"type\": \"list.single_line_text_field\",\n \"ownerType\": \"PRODUCT\",\n \"useAsCollectionCondition\": true\n }\n }\n}'\n", "remix_example": "const { admin } = await authenticate.admin(request);\n\nconst response = await admin.graphql(\n `#graphql\n mutation CreateMetafieldDefinition($definition: MetafieldDefinitionInput!) {\n metafieldDefinitionCreate(definition: $definition) {\n createdDefinition {\n id\n name\n useAsCollectionCondition\n }\n userErrors {\n field\n message\n code\n }\n }\n }`,\n {\n variables: {\n \"definition\": {\n \"name\": \"Material\",\n \"namespace\": \"custom\",\n \"key\": \"material\",\n \"description\": \"A list of materials used to make the product.\",\n \"type\": \"list.single_line_text_field\",\n \"ownerType\": \"PRODUCT\",\n \"useAsCollectionCondition\": true\n }\n },\n },\n);\n\nconst data = await response.json();\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 CreateMetafieldDefinition($definition: MetafieldDefinitionInput!) {\n metafieldDefinitionCreate(definition: $definition) {\n createdDefinition {\n id\n name\n useAsCollectionCondition\n }\n userErrors {\n field\n message\n code\n }\n }\n }\nQUERY\n\nvariables = {\n \"definition\": {\n \"name\": \"Material\",\n \"namespace\": \"custom\",\n \"key\": \"material\",\n \"description\": \"A list of materials used to make the product.\",\n \"type\": \"list.single_line_text_field\",\n \"ownerType\": \"PRODUCT\",\n \"useAsCollectionCondition\": true\n }\n}\n\nresponse = client.query(query: query, variables: variables)\n", "node_example": "const client = new shopify.clients.Graphql({session});\nconst data = await client.query({\n data: {\n \"query\": `mutation CreateMetafieldDefinition($definition: MetafieldDefinitionInput!) {\n metafieldDefinitionCreate(definition: $definition) {\n createdDefinition {\n id\n name\n useAsCollectionCondition\n }\n userErrors {\n field\n message\n code\n }\n }\n }`,\n \"variables\": {\n \"definition\": {\n \"name\": \"Material\",\n \"namespace\": \"custom\",\n \"key\": \"material\",\n \"description\": \"A list of materials used to make the product.\",\n \"type\": \"list.single_line_text_field\",\n \"ownerType\": \"PRODUCT\",\n \"useAsCollectionCondition\": true\n }\n },\n },\n});\n", "php_example": "use Shopify\\Clients\\Graphql;\n\n$client = new Graphql(\"your-development-store.myshopify.com\", $accessToken);\n$query = <<<QUERY\n mutation CreateMetafieldDefinition($definition: MetafieldDefinitionInput!) {\n metafieldDefinitionCreate(definition: $definition) {\n createdDefinition {\n id\n name\n useAsCollectionCondition\n }\n userErrors {\n field\n message\n code\n }\n }\n }\nQUERY;\n\n$variables = [\n \"definition\" => [\n \"name\" => \"Material\",\n \"namespace\" => \"custom\",\n \"key\" => \"material\",\n \"description\" => \"A list of materials used to make the product.\",\n \"type\" => \"list.single_line_text_field\",\n \"ownerType\" => \"PRODUCT\",\n \"useAsCollectionCondition\" => true,\n ],\n];\n\n$response = $client->query([\"query\" => $query, \"variables\" => $variables]);\n" }, "titleStringKey": "variables", "inputVariableEntries": [ { "arg": { "name": "definition", "description": "Specifies the input fields for a metafield definition.", "type": { "kind": "INPUT_OBJECT", "name": "MetafieldDefinitionInput", "list": false, "non_null": true }, "defaultValue": null, "typeSignature": "MetafieldDefinitionInput!", "isDeprecated": false, "deprecationReason": null, "kind": "ARGUMENT" }, "key": "definition", "argValue": " {\"name\":\"Material\",\"namespace\":\"custom\",\"key\":\"material\",\"description\":\"A list of materials used to make the product.\",\"type\":\"list.single_line_text_field\",\"ownerType\":\"PRODUCT\",\"useAsCollectionCondition\":true}", "typeKind": "MUTATION" } ] }, { "example": { "type_name": "metafielddefinitioncreate", "title": "Create a metafield definition with access controls", "description": "The following example shows how to create a metafield definition in a namespace with a reserved prefix that is read-\nonly to the merchant, grants explicit access to 2 specified apps, and no other app can access it via the Admin API.\n", "query_string": "mutation CreateMetafieldDefinition($definition: MetafieldDefinitionInput!) {\n metafieldDefinitionCreate(definition: $definition) {\n createdDefinition {\n id\n namespace\n access {\n admin\n }\n }\n userErrors {\n field\n message\n code\n }\n }\n}", "variables": { "definition": { "name": "Pizza size", "namespace": "$app:bakery", "key": "pizza_size", "type": "dimension", "description": "The size (diameter) of the pizza in inches.", "ownerType": "PRODUCT", "access": { "admin": "MERCHANT_READ" } } }, "response": { "data": { "metafieldDefinitionCreate": { "createdDefinition": { "id": "gid://shopify/MetafieldDefinition/1071456164", "namespace": "app--23898054--bakery", "access": { "admin": "MERCHANT_READ" } }, "userErrors": [] } } }, "api_name": "admin", "minimum_api_version": "2023-10", "maximum_api_version": "unstable", "location": "/components/content/metafields/test/unit/graph_api/admin/mutations/metafield_definition_create_test.rb", "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 CreateMetafieldDefinition($definition: MetafieldDefinitionInput!) { metafieldDefinitionCreate(definition: $definition) { createdDefinition { id namespace access { admin } } userErrors { field message code } } }\",\n \"variables\": {\n \"definition\": {\n \"name\": \"Pizza size\",\n \"namespace\": \"$app:bakery\",\n \"key\": \"pizza_size\",\n \"type\": \"dimension\",\n \"description\": \"The size (diameter) of the pizza in inches.\",\n \"ownerType\": \"PRODUCT\",\n \"access\": {\n \"admin\": \"MERCHANT_READ\"\n }\n }\n }\n}'\n", "remix_example": "const { admin } = await authenticate.admin(request);\n\nconst response = await admin.graphql(\n `#graphql\n mutation CreateMetafieldDefinition($definition: MetafieldDefinitionInput!) {\n metafieldDefinitionCreate(definition: $definition) {\n createdDefinition {\n id\n namespace\n access {\n admin\n }\n }\n userErrors {\n field\n message\n code\n }\n }\n }`,\n {\n variables: {\n \"definition\": {\n \"name\": \"Pizza size\",\n \"namespace\": \"$app:bakery\",\n \"key\": \"pizza_size\",\n \"type\": \"dimension\",\n \"description\": \"The size (diameter) of the pizza in inches.\",\n \"ownerType\": \"PRODUCT\",\n \"access\": {\n \"admin\": \"MERCHANT_READ\"\n }\n }\n },\n },\n);\n\nconst data = await response.json();\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 CreateMetafieldDefinition($definition: MetafieldDefinitionInput!) {\n metafieldDefinitionCreate(definition: $definition) {\n createdDefinition {\n id\n namespace\n access {\n admin\n }\n }\n userErrors {\n field\n message\n code\n }\n }\n }\nQUERY\n\nvariables = {\n \"definition\": {\n \"name\": \"Pizza size\",\n \"namespace\": \"$app:bakery\",\n \"key\": \"pizza_size\",\n \"type\": \"dimension\",\n \"description\": \"The size (diameter) of the pizza in inches.\",\n \"ownerType\": \"PRODUCT\",\n \"access\": {\n \"admin\": \"MERCHANT_READ\"\n }\n }\n}\n\nresponse = client.query(query: query, variables: variables)\n", "node_example": "const client = new shopify.clients.Graphql({session});\nconst data = await client.query({\n data: {\n \"query\": `mutation CreateMetafieldDefinition($definition: MetafieldDefinitionInput!) {\n metafieldDefinitionCreate(definition: $definition) {\n createdDefinition {\n id\n namespace\n access {\n admin\n }\n }\n userErrors {\n field\n message\n code\n }\n }\n }`,\n \"variables\": {\n \"definition\": {\n \"name\": \"Pizza size\",\n \"namespace\": \"$app:bakery\",\n \"key\": \"pizza_size\",\n \"type\": \"dimension\",\n \"description\": \"The size (diameter) of the pizza in inches.\",\n \"ownerType\": \"PRODUCT\",\n \"access\": {\n \"admin\": \"MERCHANT_READ\"\n }\n }\n },\n },\n});\n", "php_example": "use Shopify\\Clients\\Graphql;\n\n$client = new Graphql(\"your-development-store.myshopify.com\", $accessToken);\n$query = <<<QUERY\n mutation CreateMetafieldDefinition($definition: MetafieldDefinitionInput!) {\n metafieldDefinitionCreate(definition: $definition) {\n createdDefinition {\n id\n namespace\n access {\n admin\n }\n }\n userErrors {\n field\n message\n code\n }\n }\n }\nQUERY;\n\n$variables = [\n \"definition\" => [\n \"name\" => \"Pizza size\",\n \"namespace\" => \"$app:bakery\",\n \"key\" => \"pizza_size\",\n \"type\" => \"dimension\",\n \"description\" => \"The size (diameter) of the pizza in inches.\",\n \"ownerType\" => \"PRODUCT\",\n \"access\" => [\n \"admin\" => \"MERCHANT_READ\",\n ],\n ],\n];\n\n$response = $client->query([\"query\" => $query, \"variables\" => $variables]);\n" }, "titleStringKey": "variables", "inputVariableEntries": [ { "arg": { "name": "definition", "description": "Specifies the input fields for a metafield definition.", "type": { "kind": "INPUT_OBJECT", "name": "MetafieldDefinitionInput", "list": false, "non_null": true }, "defaultValue": null, "typeSignature": "MetafieldDefinitionInput!", "isDeprecated": false, "deprecationReason": null, "kind": "ARGUMENT" }, "key": "definition", "argValue": " {\"name\":\"Pizza size\",\"namespace\":\"$app:bakery\",\"key\":\"pizza_size\",\"type\":\"dimension\",\"description\":\"The size (diameter) of the pizza in inches.\",\"ownerType\":\"PRODUCT\",\"access\":{\"admin\":\"MERCHANT_READ\"}}", "typeKind": "MUTATION" } ] }, { "example": { "type_name": "metafielddefinitioncreate", "title": "Create a metafield definition with validations", "description": "The following example shows how to create a metafield definition called `Pizza size` with a `minimum`\nsize of 9 and a `maximum` size of 15.\n", "query_string": "mutation CreateMetafieldDefinition($definition: MetafieldDefinitionInput!) {\n metafieldDefinitionCreate(definition: $definition) {\n createdDefinition {\n id\n name\n }\n userErrors {\n field\n message\n code\n }\n }\n}", "variables": { "definition": { "name": "Pizza size", "namespace": "bakery", "key": "pizza_size", "type": "dimension", "description": "The size (diameter) of the pizza in inches.", "validations": [ { "name": "min", "value": "{\"unit\": \"INCHES\", \"value\": \"9\"}" }, { "name": "max", "value": "{\"unit\": \"INCHES\", \"value\": \"15\"}" } ], "ownerType": "PRODUCT" } }, "response": { "data": { "metafieldDefinitionCreate": { "createdDefinition": { "id": "gid://shopify/MetafieldDefinition/1071456165", "name": "Pizza size" }, "userErrors": [] } } }, "api_name": "admin", "minimum_api_version": "2023-10", "maximum_api_version": "unstable", "location": "/components/content/metafields/test/unit/graph_api/admin/mutations/metafield_definition_create_test.rb", "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 CreateMetafieldDefinition($definition: MetafieldDefinitionInput!) { metafieldDefinitionCreate(definition: $definition) { createdDefinition { id name } userErrors { field message code } } }\",\n \"variables\": {\n \"definition\": {\n \"name\": \"Pizza size\",\n \"namespace\": \"bakery\",\n \"key\": \"pizza_size\",\n \"type\": \"dimension\",\n \"description\": \"The size (diameter) of the pizza in inches.\",\n \"validations\": [\n {\n \"name\": \"min\",\n \"value\": \"{\\\"unit\\\": \\\"INCHES\\\", \\\"value\\\": \\\"9\\\"}\"\n },\n {\n \"name\": \"max\",\n \"value\": \"{\\\"unit\\\": \\\"INCHES\\\", \\\"value\\\": \\\"15\\\"}\"\n }\n ],\n \"ownerType\": \"PRODUCT\"\n }\n }\n}'\n", "remix_example": "const { admin } = await authenticate.admin(request);\n\nconst response = await admin.graphql(\n `#graphql\n mutation CreateMetafieldDefinition($definition: MetafieldDefinitionInput!) {\n metafieldDefinitionCreate(definition: $definition) {\n createdDefinition {\n id\n name\n }\n userErrors {\n field\n message\n code\n }\n }\n }`,\n {\n variables: {\n \"definition\": {\n \"name\": \"Pizza size\",\n \"namespace\": \"bakery\",\n \"key\": \"pizza_size\",\n \"type\": \"dimension\",\n \"description\": \"The size (diameter) of the pizza in inches.\",\n \"validations\": [\n {\n \"name\": \"min\",\n \"value\": \"{\\\"unit\\\": \\\"INCHES\\\", \\\"value\\\": \\\"9\\\"}\"\n },\n {\n \"name\": \"max\",\n \"value\": \"{\\\"unit\\\": \\\"INCHES\\\", \\\"value\\\": \\\"15\\\"}\"\n }\n ],\n \"ownerType\": \"PRODUCT\"\n }\n },\n },\n);\n\nconst data = await response.json();\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 CreateMetafieldDefinition($definition: MetafieldDefinitionInput!) {\n metafieldDefinitionCreate(definition: $definition) {\n createdDefinition {\n id\n name\n }\n userErrors {\n field\n message\n code\n }\n }\n }\nQUERY\n\nvariables = {\n \"definition\": {\n \"name\": \"Pizza size\",\n \"namespace\": \"bakery\",\n \"key\": \"pizza_size\",\n \"type\": \"dimension\",\n \"description\": \"The size (diameter) of the pizza in inches.\",\n \"validations\": [{\"name\"=>\"min\", \"value\"=>\"{\\\"unit\\\": \\\"INCHES\\\", \\\"value\\\": \\\"9\\\"}\"}, {\"name\"=>\"max\", \"value\"=>\"{\\\"unit\\\": \\\"INCHES\\\", \\\"value\\\": \\\"15\\\"}\"}],\n \"ownerType\": \"PRODUCT\"\n }\n}\n\nresponse = client.query(query: query, variables: variables)\n", "node_example": "const client = new shopify.clients.Graphql({session});\nconst data = await client.query({\n data: {\n \"query\": `mutation CreateMetafieldDefinition($definition: MetafieldDefinitionInput!) {\n metafieldDefinitionCreate(definition: $definition) {\n createdDefinition {\n id\n name\n }\n userErrors {\n field\n message\n code\n }\n }\n }`,\n \"variables\": {\n \"definition\": {\n \"name\": \"Pizza size\",\n \"namespace\": \"bakery\",\n \"key\": \"pizza_size\",\n \"type\": \"dimension\",\n \"description\": \"The size (diameter) of the pizza in inches.\",\n \"validations\": [\n {\n \"name\": \"min\",\n \"value\": \"{\\\"unit\\\": \\\"INCHES\\\", \\\"value\\\": \\\"9\\\"}\"\n },\n {\n \"name\": \"max\",\n \"value\": \"{\\\"unit\\\": \\\"INCHES\\\", \\\"value\\\": \\\"15\\\"}\"\n }\n ],\n \"ownerType\": \"PRODUCT\"\n }\n },\n },\n});\n", "php_example": "use Shopify\\Clients\\Graphql;\n\n$client = new Graphql(\"your-development-store.myshopify.com\", $accessToken);\n$query = <<<QUERY\n mutation CreateMetafieldDefinition($definition: MetafieldDefinitionInput!) {\n metafieldDefinitionCreate(definition: $definition) {\n createdDefinition {\n id\n name\n }\n userErrors {\n field\n message\n code\n }\n }\n }\nQUERY;\n\n$variables = [\n \"definition\" => [\n \"name\" => \"Pizza size\",\n \"namespace\" => \"bakery\",\n \"key\" => \"pizza_size\",\n \"type\" => \"dimension\",\n \"description\" => \"The size (diameter) of the pizza in inches.\",\n \"validations\" => [{\"name\"=>\"min\", \"value\"=>\"{\\\"unit\\\": \\\"INCHES\\\", \\\"value\\\": \\\"9\\\"}\"}, {\"name\"=>\"max\", \"value\"=>\"{\\\"unit\\\": \\\"INCHES\\\", \\\"value\\\": \\\"15\\\"}\"}],\n \"ownerType\" => \"PRODUCT\",\n ],\n];\n\n$response = $client->query([\"query\" => $query, \"variables\" => $variables]);\n" }, "titleStringKey": "variables", "inputVariableEntries": [ { "arg": { "name": "definition", "description": "Specifies the input fields for a metafield definition.", "type": { "kind": "INPUT_OBJECT", "name": "MetafieldDefinitionInput", "list": false, "non_null": true }, "defaultValue": null, "typeSignature": "MetafieldDefinitionInput!", "isDeprecated": false, "deprecationReason": null, "kind": "ARGUMENT" }, "key": "definition", "argValue": " {\"name\":\"Pizza size\",\"namespace\":\"bakery\",\"key\":\"pizza_size\",\"type\":\"dimension\",\"description\":\"The size (diameter) of the pizza in inches.\",\"validations\":[{\"name\":\"min\",\"value\":\"{\\\"unit\\\": \\\"INCHES\\\", \\\"value\\\": \\\"9\\\"}\"},{\"name\":\"max\",\"value\":\"{\\\"unit\\\": \\\"INCHES\\\", \\\"value\\\": \\\"15\\\"}\"}],\"ownerType\":\"PRODUCT\"}", "typeKind": "MUTATION" } ] } ]