Shopify Flow Automation • Update Product Metafield Value to (Nothing)

Topic summary

Goal: Automate hiding a theme badge by clearing a product metafield (single-line text) via Shopify Flow.

  • Constraint: Shopify’s Metafields API requires a non-empty value; setting a blank value isn’t allowed (per metafieldsSet). Using a “reserved word” like “blank” would require theme logic to treat it as empty.
  • Workaround: Use Flow’s “Remove Product Metafield” action to delete the metafield so the theme sees it as null/absent. Note: This may only work if the metafield has no definition. Outcome: Implemented by the OP; looks promising and will be tested over time.

Follow-up topic: Writing metaobject references to a product metafield.

  • Issue: After creating metaobject entries with metaobjectUpsert, a user struggled to set a product metafield to those entries and tried Send Admin API and path-like values.
  • Guidance: Don’t use Send Admin API; use Flow’s “Update Product Metafield.” For a list.metaobject_reference metafield, set the value as an array of GIDs, e.g., [“gid://shopify/Metaobjects/123”,“gid://shopify/Metaobjects/345”].

Notes: Several screenshots of Flow UI and metaobject entries were shared. First issue appears resolved; second has actionable guidance but no confirmed success yet.

Summarized with AI on December 19. AI used: gpt-5.

I am using a theme that generates custom badges when text is entered into a metafield (made of single-line text). When the metafield is empty, the custom badge will not display.

The only word that I would put in there is “preorder” but within Shopify Flow, I am unable to remove text in the VALUE field or leave it blank.

Does anyone have a workaround for this?

I tried this… but it returns telling me the field can’t be blank.

{% assign newValue = ‘’ %}

{{ newValue }}

The metafields API doesn’t allow you to set blank values, so this isn’t possible. You might want to consider using another strategy, like a reserved word such as “blank”.

You might also be able to remove the metafield entirely instead and then check if it’s null.

Hi Paul!

So I am using a theme where custom badges are set only when there is text in a given metafield, but go away altogether when that text field is blank.

This automation is inventory count-based, so when items reach an inventory of 0, “preorder” gets added to this field.

I’m not entirely confident what a “reserved word such as blank” would entail, but that or removing the meta field entirely sounds good to me.

Do you have a resource you might be able to share?

You can try Flow’s “Remove Product Metafield” action. I think it will only work if the metafield doesn’t have a “definition”. This the API that Flow calls that show’s how to set a metafield and that the value field is required https://shopify.dev/docs/api/admin-graphql/2023-07/mutations/metafieldsSet

Regarding using something like “blank”, you would need to update your theme to account for that.

You’re a genius! Thank you. I have it set up. I will test it over a longer period of time — but this looks promising!

Hi Paul

Would you able to help to get the metaobject entries value

When I click on return data I am unable to find the entries as I need to select the entries from the list

Here is list of entries

Your 2 screenshots don’t match. Which mutation are you using?

Hi

I am creating metaobject entries using metaobjectUpsert and now I want to update that value to meta field

Before I was using incorrect after research now I am using

productUpdate

problem is “value”: “gid://shopify/Metaobject/54024470751”,

I should get /metaobjects/entries/or_see_more_choices/54024470751

{
“input”: {
“metafields”: [
{
“id”: “{{product.id}}”,
“namespace”: “custom”,
“key”: “or_see_more_choices_”,
“value”: “{{sendAdminApiRequest1.metaobject.id}}”,
“type”: “list.metaobject_reference”
}
]
}
}

You don’t need to use the Send Admin API request to update a metafield. Just use “Update Product Metafield”. Assuming it accepts a list of metaobjects, it needs to look like [“gid://shopify/Metaobjects/123”,“gid://shopify/Metaobjects/345”].

1 Like