Metafield-linked product options: Standard metafields definition with shopify.* namespace are locked for edit after option created

I am developing an application that transfers products from one store to another. I’m faced with the problem of updating standard metadields definitions that are created automatically during the mutation createProduct / productOptionsCreate.

Example: I create a new product, metaobjects that serve as optionValues, successfully create a product with an option associated with a standard metafield definition for example ‘shopify.size’. But when I go to the metafield Definition page in Shopify Admin, the form is completely blocked and the warning is displayed: ‘Only this app can edit definition settings. Entering metafield values is allowed’. screenshot attached

Despite the fact that the inscription says that only my application can have access to this definifinition, but when mutating metafieldDefinitionUpdate, I cannot change the access (to make the mefatield definition available to the user) or capabilities to make this metafield available in other product categories in which it is not added by Shopify - I get the error ‘Access denied for metafieldDefinitionUpdate field. Required access: ‘API client to have access to the namespace and the resource type associated with the metafield definition.\n’.

It seems that after creating a new product with option linked to metafield via graphQL, metafields definitions are reserved for the app but cannot be changed by the app or the store admin, which is absurd. I used different versions of api 2024-10, 2025-01, and tried to use standardMetafieldDefinitionEnable before creating the product, but without any results.

Can I use standard metafields with ‘shopify.*’ namespace for creating linked product options? How I can unlock this kind of definitions, I feel it’s possible because when the admin creates a product from the admin’s product page this definition is available and can be edited by other apps.

Hi @Den_Rupp – it sounds like there may be a bug here. Can you tell me the URL or shop ID for the store you are testing this with?

@Den_Rupp the merchant should be able to access the metafield definition and set values for it, is this not the case?

Shop id: 75231527216,
App id which was used for test: 38256181249,
Example of metafield definition: 80422043952 (shopify.console-system)

They should… but as you see at screenshot they can’t, same for API call from my app

The screenshot shows app settings, but I’m talking about the merchant’s ability to set values. You mentioned

I cannot change the access (to make the mefatield definition available to the user)

but you should not need to do this. Please confirm in your test shop above that the merchant can add values from products whose categories match the definition.

Yes, they can insert values, but can’t edit definitions, for example, to change “Category assigments” or allow to use it at smart collection.

  1. How I should activate/create ‘shopify’ metafields definition to keep functionality for edit with namespace by merchant like it works when they add it manually? I think to lock standard definition isn’t good for merchant, it forces to use our app.

  2. Why can’t I edit this definition even though the message says otherwise?
    Thank you for responding.

Yes, there is a bug here. The merchant should be able to modify this standard definition, and it should not be shown as being owned by the app. The team is looking into this.

1 Like

Thanks, appreciate it! This is little bit confusing because Shopify is pushing app owners migrate to new Product API until February 2025, but does not provide comprehensive documentation, a lot of “magic” and under hood of new products and linked options.
Can you can confirm that I should be able to edit it via GraphQL mutation, after this bug will be fixed?
Is there any way I can track the progress of this bug or be notified when it is fixed? Because our app is already in production and we are receiving complaints from merchants.

You can’t edit the standard definition, it is considered merchant-owned and thus only the merchant can add categories after it is enabled. We will update this thread to let you know when the bug is resolved, after which point the merchants will be able to modify categories for a given definition, and it will no longer show the definition as being owned by your app.

Hi, any updates on this issue? So there is no way to add product’s category to default metafield definition via GraphQL Admin API, do we have a chance that it will be implemented in future?