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.
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.
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 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”].