Request for "Make field required" for Metafields

Can you please create a “Make Required” option for metafields that make it mandatory for the metafield to have an input on the product, page, etc. before saving the product, page, etc.?

I have created metafields for products and pages that are necessary information to be displayed on the frontend. Employees who are adding products or updating pages may save the listing/page without inputting a value, however, if the metafield was “required” on the backend,(like how metaobjects are), I could avoid such issues.

Hi @HappyMerchant

  1. Use Metaobjects Instead of Metafields (Best solution if possible)

Metaobjects do allow you to set fields as required, just like you want.

  • You can create a metaobject definition (say “Product Details”)
  • Add required fields (e.g., Material, Scent, etc.)
  • Assign that metaobject to products/pages.

This way, your employees cannot save without filling them in.
Downside: It may require re-structuring some of your metafields into metaobjects.

  1. Use Validation Scripts with Shopify Flow (No-code workaround)
  • Create a Shopify Flow automation:
    • Trigger: Product updated (or Page updated if supported)
    • Condition: Check if a certain metafield is empty
    • Action: Send a Slack/Email notification to the team OR revert the product status to draft.

Kindly feel free to get back to me if you need any further assistance.
If helpful, please like and accept the solution. :white_check_mark:

I have a large inventory. No more than 1,000 items. How many metaobjects can I create?

Hi @HappyMerchant,

This is not possible, Shopify doesn’t have a direct “Required“ setting for metafields. You can do it with the following 2 options:

  • Option 1: You need to install the app or build a separate app for it, then if the product is created and does not enter the metafield, it will notify.
  • Option 2: Use Shopify Flow for it. This won’t block product creation, but will send you notifications if the product is created and the metafield hasn’t been entered yet. This way will be simpler and less costly.

Hope it is clear to you.

Thank you! I’ve created the metaobject. Can you tell me where in Shopify Flow to create the validation script?

Hi @HappyMerchant,

It will be a complex request, you need to have experience with code.

You can refer to the following instruction link, with trigger is Product created.

Hey Tiffany! So to answer your question about metaobject limits - you’re totally fine with 1,000 items. Depending on your Shopify plan, you can create 64 definitions (Basic/Shopify/Advanced) or 128 (Plus/Enterprise), and you get 64,000 entries on the lower plans or 128,000 on Plus/Enterprise. So you’d only need 1 metaobject definition for your use case, and could easily handle 1,000 entries.

That said, I’m gonna be honest with you - switching to metaobjects might be more work than it’s worth for what you’re trying to do. You’d essentially need to restructure how you’re storing this data, and if you already have metafields set up and working on the frontend, that’s a pretty big migration.

The Shopify Flow approach that the others mentioned isn’t perfect (it won’t actually block saving), but it might be your most practical option without building or buying an app. You could set it up to notify you immediately when someone saves a product/page without the required fields, or even better, automatically set the product to draft status so it doesn’t go live incomplete.

Another thing worth considering - if these are fields where you want consistent values (like dropdown options rather than free text), you can use the “List of values” validation on regular metafields. It doesn’t make them required, but at least it prevents typos and keeps things standardized, which helps reduce errors.

The real answer is Shopify just doesn’t support required metafields natively yet, which is frustrating. Hopefully they’ll add it eventually since it’s such a common need. Until then, you’re kind of stuck choosing between workarounds - Flow notifications, custom app development, or the metaobject restructure. Flow is probably your quickest win if you don’t want to invest in custom development.

I assume by “assign that metaobject” you mean create a metafield that references the metaobject?

I find that doesn’t solve the problem. I think that just requires they provide information in the field if they click in, but it doesn’t require filling in the field to begin with.

For example, if I create a metaobject with required fields and then assign it to Draft Orders, I can still create a Draft and convert it to an Order by collecting payment, without setting the value of the required metaobject.